diff -Nrcpad gcc-7.4.0/ChangeLog gcc-7.5.0/ChangeLog
*** gcc-7.4.0/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/LAST_UPDATED gcc-7.5.0/LAST_UPDATED
*** gcc-7.4.0/LAST_UPDATED	Thu Dec  6 09:58:52 2018
--- gcc-7.5.0/LAST_UPDATED	Thu Nov 14 07:35:26 2019
***************
*** 1 ****
! Obtained from SVN: tags/gcc_7_4_0_release revision 266845
--- 1 ----
! Obtained from SVN: tags/gcc_7_5_0_release revision 278198
diff -Nrcpad gcc-7.4.0/MD5SUMS gcc-7.5.0/MD5SUMS
*** gcc-7.4.0/MD5SUMS	Thu Dec  6 10:29:18 2018
--- gcc-7.5.0/MD5SUMS	Thu Nov 14 08:05:45 2019
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the 
! # gcc-7.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-7.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
! a540de7eadb239c3d21732cb8ba5fa36  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
--- 17,23 ----
  fe60d87048567d4fe8c8a0ed2448bcc8  COPYING.RUNTIME
  d32239bcb673463ab874e80d47fae504  COPYING3
  6a6a8e020838b23406c81b19c1d46df6  COPYING3.LIB
! 35405b60d374b1150ae2f0779a9cb719  ChangeLog
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
*************** c006991610497e0d1e2eb3ddbae3abc0  INSTAL
*** 32,50 ****
  af9fd8189c1230a90586b250985c4b4b  INSTALL/prerequisites.html
  ff15921cf6f71394f0914436e66ce60e  INSTALL/specific.html
  46d726564091e71e397f3cb6cf879bac  INSTALL/test.html
! 10bc0bb7b3d1fa0d8795967100e1511e  LAST_UPDATED
  b7046438c5076ff5c22da3f713c55819  MAINTAINERS
  cf9f2757ce84b3623a2c25cd96e2630f  Makefile.def
  38d4e84f45aef7dc5e4cce9befc6252d  Makefile.in
  2233eb495f622e1cbca6f0e111f96048  Makefile.tpl
! 42dd5797be3c496ba7c40c52af9611c4  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  500b9244caa7a7ab23ece1db37efa76d  compile
  cb74b6c8a93f1e46388212f44c60afed  config-ml.in
  07fc7c2000154cc8d5bd1211bad7a65b  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  3e5a5bd82d324a14f895209750e785b8  config.sub
! 253265a782dde7eed42ef4acd7c7eea0  config/ChangeLog
  0fcd4badfe2a2191778bdf5ab94aa40c  config/acinclude.m4
  2ea0edfde0ce5ce69b49317a5650f048  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
--- 32,50 ----
  af9fd8189c1230a90586b250985c4b4b  INSTALL/prerequisites.html
  ff15921cf6f71394f0914436e66ce60e  INSTALL/specific.html
  46d726564091e71e397f3cb6cf879bac  INSTALL/test.html
! e28c149a0001969594c5f66a7543de5f  LAST_UPDATED
  b7046438c5076ff5c22da3f713c55819  MAINTAINERS
  cf9f2757ce84b3623a2c25cd96e2630f  Makefile.def
  38d4e84f45aef7dc5e4cce9befc6252d  Makefile.in
  2233eb495f622e1cbca6f0e111f96048  Makefile.tpl
! f46adf9fa95ae6f83b14baeffa72eda8  NEWS
  80d26bc3b1ad4f6969a96a24c9181bf5  README
  500b9244caa7a7ab23ece1db37efa76d  compile
  cb74b6c8a93f1e46388212f44c60afed  config-ml.in
  07fc7c2000154cc8d5bd1211bad7a65b  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  3e5a5bd82d324a14f895209750e785b8  config.sub
! 5e32021026fa18c587904a65c45c69f9  config/ChangeLog
  0fcd4badfe2a2191778bdf5ab94aa40c  config/acinclude.m4
  2ea0edfde0ce5ce69b49317a5650f048  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
*************** e2dc6b4fd62b77bff96b7951ef74f78f  config
*** 136,142 ****
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  728d4754bbbb8d58ed827b3bd2cef682  configure
  278ffc6b756f6d7bbb6520b724a3a37d  configure.ac
! 791261548b91feb90e49a492524e575b  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  41c532dfc353377dce9eb2fbaa3179fd  contrib/analyze_brprob.py
--- 136,142 ----
  0163b672c888aaf1c8ad3e867a0ec9f1  config/zlib.m4
  728d4754bbbb8d58ed827b3bd2cef682  configure
  278ffc6b756f6d7bbb6520b724a3a37d  configure.ac
! 1fabda912ea880fe8860dcbc66bd391d  contrib/ChangeLog
  5fc435c7928f858246df931ea3f3ece7  contrib/ChangeLog.jit
  7af8d2979bf1a7cfa88e30d05fa22be2  contrib/ChangeLog.tree-ssa
  41c532dfc353377dce9eb2fbaa3179fd  contrib/analyze_brprob.py
*************** db03e57377f9eb202b7b783eb81fe40d  contri
*** 166,172 ****
  8d5fd6a30a05940f4fb9383e2ea15a97  contrib/gennews
  2d35f147fc45f270eb169156cf7550e0  contrib/gimple.vim
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! 901f6b00cd1375bbbe1e0b342ff57d1d  contrib/header-tools/ChangeLog
  1ba821a1e480c2f8ac33b68ca1097770  contrib/header-tools/README
  05ef7fb87e90ba93ee04659be072a357  contrib/header-tools/count-headers
  ba0485a3c721bce9e32407ef996d2a9d  contrib/header-tools/gcc-order-headers
--- 166,172 ----
  8d5fd6a30a05940f4fb9383e2ea15a97  contrib/gennews
  2d35f147fc45f270eb169156cf7550e0  contrib/gimple.vim
  59304fc08afa489baa6b920cc76dc625  contrib/gthr_supp_vxw_5x.c
! bb820933f3b565ed8f067fca4809aa71  contrib/header-tools/ChangeLog
  1ba821a1e480c2f8ac33b68ca1097770  contrib/header-tools/README
  05ef7fb87e90ba93ee04659be072a357  contrib/header-tools/count-headers
  ba0485a3c721bce9e32407ef996d2a9d  contrib/header-tools/gcc-order-headers
*************** a34668cfad9dec733354503fbc67fb24  contri
*** 188,194 ****
  87a19b40fbd220938cf6c23c42c255e2  contrib/prepare_patch.sh
  959cb8ef692d41f5b4e0bb200810e0c6  contrib/prerequisites.md5
  422c59c5fe9228a3dec0f7c819d63fc1  contrib/prerequisites.sha512
! f91cd26398ed949c546b4a753b8c292f  contrib/reghunt/ChangeLog
  cf247a580e49d212518de409793db0a8  contrib/reghunt/bin/gcc-build-full
  724e70ea3e80f87f2a201bbe2f1eef37  contrib/reghunt/bin/gcc-build-simple
  3f2318bae7562a4ad1639e686916a545  contrib/reghunt/bin/gcc-cleanup
--- 188,194 ----
  87a19b40fbd220938cf6c23c42c255e2  contrib/prepare_patch.sh
  959cb8ef692d41f5b4e0bb200810e0c6  contrib/prerequisites.md5
  422c59c5fe9228a3dec0f7c819d63fc1  contrib/prerequisites.sha512
! e4efbcf34d9a4f598ee83a6d0f9fb49e  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
*** 247,253 ****
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! 4a3f4c19ed6e543d2524ab242b4ca7d0  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
--- 247,253 ----
  e2829fc4af4f433a6a328a62d5ce8066  contrib/reghunt/examples/reg-watch
  afd863c2ec84c906e20f9b9787b1f0fe  contrib/reghunt/examples/reg-watch.awk
  8955535523d4b5f48006bcb851ba9b4b  contrib/reghunt/examples/testall
! ab220c432a489636dae351ebcdaf022a  contrib/regression/ChangeLog
  30553bfced1b2b46bf7ca01ef6ba69d1  contrib/regression/GCC_Regression_Tester.wdgt/Default.png
  ad38ddd771df222eb9d413e3c7f6a751  contrib/regression/GCC_Regression_Tester.wdgt/Icon.png
  777bd286c147cc02861811f66b9a4440  contrib/regression/GCC_Regression_Tester.wdgt/Info.plist
*************** dc562ddb86567c65e82953825713dc4b  contri
*** 263,269 ****
  7f6418948396f8250447e3e6182322d8  contrib/repro_fail
  39442479834f1c02d6ce11eab6889b6e  contrib/test_installed
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
! c619e84bad79c6103190d13e243e923e  contrib/test_summary
  45bd745cf293127fa6b729c7b58cf11f  contrib/testsuite-management/validate_failures.py
  0202e4875fa43ec09cf5e8442c873a56  contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
  2c5264fb1400a0a2408fd44a4e345fc6  contrib/texi2pod.pl
--- 263,269 ----
  7f6418948396f8250447e3e6182322d8  contrib/repro_fail
  39442479834f1c02d6ce11eab6889b6e  contrib/test_installed
  2c2a06a23394c548bb4afba3c25aacce  contrib/test_recheck
! bda1a942935ac26d7854354f9ce9c0c8  contrib/test_summary
  45bd745cf293127fa6b729c7b58cf11f  contrib/testsuite-management/validate_failures.py
  0202e4875fa43ec09cf5e8442c873a56  contrib/testsuite-management/x86_64-unknown-linux-gnu.xfail
  2c5264fb1400a0a2408fd44a4e345fc6  contrib/texi2pod.pl
*************** db934a41ee73c66dbdde7290d85e547d  contri
*** 272,278 ****
  45d4839f2ac702761b88d502311d47ef  contrib/vimrc
  52ed3669ef691d1606b2d8849f05cc6e  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! 794be9d0cee39dd3bd68ec46d5f7fe3a  fixincludes/ChangeLog
  6de190723745dc3f75080144dfa2215e  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
--- 272,278 ----
  45d4839f2ac702761b88d502311d47ef  contrib/vimrc
  52ed3669ef691d1606b2d8849f05cc6e  contrib/warn_summary
  8b59f0d0a2dcdced14765c514fbad719  depcomp
! 9e71e3bd9131691a6b143d692ea87d75  fixincludes/ChangeLog
  6de190723745dc3f75080144dfa2215e  fixincludes/Makefile.in
  b6e3f4950abc6e254b467063381f6473  fixincludes/README
  455903ad4ff71fa5c5340ef7ae41a0e6  fixincludes/README-fixinc
*************** a047119816700b0c31847ca6f4f52aab  fixinc
*** 285,297 ****
  7aba8b93c5233bc3247ff32e0e7cfe03  fixincludes/fixinc.in
  1582ffd94ecc91318eebfb3b81e0bcb1  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! c5143fb72444bda3dfd3d044d2465eac  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  6df145c7cea1e2099cf97a0d83564aca  fixincludes/genfixes
! e9bd4e9ed0967747e932abfab34c8f48  fixincludes/inclhack.def
  44bfe955e0fad29af749b16cd12fa743  fixincludes/mkfixinc.sh
  5f9960cfe65b2e6bef658f770e52dfef  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
--- 285,297 ----
  7aba8b93c5233bc3247ff32e0e7cfe03  fixincludes/fixinc.in
  1582ffd94ecc91318eebfb3b81e0bcb1  fixincludes/fixincl.c
  adf245e3714f799eafba40af16be8eb5  fixincludes/fixincl.tpl
! 404ea5de2a11e772e23db570f97578bf  fixincludes/fixincl.x
  545875b4fe1c26bc3e1befc75b34e9f5  fixincludes/fixlib.c
  620c770139fc32c75b975b614d3156e8  fixincludes/fixlib.h
  5b2c1fd3ef9d44fb6beb1a0d45ddd533  fixincludes/fixopts.c
  ed1415e9dbc8f421fd9288bde0d90ad1  fixincludes/fixtests.c
  6df145c7cea1e2099cf97a0d83564aca  fixincludes/genfixes
! 06cc39c30bc68a76015b0cf6c6133373  fixincludes/inclhack.def
  44bfe955e0fad29af749b16cd12fa743  fixincludes/mkfixinc.sh
  5f9960cfe65b2e6bef658f770e52dfef  fixincludes/mkheaders.in
  3aa0563cd682ee61ecd9eb6eea0b0bce  fixincludes/procopen.c
*************** ce39eed82f08475e7b77ba8f3cbd9e41  fixinc
*** 308,314 ****
  1345522e326f071aeb69b1c490fc8fc2  fixincludes/tests/base/ansi/math.h
  fb543bca7c73da85f944600810ef2171  fixincludes/tests/base/ansi/stdlib.h
  d6a40f191014042c3a1bf44086be6773  fixincludes/tests/base/arch/i960/archI960.h
! 7dc3902a9952707702003021370a1cc7  fixincludes/tests/base/architecture/ppc/math.h
  0344107d793447f3bd08f341f61633af  fixincludes/tests/base/assert.h
  0d12f925a64c4fbfb164737569788298  fixincludes/tests/base/bits/fenv.h
  06f1aca4509b42c45b0fcbe0042b88a8  fixincludes/tests/base/bits/huge_val.h
--- 308,314 ----
  1345522e326f071aeb69b1c490fc8fc2  fixincludes/tests/base/ansi/math.h
  fb543bca7c73da85f944600810ef2171  fixincludes/tests/base/ansi/stdlib.h
  d6a40f191014042c3a1bf44086be6773  fixincludes/tests/base/arch/i960/archI960.h
! 08a0e30001bbbf762503a3ac7b0f1ea1  fixincludes/tests/base/architecture/ppc/math.h
  0344107d793447f3bd08f341f61633af  fixincludes/tests/base/assert.h
  0d12f925a64c4fbfb164737569788298  fixincludes/tests/base/bits/fenv.h
  06f1aca4509b42c45b0fcbe0042b88a8  fixincludes/tests/base/bits/huge_val.h
*************** f067e3903c09c98db57bd84f7eaf8df5  fixinc
*** 320,325 ****
--- 320,326 ----
  69f7247dd4e4cf4af4aff6d92ae29999  fixincludes/tests/base/ctrl-quotes-def-1.h
  f1160d24e4253643c441ba3a4b227e43  fixincludes/tests/base/ctype.h
  7664d896c62ce0ef7874adff4ba21c96  fixincludes/tests/base/curses.h
+ 339892e95a87af44aed61c0cd1f7beb9  fixincludes/tests/base/dispatch/object.h
  1c654a39cf9704389beaac48967e4217  fixincludes/tests/base/errno.h
  099987dd3e705438dc51edcc5a202f45  fixincludes/tests/base/fcntl.h
  31a666eaf86d15fa19e6d1834f15ec38  fixincludes/tests/base/features.h
*************** a911f5fbb127353024e77149fcf90596  fixinc
*** 347,352 ****
--- 348,355 ----
  f690db296a82aeefa0bfe9ad74a2b71c  fixincludes/tests/base/netinet/in.h
  2649ccca3396541aeb5e612d4b4a3141  fixincludes/tests/base/netinet/ip.h
  f4a72388e98f34c098a3467dce9aa4e1  fixincludes/tests/base/obstack.h
+ c213736f179d8de08a09a9278e048d91  fixincludes/tests/base/os/availability.h
+ c3da2b1720112f2adb1c2bbf65563364  fixincludes/tests/base/os/base.h
  294cd5d0b36b2fc66737cc43cd46ed69  fixincludes/tests/base/os/trace.h
  c24d1be3b5afd871e9f78e1a67b9cb82  fixincludes/tests/base/pixrect/memvar.h
  1501a200fb392ae040545c7591f79498  fixincludes/tests/base/pthread.h
*************** a5e817d35ded04a0fb03999b50c0e89e  fixinc
*** 409,420 ****
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  c78e762f2c91f2af991feda7d3d7f4b2  fixincludes/tests/base/unistd.h
  fe8b9c2159f95655fcb76d514f36eaf1  gcc/ABOUT-GCC-NLS
! 535f32c053fc1b4bc9f288da470157b8  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 61132dfedd2f94df367418261d794a0c  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 412,423 ----
  955462b555900ecd3934223c64e21fa7  fixincludes/tests/base/types/vxTypesBase.h
  c78e762f2c91f2af991feda7d3d7f4b2  fixincludes/tests/base/unistd.h
  fe8b9c2159f95655fcb76d514f36eaf1  gcc/ABOUT-GCC-NLS
! 6d47b483e8e0abe204ed3ead9cde3551  gcc/BASE-VER
  59530bdf33659b29e73d4adb9f9f6552  gcc/COPYING
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 68216750fea704cdb7a535d8601cb489  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 443,449 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! fcc7817295a29e207aadd04f920e31ce  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 446,452 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! b129e40956654501ad5e1da02627220c  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** e582560d0bf728d88aed7e8d4a281453  gcc/RE
*** 455,461 ****
  3aab1d8a09402a2cfff7275fdfb6a31e  gcc/acinclude.m4
  9545fe83576dc99e441c64e268711730  gcc/aclocal.m4
  9063d23e571fcde20283b9f34d5e3422  gcc/ada/9drpc.adb
! 9485ffd3390c9f2b090bbcc5d76179f4  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 458,464 ----
  3aab1d8a09402a2cfff7275fdfb6a31e  gcc/acinclude.m4
  9545fe83576dc99e441c64e268711730  gcc/aclocal.m4
  9063d23e571fcde20283b9f34d5e3422  gcc/ada/9drpc.adb
! ce62c448a52186935fb1f0e1f6973eba  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** e187997138ad030fe8b97464559009fd  gcc/ad
*** 1056,1062 ****
  dc7fa6c2738b8e726e9cb4c8fd75f505  gcc/ada/adabkend.ads
  cfdc319ef3cac7d05d6e055b6d57b965  gcc/ada/adadecode.c
  f24eddc6e6b6955059731ac35c3ecc39  gcc/ada/adadecode.h
! c572e573bb19c8a99dc70b7ec7e30f18  gcc/ada/adaint.c
  2ba7ea4535dc44da0d10df6dc8f45963  gcc/ada/adaint.h
  013e861f617d7421fd534f705d9e0bcc  gcc/ada/affinity.c
  08ae3c97ba4d8154c279431725d7eb22  gcc/ada/ali-util.adb
--- 1059,1065 ----
  dc7fa6c2738b8e726e9cb4c8fd75f505  gcc/ada/adabkend.ads
  cfdc319ef3cac7d05d6e055b6d57b965  gcc/ada/adadecode.c
  f24eddc6e6b6955059731ac35c3ecc39  gcc/ada/adadecode.h
! 478b75978e2c1232c4b9870f4295103a  gcc/ada/adaint.c
  2ba7ea4535dc44da0d10df6dc8f45963  gcc/ada/adaint.h
  013e861f617d7421fd534f705d9e0bcc  gcc/ada/affinity.c
  08ae3c97ba4d8154c279431725d7eb22  gcc/ada/ali-util.adb
*************** d0515cdb4252eb70d972b70426c649ac  gcc/ad
*** 1192,1198 ****
  e5d12abbc5b0b1ed7f257c85b2414be3  gcc/ada/exp_ch4.ads
  002da4e43860c01d6f39e49ca2efb0a4  gcc/ada/exp_ch5.adb
  467bebd2c76c4fd5a500f3e53e9b6b4a  gcc/ada/exp_ch5.ads
! de5c9eda2654f978cd49c9042a718857  gcc/ada/exp_ch6.adb
  4b1071b03ddc151660c032228db0615c  gcc/ada/exp_ch6.ads
  ce1c6a9c150476cc1e2171b4c937a3ae  gcc/ada/exp_ch7.adb
  59398e070dd9896a33e08a26df85b3de  gcc/ada/exp_ch7.ads
--- 1195,1201 ----
  e5d12abbc5b0b1ed7f257c85b2414be3  gcc/ada/exp_ch4.ads
  002da4e43860c01d6f39e49ca2efb0a4  gcc/ada/exp_ch5.adb
  467bebd2c76c4fd5a500f3e53e9b6b4a  gcc/ada/exp_ch5.ads
! a9578a65dfb3faad69bce2c386952276  gcc/ada/exp_ch6.adb
  4b1071b03ddc151660c032228db0615c  gcc/ada/exp_ch6.ads
  ce1c6a9c150476cc1e2171b4c937a3ae  gcc/ada/exp_ch7.adb
  59398e070dd9896a33e08a26df85b3de  gcc/ada/exp_ch7.ads
*************** d7eca93022b3adc8f4a61dbe910e95d2  gcc/ad
*** 1466,1485 ****
  b45654446bc74bb68ae4adef78906e9b  gcc/ada/g-zspche.ads
  c97edf7ce39a908dcaec55eb49d0abee  gcc/ada/g-zstspl.ads
  03f505d0c5a108b347698645d923a2bb  gcc/ada/gcc-interface/Make-lang.in
! 37713abed9b24827fc5c3c88349b1e03  gcc/ada/gcc-interface/Makefile.in
  055be3d11fa6ccb53ffe7f8970a005ce  gcc/ada/gcc-interface/ada-tree.def
  2d594695e9e82d9067cabf385b6ab32a  gcc/ada/gcc-interface/ada-tree.h
  51c95420b5900990141d2e5705582197  gcc/ada/gcc-interface/ada.h
  4cbfd794461da0feb1b8661ec623b6c6  gcc/ada/gcc-interface/config-lang.in
  9779c4debc13c6f1cfa1e4e6a6e6c638  gcc/ada/gcc-interface/cuintp.c
! 0c2160a96cc5519f26a62c2acf5daec7  gcc/ada/gcc-interface/decl.c
  c413d4d50e9563859f4d751a4404b705  gcc/ada/gcc-interface/gadaint.h
  325e2eb81b1eac6225dcb381a4db7160  gcc/ada/gcc-interface/gigi.h
  f2528ece7aa7e2ed8123de8fe434252a  gcc/ada/gcc-interface/lang-specs.h
  1bba4d8f118cd8b82ada60fb44393339  gcc/ada/gcc-interface/lang.opt
  9b194bf83bd32a42a54a2f873ae9b41e  gcc/ada/gcc-interface/misc.c
  7bd3630f35c5ac7b5c6cfaf8b16e5723  gcc/ada/gcc-interface/targtyps.c
! 73a1a1319d45fcc07793e6ff068cafe6  gcc/ada/gcc-interface/trans.c
  072131c2f65294a4764eca4e7ea36080  gcc/ada/gcc-interface/utils.c
  d550c79030f34117a03a70132b6afe32  gcc/ada/gcc-interface/utils2.c
  7441478a743eff5837846723eca81135  gcc/ada/get_scos.adb
--- 1469,1488 ----
  b45654446bc74bb68ae4adef78906e9b  gcc/ada/g-zspche.ads
  c97edf7ce39a908dcaec55eb49d0abee  gcc/ada/g-zstspl.ads
  03f505d0c5a108b347698645d923a2bb  gcc/ada/gcc-interface/Make-lang.in
! a7a8ea35b57de0aa6e222f3c24cfe55c  gcc/ada/gcc-interface/Makefile.in
  055be3d11fa6ccb53ffe7f8970a005ce  gcc/ada/gcc-interface/ada-tree.def
  2d594695e9e82d9067cabf385b6ab32a  gcc/ada/gcc-interface/ada-tree.h
  51c95420b5900990141d2e5705582197  gcc/ada/gcc-interface/ada.h
  4cbfd794461da0feb1b8661ec623b6c6  gcc/ada/gcc-interface/config-lang.in
  9779c4debc13c6f1cfa1e4e6a6e6c638  gcc/ada/gcc-interface/cuintp.c
! cb97374588e27435da6f5c0188726e87  gcc/ada/gcc-interface/decl.c
  c413d4d50e9563859f4d751a4404b705  gcc/ada/gcc-interface/gadaint.h
  325e2eb81b1eac6225dcb381a4db7160  gcc/ada/gcc-interface/gigi.h
  f2528ece7aa7e2ed8123de8fe434252a  gcc/ada/gcc-interface/lang-specs.h
  1bba4d8f118cd8b82ada60fb44393339  gcc/ada/gcc-interface/lang.opt
  9b194bf83bd32a42a54a2f873ae9b41e  gcc/ada/gcc-interface/misc.c
  7bd3630f35c5ac7b5c6cfaf8b16e5723  gcc/ada/gcc-interface/targtyps.c
! ada331f999ca6201b2d8589ef26c78b6  gcc/ada/gcc-interface/trans.c
  072131c2f65294a4764eca4e7ea36080  gcc/ada/gcc-interface/utils.c
  d550c79030f34117a03a70132b6afe32  gcc/ada/gcc-interface/utils2.c
  7441478a743eff5837846723eca81135  gcc/ada/get_scos.adb
*************** be6a6eeb976a7f3190c6061c1cc2fc22  gcc/ad
*** 1507,1513 ****
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
  667d7cc541b70b2b4632bc5d0ff6846c  gcc/ada/gnatkr.adb
  2428e9de656711a7c02be62a174ad769  gcc/ada/gnatkr.ads
! df5a85bb6f16b35569dcee8bff51edb3  gcc/ada/gnatlink.adb
  21b97ef81d719d883e1fafb414a00dbe  gcc/ada/gnatlink.ads
  947b78aada64b34e6431dbc66c14d896  gcc/ada/gnatls.adb
  c823c85d34148eeef9296d1dee1ad846  gcc/ada/gnatls.ads
--- 1510,1516 ----
  670cd3e724c6b64c7b322c6e75a0e7c4  gcc/ada/gnathtml.pl
  667d7cc541b70b2b4632bc5d0ff6846c  gcc/ada/gnatkr.adb
  2428e9de656711a7c02be62a174ad769  gcc/ada/gnatkr.ads
! a0ca904e4b63a7b2fb0d4e1311510277  gcc/ada/gnatlink.adb
  21b97ef81d719d883e1fafb414a00dbe  gcc/ada/gnatlink.ads
  947b78aada64b34e6431dbc66c14d896  gcc/ada/gnatls.adb
  c823c85d34148eeef9296d1dee1ad846  gcc/ada/gnatls.ads
*************** cb7e225d6dd83d801079332a53919040  gcc/ad
*** 1638,1645 ****
  5fccc37a875a7cda3822c5408778ccef  gcc/ada/osint-l.ads
  72eadf47beb55b211d557f61f4f4c6f0  gcc/ada/osint-m.adb
  764b020a10bbfa6b544f12e767719130  gcc/ada/osint-m.ads
! 577236834b9c567ed5bdd68877682106  gcc/ada/osint.adb
! 196d24696300077855b1f5b9061ebae3  gcc/ada/osint.ads
  78dd2c9f47fbf63a2a1199e5704af844  gcc/ada/output.adb
  ad1c741fe7869e13ac4c619c22638f85  gcc/ada/output.ads
  61d7df958e5bed246fefeb33eeb76cb7  gcc/ada/par-ch10.adb
--- 1641,1648 ----
  5fccc37a875a7cda3822c5408778ccef  gcc/ada/osint-l.ads
  72eadf47beb55b211d557f61f4f4c6f0  gcc/ada/osint-m.adb
  764b020a10bbfa6b544f12e767719130  gcc/ada/osint-m.ads
! 8c18d5530b7a267479d9a46866124638  gcc/ada/osint.adb
! 5a8af6afeaf6d607b7383cb153db56ac  gcc/ada/osint.ads
  78dd2c9f47fbf63a2a1199e5704af844  gcc/ada/output.adb
  ad1c741fe7869e13ac4c619c22638f85  gcc/ada/output.ads
  61d7df958e5bed246fefeb33eeb76cb7  gcc/ada/par-ch10.adb
*************** dac9f15c34e718440504f6a84e3b90fe  gcc/ad
*** 1916,1922 ****
  36ed71acd5fef67cce98e342a56efe17  gcc/ada/s-linux-android.ads
  75c59fbe8f8b14c3d4aad6210dbb0950  gcc/ada/s-linux-hppa.ads
  6adfef17ec8f141f5ec054c8534db88f  gcc/ada/s-linux-mips.ads
! cd8b1ba1c36bffad664702deac69f614  gcc/ada/s-linux-sparc.ads
  d6aa080ae00db52b752a7f3b55073bb5  gcc/ada/s-linux-x32.ads
  3417549515728ff263f2a244d0fc942c  gcc/ada/s-linux.ads
  9b3fc2492706d5faf1b6da45c05be453  gcc/ada/s-llflex.ads
--- 1919,1925 ----
  36ed71acd5fef67cce98e342a56efe17  gcc/ada/s-linux-android.ads
  75c59fbe8f8b14c3d4aad6210dbb0950  gcc/ada/s-linux-hppa.ads
  6adfef17ec8f141f5ec054c8534db88f  gcc/ada/s-linux-mips.ads
! 40c1a8f85f7929121b7669bf818928be  gcc/ada/s-linux-sparc.ads
  d6aa080ae00db52b752a7f3b55073bb5  gcc/ada/s-linux-x32.ads
  3417549515728ff263f2a244d0fc942c  gcc/ada/s-linux.ads
  9b3fc2492706d5faf1b6da45c05be453  gcc/ada/s-llflex.ads
*************** f49fb908b3e1b95e51b603504d1bfa24  gcc/ad
*** 2416,2423 ****
  88bf0e6b791759354e8ae81ef7507ff9  gcc/ada/sem_smem.ads
  ef47f0af7fa11e2fce10a7fb20c98511  gcc/ada/sem_type.adb
  9176639d909025d92b4e8912af77b041  gcc/ada/sem_type.ads
! 36d2e90b172ff0febb7c32072363cea8  gcc/ada/sem_util.adb
! 0339d45576425b8235f546296887dcc1  gcc/ada/sem_util.ads
  1db799c9a140af9fb155a327f3a6e49b  gcc/ada/sem_warn.adb
  1b7d4036a641085606704eb68e9e7557  gcc/ada/sem_warn.ads
  b4fdbe835ffe56d072094daac548065e  gcc/ada/sequenio.ads
--- 2419,2426 ----
  88bf0e6b791759354e8ae81ef7507ff9  gcc/ada/sem_smem.ads
  ef47f0af7fa11e2fce10a7fb20c98511  gcc/ada/sem_type.adb
  9176639d909025d92b4e8912af77b041  gcc/ada/sem_type.ads
! d8467da1a84cc0e02cf6a357da3f1c90  gcc/ada/sem_util.adb
! fa500e23d190ef539c92e780217960d3  gcc/ada/sem_util.ads
  1db799c9a140af9fb155a327f3a6e49b  gcc/ada/sem_warn.adb
  1b7d4036a641085606704eb68e9e7557  gcc/ada/sem_warn.ads
  b4fdbe835ffe56d072094daac548065e  gcc/ada/sequenio.ads
*************** d36e0605a7f68f541648e49af4e5d6ef  gcc/ad
*** 2477,2483 ****
  0ca0b7f7e7cd60b6a255f096abaac886  gcc/ada/sysdep.c
  7a47a8649f22534b1b04aba2637f1f6f  gcc/ada/system-aix.ads
  99b95c46db21c0b39ab2eecb4f0ef1b2  gcc/ada/system-darwin-arm.ads
! fbca9c41faf338a0943d70dc66018cf4  gcc/ada/system-darwin-ppc.ads
  a99459ca9e7f8c2f8138819b0c12dad1  gcc/ada/system-darwin-x86.ads
  45100986a7c499055374837259a70dbd  gcc/ada/system-djgpp.ads
  f3529cf7e308b1c2f88769fece799df1  gcc/ada/system-dragonfly-x86_64.ads
--- 2480,2486 ----
  0ca0b7f7e7cd60b6a255f096abaac886  gcc/ada/sysdep.c
  7a47a8649f22534b1b04aba2637f1f6f  gcc/ada/system-aix.ads
  99b95c46db21c0b39ab2eecb4f0ef1b2  gcc/ada/system-darwin-arm.ads
! c7bddf88a63f2499ff1f3bf2e9402f49  gcc/ada/system-darwin-ppc.ads
  a99459ca9e7f8c2f8138819b0c12dad1  gcc/ada/system-darwin-x86.ads
  45100986a7c499055374837259a70dbd  gcc/ada/system-djgpp.ads
  f3529cf7e308b1c2f88769fece799df1  gcc/ada/system-dragonfly-x86_64.ads
*************** e011891e7101cbf08438851847b50380  gcc/bb
*** 2586,2592 ****
  4f13f945a546e96933494f65cd937763  gcc/bitmap.c
  87a6abe81f5dcb21d241c1b9166c420d  gcc/bitmap.h
  a3e1bd92ba9bdedb8c7153c6e72090c4  gcc/brig-builtins.def
! 338fbcec39521451f2ff7f22c9be2548  gcc/brig/ChangeLog
  1cf71f0ca99819490615a7a573a5d699  gcc/brig/Make-lang.in
  ee6dd4618f856ac83d7067ce9254d85e  gcc/brig/brig-builtins.h
  729008055685d12fc1ca05008df01aef  gcc/brig/brig-c.h
--- 2589,2595 ----
  4f13f945a546e96933494f65cd937763  gcc/bitmap.c
  87a6abe81f5dcb21d241c1b9166c420d  gcc/bitmap.h
  a3e1bd92ba9bdedb8c7153c6e72090c4  gcc/brig-builtins.def
! 3cba5fb855e843c0a22a31c3f8bb80a4  gcc/brig/ChangeLog
  1cf71f0ca99819490615a7a573a5d699  gcc/brig/Make-lang.in
  ee6dd4618f856ac83d7067ce9254d85e  gcc/brig/brig-builtins.h
  729008055685d12fc1ca05008df01aef  gcc/brig/brig-c.h
*************** bee513b2167c326e657a757cafd956dc  gcc/br
*** 2629,2645 ****
  f47f3a5be286bb97d5b3ded0c77a7fc8  gcc/bt-load.c
  dbcb21d679fd944b98405b15f3e90057  gcc/builtin-attrs.def
  57157f190b35a47dd4b683d398e513d6  gcc/builtin-types.def
! 11bff0dc3adcca805e015a4d558f1d84  gcc/builtins.c
  a97a907640298b1073edbcf6a02fe334  gcc/builtins.def
  afb31ef0129abddff28f552ef1c65626  gcc/builtins.h
! 668bf8f9cb6b1a9cfec235ed374ccaf0  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  181b99ff0153386a9f37e991e4b564f0  gcc/c-family/array-notation-common.c
! 3750c2b07473ca2dc6e49f0032885798  gcc/c-family/c-ada-spec.c
  c6bcfcd3eaa0f226f1b049b0baf0927d  gcc/c-family/c-ada-spec.h
  296ec2c0af128cc96ed7b508af99f62a  gcc/c-family/c-attribs.c
  61fca19f206b15614354104326f63123  gcc/c-family/c-cilkplus.c
! 8378308b4dd9d1b7d068a44a3c9d93e4  gcc/c-family/c-common.c
  b68399180567cc41ebcb0458faf3cd81  gcc/c-family/c-common.def
  350a8b8a29846b6271ffa4d8a141531a  gcc/c-family/c-common.h
  05a9984543e05f0c063c5a831a80238e  gcc/c-family/c-cppbuiltin.c
--- 2632,2648 ----
  f47f3a5be286bb97d5b3ded0c77a7fc8  gcc/bt-load.c
  dbcb21d679fd944b98405b15f3e90057  gcc/builtin-attrs.def
  57157f190b35a47dd4b683d398e513d6  gcc/builtin-types.def
! 2e90c03ec2a19dbd1083e73bb7c14770  gcc/builtins.c
  a97a907640298b1073edbcf6a02fe334  gcc/builtins.def
  afb31ef0129abddff28f552ef1c65626  gcc/builtins.h
! 264336fb1f9bea945fc1ba92218822a4  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  181b99ff0153386a9f37e991e4b564f0  gcc/c-family/array-notation-common.c
! f0401cc24e93f51ceff4567514898c9a  gcc/c-family/c-ada-spec.c
  c6bcfcd3eaa0f226f1b049b0baf0927d  gcc/c-family/c-ada-spec.h
  296ec2c0af128cc96ed7b508af99f62a  gcc/c-family/c-attribs.c
  61fca19f206b15614354104326f63123  gcc/c-family/c-cilkplus.c
! e1318256269d57924b0984f56a0a6dcc  gcc/c-family/c-common.c
  b68399180567cc41ebcb0458faf3cd81  gcc/c-family/c-common.def
  350a8b8a29846b6271ffa4d8a141531a  gcc/c-family/c-common.h
  05a9984543e05f0c063c5a831a80238e  gcc/c-family/c-cppbuiltin.c
*************** b68399180567cc41ebcb0458faf3cd81  gcc/c-
*** 2649,2657 ****
  74b0fe24ef6875b92dc45c5023f75106  gcc/c-family/c-gimplify.c
  bdad430142d2d171b7e0ff950149b1f4  gcc/c-family/c-indentation.c
  b62245f957f1827f7b297664d5990121  gcc/c-family/c-indentation.h
! 0f4bfa70fe388beb66af314607b99b51  gcc/c-family/c-lex.c
  30c2e467779eff504f1b83a1652e9234  gcc/c-family/c-objc.h
! 9f05965c65d98677c1ecd0eca36b9a44  gcc/c-family/c-omp.c
  888bce9474894d8263924b464cd6ae49  gcc/c-family/c-opts.c
  2427ba79f7f92bcf1a9869e8f7feda00  gcc/c-family/c-pch.c
  1c58be1245dc21a8b0fdb511ee8536cd  gcc/c-family/c-ppoutput.c
--- 2652,2660 ----
  74b0fe24ef6875b92dc45c5023f75106  gcc/c-family/c-gimplify.c
  bdad430142d2d171b7e0ff950149b1f4  gcc/c-family/c-indentation.c
  b62245f957f1827f7b297664d5990121  gcc/c-family/c-indentation.h
! 8df2ade13a56a7cf638e7c11959139cd  gcc/c-family/c-lex.c
  30c2e467779eff504f1b83a1652e9234  gcc/c-family/c-objc.h
! 5f09647445c9b3728d258cbd31e8326a  gcc/c-family/c-omp.c
  888bce9474894d8263924b464cd6ae49  gcc/c-family/c-opts.c
  2427ba79f7f92bcf1a9869e8f7feda00  gcc/c-family/c-pch.c
  1c58be1245dc21a8b0fdb511ee8536cd  gcc/c-family/c-ppoutput.c
*************** fe4c5f6b4662d6fc36d84a1f19c8fa16  gcc/c-
*** 2670,2697 ****
  3e076faabcb0bb95377ef8f357eced38  gcc/c-family/cilk.c
  8916e2707114e23b2dccbbc6bc001a97  gcc/c-family/cppspec.c
  82e6854ad3f227c85d7f08a6196d6f70  gcc/c-family/stub-objc.c
! 4b4a952fddf3f427e288d5cae75ad582  gcc/c/ChangeLog
  0caf43c9d9c18279169e7f43ad0c19b6  gcc/c/Make-lang.in
  5e6eb0dd85447b36231477f9e3e4b5c0  gcc/c/c-array-notation.c
  a8003032dc7218cccd4aff44dede772d  gcc/c/c-aux-info.c
  e2a3330e4218f15575ab43d04deaeb26  gcc/c/c-convert.c
! 85406841cb0c62a68382f1fed1e4eee8  gcc/c/c-decl.c
  c714615507e2f0981003d338ff5abc8a  gcc/c/c-errors.c
  a397c0b456aff137a4e136b66fbd0cd6  gcc/c/c-fold.c
  f3cb7d70adefcf45917f39f56bad0180  gcc/c/c-lang.c
  fa65b6fcb253804c399bd8d1d14b079f  gcc/c/c-lang.h
  2c444e8873646b1237057e728c0cf46b  gcc/c/c-objc-common.c
  658c3e81020fbec498195f368198c7a7  gcc/c/c-objc-common.h
! 91488846efba891fa43f8ab34a7bf2a0  gcc/c/c-parser.c
  2b62fc38332a49a6e5e8c09fb1afcef8  gcc/c/c-parser.h
! 67191d1deea476b99b33dab25437bb17  gcc/c/c-tree.h
! 64ea1f9865b9cf38383e3a91e69eca42  gcc/c/c-typeck.c
  4d84ee6bcba7c90929c18ce81304349c  gcc/c/config-lang.in
  e9ca602eaa8766cf8ac30f86c84ead30  gcc/c/gccspec.c
  acb5ca82086acf009acea002766ece25  gcc/c/gimple-parser.c
  8b7596ca25fb10eb5fb2576c3693786f  gcc/c/gimple-parser.h
  275667cbf114b5ac38093284c7c10051  gcc/caller-save.c
! 289e6895f00648ac98236f82b9aba6dd  gcc/calls.c
  35a3f0d9b1c58a5d06adb4e8d1d9439e  gcc/calls.h
  356f998e062811877195df2f08ba60ad  gcc/ccmp.c
  3b6db7d568f86900dcff15eabd20f2fb  gcc/ccmp.h
--- 2673,2700 ----
  3e076faabcb0bb95377ef8f357eced38  gcc/c-family/cilk.c
  8916e2707114e23b2dccbbc6bc001a97  gcc/c-family/cppspec.c
  82e6854ad3f227c85d7f08a6196d6f70  gcc/c-family/stub-objc.c
! 03757cb8faf410bc931fc0c9a772ef3e  gcc/c/ChangeLog
  0caf43c9d9c18279169e7f43ad0c19b6  gcc/c/Make-lang.in
  5e6eb0dd85447b36231477f9e3e4b5c0  gcc/c/c-array-notation.c
  a8003032dc7218cccd4aff44dede772d  gcc/c/c-aux-info.c
  e2a3330e4218f15575ab43d04deaeb26  gcc/c/c-convert.c
! 69941dfe1d6129adc686f76c470eb229  gcc/c/c-decl.c
  c714615507e2f0981003d338ff5abc8a  gcc/c/c-errors.c
  a397c0b456aff137a4e136b66fbd0cd6  gcc/c/c-fold.c
  f3cb7d70adefcf45917f39f56bad0180  gcc/c/c-lang.c
  fa65b6fcb253804c399bd8d1d14b079f  gcc/c/c-lang.h
  2c444e8873646b1237057e728c0cf46b  gcc/c/c-objc-common.c
  658c3e81020fbec498195f368198c7a7  gcc/c/c-objc-common.h
! 4eab8db410935f64e70e1128b53e4c69  gcc/c/c-parser.c
  2b62fc38332a49a6e5e8c09fb1afcef8  gcc/c/c-parser.h
! 50e2fbc1713269aef283b43158ca621b  gcc/c/c-tree.h
! 8fc5190b6b09c6e4bedcade84e2dc2e8  gcc/c/c-typeck.c
  4d84ee6bcba7c90929c18ce81304349c  gcc/c/config-lang.in
  e9ca602eaa8766cf8ac30f86c84ead30  gcc/c/gccspec.c
  acb5ca82086acf009acea002766ece25  gcc/c/gimple-parser.c
  8b7596ca25fb10eb5fb2576c3693786f  gcc/c/gimple-parser.h
  275667cbf114b5ac38093284c7c10051  gcc/caller-save.c
! ca0d5bc2ab79d877803cf5670be75a2a  gcc/calls.c
  35a3f0d9b1c58a5d06adb4e8d1d9439e  gcc/calls.h
  356f998e062811877195df2f08ba60ad  gcc/ccmp.c
  3b6db7d568f86900dcff15eabd20f2fb  gcc/ccmp.h
*************** f2a3f561ff6a49bb0ecc811ec6512d3b  gcc/cf
*** 2702,2719 ****
  cac33857c3d0eefa09bf0986ab7427ca  gcc/cfganal.h
  5618a7a96d31e6d07af20a0a0fd0b453  gcc/cfgbuild.c
  a73f90584530bcb1b885fd43355d274e  gcc/cfgbuild.h
! 6fa961e30423e314c23201638fea498a  gcc/cfgcleanup.c
  a0c5d611e8d6e95f00ae5b4b63785d88  gcc/cfgcleanup.h
  0c8df01eaa2cb3bff12411beccdfd264  gcc/cfgexpand.c
  2896de1d1de317927f1fd7ef47720163  gcc/cfgexpand.h
! 98a9a74183a281c3e70f469edcdb04fc  gcc/cfghooks.c
! 6e4c878dc845eb2cc277b094af0aec76  gcc/cfghooks.h
  4e9b85f96d06a7583bf6983e8770f010  gcc/cfgloop.c
! 0dd354c560fe64209c350ea54b4e0041  gcc/cfgloop.h
  219f05d9984823c68ab76e19c309b156  gcc/cfgloopanal.c
! 55922f3bde8bb3dcbea5f03a5c9344d6  gcc/cfgloopmanip.c
  0ba518027b3b1192d34ce4e3df414309  gcc/cfgloopmanip.h
! a1354db5bf8c1fb78a9871c75eee5580  gcc/cfgrtl.c
  3ec8969e6ab20b3d4ce26552909629a0  gcc/cfgrtl.h
  8a1684de97893f6d8c81a3abb1b05a4e  gcc/cgraph.c
  d5ca5c12646fd21ab3b7f09c90df649f  gcc/cgraph.h
--- 2705,2722 ----
  cac33857c3d0eefa09bf0986ab7427ca  gcc/cfganal.h
  5618a7a96d31e6d07af20a0a0fd0b453  gcc/cfgbuild.c
  a73f90584530bcb1b885fd43355d274e  gcc/cfgbuild.h
! b91c797b94d680f2522fa61cdf6e14ab  gcc/cfgcleanup.c
  a0c5d611e8d6e95f00ae5b4b63785d88  gcc/cfgcleanup.h
  0c8df01eaa2cb3bff12411beccdfd264  gcc/cfgexpand.c
  2896de1d1de317927f1fd7ef47720163  gcc/cfgexpand.h
! 4514a94a0565fabdce2a30486310f641  gcc/cfghooks.c
! 9d3af52f1a91e6f260dbf9018b40d7da  gcc/cfghooks.h
  4e9b85f96d06a7583bf6983e8770f010  gcc/cfgloop.c
! 2f00bba1d6bcbdb02def76397d4f1b24  gcc/cfgloop.h
  219f05d9984823c68ab76e19c309b156  gcc/cfgloopanal.c
! d2df0a906e505ee670d43cde722f7cc1  gcc/cfgloopmanip.c
  0ba518027b3b1192d34ce4e3df414309  gcc/cfgloopmanip.h
! 367dcefcc4fd242d0d19d9d67b282924  gcc/cfgrtl.c
  3ec8969e6ab20b3d4ce26552909629a0  gcc/cfgrtl.h
  8a1684de97893f6d8c81a3abb1b05a4e  gcc/cgraph.c
  d5ca5c12646fd21ab3b7f09c90df649f  gcc/cgraph.h
*************** f2ef0b7a04a3fb57b185556cf3c47432  gcc/co
*** 2733,2739 ****
  033be0715255c7aa7b5fc1c1fc9b04bb  gcc/collect2.c
  68f9782519956a31e5010bdeb531abac  gcc/collect2.h
  5c20f36eb198b4f82e0a6a10a6232468  gcc/combine-stack-adj.c
! 24b39c0d166fbda964415884b2c889f9  gcc/combine.c
  68373a9634c81023ca3245072f1cc05d  gcc/common.md
  57b6709b50ab53883091e6546b464a2f  gcc/common.opt
  eeb9d016bece096753f8a59a733ee114  gcc/common/common-target-def.h
--- 2736,2742 ----
  033be0715255c7aa7b5fc1c1fc9b04bb  gcc/collect2.c
  68f9782519956a31e5010bdeb531abac  gcc/collect2.h
  5c20f36eb198b4f82e0a6a10a6232468  gcc/combine-stack-adj.c
! 999f1c0966360c8632c3da43eb20fa0a  gcc/combine.c
  68373a9634c81023ca3245072f1cc05d  gcc/common.md
  57b6709b50ab53883091e6546b464a2f  gcc/common.opt
  eeb9d016bece096753f8a59a733ee114  gcc/common/common-target-def.h
*************** b0c22a32616d64c099ef851ddf261b23  gcc/co
*** 2789,2801 ****
  0d28f0ed0102c01397140daaf2614e83  gcc/compare-elim.c
  e7193667066e1926cc342fa433d763b4  gcc/conditions.h
  452e1826a3cf7c2cfa4bfa44b511cb77  gcc/config.build
! d8d6834da2bd3873ad3ea17564393556  gcc/config.gcc
  dc4da52535cb76a4fa50c43fdea4ad61  gcc/config.host
  f2bce35bd9333a67114b7fbcb937af31  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  3d4a14b8dc018b17cce2ea4585f41b55  gcc/config/aarch64/aarch64-arches.def
  c8327f0a78ae111247d01aa8b7076386  gcc/config/aarch64/aarch64-builtins.c
! 6557e3cc247d5d577c91bfdcdc753c76  gcc/config/aarch64/aarch64-c.c
  74bec66163a554a0553a367cc947ee3d  gcc/config/aarch64/aarch64-cores.def
  5134dfc28e546cd69e75fd9e68f6ccac  gcc/config/aarch64/aarch64-cost-tables.h
  c71b8ebda07ac7ffc59588249415e60a  gcc/config/aarch64/aarch64-elf-raw.h
--- 2792,2804 ----
  0d28f0ed0102c01397140daaf2614e83  gcc/compare-elim.c
  e7193667066e1926cc342fa433d763b4  gcc/conditions.h
  452e1826a3cf7c2cfa4bfa44b511cb77  gcc/config.build
! f94dac4ac965e6cf4710f40f2c312ea3  gcc/config.gcc
  dc4da52535cb76a4fa50c43fdea4ad61  gcc/config.host
  f2bce35bd9333a67114b7fbcb937af31  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  3d4a14b8dc018b17cce2ea4585f41b55  gcc/config/aarch64/aarch64-arches.def
  c8327f0a78ae111247d01aa8b7076386  gcc/config/aarch64/aarch64-builtins.c
! 73c224bc41d6c6c6b6423315f475d097  gcc/config/aarch64/aarch64-c.c
  74bec66163a554a0553a367cc947ee3d  gcc/config/aarch64/aarch64-cores.def
  5134dfc28e546cd69e75fd9e68f6ccac  gcc/config/aarch64/aarch64-cost-tables.h
  c71b8ebda07ac7ffc59588249415e60a  gcc/config/aarch64/aarch64-elf-raw.h
*************** fbc9d22ea16726e8c5404ba63b95fbe6  gcc/co
*** 2816,2822 ****
  415934c7a49166288d8a84565c8cb662  gcc/config/aarch64/aarch64-tuning-flags.def
  b31cf3f2c26c021e4397b2b2258d7120  gcc/config/aarch64/aarch64.c
  d780ca920c8a599fde40e0b93088a64b  gcc/config/aarch64/aarch64.h
! 41d07c95bb8d8ccad5874a105f294ca1  gcc/config/aarch64/aarch64.md
  46f1fa1446f50465ca061865c266d649  gcc/config/aarch64/aarch64.opt
  d72956fc0e5700efa6411099266daa61  gcc/config/aarch64/arm_acle.h
  e3714cfb03cb0cc67153b18a56b70fb9  gcc/config/aarch64/arm_fp16.h
--- 2819,2825 ----
  415934c7a49166288d8a84565c8cb662  gcc/config/aarch64/aarch64-tuning-flags.def
  b31cf3f2c26c021e4397b2b2258d7120  gcc/config/aarch64/aarch64.c
  d780ca920c8a599fde40e0b93088a64b  gcc/config/aarch64/aarch64.h
! 907fd6f0bbcca012d420685f742fc54f  gcc/config/aarch64/aarch64.md
  46f1fa1446f50465ca061865c266d649  gcc/config/aarch64/aarch64.opt
  d72956fc0e5700efa6411099266daa61  gcc/config/aarch64/arm_acle.h
  e3714cfb03cb0cc67153b18a56b70fb9  gcc/config/aarch64/arm_fp16.h
*************** e3714cfb03cb0cc67153b18a56b70fb9  gcc/co
*** 2825,2835 ****
  632d0d3a05731c4cf2402d75c66874c6  gcc/config/aarch64/biarchilp32.h
  99fe31aa198c89dcf315521d31181507  gcc/config/aarch64/biarchlp64.h
  679259c60a96d361ba6507e0ca8d5341  gcc/config/aarch64/constraints.md
! 9d522374c3a50d409fa8ee710d7eb013  gcc/config/aarch64/cortex-a57-fma-steering.c
  39fe2e7252888d355e17b84cb84058de  gcc/config/aarch64/driver-aarch64.c
  9b66fdb3ecb5aa5807621bc85a313c31  gcc/config/aarch64/geniterators.sh
  d039909a32343a370a779c05475fde10  gcc/config/aarch64/gentune.sh
! 677e2b2d13f885d12d53a52eda1e830b  gcc/config/aarch64/iterators.md
  8e624d2cc2d41dc33908bb4638c3a91f  gcc/config/aarch64/predicates.md
  2fe3615af21214e60e300791ade96a8a  gcc/config/aarch64/rtems.h
  4e14eab4bea8de0a9a549bafadf4d0dd  gcc/config/aarch64/t-aarch64
--- 2828,2838 ----
  632d0d3a05731c4cf2402d75c66874c6  gcc/config/aarch64/biarchilp32.h
  99fe31aa198c89dcf315521d31181507  gcc/config/aarch64/biarchlp64.h
  679259c60a96d361ba6507e0ca8d5341  gcc/config/aarch64/constraints.md
! 615162037346ae5876691d896edca80b  gcc/config/aarch64/cortex-a57-fma-steering.c
  39fe2e7252888d355e17b84cb84058de  gcc/config/aarch64/driver-aarch64.c
  9b66fdb3ecb5aa5807621bc85a313c31  gcc/config/aarch64/geniterators.sh
  d039909a32343a370a779c05475fde10  gcc/config/aarch64/gentune.sh
! 33d3891050db0035addfe9ca614c7592  gcc/config/aarch64/iterators.md
  8e624d2cc2d41dc33908bb4638c3a91f  gcc/config/aarch64/predicates.md
  2fe3615af21214e60e300791ade96a8a  gcc/config/aarch64/rtems.h
  4e14eab4bea8de0a9a549bafadf4d0dd  gcc/config/aarch64/t-aarch64
*************** e031a28eab206d4b53d4b26c206c7814  gcc/co
*** 2841,2847 ****
  142d74b958b77819754a86f22ec262c9  gcc/config/alpha/alpha-modes.def
  91ae6e87d45c468297b61a2fd5c22f17  gcc/config/alpha/alpha-passes.def
  f33be94fa0f75c3f386a7cbe19e29c53  gcc/config/alpha/alpha-protos.h
! 816e538b11b3cdf9c6afc9afc09dbce1  gcc/config/alpha/alpha.c
  4a740bb1133406c1582bbf646f54a28a  gcc/config/alpha/alpha.h
  60f1df1f7ddb018859c8a4d7d42491ab  gcc/config/alpha/alpha.md
  36e48c7783afb4c7537a33dad0d9734d  gcc/config/alpha/alpha.opt
--- 2844,2850 ----
  142d74b958b77819754a86f22ec262c9  gcc/config/alpha/alpha-modes.def
  91ae6e87d45c468297b61a2fd5c22f17  gcc/config/alpha/alpha-passes.def
  f33be94fa0f75c3f386a7cbe19e29c53  gcc/config/alpha/alpha-protos.h
! 79b819ff46984172d1b3edcdb372fee1  gcc/config/alpha/alpha.c
  4a740bb1133406c1582bbf646f54a28a  gcc/config/alpha/alpha.h
  60f1df1f7ddb018859c8a4d7d42491ab  gcc/config/alpha/alpha.md
  36e48c7783afb4c7537a33dad0d9734d  gcc/config/alpha/alpha.opt
*************** d0f4a8e84b903577fdc4b4c653595682  gcc/co
*** 2920,2928 ****
  9fc296c38dbb9315478bd6a567c72cf7  gcc/config/arm/arm-simd-builtin-types.def
  d7ce5229b2c13c9f817d2b467a8fa208  gcc/config/arm/arm-tables.opt
  632479ba42ec730b66ece345a4b6fa69  gcc/config/arm/arm-tune.md
! 5be03d4f2ed503721802f9cdfd595f6c  gcc/config/arm/arm.c
! d7aafc338dc8d9b7504f02b7163d7e6d  gcc/config/arm/arm.h
! c29542a20a344bdff1f8f19daf21dca1  gcc/config/arm/arm.md
  402607c37d1e8d5a3d9559e6079f902d  gcc/config/arm/arm.opt
  24f38580cc601b8d52e906038d175b22  gcc/config/arm/arm1020e.md
  ef11d6991cb00c5691ac3dd69e916725  gcc/config/arm/arm1026ejs.md
--- 2923,2931 ----
  9fc296c38dbb9315478bd6a567c72cf7  gcc/config/arm/arm-simd-builtin-types.def
  d7ce5229b2c13c9f817d2b467a8fa208  gcc/config/arm/arm-tables.opt
  632479ba42ec730b66ece345a4b6fa69  gcc/config/arm/arm-tune.md
! 5cd1fb1b2dd0a1c453218ec00cd9c6dd  gcc/config/arm/arm.c
! e110c1addabd384fa491ee830d10d1ae  gcc/config/arm/arm.h
! eddeb694633bd265727ec2c48547d9d8  gcc/config/arm/arm.md
  402607c37d1e8d5a3d9559e6079f902d  gcc/config/arm/arm.opt
  24f38580cc601b8d52e906038d175b22  gcc/config/arm/arm1020e.md
  ef11d6991cb00c5691ac3dd69e916725  gcc/config/arm/arm1026ejs.md
*************** b824c88f58431b50ebd0dce7cbead65f  gcc/co
*** 2936,2942 ****
  4afdde754ee1a54e42e255422b6372ab  gcc/config/arm/arm_neon_builtins.def
  5b29dea4bb7c4a0916cc671e8c79e749  gcc/config/arm/arm_vfp_builtins.def
  a67036a0ecfa194787e9c9e9907f903e  gcc/config/arm/bpabi.h
! b5ac0f5a764fb8f45065cc86be7cdcec  gcc/config/arm/constraints.md
  51aeda377b0022e7a615de7c3ab9c356  gcc/config/arm/cortex-a15-neon.md
  91c92202094678c0824439a69d7d89ad  gcc/config/arm/cortex-a15.md
  244bcf796f744cb938e7b277c620a0a6  gcc/config/arm/cortex-a17-neon.md
--- 2939,2945 ----
  4afdde754ee1a54e42e255422b6372ab  gcc/config/arm/arm_neon_builtins.def
  5b29dea4bb7c4a0916cc671e8c79e749  gcc/config/arm/arm_vfp_builtins.def
  a67036a0ecfa194787e9c9e9907f903e  gcc/config/arm/bpabi.h
! a4ba9872a54fe35944765158c6497a4c  gcc/config/arm/constraints.md
  51aeda377b0022e7a615de7c3ab9c356  gcc/config/arm/cortex-a15-neon.md
  91c92202094678c0824439a69d7d89ad  gcc/config/arm/cortex-a15.md
  244bcf796f744cb938e7b277c620a0a6  gcc/config/arm/cortex-a17-neon.md
*************** b904d27c5271b122a49d456478249b63  gcc/co
*** 2977,2983 ****
  ae7f63fcc1707b4a22775f5ef6b4bc30  gcc/config/arm/marvell-f-iwmmxt.md
  23c5005c8404d6b49376e62ddb72464b  gcc/config/arm/marvell-pj4.md
  e7bd025c0a8b6c147154451f2ac26962  gcc/config/arm/mmintrin.h
! e887dc81918b533d672380a120386e23  gcc/config/arm/neon.md
  272ea0edb113be6f1106776f9d26af46  gcc/config/arm/netbsd-elf.h
  4ca7f197762ae09faad8ee458dee5091  gcc/config/arm/parsecpu.awk
  1238b1cb0060064bcc0aaf1f32c91a26  gcc/config/arm/predicates.md
--- 2980,2986 ----
  ae7f63fcc1707b4a22775f5ef6b4bc30  gcc/config/arm/marvell-f-iwmmxt.md
  23c5005c8404d6b49376e62ddb72464b  gcc/config/arm/marvell-pj4.md
  e7bd025c0a8b6c147154451f2ac26962  gcc/config/arm/mmintrin.h
! fe71f7acf0827a1a23a71e8235af01d4  gcc/config/arm/neon.md
  272ea0edb113be6f1106776f9d26af46  gcc/config/arm/netbsd-elf.h
  4ca7f197762ae09faad8ee458dee5091  gcc/config/arm/parsecpu.awk
  1238b1cb0060064bcc0aaf1f32c91a26  gcc/config/arm/predicates.md
*************** e3950ec6bd159734835f8f8fb143efc6  gcc/co
*** 2993,2999 ****
  f65e32ade75647d28299317c685923d9  gcc/config/arm/t-linux-eabi
  6563e710a3fd04730093adc7eb149568  gcc/config/arm/t-phoenix
  378df15e3883554c3dfce4f23692c31c  gcc/config/arm/t-rmprofile
! 7635e6786e20753798ce1cd1cda5ff17  gcc/config/arm/t-rtems
  4943fbef522585ab850f79aba907546d  gcc/config/arm/t-symbian
  9f0145d02d3aa24832a9dab5809c90e8  gcc/config/arm/t-vxworks
  1ccbb3a35ced4f3fd933a078bc385319  gcc/config/arm/thumb1.md
--- 2996,3002 ----
  f65e32ade75647d28299317c685923d9  gcc/config/arm/t-linux-eabi
  6563e710a3fd04730093adc7eb149568  gcc/config/arm/t-phoenix
  378df15e3883554c3dfce4f23692c31c  gcc/config/arm/t-rmprofile
! 173f950f345bd9bfe10a47a126fe31a2  gcc/config/arm/t-rtems
  4943fbef522585ab850f79aba907546d  gcc/config/arm/t-symbian
  9f0145d02d3aa24832a9dab5809c90e8  gcc/config/arm/t-vxworks
  1ccbb3a35ced4f3fd933a078bc385319  gcc/config/arm/thumb1.md
*************** a8b0daa164f32ba1e8276cf787899c6c  gcc/co
*** 3021,3027 ****
  5b3a9cfaad388c30ccb64f8c22ae8434  gcc/config/avr/avr-passes.def
  d058fa65ae6b3fa1bca9d75e9afd3df6  gcc/config/avr/avr-protos.h
  3425f429a345e1eecd51bcad4d3ab1bd  gcc/config/avr/avr-stdint.h
! 4cce7957a71f16ac576e7aa68e790fb1  gcc/config/avr/avr.c
  5df8fc1981af85bddf054216217ff9e1  gcc/config/avr/avr.h
  afb18156319b3897dfb240f9678f0cc7  gcc/config/avr/avr.md
  3be9837418a7860773b4a1a189853b1c  gcc/config/avr/avr.opt
--- 3024,3030 ----
  5b3a9cfaad388c30ccb64f8c22ae8434  gcc/config/avr/avr-passes.def
  d058fa65ae6b3fa1bca9d75e9afd3df6  gcc/config/avr/avr-protos.h
  3425f429a345e1eecd51bcad4d3ab1bd  gcc/config/avr/avr-stdint.h
! fd7462f659967a430a99bcb21ce5d01a  gcc/config/avr/avr.c
  5df8fc1981af85bddf054216217ff9e1  gcc/config/avr/avr.h
  afb18156319b3897dfb240f9678f0cc7  gcc/config/avr/avr.md
  3be9837418a7860773b4a1a189853b1c  gcc/config/avr/avr.opt
*************** b04e5c20797e72eedf069e05e435d9d1  gcc/co
*** 3105,3122 ****
  a9b0f21667fd1395c9d1ba7a25d64ef0  gcc/config/cris/t-cris
  05528bc8bd9dc14ca45cc8af478acc93  gcc/config/cris/t-elfmulti
  5657034355d2720466dad6b98f794a8f  gcc/config/cris/t-linux
! 3c50e8169741e2ca3edd4ac90756e1f8  gcc/config/darwin-c.c
! 296a294042c185964ef738edd9af6508  gcc/config/darwin-driver.c
  4b4dd81e2edf3c6062378c2c342e070a  gcc/config/darwin-f.c
  ff8874544a9c5e305c4592eeaa0ca02d  gcc/config/darwin-ppc-ldouble-patch.def
! d6acd429ff1600c49ccc0b3aceb4247e  gcc/config/darwin-protos.h
  5cb72a6936fb3c9254091b5cc7639be5  gcc/config/darwin-sections.def
! 10e71b91575e69235cd275579ea80640  gcc/config/darwin.c
! e3bd28a2da95b02fb20bb075383724f3  gcc/config/darwin.h
! 8b9419092068348e657dcae282a6a3f7  gcc/config/darwin.opt
! 101024c77063e77198ed701f9f28e16a  gcc/config/darwin10.h
  36fb2780494fc147291656b8ded57bf3  gcc/config/darwin12.h
! efa44741c3bd8204720f8980452d3b20  gcc/config/darwin9.h
  37caa63015b7c98ec9ffeda384e9e869  gcc/config/dbx.h
  e2e1cb01e0cf4853349146b0e45c5dad  gcc/config/dbxcoff.h
  96cf4c3121f2e418fd757787edfa8e41  gcc/config/dbxelf.h
--- 3108,3125 ----
  a9b0f21667fd1395c9d1ba7a25d64ef0  gcc/config/cris/t-cris
  05528bc8bd9dc14ca45cc8af478acc93  gcc/config/cris/t-elfmulti
  5657034355d2720466dad6b98f794a8f  gcc/config/cris/t-linux
! cef25ced79c44888d49089d190c29bee  gcc/config/darwin-c.c
! 51f1269f58ce54d50d2d45726359b9a8  gcc/config/darwin-driver.c
  4b4dd81e2edf3c6062378c2c342e070a  gcc/config/darwin-f.c
  ff8874544a9c5e305c4592eeaa0ca02d  gcc/config/darwin-ppc-ldouble-patch.def
! 53785fbad66238d7cdc37aeefd23c847  gcc/config/darwin-protos.h
  5cb72a6936fb3c9254091b5cc7639be5  gcc/config/darwin-sections.def
! 15e902a893c11ba7d756116675521dd5  gcc/config/darwin.c
! 7daa9b1a546f24cfefb35a1aab49c6ce  gcc/config/darwin.h
! 1d27b83e3ff69e3bd790b8af23c19523  gcc/config/darwin.opt
! bbbddb58c3c36404e308920201b0dc6c  gcc/config/darwin10.h
  36fb2780494fc147291656b8ded57bf3  gcc/config/darwin12.h
! a5533a3b6e0988a2fd44a04d9c0a62e8  gcc/config/darwin9.h
  37caa63015b7c98ec9ffeda384e9e869  gcc/config/dbx.h
  e2e1cb01e0cf4853349146b0e45c5dad  gcc/config/dbxcoff.h
  96cf4c3121f2e418fd757787edfa8e41  gcc/config/dbxelf.h
*************** e115a0990f79835bb8dbf2365b78df76  gcc/co
*** 3207,3213 ****
  23b680d8385994e8046590bd5f06750d  gcc/config/i386/athlon.md
  74385587c3e4f5d94833643091ecfccc  gcc/config/i386/atom.md
  180209868729c893ee8304e2fbe152a3  gcc/config/i386/att.h
! bc7981d211a35635d4d9239eb87bc009  gcc/config/i386/avx2intrin.h
  750be139720f8920d23f30f421c5601f  gcc/config/i386/avx5124fmapsintrin.h
  4b98522ce733b50b13c082cc7adea669  gcc/config/i386/avx5124vnniwintrin.h
  b60ce9f5056a8b2d3e02be7709099937  gcc/config/i386/avx512bwintrin.h
--- 3210,3216 ----
  23b680d8385994e8046590bd5f06750d  gcc/config/i386/athlon.md
  74385587c3e4f5d94833643091ecfccc  gcc/config/i386/atom.md
  180209868729c893ee8304e2fbe152a3  gcc/config/i386/att.h
! 8a32b6998915b0ff03832d6f7964af54  gcc/config/i386/avx2intrin.h
  750be139720f8920d23f30f421c5601f  gcc/config/i386/avx5124fmapsintrin.h
  4b98522ce733b50b13c082cc7adea669  gcc/config/i386/avx5124vnniwintrin.h
  b60ce9f5056a8b2d3e02be7709099937  gcc/config/i386/avx512bwintrin.h
*************** cb658ab64800dc93ff9d5f2808f958ae  gcc/co
*** 3224,3230 ****
  0703bacc33f4079c87c52eb336565c95  gcc/config/i386/avx512vldqintrin.h
  c7f0f4a467f7cbc02f89646cf63c1895  gcc/config/i386/avx512vlintrin.h
  0e25fd1bd9e4a1b6101596cc480db933  gcc/config/i386/avx512vpopcntdqintrin.h
! 09eeee007c733ce05e205ae1af926882  gcc/config/i386/avxintrin.h
  3044158b72545cd77bdaf0af75d23cc4  gcc/config/i386/avxmath.h
  0c049f8ce11f381b7df0c79dc3d358f5  gcc/config/i386/bdver1.md
  813e599df64196c20812ebfdbd3d145a  gcc/config/i386/bdver3.md
--- 3227,3233 ----
  0703bacc33f4079c87c52eb336565c95  gcc/config/i386/avx512vldqintrin.h
  c7f0f4a467f7cbc02f89646cf63c1895  gcc/config/i386/avx512vlintrin.h
  0e25fd1bd9e4a1b6101596cc480db933  gcc/config/i386/avx512vpopcntdqintrin.h
! 8cad976e21b1cb5b9af690c187dd491d  gcc/config/i386/avxintrin.h
  3044158b72545cd77bdaf0af75d23cc4  gcc/config/i386/avxmath.h
  0c049f8ce11f381b7df0c79dc3d358f5  gcc/config/i386/bdver1.md
  813e599df64196c20812ebfdbd3d145a  gcc/config/i386/bdver3.md
*************** e5755082352ee97d90427b199539c657  gcc/co
*** 3240,3246 ****
  f275e0cb1c06e9be383ee2830742eabc  gcc/config/i386/clzerointrin.h
  7ee8c7a80d13ed5edc3e2ce7a101f690  gcc/config/i386/constraints.md
  51916b5cfd29cd81ccf6e9e61c1f668d  gcc/config/i386/core2.md
! 4c008dd80df596b0deae5e181737543c  gcc/config/i386/cpuid.h
  3005ca522302d379f11519de60d8f8fa  gcc/config/i386/cross-stdarg.h
  27869bbc83c2dadbf6eda2d3c15245c9  gcc/config/i386/crtdll.h
  d11d93fb59f31ce43308a3ce2b80bfed  gcc/config/i386/cygming.h
--- 3243,3249 ----
  f275e0cb1c06e9be383ee2830742eabc  gcc/config/i386/clzerointrin.h
  7ee8c7a80d13ed5edc3e2ce7a101f690  gcc/config/i386/constraints.md
  51916b5cfd29cd81ccf6e9e61c1f668d  gcc/config/i386/core2.md
! c7551ed76a45fdbeeb30a09e93d9049a  gcc/config/i386/cpuid.h
  3005ca522302d379f11519de60d8f8fa  gcc/config/i386/cross-stdarg.h
  27869bbc83c2dadbf6eda2d3c15245c9  gcc/config/i386/crtdll.h
  d11d93fb59f31ce43308a3ce2b80bfed  gcc/config/i386/cygming.h
*************** ed7bac240af8b09916271be40230256d  gcc/co
*** 3249,3263 ****
  1342de078b9ef883588f75f5aed134e9  gcc/config/i386/cygwin-w64.h
  e8234781b4c21eb0988db82e86cc7267  gcc/config/i386/cygwin.h
  849a37486371a7ea92478c1bd902a1d8  gcc/config/i386/cygwin.opt
! ea04c4d56142d8ba8867b531f3c57ac6  gcc/config/i386/darwin.h
! b63a31daedb78da6857de5dc44890ac5  gcc/config/i386/darwin64.h
  5628990ccbc26c3d8a83cab8c8eea3b9  gcc/config/i386/djgpp-stdint.h
  737dede75d620d8918f97e224f27b465  gcc/config/i386/djgpp.c
  49544a59d3358fdb338ca2b49921e43b  gcc/config/i386/djgpp.h
  2b7e4c6815831e8c7031184e02f30c83  gcc/config/i386/djgpp.opt
  e643535bf612674f78a8ccba59bfe7f2  gcc/config/i386/dragonfly.h
  541053d78505778d82a708fb43be377b  gcc/config/i386/driver-i386.c
! 6a5cfd69b1065c7a9f46bed11c8700d2  gcc/config/i386/emmintrin.h
  6f09fa82ef1421be137d2767fdcc7f2c  gcc/config/i386/f16cintrin.h
  67e8f732c8aab028c2667fee5cd0b42e  gcc/config/i386/fma4intrin.h
  8f861c333b4f4e35c0345c56295b8567  gcc/config/i386/fmaintrin.h
--- 3252,3267 ----
  1342de078b9ef883588f75f5aed134e9  gcc/config/i386/cygwin-w64.h
  e8234781b4c21eb0988db82e86cc7267  gcc/config/i386/cygwin.h
  849a37486371a7ea92478c1bd902a1d8  gcc/config/i386/cygwin.opt
! fdd5f70d619db615830ddc9c01e471c5  gcc/config/i386/darwin.h
! 8256997a20c204a0527b521ac183cfc2  gcc/config/i386/darwin32-biarch.h
! cf642b6e9bac4617209f4bf91245d902  gcc/config/i386/darwin64-biarch.h
  5628990ccbc26c3d8a83cab8c8eea3b9  gcc/config/i386/djgpp-stdint.h
  737dede75d620d8918f97e224f27b465  gcc/config/i386/djgpp.c
  49544a59d3358fdb338ca2b49921e43b  gcc/config/i386/djgpp.h
  2b7e4c6815831e8c7031184e02f30c83  gcc/config/i386/djgpp.opt
  e643535bf612674f78a8ccba59bfe7f2  gcc/config/i386/dragonfly.h
  541053d78505778d82a708fb43be377b  gcc/config/i386/driver-i386.c
! 5f12b62ba5618031fe0d2115118bf402  gcc/config/i386/emmintrin.h
  6f09fa82ef1421be137d2767fdcc7f2c  gcc/config/i386/f16cintrin.h
  67e8f732c8aab028c2667fee5cd0b42e  gcc/config/i386/fma4intrin.h
  8f861c333b4f4e35c0345c56295b8567  gcc/config/i386/fmaintrin.h
*************** f23d8a342d218fda7a0259450202ee9b  gcc/co
*** 3279,3293 ****
  a2a96ce7ed0be4a979baf51b72a4e1ed  gcc/config/i386/host-mingw32.c
  323aab772ea45dd79401d5317da8bc0f  gcc/config/i386/i386-builtin-types.awk
  d5238835384061cdbddd924882e89c6e  gcc/config/i386/i386-builtin-types.def
! 679fe751d3a24897f72395532f0220be  gcc/config/i386/i386-builtin.def
  54c767a1819a987fb859eaa5b1e265b2  gcc/config/i386/i386-c.c
  79f95578ad42bafa17a9a1f3c09514c3  gcc/config/i386/i386-modes.def
  fd4a0dcde60c7daf09fe3b9ef6b3ee08  gcc/config/i386/i386-opts.h
  80b43deb5c1fc5fc0938a942fd33af10  gcc/config/i386/i386-passes.def
  1530f3e07f04b9e5cc5d194b8ebcd21d  gcc/config/i386/i386-protos.h
! 9901bb649b4526fb879a85a063134531  gcc/config/i386/i386.c
! 5ccb756977456f01ded62c23e28f3251  gcc/config/i386/i386.h
! d9ad68d1359a77d59d1eb2b760dcdb40  gcc/config/i386/i386.md
  ca0d03ffdb381f643e5cf347dd93191b  gcc/config/i386/i386.opt
  7ba0fe66f8e16b1b88672d1a6a6214e4  gcc/config/i386/i386elf.h
  5d53d7bc9e564ebfaa7161e7fbb38fe8  gcc/config/i386/ia32intrin.h
--- 3283,3297 ----
  a2a96ce7ed0be4a979baf51b72a4e1ed  gcc/config/i386/host-mingw32.c
  323aab772ea45dd79401d5317da8bc0f  gcc/config/i386/i386-builtin-types.awk
  d5238835384061cdbddd924882e89c6e  gcc/config/i386/i386-builtin-types.def
! 6ced65456ffa518c444888fcb834cc8b  gcc/config/i386/i386-builtin.def
  54c767a1819a987fb859eaa5b1e265b2  gcc/config/i386/i386-c.c
  79f95578ad42bafa17a9a1f3c09514c3  gcc/config/i386/i386-modes.def
  fd4a0dcde60c7daf09fe3b9ef6b3ee08  gcc/config/i386/i386-opts.h
  80b43deb5c1fc5fc0938a942fd33af10  gcc/config/i386/i386-passes.def
  1530f3e07f04b9e5cc5d194b8ebcd21d  gcc/config/i386/i386-protos.h
! 686c3e9a5942052fefe938db43e51e4b  gcc/config/i386/i386.c
! 6e37ac5621a664baeb007f371b1f1b57  gcc/config/i386/i386.h
! 029fbddaa66b10ea0325a9cba5834bb9  gcc/config/i386/i386.md
  ca0d03ffdb381f643e5cf347dd93191b  gcc/config/i386/i386.opt
  7ba0fe66f8e16b1b88672d1a6a6214e4  gcc/config/i386/i386elf.h
  5d53d7bc9e564ebfaa7161e7fbb38fe8  gcc/config/i386/ia32intrin.h
*************** a8aed88b8bbf38fdb6166cf2d0051cf1  gcc/co
*** 3341,3347 ****
  8be24cf09776d77cfca4a86b3442fbce  gcc/config/i386/slm.md
  655421e4471519d6655c892afcec20c5  gcc/config/i386/smmintrin.h
  b5bce0d903bc159066cd8fefe933e6af  gcc/config/i386/sol2.h
! 3baf3ed14a3bddd6dff79e16deae0d38  gcc/config/i386/sse.md
  18427fe6cb074752acb8f48048eaf104  gcc/config/i386/ssemath.h
  aed767217d43c89b3e9f7ba6f4c213a2  gcc/config/i386/stringop.def
  6d07cea9e3242e05941de0140745843b  gcc/config/i386/subst.md
--- 3345,3351 ----
  8be24cf09776d77cfca4a86b3442fbce  gcc/config/i386/slm.md
  655421e4471519d6655c892afcec20c5  gcc/config/i386/smmintrin.h
  b5bce0d903bc159066cd8fefe933e6af  gcc/config/i386/sol2.h
! aeda682f4ca085ea1b0ef7cd0e96faf0  gcc/config/i386/sse.md
  18427fe6cb074752acb8f48048eaf104  gcc/config/i386/ssemath.h
  aed767217d43c89b3e9f7ba6f4c213a2  gcc/config/i386/stringop.def
  6d07cea9e3242e05941de0140745843b  gcc/config/i386/subst.md
*************** a3f25e79f8f7d67dc93801fe6004c715  gcc/co
*** 3349,3356 ****
  138a11dfc6cd317eb9e6ce0126d15287  gcc/config/i386/sysv4.h
  3012f8fe17631be71507b44d3733ffa9  gcc/config/i386/t-cygming
  d5339d6e5a09a02383903f617230e19e  gcc/config/i386/t-cygwin-w64
! 98d94861be252f8541038afee279417f  gcc/config/i386/t-darwin
! 8f92133cb94c59e2939cd65dc5fc8cb4  gcc/config/i386/t-darwin64
  4c5d6e2fe993d41a182cdd83904065d4  gcc/config/i386/t-djgpp
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
--- 3353,3360 ----
  138a11dfc6cd317eb9e6ce0126d15287  gcc/config/i386/sysv4.h
  3012f8fe17631be71507b44d3733ffa9  gcc/config/i386/t-cygming
  d5339d6e5a09a02383903f617230e19e  gcc/config/i386/t-cygwin-w64
! 98d94861be252f8541038afee279417f  gcc/config/i386/t-darwin32-biarch
! 8f92133cb94c59e2939cd65dc5fc8cb4  gcc/config/i386/t-darwin64-biarch
  4c5d6e2fe993d41a182cdd83904065d4  gcc/config/i386/t-djgpp
  3a1c0dac7740fd9ef48c7bdf5f313c9d  gcc/config/i386/t-gmm_malloc
  d5939c6bccbf8957206c63308ce628a6  gcc/config/i386/t-gnu
*************** bbccdcf812f8a0570b91878c40a1ac35  gcc/co
*** 3736,3742 ****
  d835d08884a2846e70bef505767bd3f1  gcc/config/nios2/t-rtems
  1a77021617fa509b4193a0173cc0db80  gcc/config/nvptx/mkoffload.c
  0528c01cacf3d6d78c2d572ddce1acd2  gcc/config/nvptx/nvptx-protos.h
! 2ed794702f6558a54ac7fdfbdd9ad65e  gcc/config/nvptx/nvptx.c
  eb1454b59c8b5e977859ef9a164f30d7  gcc/config/nvptx/nvptx.h
  33ff98eff43db716166e6eb7701d7444  gcc/config/nvptx/nvptx.md
  581897eccb2823f57fe3e4d7f48dfc99  gcc/config/nvptx/nvptx.opt
--- 3740,3746 ----
  d835d08884a2846e70bef505767bd3f1  gcc/config/nios2/t-rtems
  1a77021617fa509b4193a0173cc0db80  gcc/config/nvptx/mkoffload.c
  0528c01cacf3d6d78c2d572ddce1acd2  gcc/config/nvptx/nvptx-protos.h
! fa12c70da4e2f9da7e503bcf43434de8  gcc/config/nvptx/nvptx.c
  eb1454b59c8b5e977859ef9a164f30d7  gcc/config/nvptx/nvptx.h
  33ff98eff43db716166e6eb7701d7444  gcc/config/nvptx/nvptx.md
  581897eccb2823f57fe3e4d7f48dfc99  gcc/config/nvptx/nvptx.opt
*************** f9eb8215e990039206aca7d2674044dd  gcc/co
*** 3765,3773 ****
  d4df9eb3c1cf138edc94444846091689  gcc/config/pa/pa-openbsd.h
  7bc5229cf1c43545830a2c4703b2368e  gcc/config/pa/pa-opts.h
  946b59b66fba818b8c8b48d21d19f78c  gcc/config/pa/pa-protos.h
! 76cfeea06fd4a3cfe605d528f067ec30  gcc/config/pa/pa.c
  667dae285606b1eee390c1f129a4db34  gcc/config/pa/pa.h
! 1cc618c4bb255d4616021f152bb0f9ad  gcc/config/pa/pa.md
  8bd9cf9ffd45cd39f633111f1c7a35c2  gcc/config/pa/pa.opt
  5493a9bfa5ffeddf45cfff961109b642  gcc/config/pa/pa32-linux.h
  eb52a472e9a1cd97e8c83b89c65a6b84  gcc/config/pa/pa32-openbsd.h
--- 3769,3777 ----
  d4df9eb3c1cf138edc94444846091689  gcc/config/pa/pa-openbsd.h
  7bc5229cf1c43545830a2c4703b2368e  gcc/config/pa/pa-opts.h
  946b59b66fba818b8c8b48d21d19f78c  gcc/config/pa/pa-protos.h
! 6ae61358d8357ae9bff5ddf170b6f516  gcc/config/pa/pa.c
  667dae285606b1eee390c1f129a4db34  gcc/config/pa/pa.h
! f743b7417dd15bb05789c3f327006ce8  gcc/config/pa/pa.md
  8bd9cf9ffd45cd39f633111f1c7a35c2  gcc/config/pa/pa.opt
  5493a9bfa5ffeddf45cfff961109b642  gcc/config/pa/pa32-linux.h
  eb52a472e9a1cd97e8c83b89c65a6b84  gcc/config/pa/pa32-openbsd.h
*************** d13c2da4db56aa2b22d164716edf47d9  gcc/co
*** 3853,3869 ****
  c1fd5ce3265227f742dd7b50a4d4e860  gcc/config/rs6000/aix61.h
  c04eafaf5bcb98ef729029677f468111  gcc/config/rs6000/aix64.opt
  9e37dfb2cfc128801986fe38da434059  gcc/config/rs6000/aix71.h
! 567a005d0999c88ffad5ca2e2a3cfffc  gcc/config/rs6000/altivec.h
! e270d6caa1d3b80245971cb57960cc63  gcc/config/rs6000/altivec.md
  d93efc51b48185e307aea24e46c4eff1  gcc/config/rs6000/biarch64.h
  03512609c1d7d657e1fa9d336feaf3f2  gcc/config/rs6000/cell.md
  aae8b48d17c545633f55e8f1f6eb9152  gcc/config/rs6000/constraints.md
! ed845034a74aa76eba70cf51c5fbbe69  gcc/config/rs6000/crypto.md
! 8797ca2bcbcf839761b9d3259b4a6eaa  gcc/config/rs6000/darwin.h
! be03b51e2a326cffe7f46ad456aca0b2  gcc/config/rs6000/darwin.md
  3a653fa4deb3dbcf0c18f756e27d0229  gcc/config/rs6000/darwin.opt
! 06cbeeac6e757925c70f07f04770bd9f  gcc/config/rs6000/darwin64.h
! efec264b3f79ef8045fa9c62522b81b5  gcc/config/rs6000/darwin7.h
  c5d09b685dc06366de0472e5ed5fa397  gcc/config/rs6000/darwin8.h
  eced47c9f0f77449e1dfd44057cd5d0f  gcc/config/rs6000/default64.h
  af67d5fc20f3c5695c275e364482816c  gcc/config/rs6000/dfp.md
--- 3857,3874 ----
  c1fd5ce3265227f742dd7b50a4d4e860  gcc/config/rs6000/aix61.h
  c04eafaf5bcb98ef729029677f468111  gcc/config/rs6000/aix64.opt
  9e37dfb2cfc128801986fe38da434059  gcc/config/rs6000/aix71.h
! 6b745fba9cdd32dceedac947b9546281  gcc/config/rs6000/altivec.h
! 3fff5ec90e694e6322e5cbd11c88868e  gcc/config/rs6000/altivec.md
  d93efc51b48185e307aea24e46c4eff1  gcc/config/rs6000/biarch64.h
  03512609c1d7d657e1fa9d336feaf3f2  gcc/config/rs6000/cell.md
  aae8b48d17c545633f55e8f1f6eb9152  gcc/config/rs6000/constraints.md
! bbce05d01c6708b34dfd6f7763dde111  gcc/config/rs6000/crypto.md
! fa6f89a584692f6318e31757ec1fed23  gcc/config/rs6000/darwin.h
! a8cd8165741189f4db452f79084aa690  gcc/config/rs6000/darwin.md
  3a653fa4deb3dbcf0c18f756e27d0229  gcc/config/rs6000/darwin.opt
! e2442f7a7d39c650b30c87274f59db87  gcc/config/rs6000/darwin32-biarch.h
! 3aeaaf4c43f3df11b4fac94ff932c8c1  gcc/config/rs6000/darwin64-biarch.h
! ee8492cf2fad0f5e2848d0ef2b95024a  gcc/config/rs6000/darwin7.h
  c5d09b685dc06366de0472e5ed5fa397  gcc/config/rs6000/darwin8.h
  eced47c9f0f77449e1dfd44057cd5d0f  gcc/config/rs6000/default64.h
  af67d5fc20f3c5695c275e364482816c  gcc/config/rs6000/dfp.md
*************** d72d32ce10b6b2d9d2b6c5c805ed926f  gcc/co
*** 3908,3915 ****
  b5f65d5db893cf3ca33e181b35cae0f3  gcc/config/rs6000/ppc-auxv.h
  526c8b9296818a28a1cd31ac9a1aa109  gcc/config/rs6000/ppu_intrinsics.h
  877eecd9e05889835e11ba836a13b124  gcc/config/rs6000/predicates.md
! 77d0f1b473496014853d8b243efb869a  gcc/config/rs6000/rs6000-builtin.def
! 5fa2869a5a2a2b01d1e57802e59845a0  gcc/config/rs6000/rs6000-c.c
  9c6ba7f9ee5978eee63cfee9d7ee9c3a  gcc/config/rs6000/rs6000-cpus.def
  a46ae50924a00ed57cfdf730ebdb4237  gcc/config/rs6000/rs6000-linux.c
  2824bf79a0d9619e1952e8d0a90aef04  gcc/config/rs6000/rs6000-modes.def
--- 3913,3920 ----
  b5f65d5db893cf3ca33e181b35cae0f3  gcc/config/rs6000/ppc-auxv.h
  526c8b9296818a28a1cd31ac9a1aa109  gcc/config/rs6000/ppu_intrinsics.h
  877eecd9e05889835e11ba836a13b124  gcc/config/rs6000/predicates.md
! 993fb6262c166abbdde3170f8df85f8f  gcc/config/rs6000/rs6000-builtin.def
! 14a775bb19acc60b7d0ab79f3d45ad29  gcc/config/rs6000/rs6000-c.c
  9c6ba7f9ee5978eee63cfee9d7ee9c3a  gcc/config/rs6000/rs6000-cpus.def
  a46ae50924a00ed57cfdf730ebdb4237  gcc/config/rs6000/rs6000-linux.c
  2824bf79a0d9619e1952e8d0a90aef04  gcc/config/rs6000/rs6000-modes.def
*************** f69e381c5811309d05da2313dfcec4de  gcc/co
*** 3917,3925 ****
  845709f631fc1fa80de2bbaf192bff40  gcc/config/rs6000/rs6000-passes.def
  2dd4af2b037f4e173cfe54b25e845852  gcc/config/rs6000/rs6000-protos.h
  914f1dcbd8cea8da94281c72be417b47  gcc/config/rs6000/rs6000-tables.opt
! 72e943266acddce29b27e9983a0e634a  gcc/config/rs6000/rs6000.c
  9a08a3de8ba2ff32d2468a62795b5d2a  gcc/config/rs6000/rs6000.h
! 14846ea0650f5a9b5ef3a5d25fa0141e  gcc/config/rs6000/rs6000.md
  afd7ce6de7b3cecc76e6b46016989da4  gcc/config/rs6000/rs6000.opt
  77b278cec2d9c926b955ebfc7075c240  gcc/config/rs6000/rs64.md
  d83c81edf739619fad01bf4449b95fcf  gcc/config/rs6000/rtems.h
--- 3922,3930 ----
  845709f631fc1fa80de2bbaf192bff40  gcc/config/rs6000/rs6000-passes.def
  2dd4af2b037f4e173cfe54b25e845852  gcc/config/rs6000/rs6000-protos.h
  914f1dcbd8cea8da94281c72be417b47  gcc/config/rs6000/rs6000-tables.opt
! 321aa98a64260cf18c33bce5b486c566  gcc/config/rs6000/rs6000.c
  9a08a3de8ba2ff32d2468a62795b5d2a  gcc/config/rs6000/rs6000.h
! 92a1756be3243a12b94ceeea1336ed69  gcc/config/rs6000/rs6000.md
  afd7ce6de7b3cecc76e6b46016989da4  gcc/config/rs6000/rs6000.opt
  77b278cec2d9c926b955ebfc7075c240  gcc/config/rs6000/rs64.md
  d83c81edf739619fad01bf4449b95fcf  gcc/config/rs6000/rtems.h
*************** f0d3ce5c965f201707fb1215fd46f23f  gcc/co
*** 3935,3945 ****
  f0120a33d63c5afb74adb0c42642ac8d  gcc/config/rs6000/sysv4le.h
  3b0a83e6efece3becf37788b124982fa  gcc/config/rs6000/t-aix43
  4e5e62fc9ca79e8be6334a36d02423cd  gcc/config/rs6000/t-aix52
! f3250b9720d1149346f1ef8e21b52ea9  gcc/config/rs6000/t-darwin64
! 636250eb91fc5dada4804efcd525fc02  gcc/config/rs6000/t-darwin8
  ed7a0e6c85b878f7685d4bb2622fd76f  gcc/config/rs6000/t-fprules
  9ca620cc07b70b3e81304b66589f5916  gcc/config/rs6000/t-freebsd64
! 91ab90cceeb86332e94d0767b0e4d5f7  gcc/config/rs6000/t-linux
  4cf21115558f0f90c10db918b0981b67  gcc/config/rs6000/t-linux64
  71c0a0470047f0171a3bb4c483eb2b72  gcc/config/rs6000/t-linux64bele
  489699b655594f05bae0b429fd261edb  gcc/config/rs6000/t-linux64le
--- 3940,3950 ----
  f0120a33d63c5afb74adb0c42642ac8d  gcc/config/rs6000/sysv4le.h
  3b0a83e6efece3becf37788b124982fa  gcc/config/rs6000/t-aix43
  4e5e62fc9ca79e8be6334a36d02423cd  gcc/config/rs6000/t-aix52
! 636250eb91fc5dada4804efcd525fc02  gcc/config/rs6000/t-darwin32-biarch
! f3250b9720d1149346f1ef8e21b52ea9  gcc/config/rs6000/t-darwin64-biarch
  ed7a0e6c85b878f7685d4bb2622fd76f  gcc/config/rs6000/t-fprules
  9ca620cc07b70b3e81304b66589f5916  gcc/config/rs6000/t-freebsd64
! bad7ed97afdd49511250c5559228423b  gcc/config/rs6000/t-linux
  4cf21115558f0f90c10db918b0981b67  gcc/config/rs6000/t-linux64
  71c0a0470047f0171a3bb4c483eb2b72  gcc/config/rs6000/t-linux64bele
  489699b655594f05bae0b429fd261edb  gcc/config/rs6000/t-linux64le
*************** f11925c88524d2fd457bf77944da1302  gcc/co
*** 3960,3966 ****
  bf04bdab00faa0daebcc1114606fa4d3  gcc/config/rs6000/titan.md
  245d1070b026f6c6557c6c7a5cca5166  gcc/config/rs6000/vec_types.h
  b9a97bdfc0788fafe96cf53e1dc6822e  gcc/config/rs6000/vector.md
! 333fd1d5a46433bc2211d018e48dae1d  gcc/config/rs6000/vsx.md
  58217d7c0d865013cdfc9ca30ba14670  gcc/config/rs6000/vxworks.h
  bf3883463c961f7b50a8f9809b6244ee  gcc/config/rs6000/vxworksae.h
  f0bd85bb4b12651513a250e3a8b690bc  gcc/config/rs6000/vxworksmils.h
--- 3965,3971 ----
  bf04bdab00faa0daebcc1114606fa4d3  gcc/config/rs6000/titan.md
  245d1070b026f6c6557c6c7a5cca5166  gcc/config/rs6000/vec_types.h
  b9a97bdfc0788fafe96cf53e1dc6822e  gcc/config/rs6000/vector.md
! 0cb67274c51bf699091a3d63389160ee  gcc/config/rs6000/vsx.md
  58217d7c0d865013cdfc9ca30ba14670  gcc/config/rs6000/vxworks.h
  bf3883463c961f7b50a8f9809b6244ee  gcc/config/rs6000/vxworksae.h
  f0bd85bb4b12651513a250e3a8b690bc  gcc/config/rs6000/vxworksmils.h
*************** e2667ed5190f6c4cb2e2350ab53a3cad  gcc/co
*** 3999,4013 ****
  e36e51db72c306ef71e637f4e421160a  gcc/config/s390/linux.h
  2aabb23688b1bb372881fa33dac4bade  gcc/config/s390/predicates.md
  e0584a92b8babb042aec5f0e005b829a  gcc/config/s390/s390-builtin-types.def
! 397c727772d8460c9e31ba67f43c1fac  gcc/config/s390/s390-builtins.def
  f86d5ba68c64df7a6369bb3154996154  gcc/config/s390/s390-builtins.h
  7c0e57ec187dda594a17e31ae79e98a3  gcc/config/s390/s390-c.c
  4029a4a0e90624e1410585d6c8779c73  gcc/config/s390/s390-modes.def
  77d0d63703092dc1d1a4d53ac140a588  gcc/config/s390/s390-opts.h
  f434d3136deeee756a6b76f409b3307b  gcc/config/s390/s390-protos.h
! c51495a9dd54a63d742a7eec70bca575  gcc/config/s390/s390.c
  1e70e0e6fbcc65aae7749686f7d1904b  gcc/config/s390/s390.h
! fa0786eecd80b1bf2ba97ada4989f18a  gcc/config/s390/s390.md
  f8a78ea45721ef9286697422e53c9fe1  gcc/config/s390/s390.opt
  e580143b15c5efe0617806579ed04d21  gcc/config/s390/s390intrin.h
  5d6d963c9d4546945dca3d4a0d7b346a  gcc/config/s390/s390x.h
--- 4004,4018 ----
  e36e51db72c306ef71e637f4e421160a  gcc/config/s390/linux.h
  2aabb23688b1bb372881fa33dac4bade  gcc/config/s390/predicates.md
  e0584a92b8babb042aec5f0e005b829a  gcc/config/s390/s390-builtin-types.def
! 06e74ae9d240c03ec692ca488c9668bd  gcc/config/s390/s390-builtins.def
  f86d5ba68c64df7a6369bb3154996154  gcc/config/s390/s390-builtins.h
  7c0e57ec187dda594a17e31ae79e98a3  gcc/config/s390/s390-c.c
  4029a4a0e90624e1410585d6c8779c73  gcc/config/s390/s390-modes.def
  77d0d63703092dc1d1a4d53ac140a588  gcc/config/s390/s390-opts.h
  f434d3136deeee756a6b76f409b3307b  gcc/config/s390/s390-protos.h
! 3c8f90bcbe066cc173d2f3c04d6b8166  gcc/config/s390/s390.c
  1e70e0e6fbcc65aae7749686f7d1904b  gcc/config/s390/s390.h
! cd3adae07fd199ba690dd832510c7a3d  gcc/config/s390/s390.md
  f8a78ea45721ef9286697422e53c9fe1  gcc/config/s390/s390.opt
  e580143b15c5efe0617806579ed04d21  gcc/config/s390/s390intrin.h
  5d6d963c9d4546945dca3d4a0d7b346a  gcc/config/s390/s390x.h
*************** ffe46eb25789e819383f7056319db192  gcc/co
*** 4018,4025 ****
  aa1f20f0bdb28e082598bf25da60508a  gcc/config/s390/tpf.md
  a873487658859e09e9e2e0ac52066baa  gcc/config/s390/tpf.opt
  52b26b411e453a64d4e9020f558e55d6  gcc/config/s390/vecintrin.h
! c5d231958d155be87b6d3eab27d7dc70  gcc/config/s390/vector.md
! 686cc4ff3834a715aebc60686c6bb2d2  gcc/config/s390/vx-builtins.md
  19876f77a242921272972ac5b8bd32d0  gcc/config/s390/x-native
  a7b4d1de0afdeb90c5b326f9cd36c92b  gcc/config/sh/constraints.md
  ead9ac841ca8c61008b97e54b028e0b5  gcc/config/sh/divcost-analysis
--- 4023,4030 ----
  aa1f20f0bdb28e082598bf25da60508a  gcc/config/s390/tpf.md
  a873487658859e09e9e2e0ac52066baa  gcc/config/s390/tpf.opt
  52b26b411e453a64d4e9020f558e55d6  gcc/config/s390/vecintrin.h
! 792049d383ce2fb46f999feda4f355b4  gcc/config/s390/vector.md
! b74ccd1aef76c1da3fee04c7a734e329  gcc/config/s390/vx-builtins.md
  19876f77a242921272972ac5b8bd32d0  gcc/config/s390/x-native
  a7b4d1de0afdeb90c5b326f9cd36c92b  gcc/config/sh/constraints.md
  ead9ac841ca8c61008b97e54b028e0b5  gcc/config/sh/divcost-analysis
*************** c31ffac63b4400ac8631d00e76f00896  gcc/co
*** 4040,4048 ****
  d6df61b65eb3b34c88a763b504b2f797  gcc/config/sh/sh-mem.cc
  b042490c8fd0ce0aa1a3023af990b37e  gcc/config/sh/sh-modes.def
  bc92a4402e9ac7d9b1698969038d5794  gcc/config/sh/sh-protos.h
! 22c3feaa663686845f0f718699785b52  gcc/config/sh/sh.c
! cf0ad69c78666c14af5fce0f52f58e26  gcc/config/sh/sh.h
! f2278c4d2452cfad51aeffea01dc6888  gcc/config/sh/sh.md
  e2e257f666c9bf9ff1b7e5e0d2ccf358  gcc/config/sh/sh.opt
  e3c3a7d65ca18d2dc6c6316e6934bffa  gcc/config/sh/sh1.md
  f83ceb056a0ff31082e63450847a0a02  gcc/config/sh/sh4-300.md
--- 4045,4053 ----
  d6df61b65eb3b34c88a763b504b2f797  gcc/config/sh/sh-mem.cc
  b042490c8fd0ce0aa1a3023af990b37e  gcc/config/sh/sh-modes.def
  bc92a4402e9ac7d9b1698969038d5794  gcc/config/sh/sh-protos.h
! aa157e9b14d1ca529d4658ce2b5473ff  gcc/config/sh/sh.c
! 471150dc08055fd7694be8f075c82e74  gcc/config/sh/sh.h
! 8acb033448d300cf4d5475c98b363882  gcc/config/sh/sh.md
  e2e257f666c9bf9ff1b7e5e0d2ccf358  gcc/config/sh/sh.opt
  e3c3a7d65ca18d2dc6c6316e6934bffa  gcc/config/sh/sh1.md
  f83ceb056a0ff31082e63450847a0a02  gcc/config/sh/sh4-300.md
*************** ebbdcebbe1adce348931a4c7274c7c51  gcc/co
*** 4096,4104 ****
  8716c31870255b84a448762c1c3f81c7  gcc/config/sparc/sparc-opts.h
  f7b50c68732f0e443b61cc30aafcdf2b  gcc/config/sparc/sparc-passes.def
  c9f7a8357767f05db3064cf1cc649b67  gcc/config/sparc/sparc-protos.h
! 2c9270fc7468e6ef504268245f554fba  gcc/config/sparc/sparc.c
  d22b6f70252e19940f3fdf0364e2c312  gcc/config/sparc/sparc.h
! 2722d8527e98c03af8fe4d1229f7fbee  gcc/config/sparc/sparc.md
  7ed2f6fc79160fe9d611d2b3b0c23d1a  gcc/config/sparc/sparc.opt
  0ce5501d01413f5bf8569648d53f026b  gcc/config/sparc/sparclet.md
  7b3ac0af0debfa3fc3e038c25d775e49  gcc/config/sparc/supersparc.md
--- 4101,4109 ----
  8716c31870255b84a448762c1c3f81c7  gcc/config/sparc/sparc-opts.h
  f7b50c68732f0e443b61cc30aafcdf2b  gcc/config/sparc/sparc-passes.def
  c9f7a8357767f05db3064cf1cc649b67  gcc/config/sparc/sparc-protos.h
! 9047931426b3e6cc87a46e3a2124c42f  gcc/config/sparc/sparc.c
  d22b6f70252e19940f3fdf0364e2c312  gcc/config/sparc/sparc.h
! 28c535e4c50036d5df8a76cffb23dd88  gcc/config/sparc/sparc.md
  7ed2f6fc79160fe9d611d2b3b0c23d1a  gcc/config/sparc/sparc.opt
  0ce5501d01413f5bf8569648d53f026b  gcc/config/sparc/sparclet.md
  7b3ac0af0debfa3fc3e038c25d775e49  gcc/config/sparc/supersparc.md
*************** ec846689d23cece17a1e173a290d1bc2  gcc/co
*** 4279,4285 ****
  79614c6b589cc6a149f809cc6503fb10  gcc/config/xtensa/uclinux.h
  19c527eb9ebf583239c86ce3bf541dec  gcc/config/xtensa/uclinux.opt
  db7ecf40e8ff19197f922f4f71de8864  gcc/config/xtensa/xtensa-protos.h
! 27bd469398aa2a0b18d27c22a3c5d162  gcc/config/xtensa/xtensa.c
  93e6af33ce49627c14b7a69098b99cd7  gcc/config/xtensa/xtensa.h
  db001e36ef357c65df228681df018103  gcc/config/xtensa/xtensa.md
  1e4b738829612b4836067eb92c840ee7  gcc/config/xtensa/xtensa.opt
--- 4284,4290 ----
  79614c6b589cc6a149f809cc6503fb10  gcc/config/xtensa/uclinux.h
  19c527eb9ebf583239c86ce3bf541dec  gcc/config/xtensa/uclinux.opt
  db7ecf40e8ff19197f922f4f71de8864  gcc/config/xtensa/xtensa-protos.h
! 9dd7ce799925b9c68e61a5d3a60bf40b  gcc/config/xtensa/xtensa.c
  93e6af33ce49627c14b7a69098b99cd7  gcc/config/xtensa/xtensa.h
  db001e36ef357c65df228681df018103  gcc/config/xtensa/xtensa.md
  1e4b738829612b4836067eb92c840ee7  gcc/config/xtensa/xtensa.opt
*************** d923c48745acfb4f5a776afd53e56885  gcc/co
*** 4287,4298 ****
  df6eddd781169692fd8f2353fedb02c1  gcc/configure.ac
  75059ca0d9a4c904710ca39560b641e9  gcc/context.c
  9544972a69766328e0ef70c98997c4e7  gcc/context.h
! 9b619bc52057ca0815749b39e7204101  gcc/convert.c
  7af1b46eb0a148348d5903c595cfb58b  gcc/convert.h
  5e83fce2aab1937b6e6565f1c0262e8e  gcc/coretypes.h
  26c55904a2afbcf2aa43236db5fddcb8  gcc/coverage.c
  1078685a2ff587f89142f3c631f04c82  gcc/coverage.h
! 7c69ce58a4c4d73c862f97522bdda3bc  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 4292,4303 ----
  df6eddd781169692fd8f2353fedb02c1  gcc/configure.ac
  75059ca0d9a4c904710ca39560b641e9  gcc/context.c
  9544972a69766328e0ef70c98997c4e7  gcc/context.h
! fbda33003331f83eae3d17a153b5e304  gcc/convert.c
  7af1b46eb0a148348d5903c595cfb58b  gcc/convert.h
  5e83fce2aab1937b6e6565f1c0262e8e  gcc/coretypes.h
  26c55904a2afbcf2aa43236db5fddcb8  gcc/coverage.c
  1078685a2ff587f89142f3c631f04c82  gcc/coverage.h
! b52f1cd3b7ada3bd9be12e2d7e8f63b0  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp
*** 4321,4332 ****
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  52380899f9da4a59c3b99da38218f81a  gcc/cp/Make-lang.in
  a664e5da3668f808636e156b4e59d16c  gcc/cp/NEWS
! f150f73813cfbc6bd449f41ba06e6207  gcc/cp/call.c
  e370fe34672df8201043ba1a2e1104b6  gcc/cp/cfns.gperf
  c4d6f3b7d0a505fbe74e29774d11cfe9  gcc/cp/cfns.h
! a89bcadf0531da57730a450b69e8cab3  gcc/cp/class.c
! d7ab06410b296f55856425add1bfd26d  gcc/cp/config-lang.in
! 27b3af808c59f72a8f5de9da034d8666  gcc/cp/constexpr.c
  307f99a8e6084326c45980647f02b7e1  gcc/cp/constraint.cc
  56aa0140f84f897feeb4ce54bd6e6f46  gcc/cp/cp-array-notation.c
  38146ed098d4c26f2e487034266adf13  gcc/cp/cp-cilkplus.c
--- 4326,4337 ----
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
  52380899f9da4a59c3b99da38218f81a  gcc/cp/Make-lang.in
  a664e5da3668f808636e156b4e59d16c  gcc/cp/NEWS
! 955c423a1afc710e2eb578368af020d0  gcc/cp/call.c
  e370fe34672df8201043ba1a2e1104b6  gcc/cp/cfns.gperf
  c4d6f3b7d0a505fbe74e29774d11cfe9  gcc/cp/cfns.h
! b3038015851d6de1b411b40135062074  gcc/cp/class.c
! afd0867fa97825df798b71323901a097  gcc/cp/config-lang.in
! ac78f918ff2852383dd0cc7a3dab2b4b  gcc/cp/constexpr.c
  307f99a8e6084326c45980647f02b7e1  gcc/cp/constraint.cc
  56aa0140f84f897feeb4ce54bd6e6f46  gcc/cp/cp-array-notation.c
  38146ed098d4c26f2e487034266adf13  gcc/cp/cp-cilkplus.c
*************** c6462a1b73c2a072af8c94f300264afc  gcc/cp
*** 4336,4357 ****
  4b50cb9e09af605dfd2618a77668ba27  gcc/cp/cp-objcp-common.c
  329495300d80f28020460da01bd495f3  gcc/cp/cp-objcp-common.h
  aa36e3e3dbb56aa91e4c9c7b03774b50  gcc/cp/cp-tree.def
! bb96b5349553a59bd3b539b06de1a825  gcc/cp/cp-tree.h
  41d94f2c081c6ecf6c7c7780b061d7ce  gcc/cp/cp-ubsan.c
  f7eded6aa12ab22c0f3f38614463c9e6  gcc/cp/cvt.c
  ffc3a23e271c5e11d25ac613e8d2f152  gcc/cp/cxx-pretty-print.c
  546dc862de2fc3919db2d2985e101844  gcc/cp/cxx-pretty-print.h
! 25bab9a9459378b1073f636450fc019e  gcc/cp/decl.c
  c6b416fb9f920b607825dba7ef8d1a48  gcc/cp/decl.h
! 34de997aceb01b5338836749b7527e63  gcc/cp/decl2.c
  aa98548ee09751a5b70c5eb31f1c6417  gcc/cp/dump.c
  8cc7a32adc714359c29ef8ce38f806a7  gcc/cp/error.c
  f1a3a5d0ae01ff65e207eb645987e3d4  gcc/cp/except.c
  64d885b72c1c50ab9956e994bd7157a4  gcc/cp/expr.c
  da79ddc6be4fafc84a957cfd070a5c24  gcc/cp/friend.c
  21ab402dce77246d6a7766b067b429c8  gcc/cp/g++spec.c
! c933a38f7ed1e601d2cb68170970995a  gcc/cp/init.c
! 531818193041efe08db8fffe794090ea  gcc/cp/lambda.c
  bca5f8c2bd65c2ffd939d16f089e49dc  gcc/cp/lang-specs.h
  78263a37da49248fcffe573ed7d84534  gcc/cp/lex.c
  fbfb6bc61d27f625485f113193c8bc76  gcc/cp/logic.cc
--- 4341,4362 ----
  4b50cb9e09af605dfd2618a77668ba27  gcc/cp/cp-objcp-common.c
  329495300d80f28020460da01bd495f3  gcc/cp/cp-objcp-common.h
  aa36e3e3dbb56aa91e4c9c7b03774b50  gcc/cp/cp-tree.def
! 05b78f1e2a2a0e55e4ad94c507eca104  gcc/cp/cp-tree.h
  41d94f2c081c6ecf6c7c7780b061d7ce  gcc/cp/cp-ubsan.c
  f7eded6aa12ab22c0f3f38614463c9e6  gcc/cp/cvt.c
  ffc3a23e271c5e11d25ac613e8d2f152  gcc/cp/cxx-pretty-print.c
  546dc862de2fc3919db2d2985e101844  gcc/cp/cxx-pretty-print.h
! 3e1932e1a28f1002716d52532420157f  gcc/cp/decl.c
  c6b416fb9f920b607825dba7ef8d1a48  gcc/cp/decl.h
! 19f786fbb3706848f41774b7def19233  gcc/cp/decl2.c
  aa98548ee09751a5b70c5eb31f1c6417  gcc/cp/dump.c
  8cc7a32adc714359c29ef8ce38f806a7  gcc/cp/error.c
  f1a3a5d0ae01ff65e207eb645987e3d4  gcc/cp/except.c
  64d885b72c1c50ab9956e994bd7157a4  gcc/cp/expr.c
  da79ddc6be4fafc84a957cfd070a5c24  gcc/cp/friend.c
  21ab402dce77246d6a7766b067b429c8  gcc/cp/g++spec.c
! 2c93e8240af80c61c156670dc2cb47b2  gcc/cp/init.c
! 8f521043c08398097dd0862e6bf38be6  gcc/cp/lambda.c
  bca5f8c2bd65c2ffd939d16f089e49dc  gcc/cp/lang-specs.h
  78263a37da49248fcffe573ed7d84534  gcc/cp/lex.c
  fbfb6bc61d27f625485f113193c8bc76  gcc/cp/logic.cc
*************** c8cdc512b8cfd0e21fed9cc8723ccf5f  gcc/cp
*** 4360,4379 ****
  f53a410cd2295879d7e1ac68f771fd6e  gcc/cp/name-lookup.c
  3c91f835c3688bb59986de0664d535eb  gcc/cp/name-lookup.h
  f0eccfb2b6cc10b6838fc80d7d6cd1e4  gcc/cp/operators.def
! a3fa9e7864e7529742617cefea0ff8d9  gcc/cp/optimize.c
! df23b954d2973099e6aced491b56ae29  gcc/cp/parser.c
  80b4f9350fbe5bd90898e0758266098c  gcc/cp/parser.h
! cae697862fdef8100c6f96aa3546be63  gcc/cp/pt.c
  ee5df732d6ad1d51078b5d0f67a784b9  gcc/cp/ptree.c
  db936b1b0b3f9a6d128c05631887c312  gcc/cp/repo.c
  b78204514ca7ae7bce11a6af84ab55ce  gcc/cp/rtti.c
  2310595b3287a46745ac14c9a226f3f0  gcc/cp/search.c
! bcfe32c47f509aca54fe1e49d54df2c9  gcc/cp/semantics.c
  bf627e0cc08313ab3599ceff80a80316  gcc/cp/tree.c
  9e5151a4798c91f91d0e0b4415324a77  gcc/cp/type-utils.h
! 4f41af2b364e55156052ca5aaeb60ec4  gcc/cp/typeck.c
  32e5c31100b95a8eba4fc199787ad510  gcc/cp/typeck2.c
! c706912cef452d7ab9a54976efc128e5  gcc/cp/vtable-class-hierarchy.c
  b51155275074539477f71e8e53c46d2d  gcc/cppbuiltin.c
  a55eaea7c2160d3b2cb87ad7366a67b6  gcc/cppbuiltin.h
  68b7c81784975dda5f426be9dcd17b45  gcc/cppdefault.c
--- 4365,4384 ----
  f53a410cd2295879d7e1ac68f771fd6e  gcc/cp/name-lookup.c
  3c91f835c3688bb59986de0664d535eb  gcc/cp/name-lookup.h
  f0eccfb2b6cc10b6838fc80d7d6cd1e4  gcc/cp/operators.def
! 51b3b4e7a963b00e95f39c3051a5e2f5  gcc/cp/optimize.c
! 8e71ee52e697641e0e9de5f1187cc83a  gcc/cp/parser.c
  80b4f9350fbe5bd90898e0758266098c  gcc/cp/parser.h
! d2f66f064c1637e58b661099c88c7c63  gcc/cp/pt.c
  ee5df732d6ad1d51078b5d0f67a784b9  gcc/cp/ptree.c
  db936b1b0b3f9a6d128c05631887c312  gcc/cp/repo.c
  b78204514ca7ae7bce11a6af84ab55ce  gcc/cp/rtti.c
  2310595b3287a46745ac14c9a226f3f0  gcc/cp/search.c
! c741a3ea061a10ad8497c7703ecb4641  gcc/cp/semantics.c
  bf627e0cc08313ab3599ceff80a80316  gcc/cp/tree.c
  9e5151a4798c91f91d0e0b4415324a77  gcc/cp/type-utils.h
! cdcf74576ae3cfa695734b9f55e4f01f  gcc/cp/typeck.c
  32e5c31100b95a8eba4fc199787ad510  gcc/cp/typeck2.c
! 00b3ca36dab6cef85225430714305ab0  gcc/cp/vtable-class-hierarchy.c
  b51155275074539477f71e8e53c46d2d  gcc/cppbuiltin.c
  a55eaea7c2160d3b2cb87ad7366a67b6  gcc/cppbuiltin.h
  68b7c81784975dda5f426be9dcd17b45  gcc/cppdefault.c
*************** afeedee11208d03a5103efee41fb41b2  gcc/db
*** 4392,4405 ****
  e353eaa0cbb9c1669a29d1c1b1f87b1e  gcc/dbgcnt.h
  26e8fcbaefe1467cb976012b7cf29983  gcc/dbxout.c
  37f4371fdda11b2c37dc0497b272a958  gcc/dbxout.h
! 2f77b1763af6d6cc3e3c953b23c85e35  gcc/dce.c
  0da8020721677130afbad8bd7cb89e79  gcc/dce.h
  f780bb3b9b6deac46cc975873edef47e  gcc/ddg.c
  f8909b74975d73c1a18507a15c0c2384  gcc/ddg.h
  c3268c71b43e48a8d40f7d5bd251ae36  gcc/debug.c
  1729dad25a1ad59fb6a0a5c9dfb1eb47  gcc/debug.h
  6f45ae58d7c9f3dfa61ea12d76962163  gcc/defaults.h
! 484f1feceb510df735d12cec5df4df44  gcc/df-core.c
  94a63ea3deeac1bd2bceebcdafe5e7ca  gcc/df-problems.c
  efd8fee823a721c81494884cc7fcd474  gcc/df-scan.c
  89a96926ab1cc41d1a07ab739a9d3e92  gcc/df.h
--- 4397,4410 ----
  e353eaa0cbb9c1669a29d1c1b1f87b1e  gcc/dbgcnt.h
  26e8fcbaefe1467cb976012b7cf29983  gcc/dbxout.c
  37f4371fdda11b2c37dc0497b272a958  gcc/dbxout.h
! c2417e088c2241482f4705a1d4851c49  gcc/dce.c
  0da8020721677130afbad8bd7cb89e79  gcc/dce.h
  f780bb3b9b6deac46cc975873edef47e  gcc/ddg.c
  f8909b74975d73c1a18507a15c0c2384  gcc/ddg.h
  c3268c71b43e48a8d40f7d5bd251ae36  gcc/debug.c
  1729dad25a1ad59fb6a0a5c9dfb1eb47  gcc/debug.h
  6f45ae58d7c9f3dfa61ea12d76962163  gcc/defaults.h
! f771929546d497d82e6f7e98ce3bc607  gcc/df-core.c
  94a63ea3deeac1bd2bceebcdafe5e7ca  gcc/df-problems.c
  efd8fee823a721c81494884cc7fcd474  gcc/df-scan.c
  89a96926ab1cc41d1a07ab739a9d3e92  gcc/df.h
*************** ebc01257daa0725663692c5283f9066d  gcc/do
*** 4421,4458 ****
  0e9464bec47974f6c152e2f7fcdd7c54  gcc/doc/configterms.texi
  4d2e260f57c2a56aab4b7539aa8ea7a9  gcc/doc/contrib.texi
  d2ab741503a5629e8b4a70a0e5335637  gcc/doc/contribute.texi
! d8562ae8507e7c41eb2422ce4c3ab647  gcc/doc/cpp.1
! c193703b3bfb9ee1eb895c01532834b2  gcc/doc/cpp.info
  265e1f73a91ecf4f8c0fec7d753f3a5d  gcc/doc/cpp.texi
  e260807f252068741e2ebfdaa0e84349  gcc/doc/cppdiropts.texi
  35e9afd06835a4037daf73de3e364d81  gcc/doc/cppenv.texi
! cafab9418d86782eabd03ce5a4768fe0  gcc/doc/cppinternals.info
  1f296e408d348921b3ca6959d5cdfe5b  gcc/doc/cppinternals.texi
  3229dc0c44fab51cc291566148d79e6e  gcc/doc/cppopts.texi
  13eb634c50488bcf40424e0890a26326  gcc/doc/cppwarnopts.texi
! 3bfea55f2fef6a6bbf7caf3a917bb81f  gcc/doc/extend.texi
  198def664e7cfe4a4cc79c8cae55175d  gcc/doc/fragments.texi
  0f2077f3962ccb1d6c5c55cac48e1695  gcc/doc/frontends.texi
! 3528e8b8718e81125053d23737cfe415  gcc/doc/fsf-funding.7
! 77de42a9819d8c6c6ce1985b2e6bfacd  gcc/doc/g++.1
! 77de42a9819d8c6c6ce1985b2e6bfacd  gcc/doc/gcc.1
! d7f7d75a9183cd2fa479b27edfcc0fbc  gcc/doc/gcc.info
  82943cac2e651592a301c2081eda9666  gcc/doc/gcc.texi
! 4d37bb8b4bbe15bbe3d159b35fb2326c  gcc/doc/gccinstall.info
! 872a983b3f939df674b423dfffbb9c6a  gcc/doc/gccint.info
  1baadd71cb074eb858078e79360a7f7a  gcc/doc/gccint.texi
! 09f1bbffa196b6dbd6cd5a6f81e180f9  gcc/doc/gcov-dump.1
  b8d24f76649917a88a4a7b21cd032a0f  gcc/doc/gcov-dump.texi
! 3ba0b94ec38377edb2fc1ca75df56cb8  gcc/doc/gcov-tool.1
  800ae82031d4de3b2a6fd13cb2b0a48e  gcc/doc/gcov-tool.texi
! 42d545c1d21c2bb21e9734e59b08a8ec  gcc/doc/gcov.1
  4125c70e12ee6d409b4bba1cf2eef2e9  gcc/doc/gcov.texi
  43a3b8154dcc4ca459ea567f9060b4d4  gcc/doc/generic.texi
! 1b64bda7be5f28f725d8f6ab5d8bdf22  gcc/doc/gfdl.7
! 697d36e4b477875eae3b3b5e098307c3  gcc/doc/gfortran.1
  30559f39145bc73dde9cee3dd7ac9d3d  gcc/doc/gimple.texi
  290370669f02bef1502ada9273e5261f  gcc/doc/gnu.texi
! 1ae33237ea5618396295ce9a51a060a0  gcc/doc/gpl.7
  2581b3abd7f482fed6c88e2989a1339d  gcc/doc/gty.texi
  aedde02cf24a26a69cabaf5846321364  gcc/doc/headerdirs.texi
  f197b98dd6f8c45086532f4a26a50328  gcc/doc/hostconfig.texi
--- 4426,4463 ----
  0e9464bec47974f6c152e2f7fcdd7c54  gcc/doc/configterms.texi
  4d2e260f57c2a56aab4b7539aa8ea7a9  gcc/doc/contrib.texi
  d2ab741503a5629e8b4a70a0e5335637  gcc/doc/contribute.texi
! f9dd70f8e777ebeb5f4af5385cd59959  gcc/doc/cpp.1
! e58b3df4d4ad956836194a5bd01ae1fb  gcc/doc/cpp.info
  265e1f73a91ecf4f8c0fec7d753f3a5d  gcc/doc/cpp.texi
  e260807f252068741e2ebfdaa0e84349  gcc/doc/cppdiropts.texi
  35e9afd06835a4037daf73de3e364d81  gcc/doc/cppenv.texi
! 66fd3bb37bc56ecbbad599d9c60658d2  gcc/doc/cppinternals.info
  1f296e408d348921b3ca6959d5cdfe5b  gcc/doc/cppinternals.texi
  3229dc0c44fab51cc291566148d79e6e  gcc/doc/cppopts.texi
  13eb634c50488bcf40424e0890a26326  gcc/doc/cppwarnopts.texi
! c7f04565eb0d9ee88db1c2ff932e5e0c  gcc/doc/extend.texi
  198def664e7cfe4a4cc79c8cae55175d  gcc/doc/fragments.texi
  0f2077f3962ccb1d6c5c55cac48e1695  gcc/doc/frontends.texi
! 90ec81158fedea9ae709aafe21954a70  gcc/doc/fsf-funding.7
! e2d82b2e2af692bdc91b57c4d69e3a18  gcc/doc/g++.1
! e2d82b2e2af692bdc91b57c4d69e3a18  gcc/doc/gcc.1
! 11b696ff03c8291e280b1fa8e556034a  gcc/doc/gcc.info
  82943cac2e651592a301c2081eda9666  gcc/doc/gcc.texi
! 9241526e8a39388a753c437d1ed53ede  gcc/doc/gccinstall.info
! 7580bf1e6a3c6e7128271be197333f84  gcc/doc/gccint.info
  1baadd71cb074eb858078e79360a7f7a  gcc/doc/gccint.texi
! a193e94aecc3c555c164e6da0f905335  gcc/doc/gcov-dump.1
  b8d24f76649917a88a4a7b21cd032a0f  gcc/doc/gcov-dump.texi
! b2144a86255edd45901279acc0f1923f  gcc/doc/gcov-tool.1
  800ae82031d4de3b2a6fd13cb2b0a48e  gcc/doc/gcov-tool.texi
! 7238cfdebb3bf1ef876b7b176be674da  gcc/doc/gcov.1
  4125c70e12ee6d409b4bba1cf2eef2e9  gcc/doc/gcov.texi
  43a3b8154dcc4ca459ea567f9060b4d4  gcc/doc/generic.texi
! b56c98ff65c9a38d01f7543910cf51a1  gcc/doc/gfdl.7
! 6d4bcb6a2de54f812e5410c2843ce801  gcc/doc/gfortran.1
  30559f39145bc73dde9cee3dd7ac9d3d  gcc/doc/gimple.texi
  290370669f02bef1502ada9273e5261f  gcc/doc/gnu.texi
! 2f2f0f3b6eeedfdc363a9e5a2fe35669  gcc/doc/gpl.7
  2581b3abd7f482fed6c88e2989a1339d  gcc/doc/gty.texi
  aedde02cf24a26a69cabaf5846321364  gcc/doc/headerdirs.texi
  f197b98dd6f8c45086532f4a26a50328  gcc/doc/hostconfig.texi
*************** b82b1143f78f373e3c76f6958d830869  gcc/do
*** 4467,4473 ****
  ca9e57f076db155a030af10d129119f7  gcc/doc/install.texi
  aceb2e24bb637b8669329aa6ddc2c80e  gcc/doc/install.texi2html
  8742acc0c4a46ac5075fbd7d6e95db10  gcc/doc/interface.texi
! 1b4d64407e259415f7c15adff8171d93  gcc/doc/invoke.texi
  90ac7735caa268a14f96ad68d78372aa  gcc/doc/languages.texi
  084981d596106acaf75844a1d5d7d3a0  gcc/doc/libgcc.texi
  67bc388db0ea8fcd11e555283d08546a  gcc/doc/loop.texi
--- 4472,4478 ----
  ca9e57f076db155a030af10d129119f7  gcc/doc/install.texi
  aceb2e24bb637b8669329aa6ddc2c80e  gcc/doc/install.texi2html
  8742acc0c4a46ac5075fbd7d6e95db10  gcc/doc/interface.texi
! 7cbd502a787d253aac2f63f7b725cd5c  gcc/doc/invoke.texi
  90ac7735caa268a14f96ad68d78372aa  gcc/doc/languages.texi
  084981d596106acaf75844a1d5d7d3a0  gcc/doc/libgcc.texi
  67bc388db0ea8fcd11e555283d08546a  gcc/doc/loop.texi
*************** b4c05b523f1b3f1736e962a6224a007e  gcc/do
*** 4483,4489 ****
  b96e0a15eff3d07f71b395d59f799798  gcc/doc/portability.texi
  34d324bf360cff3f772929e924837575  gcc/doc/rtl.texi
  fad65170a3811a78b6146dd2d3f6e93c  gcc/doc/service.texi
! c6c1fabb7733f32f532abad39f392b4b  gcc/doc/sourcebuild.texi
  415434ff17f5a40c97dc2202dbc0d5aa  gcc/doc/standards.texi
  fb7bd577c982f8349ba88f35bf440ac8  gcc/doc/tm.texi
  03af348b233c83daed381e9fcc683008  gcc/doc/tm.texi.in
--- 4488,4494 ----
  b96e0a15eff3d07f71b395d59f799798  gcc/doc/portability.texi
  34d324bf360cff3f772929e924837575  gcc/doc/rtl.texi
  fad65170a3811a78b6146dd2d3f6e93c  gcc/doc/service.texi
! 97375d4bef458ee48f936a9a838c10de  gcc/doc/sourcebuild.texi
  415434ff17f5a40c97dc2202dbc0d5aa  gcc/doc/standards.texi
  fb7bd577c982f8349ba88f35bf440ac8  gcc/doc/tm.texi
  03af348b233c83daed381e9fcc683008  gcc/doc/tm.texi.in
*************** d38fa1e575d131ba18493ab2b1a17386  gcc/do
*** 4497,4509 ****
  c9c017c1a6d182db465e420a401dc5e4  gcc/domwalk.h
  fc595b2b68f9d9e19805b1a15e37c623  gcc/double-int.c
  d3c114e68e1cb29ad92ba50115cb0882  gcc/double-int.h
! 90c03ab1cd8657e0f4526acfe0738b43  gcc/dse.c
  46a8e04aace8f43c10dc450d21d70288  gcc/dumpfile.c
  746d14943c5f560f556cc6ba9aaf7715  gcc/dumpfile.h
  b22eec93f2e186efa3c5621fd80c304d  gcc/dwarf2asm.c
  f7caa5023e329cc7eb3c06fd9ceb9bed  gcc/dwarf2asm.h
  6cddd6e1d295b0dab3d3303ce424838b  gcc/dwarf2cfi.c
! 74a8b7044153f1e48f7254f7a81945ad  gcc/dwarf2out.c
  3759ab65f22dade947ac51b51aeda4b3  gcc/dwarf2out.h
  efca4a45c30ac633725951382e487ebb  gcc/edit-context.c
  7f9fbe6415299ef034385a7ab3cfabd3  gcc/edit-context.h
--- 4502,4514 ----
  c9c017c1a6d182db465e420a401dc5e4  gcc/domwalk.h
  fc595b2b68f9d9e19805b1a15e37c623  gcc/double-int.c
  d3c114e68e1cb29ad92ba50115cb0882  gcc/double-int.h
! 879ee3ec9d83f1815303d0f168f9420e  gcc/dse.c
  46a8e04aace8f43c10dc450d21d70288  gcc/dumpfile.c
  746d14943c5f560f556cc6ba9aaf7715  gcc/dumpfile.h
  b22eec93f2e186efa3c5621fd80c304d  gcc/dwarf2asm.c
  f7caa5023e329cc7eb3c06fd9ceb9bed  gcc/dwarf2asm.h
  6cddd6e1d295b0dab3d3303ce424838b  gcc/dwarf2cfi.c
! d745da814319fb2b4d17ae5b68056381  gcc/dwarf2out.c
  3759ab65f22dade947ac51b51aeda4b3  gcc/dwarf2out.h
  efca4a45c30ac633725951382e487ebb  gcc/edit-context.c
  7f9fbe6415299ef034385a7ab3cfabd3  gcc/edit-context.h
*************** c6494bf2336d8b5422b05e5d60b01369  gcc/em
*** 4513,4541 ****
  cf1e025818ca472f9a1c116e67ef4cc3  gcc/errors.h
  4e6a38bef0b4a58dcbba54f83aa33877  gcc/et-forest.c
  1e361eb1654178076a228080dd608bb6  gcc/et-forest.h
! ded527f19a4233b5404c3d551f9d29e2  gcc/except.c
  d0a7dc02daccbdcdd63a1d0f877c6af5  gcc/except.h
  2ea49737d7b49d3ecee03ec6ba2dfd2e  gcc/exec-tool.in
! f20130a1d04970609f42de8b3c8aed6a  gcc/explow.c
  d252cd5dd9657304bdc0002539b65a19  gcc/explow.h
! 3085b2296b51d824f0f15a390bbf09e7  gcc/expmed.c
  b583afc565dc4b1f111f4cc1731bef2a  gcc/expmed.h
! e756ec7157b0a11506b167ac5c9d0622  gcc/expr.c
  c86cc2531fcf8b1ada0373572b1b7acf  gcc/expr.h
  f6f78aeb7c8ce93cfb147c8f3168a779  gcc/fibonacci_heap.c
  3ade009fde9a4924090332142873a749  gcc/fibonacci_heap.h
  1b56f5236cd854fd307e3ded0653ddab  gcc/file-find.c
  895775a7ab087cc00a99bc0b23c6ec6d  gcc/file-find.h
! e698bd2ce1a738797b133ec36fad6048  gcc/final.c
  4d6d0d3ed9459bd59fb8b34e3f732bd7  gcc/fixed-value.c
  719b77e854e9ffae1cb86430cd68de4e  gcc/fixed-value.h
  397b3c43b5f2649a6c9ca5816cb18f4a  gcc/flag-types.h
  cd76e0eb7ed6b4f0486461f0d1948045  gcc/flags.h
  6927943dca40ac5f7ae356c063919105  gcc/fold-const-call.c
  0da9f50d2a25c495dd6e295346612b51  gcc/fold-const-call.h
! a9d62bc95f4b8d15071d8cfcb9841b14  gcc/fold-const.c
  3dee9f07878a132cee302c04066982f0  gcc/fold-const.h
! 7094687903296b6c0f9060a33cfd23b5  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 4518,4546 ----
  cf1e025818ca472f9a1c116e67ef4cc3  gcc/errors.h
  4e6a38bef0b4a58dcbba54f83aa33877  gcc/et-forest.c
  1e361eb1654178076a228080dd608bb6  gcc/et-forest.h
! 281be659a65ffe28bda718c5a6fb86cb  gcc/except.c
  d0a7dc02daccbdcdd63a1d0f877c6af5  gcc/except.h
  2ea49737d7b49d3ecee03ec6ba2dfd2e  gcc/exec-tool.in
! 53ee5b809af77821cc48b74afadbae15  gcc/explow.c
  d252cd5dd9657304bdc0002539b65a19  gcc/explow.h
! 2aa701f89f8a5c689359b68a2f8be7a2  gcc/expmed.c
  b583afc565dc4b1f111f4cc1731bef2a  gcc/expmed.h
! 564ebbd9865c8f922774fe99cd846607  gcc/expr.c
  c86cc2531fcf8b1ada0373572b1b7acf  gcc/expr.h
  f6f78aeb7c8ce93cfb147c8f3168a779  gcc/fibonacci_heap.c
  3ade009fde9a4924090332142873a749  gcc/fibonacci_heap.h
  1b56f5236cd854fd307e3ded0653ddab  gcc/file-find.c
  895775a7ab087cc00a99bc0b23c6ec6d  gcc/file-find.h
! afa3e97d350419d057e75559da608e75  gcc/final.c
  4d6d0d3ed9459bd59fb8b34e3f732bd7  gcc/fixed-value.c
  719b77e854e9ffae1cb86430cd68de4e  gcc/fixed-value.h
  397b3c43b5f2649a6c9ca5816cb18f4a  gcc/flag-types.h
  cd76e0eb7ed6b4f0486461f0d1948045  gcc/flags.h
  6927943dca40ac5f7ae356c063919105  gcc/fold-const-call.c
  0da9f50d2a25c495dd6e295346612b51  gcc/fold-const-call.h
! da03916b2e506764391a7837a66ecd18  gcc/fold-const.c
  3dee9f07878a132cee302c04066982f0  gcc/fold-const.h
! c7667356749a3c64600ed821654edf0b  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** a71efd3e199a80ee07c7f350cc8fcf91  gcc/fo
*** 4553,4564 ****
  87a1607d67d7b571432a0e83b1e4aabf  gcc/fortran/ChangeLog-2016
  9e0636f92243fb9b3480e27cefc96749  gcc/fortran/ChangeLog.ptr
  f118c66e409492da0bfe1c57a83276c2  gcc/fortran/Make-lang.in
! ae3ae134fa3c8c1fd24c6a2c6f5dbb86  gcc/fortran/arith.c
  9e52ef7b47604fcff001ed312efc53b5  gcc/fortran/arith.h
  b46c616c84cd264971322a53adeb07f2  gcc/fortran/array.c
  f32f20357bba1a9cc926911dc98c1cfc  gcc/fortran/bbt.c
! 0f0534c9b10be1b122cc5176e6bb866f  gcc/fortran/check.c
! 132d0ed0514568cbb856ba1f5a68317e  gcc/fortran/class.c
  bb0ee5873d155869e95ebb483458cb8e  gcc/fortran/config-lang.in
  1ed808fc4a4d991803dfde347ddce84a  gcc/fortran/constructor.c
  1593dbd0a6495b5ebd71396758aacf2b  gcc/fortran/constructor.h
--- 4558,4569 ----
  87a1607d67d7b571432a0e83b1e4aabf  gcc/fortran/ChangeLog-2016
  9e0636f92243fb9b3480e27cefc96749  gcc/fortran/ChangeLog.ptr
  f118c66e409492da0bfe1c57a83276c2  gcc/fortran/Make-lang.in
! 078a6e89514296d592001d5bc3b20008  gcc/fortran/arith.c
  9e52ef7b47604fcff001ed312efc53b5  gcc/fortran/arith.h
  b46c616c84cd264971322a53adeb07f2  gcc/fortran/array.c
  f32f20357bba1a9cc926911dc98c1cfc  gcc/fortran/bbt.c
! 154495690830d56e6cdc9d218bc4360a  gcc/fortran/check.c
! 0d7976186a788bb18e350cf007227b59  gcc/fortran/class.c
  bb0ee5873d155869e95ebb483458cb8e  gcc/fortran/config-lang.in
  1ed808fc4a4d991803dfde347ddce84a  gcc/fortran/constructor.c
  1593dbd0a6495b5ebd71396758aacf2b  gcc/fortran/constructor.h
*************** bb0ee5873d155869e95ebb483458cb8e  gcc/fo
*** 4567,4638 ****
  fa144458c4bca9ea098fcc49e69c20cc  gcc/fortran/cpp.h
  37ef55690b7643959b9d6ad02500a84c  gcc/fortran/data.c
  5d6574d0968f27afb4f3f41972e5f971  gcc/fortran/data.h
! 571b32a223e3f78fde99777de8f47019  gcc/fortran/decl.c
  f8486e9dde69b3b606bbc76192b374ab  gcc/fortran/dependency.c
  6933dfd689c80beb5bb29d30026a34a1  gcc/fortran/dependency.h
  c3fed47839886fe87dd3656caa11c7e5  gcc/fortran/dump-parse-tree.c
  14ccfb214cc78c6632e78ebc5d43e4f2  gcc/fortran/error.c
! 8007b5ce5cf7a755dc04ef605ee0a6e7  gcc/fortran/expr.c
  05f704e72952b3ef3b591809d8bb33cd  gcc/fortran/f95-lang.c
! cff55b11ddb846a7bac0a92cd82035d5  gcc/fortran/frontend-passes.c
  1aa4f0a9593c4082dfc8a446a8021662  gcc/fortran/gfc-diagnostic.def
  ae757ab385911de35e92e949d47d76d9  gcc/fortran/gfc-internals.texi
! 0670d0873d2e6537d744b15d180b29b3  gcc/fortran/gfortran.h
! 38e3959295c211641f5f132d94f3e940  gcc/fortran/gfortran.info
  2c8f2a8e4a156cc2c60a93eed11d1a78  gcc/fortran/gfortran.texi
  258ff078d7fd588b1db5276e388b42d3  gcc/fortran/gfortranspec.c
! b52e6da89148dbd5946757db4b5a2662  gcc/fortran/interface.c
! 81504f550fc73cbddec9f7ce09c9db54  gcc/fortran/intrinsic.c
  f5a621f4d92bd975f19fa58c09b9e6db  gcc/fortran/intrinsic.h
  ba1407cb79153040295068873f19ccc1  gcc/fortran/intrinsic.texi
! a349d8cead3c7c976d6e938e97cf3c66  gcc/fortran/invoke.texi
! 276b063b9f15c5fdde418b089100ba90  gcc/fortran/io.c
  b75de9ab8d416c7abd953e5b7b3f3993  gcc/fortran/ioparm.def
! 2188c509e492d35bc0022016b1e92f20  gcc/fortran/iresolve.c
  8093b2b38a01c2e488976f991dd1f954  gcc/fortran/iso-c-binding.def
  a84b351eca744eb4326cdcf48ed2d447  gcc/fortran/iso-fortran-env.def
  b6a48d929dc4bab485565b69477b39ba  gcc/fortran/lang-specs.h
! 143689d60ddc29b5aceba7f734381371  gcc/fortran/lang.opt
  645bd6455816a65c53807b5362dfec6f  gcc/fortran/libgfortran.h
! 072c3d442dbb3ab21fcc48490405974a  gcc/fortran/match.c
  00a03b372a4378e1c07376ecf0602940  gcc/fortran/match.h
  d7e915937eda00d735c03407c30c147a  gcc/fortran/matchexp.c
  87a743f124dd99426032cc7ad19284bb  gcc/fortran/mathbuiltins.def
  9d431851867d6a83a9328224ab69473f  gcc/fortran/misc.c
! bbb98eaa398cd9ec8b02b01252a2ef93  gcc/fortran/module.c
! d6bb732ba1b9062cba0f41c00ab132b2  gcc/fortran/openmp.c
  e8210239d0ae38ef26cbcec563bb173a  gcc/fortran/options.c
! cd92ca4dfa37306a53dad87d839f8d6e  gcc/fortran/parse.c
  e19e43330242c8950da01afa94a4f04b  gcc/fortran/parse.h
! 74c55605612339acc2b2d8086b78e295  gcc/fortran/primary.c
! 2529fa4732aeaf414437793d751171b6  gcc/fortran/resolve.c
  7ada4167f5cb66e95dc80a102e6c3b7a  gcc/fortran/scanner.c
  6761df883b8094d737206a8ba1c9f089  gcc/fortran/scanner.h
  024bffdaa3734adc0e16653b61d7ef3f  gcc/fortran/simplify.c
  764d2fa05e4399ec39d47288d3bf78be  gcc/fortran/st.c
! eee2f6e10a6e07b0fa4798ff189a943c  gcc/fortran/symbol.c
! 04454a5aa04e742aa88cf053d40e0357  gcc/fortran/target-memory.c
  1a603863c873416a3e2a080510768dd2  gcc/fortran/target-memory.h
! 5d2dab0589513e2edb8f772b2b3d41a5  gcc/fortran/trans-array.c
  ab7472b590e1c49b9167f2f0516f3aea  gcc/fortran/trans-array.h
  f982772425e7d9a65cbb819062be79e3  gcc/fortran/trans-common.c
  a2301830f80d9a2d2fa804e044559cf1  gcc/fortran/trans-const.c
  f3cd9953e1d7b41f8b4340256b01d9db  gcc/fortran/trans-const.h
! 545e0bb2822d685b876b5037da863ab5  gcc/fortran/trans-decl.c
! e680dc7f472d290c1c7f73e67239e526  gcc/fortran/trans-expr.c
  5d28be65aabcc80b9cc4fb37ef0bfead  gcc/fortran/trans-intrinsic.c
  251588ca98b69f855c4d78fdbc92a5ce  gcc/fortran/trans-io.c
! 485c083b6489b61b96e929a9ecd7d57f  gcc/fortran/trans-openmp.c
  e3d6d3d4db3df36de93602bb0032fdb5  gcc/fortran/trans-stmt.c
  09ff062ad8cb2da1edf2aefc8fec0dd0  gcc/fortran/trans-stmt.h
! cef4d7858e073c27ef4335abd4c725fe  gcc/fortran/trans-types.c
! 8afb8a4ba30f131571e5bbd641342396  gcc/fortran/trans-types.h
  530cdb5146a0273fc8d75438e976c9d5  gcc/fortran/trans.c
! 0f4c243b56b9732e80c5fe6707464692  gcc/fortran/trans.h
  9d4b686857ace1c80925708b17d45124  gcc/fortran/types.def
  35369c9f7b73348c0b6b15b8bc83e317  gcc/fp-test.c
  4283b513d2c30438a7f09915c9a82423  gcc/function-tests.c
! f3d74b7b0d34cd8011ddbc425fc3fc41  gcc/function.c
  dd500d77758f3dca71ae1b2251bfcd63  gcc/function.h
  06a221444dd61295a4de421f6bde7091  gcc/fwprop.c
  a3f2a611478af96e6ff01e90ca40e114  gcc/gcc-ar.c
--- 4572,4643 ----
  fa144458c4bca9ea098fcc49e69c20cc  gcc/fortran/cpp.h
  37ef55690b7643959b9d6ad02500a84c  gcc/fortran/data.c
  5d6574d0968f27afb4f3f41972e5f971  gcc/fortran/data.h
! 97da64641fd02533aa178eaa57ecce7c  gcc/fortran/decl.c
  f8486e9dde69b3b606bbc76192b374ab  gcc/fortran/dependency.c
  6933dfd689c80beb5bb29d30026a34a1  gcc/fortran/dependency.h
  c3fed47839886fe87dd3656caa11c7e5  gcc/fortran/dump-parse-tree.c
  14ccfb214cc78c6632e78ebc5d43e4f2  gcc/fortran/error.c
! ddab65a5d036996f307b49385028feff  gcc/fortran/expr.c
  05f704e72952b3ef3b591809d8bb33cd  gcc/fortran/f95-lang.c
! 0250b35eabe35e2ae608e29d5c0d224c  gcc/fortran/frontend-passes.c
  1aa4f0a9593c4082dfc8a446a8021662  gcc/fortran/gfc-diagnostic.def
  ae757ab385911de35e92e949d47d76d9  gcc/fortran/gfc-internals.texi
! f3e19c691c2536dc2b06c288a9fce1dd  gcc/fortran/gfortran.h
! 6386032c12433d75183176eb2d26f90c  gcc/fortran/gfortran.info
  2c8f2a8e4a156cc2c60a93eed11d1a78  gcc/fortran/gfortran.texi
  258ff078d7fd588b1db5276e388b42d3  gcc/fortran/gfortranspec.c
! 97ee518be71604fba678c8f78d53737e  gcc/fortran/interface.c
! 3cefbe4ee5b3df8d3c5ad1111ef82398  gcc/fortran/intrinsic.c
  f5a621f4d92bd975f19fa58c09b9e6db  gcc/fortran/intrinsic.h
  ba1407cb79153040295068873f19ccc1  gcc/fortran/intrinsic.texi
! cfd4b4d8070efaa828c7d74987890e35  gcc/fortran/invoke.texi
! 676a632312c18d5d57240b479bf81334  gcc/fortran/io.c
  b75de9ab8d416c7abd953e5b7b3f3993  gcc/fortran/ioparm.def
! 21ce70b91a6ea875417611b7cf9be468  gcc/fortran/iresolve.c
  8093b2b38a01c2e488976f991dd1f954  gcc/fortran/iso-c-binding.def
  a84b351eca744eb4326cdcf48ed2d447  gcc/fortran/iso-fortran-env.def
  b6a48d929dc4bab485565b69477b39ba  gcc/fortran/lang-specs.h
! d3a095b7c3f51abc233cb0960dd32c23  gcc/fortran/lang.opt
  645bd6455816a65c53807b5362dfec6f  gcc/fortran/libgfortran.h
! 035d09edc1f438869c86e04aea894643  gcc/fortran/match.c
  00a03b372a4378e1c07376ecf0602940  gcc/fortran/match.h
  d7e915937eda00d735c03407c30c147a  gcc/fortran/matchexp.c
  87a743f124dd99426032cc7ad19284bb  gcc/fortran/mathbuiltins.def
  9d431851867d6a83a9328224ab69473f  gcc/fortran/misc.c
! ef1e1edea78450f040211e3ed2353f37  gcc/fortran/module.c
! e10639dea0456640476ac8d98e98b94a  gcc/fortran/openmp.c
  e8210239d0ae38ef26cbcec563bb173a  gcc/fortran/options.c
! 4e90f7cb6efe39ed9d8834e56166de11  gcc/fortran/parse.c
  e19e43330242c8950da01afa94a4f04b  gcc/fortran/parse.h
! 7ca24341c793db4f2cece64f9b2eb017  gcc/fortran/primary.c
! dab5163af4104ab9f1b6037535b2f950  gcc/fortran/resolve.c
  7ada4167f5cb66e95dc80a102e6c3b7a  gcc/fortran/scanner.c
  6761df883b8094d737206a8ba1c9f089  gcc/fortran/scanner.h
  024bffdaa3734adc0e16653b61d7ef3f  gcc/fortran/simplify.c
  764d2fa05e4399ec39d47288d3bf78be  gcc/fortran/st.c
! 06859f3e27f881ba1352caf102f43437  gcc/fortran/symbol.c
! 3b03840906d368ba6701e8f16c9e5884  gcc/fortran/target-memory.c
  1a603863c873416a3e2a080510768dd2  gcc/fortran/target-memory.h
! db0fdc0116058b10fe58c049e19d8e6f  gcc/fortran/trans-array.c
  ab7472b590e1c49b9167f2f0516f3aea  gcc/fortran/trans-array.h
  f982772425e7d9a65cbb819062be79e3  gcc/fortran/trans-common.c
  a2301830f80d9a2d2fa804e044559cf1  gcc/fortran/trans-const.c
  f3cd9953e1d7b41f8b4340256b01d9db  gcc/fortran/trans-const.h
! e96076c18f4b6b077407b2e111e19654  gcc/fortran/trans-decl.c
! fbe821795bea962654fb9404ae936396  gcc/fortran/trans-expr.c
  5d28be65aabcc80b9cc4fb37ef0bfead  gcc/fortran/trans-intrinsic.c
  251588ca98b69f855c4d78fdbc92a5ce  gcc/fortran/trans-io.c
! 499e07c83f13302325a07a6fa12a33e9  gcc/fortran/trans-openmp.c
  e3d6d3d4db3df36de93602bb0032fdb5  gcc/fortran/trans-stmt.c
  09ff062ad8cb2da1edf2aefc8fec0dd0  gcc/fortran/trans-stmt.h
! fb2a6e322109cb0bdee8fb2133f18476  gcc/fortran/trans-types.c
! ee1385272d719912885173ec60732b8d  gcc/fortran/trans-types.h
  530cdb5146a0273fc8d75438e976c9d5  gcc/fortran/trans.c
! 049c22ca6ff45a245347448e50a0e65d  gcc/fortran/trans.h
  9d4b686857ace1c80925708b17d45124  gcc/fortran/types.def
  35369c9f7b73348c0b6b15b8bc83e317  gcc/fp-test.c
  4283b513d2c30438a7f09915c9a82423  gcc/function-tests.c
! 04aaf91bec3b0e0f6304b4de6a892594  gcc/function.c
  dd500d77758f3dca71ae1b2251bfcd63  gcc/function.h
  06a221444dd61295a4de421f6bde7091  gcc/fwprop.c
  a3f2a611478af96e6ff01e90ca40e114  gcc/gcc-ar.c
*************** c82adc9702c2427ee9c9b43ed895690b  gcc/gc
*** 4652,4658 ****
  009a5588d34d2c697e51557671a52207  gcc/gcov.c
  ce19b5288593648402ea8145810d6048  gcc/gcse-common.c
  d50367250c6353a0bd6adad0c572f209  gcc/gcse-common.h
! 3cf1e474b24bd138960a515e216a4920  gcc/gcse.c
  3906cc4c5e98688892893c74860cb0c7  gcc/gcse.h
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
  de6f9b8eed02e4d50b470ca2c9888e68  gcc/gdbhooks.py
--- 4657,4663 ----
  009a5588d34d2c697e51557671a52207  gcc/gcov.c
  ce19b5288593648402ea8145810d6048  gcc/gcse-common.c
  d50367250c6353a0bd6adad0c572f209  gcc/gcse-common.h
! 3bda6df7b0ae3b9b065b93311dfdd9f7  gcc/gcse.c
  3906cc4c5e98688892893c74860cb0c7  gcc/gcse.h
  af83e4b4719ee065872080b713d24c2f  gcc/gdbasan.in
  de6f9b8eed02e4d50b470ca2c9888e68  gcc/gdbhooks.py
*************** b017f09085f160e6758c885175c13f1a  gcc/ge
*** 4676,4682 ****
  731a497572872b12a5e3033eae88f526  gcc/genextract.c
  7981be4a9ace01c934486bb5c1e95cc0  gcc/genflags.c
  28e8319538fae25e84df456e12da4263  gcc/gengenrtl.c
! a9e059e366f31df73b1ba68f8ffef8fe  gcc/gengtype-lex.c
  1dce49f1d97b1589c77b1b1da4da18b1  gcc/gengtype-lex.l
  bfc1a73017fd55933f7d460769140fc4  gcc/gengtype-parse.c
  b838ec3819011b0b60e60df47a827ffb  gcc/gengtype-state.c
--- 4681,4687 ----
  731a497572872b12a5e3033eae88f526  gcc/genextract.c
  7981be4a9ace01c934486bb5c1e95cc0  gcc/genflags.c
  28e8319538fae25e84df456e12da4263  gcc/gengenrtl.c
! a480d9852d76a78bb898d4039770bec9  gcc/gengtype-lex.c
  1dce49f1d97b1589c77b1b1da4da18b1  gcc/gengtype-lex.l
  bfc1a73017fd55933f7d460769140fc4  gcc/gengtype-parse.c
  b838ec3819011b0b60e60df47a827ffb  gcc/gengtype-state.c
*************** c24f9caff3845aa4a3440de7cd21c2e4  gcc/ge
*** 4699,4712 ****
  9cbea8781c62395cff613f4ea5209892  gcc/ggc-common.c
  f7cb56e2b894ce112c7d922775b20ed7  gcc/ggc-internal.h
  c8adee440c05c0f377828e736f4e897a  gcc/ggc-none.c
! 5727d7ef4e582d6398c2a06d8fa7fcf4  gcc/ggc-page.c
  aab5e8605b6acfd5563fd8fb857c475d  gcc/ggc-tests.c
  cfab7b96bd884f95292f1774f45e4a59  gcc/ggc.h
  2a14701570fbcd746ae6fa4486a6b26b  gcc/gimple-builder.c
  ff046f8e9938dae0178a152ed191e19a  gcc/gimple-builder.h
  c2d0730fb01b5369cf897eccf86f847a  gcc/gimple-expr.c
  98d8920ea5059b3d165e57222d891ccd  gcc/gimple-expr.h
! 27ce61d208c576b518d1a85a08d12ec4  gcc/gimple-fold.c
  ee21230993c156d1d5cb56fc92916e7d  gcc/gimple-fold.h
  a283a81bd4a03a8d46ce24a68e29ad46  gcc/gimple-iterator.c
  37f5e8d0d297bd9e9f53fa013dbd7dfb  gcc/gimple-iterator.h
--- 4704,4717 ----
  9cbea8781c62395cff613f4ea5209892  gcc/ggc-common.c
  f7cb56e2b894ce112c7d922775b20ed7  gcc/ggc-internal.h
  c8adee440c05c0f377828e736f4e897a  gcc/ggc-none.c
! 7fdf691e651983b52587d6419e1d3ac8  gcc/ggc-page.c
  aab5e8605b6acfd5563fd8fb857c475d  gcc/ggc-tests.c
  cfab7b96bd884f95292f1774f45e4a59  gcc/ggc.h
  2a14701570fbcd746ae6fa4486a6b26b  gcc/gimple-builder.c
  ff046f8e9938dae0178a152ed191e19a  gcc/gimple-builder.h
  c2d0730fb01b5369cf897eccf86f847a  gcc/gimple-expr.c
  98d8920ea5059b3d165e57222d891ccd  gcc/gimple-expr.h
! c2b68cf33e1618f381ec0ed6a379c8a3  gcc/gimple-fold.c
  ee21230993c156d1d5cb56fc92916e7d  gcc/gimple-fold.h
  a283a81bd4a03a8d46ce24a68e29ad46  gcc/gimple-iterator.c
  37f5e8d0d297bd9e9f53fa013dbd7dfb  gcc/gimple-iterator.h
*************** b98da5beedf98696ea9fec7256a9a4d7  gcc/gi
*** 4716,4730 ****
  d1ece51d7fcf4872310827e230b1a2eb  gcc/gimple-match-head.c
  344986053544f24eadf6b22cd9cbed69  gcc/gimple-match.h
  50a983e0d86c88e7d0a035949d68d5e4  gcc/gimple-predict.h
! 018c91dec808cde7ac4152f806fff9b8  gcc/gimple-pretty-print.c
  e216dc6f5e58a21dcbbfba370d8afc7c  gcc/gimple-pretty-print.h
  08e46029894a69a6eb9a64baaa310990  gcc/gimple-ssa-backprop.c
  4cb92049e81898a878aeed277acf78c4  gcc/gimple-ssa-isolate-paths.c
  a67525d6b8a482efd66447bd638e8dd0  gcc/gimple-ssa-nonnull-compare.c
  177901a9b94a05ea75be63da13c83847  gcc/gimple-ssa-split-paths.c
! 1334430abaa2d5de56780eb997026e2c  gcc/gimple-ssa-sprintf.c
  e3b2785355127c8c332f27c0570d37d4  gcc/gimple-ssa-store-merging.c
! 3cf19838bd314680d6eb279f49cac9b3  gcc/gimple-ssa-strength-reduction.c
  c56b2f9074833a8c8795067b1f5aea14  gcc/gimple-ssa-warn-alloca.c
  4eb4658c5c649ef8a222e5ce7169fafd  gcc/gimple-ssa.h
  8f1fc05fa70d62ef0550eb40f55e141e  gcc/gimple-streamer-in.c
--- 4721,4735 ----
  d1ece51d7fcf4872310827e230b1a2eb  gcc/gimple-match-head.c
  344986053544f24eadf6b22cd9cbed69  gcc/gimple-match.h
  50a983e0d86c88e7d0a035949d68d5e4  gcc/gimple-predict.h
! 6173699580960334a694c0da60eab0ae  gcc/gimple-pretty-print.c
  e216dc6f5e58a21dcbbfba370d8afc7c  gcc/gimple-pretty-print.h
  08e46029894a69a6eb9a64baaa310990  gcc/gimple-ssa-backprop.c
  4cb92049e81898a878aeed277acf78c4  gcc/gimple-ssa-isolate-paths.c
  a67525d6b8a482efd66447bd638e8dd0  gcc/gimple-ssa-nonnull-compare.c
  177901a9b94a05ea75be63da13c83847  gcc/gimple-ssa-split-paths.c
! a7def8c41fe3cc91825bedcb071ee51a  gcc/gimple-ssa-sprintf.c
  e3b2785355127c8c332f27c0570d37d4  gcc/gimple-ssa-store-merging.c
! 1bf8ec226769d1f2ad218f63eab16a92  gcc/gimple-ssa-strength-reduction.c
  c56b2f9074833a8c8795067b1f5aea14  gcc/gimple-ssa-warn-alloca.c
  4eb4658c5c649ef8a222e5ce7169fafd  gcc/gimple-ssa.h
  8f1fc05fa70d62ef0550eb40f55e141e  gcc/gimple-streamer-in.c
*************** c56b2f9074833a8c8795067b1f5aea14  gcc/gi
*** 4732,4743 ****
  6149b34a9b8dc9a3ac22452cfd258211  gcc/gimple-streamer.h
  a2c9a435958195c47f7a7ff098a5c002  gcc/gimple-walk.c
  e2faae5a93c606b2a7b67703c796e0ac  gcc/gimple-walk.h
! 0f87653a3855d5db7af3632500bf286b  gcc/gimple.c
  f7247836b1345633d1912927939e811c  gcc/gimple.def
! 25418f3de22a04a9d3a4bce8ea7f8233  gcc/gimple.h
  3226b367822a6cecd929bc8d88435e00  gcc/gimplify-me.c
  0614c0dbeca81e25b0e2a8ec8670bfdf  gcc/gimplify-me.h
! 85b0c7066811028f1ffd2630bde0f131  gcc/gimplify.c
  0d655a1b36bd393358a60ae37468a057  gcc/gimplify.h
  8a65435af2eced0ca67f6f9271c997ad  gcc/ginclude/float.h
  b9721cc1f3c6349bcfe9d162a36d0eb9  gcc/ginclude/iso646.h
--- 4737,4748 ----
  6149b34a9b8dc9a3ac22452cfd258211  gcc/gimple-streamer.h
  a2c9a435958195c47f7a7ff098a5c002  gcc/gimple-walk.c
  e2faae5a93c606b2a7b67703c796e0ac  gcc/gimple-walk.h
! 0c4c3405ec275d9647161016f59938ee  gcc/gimple.c
  f7247836b1345633d1912927939e811c  gcc/gimple.def
! 078dd321c112f34c7c981e904c162933  gcc/gimple.h
  3226b367822a6cecd929bc8d88435e00  gcc/gimplify-me.c
  0614c0dbeca81e25b0e2a8ec8670bfdf  gcc/gimplify-me.h
! b4723eddecd7c782f4acb092547fcfc5  gcc/gimplify.c
  0d655a1b36bd393358a60ae37468a057  gcc/gimplify.h
  8a65435af2eced0ca67f6f9271c997ad  gcc/ginclude/float.h
  b9721cc1f3c6349bcfe9d162a36d0eb9  gcc/ginclude/iso646.h
*************** a21c48eb0ebeb4a73c0889fd3f42e12b  gcc/gi
*** 4754,4760 ****
  e67de778552fcefca7289ac8daa55fe9  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
  39fd87607b25c8f948dcf70c2f36b206  gcc/glimits.h
! eed3060f02db783d006d87b2959b8bd0  gcc/go/ChangeLog
  4ff99cd3f2073d7c092cb2d42ca47e44  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
  4b9cbe6a30dbc7039c55993611934ad7  gcc/go/config-lang.in
--- 4759,4765 ----
  e67de778552fcefca7289ac8daa55fe9  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
  39fd87607b25c8f948dcf70c2f36b206  gcc/glimits.h
! 125d72169bd53c199f065022bad8b2f6  gcc/go/ChangeLog
  4ff99cd3f2073d7c092cb2d42ca47e44  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
  4b9cbe6a30dbc7039c55993611934ad7  gcc/go/config-lang.in
*************** d1fc3f168d944e64ca6b0f0a8927b301  gcc/gr
*** 4824,4830 ****
  7484de7d78a34c5f3717af71957b2ccf  gcc/graphite-isl-ast-to-gimple.c
  dc7486b5ffc901f582556a20dd651c1b  gcc/graphite-optimize-isl.c
  ee94063780779dbd8f397ba53e5b3cb7  gcc/graphite-poly.c
! a53fc55fef65985e128c29c719a48eab  gcc/graphite-scop-detection.c
  08fcd67515ab1b26b0760c7d824be781  gcc/graphite-sese-to-poly.c
  311105d7f1fe56dba43e194502491cd8  gcc/graphite.c
  e7e3fdece960283c76901871ddcc6399  gcc/graphite.h
--- 4829,4835 ----
  7484de7d78a34c5f3717af71957b2ccf  gcc/graphite-isl-ast-to-gimple.c
  dc7486b5ffc901f582556a20dd651c1b  gcc/graphite-optimize-isl.c
  ee94063780779dbd8f397ba53e5b3cb7  gcc/graphite-poly.c
! 0703b4c687802af02174db893779a249  gcc/graphite-scop-detection.c
  08fcd67515ab1b26b0760c7d824be781  gcc/graphite-sese-to-poly.c
  311105d7f1fe56dba43e194502491cd8  gcc/graphite.c
  e7e3fdece960283c76901871ddcc6399  gcc/graphite.h
*************** d08a41c44b2057a601ca472d8d7aba83  gcc/in
*** 4868,4908 ****
  6c700f907711db07006eaae3c698e48d  gcc/incpath.c
  d9cd763073cfcc84a261cc22db84e3c5  gcc/incpath.h
  391837c132e851e7c7c1bbeebb516c90  gcc/init-regs.c
! 090822c8cc7cb44eeeb8114deab64d45  gcc/input.c
  3afe31ad8024a1a3fa2ef613bf72aeaf  gcc/input.h
  2014e898d755c5f081f63cab42dba047  gcc/insn-addr.h
  b5b40a72ca0dc9c233b0a85133cf9023  gcc/insn-notes.def
! 8f9b42bec7f5e0256d074ab679e88d00  gcc/internal-fn.c
  4da4cd5d23e7edda93fdf5fde7294840  gcc/internal-fn.def
! 9ce613eef2e1b9c6f221cbc1bb973967  gcc/internal-fn.h
  fdf64d7f98647f8f0d1bcf3b8a828aa8  gcc/intl.c
  6255901e73c6bc2c71a2703cdacfd77f  gcc/intl.h
  48525c51108ac26cb1d6058cb495d847  gcc/ipa-chkp.c
  e54d40e1ec53e0400607ff09c2a536dc  gcc/ipa-chkp.h
  f1b7ee4df60044997d39d57d6c22993c  gcc/ipa-comdats.c
! bf41bf8b54f64671bd7f354dcb70ddd1  gcc/ipa-cp.c
  1064a31b99908c2eb12cd8eddb4fbfb2  gcc/ipa-devirt.c
  d13a7631f21372dd7785d58258d8653a  gcc/ipa-hsa.c
! 2e220ffa1afa788d5e90c334c992320b  gcc/ipa-icf-gimple.c
  73e820ad96c398d3c582d46305f4a886  gcc/ipa-icf-gimple.h
  6e694368aeb063a7108a13e82e01d2a7  gcc/ipa-icf.c
  63f295725de31704e48d6c9bb3e1b72d  gcc/ipa-icf.h
  56741052fd5a89044ea5a5f7bc52ad3b  gcc/ipa-inline-analysis.c
  13c7778f9a4420ca43a2b5935fc2f296  gcc/ipa-inline-transform.c
! 43bc648e0d42b9b3f0eff01c7f8ca5a0  gcc/ipa-inline.c
  91c2b100a6c4c5566296ce9bdeea1246  gcc/ipa-inline.h
  a77ae1d6734f2e873ab6390a3a330a48  gcc/ipa-polymorphic-call.c
  20726f67378e6ff4631de06b111579c8  gcc/ipa-profile.c
! 778693b710ff5a6be15afb00cb24d847  gcc/ipa-prop.c
  f8fe111b3871fed63edbfc32fdb0e203  gcc/ipa-prop.h
! 5116913d55547de6de68fbf22b19d80d  gcc/ipa-pure-const.c
  5b0dd9b55d2b0ea9cb7f0ca4549e1a10  gcc/ipa-ref.c
  2bf874519c2c4adedbc9d9f704713620  gcc/ipa-ref.h
! 38233da4b2ac3fb60647e29ae3bfdbc3  gcc/ipa-reference.c
  e0da2ee6910ab8686a5910bc4a76afe0  gcc/ipa-reference.h
  4407b063d08bdd9fd0725de1c0e12486  gcc/ipa-split.c
! 90c6cc2241bc4dbaa5a6a76da34aa93c  gcc/ipa-utils.c
! 658313d4d5d2feb69ed6f69a2c3cf571  gcc/ipa-utils.h
  02f4b9ae1b45439a547f909b5361d4d5  gcc/ipa-visibility.c
  ef56d9ed82e1d34beae03896413d206e  gcc/ipa.c
  543028744e2f9e24cb5293e3a38b4013  gcc/ira-build.c
--- 4873,4913 ----
  6c700f907711db07006eaae3c698e48d  gcc/incpath.c
  d9cd763073cfcc84a261cc22db84e3c5  gcc/incpath.h
  391837c132e851e7c7c1bbeebb516c90  gcc/init-regs.c
! 5554fecd6de4f5c51152051d7bd357b1  gcc/input.c
  3afe31ad8024a1a3fa2ef613bf72aeaf  gcc/input.h
  2014e898d755c5f081f63cab42dba047  gcc/insn-addr.h
  b5b40a72ca0dc9c233b0a85133cf9023  gcc/insn-notes.def
! 0b043492640c5a60df1d88c2fc6ada70  gcc/internal-fn.c
  4da4cd5d23e7edda93fdf5fde7294840  gcc/internal-fn.def
! 3a539e48391f330448cb016d7d2b1211  gcc/internal-fn.h
  fdf64d7f98647f8f0d1bcf3b8a828aa8  gcc/intl.c
  6255901e73c6bc2c71a2703cdacfd77f  gcc/intl.h
  48525c51108ac26cb1d6058cb495d847  gcc/ipa-chkp.c
  e54d40e1ec53e0400607ff09c2a536dc  gcc/ipa-chkp.h
  f1b7ee4df60044997d39d57d6c22993c  gcc/ipa-comdats.c
! 7fbe0688059a58cc3cb84b571e86d77c  gcc/ipa-cp.c
  1064a31b99908c2eb12cd8eddb4fbfb2  gcc/ipa-devirt.c
  d13a7631f21372dd7785d58258d8653a  gcc/ipa-hsa.c
! 87143ae3f029fdfad370a0e4c24739bd  gcc/ipa-icf-gimple.c
  73e820ad96c398d3c582d46305f4a886  gcc/ipa-icf-gimple.h
  6e694368aeb063a7108a13e82e01d2a7  gcc/ipa-icf.c
  63f295725de31704e48d6c9bb3e1b72d  gcc/ipa-icf.h
  56741052fd5a89044ea5a5f7bc52ad3b  gcc/ipa-inline-analysis.c
  13c7778f9a4420ca43a2b5935fc2f296  gcc/ipa-inline-transform.c
! 6049b5d54320e05864195fa476c7c6d9  gcc/ipa-inline.c
  91c2b100a6c4c5566296ce9bdeea1246  gcc/ipa-inline.h
  a77ae1d6734f2e873ab6390a3a330a48  gcc/ipa-polymorphic-call.c
  20726f67378e6ff4631de06b111579c8  gcc/ipa-profile.c
! feeb08d42ee80bbdf97cd03972b0feaf  gcc/ipa-prop.c
  f8fe111b3871fed63edbfc32fdb0e203  gcc/ipa-prop.h
! 1f4e212ca05cbb3db5737085fe6f7409  gcc/ipa-pure-const.c
  5b0dd9b55d2b0ea9cb7f0ca4549e1a10  gcc/ipa-ref.c
  2bf874519c2c4adedbc9d9f704713620  gcc/ipa-ref.h
! 1c536cfdcc1cfed7fbb300884087881f  gcc/ipa-reference.c
  e0da2ee6910ab8686a5910bc4a76afe0  gcc/ipa-reference.h
  4407b063d08bdd9fd0725de1c0e12486  gcc/ipa-split.c
! 2d5043ea63dd3e2c51616f4597343928  gcc/ipa-utils.c
! a37e3657f0f85d1d070ff0af4a451dc6  gcc/ipa-utils.h
  02f4b9ae1b45439a547f909b5361d4d5  gcc/ipa-visibility.c
  ef56d9ed82e1d34beae03896413d206e  gcc/ipa.c
  543028744e2f9e24cb5293e3a38b4013  gcc/ira-build.c
*************** a19ba21929bb5efca3651c1bd91d0556  gcc/ir
*** 4912,4921 ****
  0cc90612f655f9553234b41c691dd045  gcc/ira-emit.c
  de81556308e4a1f61a5d691b42a31a77  gcc/ira-int.h
  44c6dac0c625045cb04076642e5b0c66  gcc/ira-lives.c
! caacb2e7c13ccab0fb6efa70d96bbab3  gcc/ira.c
  0e98da5359d5b8452a426452b3166e5e  gcc/ira.h
  98d0dd78e50aed7d6d4f69e533b99340  gcc/is-a.h
! 44abb42695eafdb08be63357f29654a2  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
  2415ade78b2b648edf37df515cc36c21  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
--- 4917,4926 ----
  0cc90612f655f9553234b41c691dd045  gcc/ira-emit.c
  de81556308e4a1f61a5d691b42a31a77  gcc/ira-int.h
  44c6dac0c625045cb04076642e5b0c66  gcc/ira-lives.c
! 668199d740457c7ff75ae3dc647d22ce  gcc/ira.c
  0e98da5359d5b8452a426452b3166e5e  gcc/ira.h
  98d0dd78e50aed7d6d4f69e533b99340  gcc/is-a.h
! 7ae8fd58c0fcc63e0db0cc385ca15672  gcc/jit/ChangeLog
  6071bdf04fb356c5ac99a99ec00c9a12  gcc/jit/ChangeLog.jit
  2415ade78b2b648edf37df515cc36c21  gcc/jit/Make-lang.in
  fd0d76b6467c987f813d430a35d4760a  gcc/jit/TODO.rst
*************** e6c027362553eaf5c6f46fc4f69db21e  gcc/lc
*** 5011,5029 ****
  85dc07e9f0cd6bf7ca0391b3439fd9f7  gcc/loop-init.c
  6960cfbb5f2f0ece41b0fb024292fc56  gcc/loop-invariant.c
  d00eb3c22c3d758014a13a9c09849822  gcc/loop-iv.c
! 72f5792447ce1e528eeef241eb76ffcc  gcc/loop-unroll.c
  952e6c6741e7cc74734d8f7e375d0ce7  gcc/loop-unroll.h
  b6a5401525ed766b4b2c000673e8e2de  gcc/lower-subreg.c
  baa6304ac17d60ea1de9cd389561fbc6  gcc/lower-subreg.h
  968303eba3eb836c06ffcc0c51525814  gcc/lra-assigns.c
  09ce513b6a920eb59b5e4f682f9ed312  gcc/lra-coalesce.c
! 0b033e9413f60be8d2bd5eb35de0b92a  gcc/lra-constraints.c
  5ce61045cbbf438ace78d082bcdde15e  gcc/lra-eliminations.c
  e681e998d6c0fdedc7d28c23ef7c1265  gcc/lra-int.h
  939605de7727d037bffbf96535ac7cfa  gcc/lra-lives.c
  a99263cf5a04d19dfbf3b8602665a19c  gcc/lra-remat.c
  0df6a0cfaee4f70007971a435d7cf831  gcc/lra-spills.c
! c39f83c028412f494556e41777fdfac3  gcc/lra.c
  1bfb8d5c5c3f87c38b435e60129e5025  gcc/lra.h
  a0b668d25b2b3a5038eb0b1489b34ffb  gcc/lto-cgraph.c
  87ee293171e06e77ed29cc7e1e4df966  gcc/lto-compress.c
--- 5016,5034 ----
  85dc07e9f0cd6bf7ca0391b3439fd9f7  gcc/loop-init.c
  6960cfbb5f2f0ece41b0fb024292fc56  gcc/loop-invariant.c
  d00eb3c22c3d758014a13a9c09849822  gcc/loop-iv.c
! 3fa9f56b9ec4a19dcf6537f6140bcf4f  gcc/loop-unroll.c
  952e6c6741e7cc74734d8f7e375d0ce7  gcc/loop-unroll.h
  b6a5401525ed766b4b2c000673e8e2de  gcc/lower-subreg.c
  baa6304ac17d60ea1de9cd389561fbc6  gcc/lower-subreg.h
  968303eba3eb836c06ffcc0c51525814  gcc/lra-assigns.c
  09ce513b6a920eb59b5e4f682f9ed312  gcc/lra-coalesce.c
! 7792afeb8cea93044545a83295d81984  gcc/lra-constraints.c
  5ce61045cbbf438ace78d082bcdde15e  gcc/lra-eliminations.c
  e681e998d6c0fdedc7d28c23ef7c1265  gcc/lra-int.h
  939605de7727d037bffbf96535ac7cfa  gcc/lra-lives.c
  a99263cf5a04d19dfbf3b8602665a19c  gcc/lra-remat.c
  0df6a0cfaee4f70007971a435d7cf831  gcc/lra-spills.c
! 48b9f093f239f6ef5f79d06dab600a4f  gcc/lra.c
  1bfb8d5c5c3f87c38b435e60129e5025  gcc/lra.h
  a0b668d25b2b3a5038eb0b1489b34ffb  gcc/lto-cgraph.c
  87ee293171e06e77ed29cc7e1e4df966  gcc/lto-compress.c
*************** bdb839d1119e305569cc0381b49171ef  gcc/lt
*** 5032,5043 ****
  23f5d4b3f3519ea92d0ea4ff7651f2c6  gcc/lto-section-in.c
  bf0ddd1d4c06ede718cd6c9d68d66a79  gcc/lto-section-names.h
  1dfeb5b8bc8b8ef92eeaf44f80f4e6d7  gcc/lto-section-out.c
! cb0e052e6d99847359297ec3639e7494  gcc/lto-streamer-in.c
! 540e6a93c8890b8c9d3f073d3181f327  gcc/lto-streamer-out.c
  f7413cc95127c24fbfbca57399cc405e  gcc/lto-streamer.c
! ac5af855d3af9e53bc7934819d845353  gcc/lto-streamer.h
! 32646f4b325ab40e02065344c8179008  gcc/lto-wrapper.c
! 63b2e68e355903720bbcef77adf41ff1  gcc/lto/ChangeLog
  ced02ce6ebb471e6f0707b1098d059f9  gcc/lto/Make-lang.in
  4df36a5baf5c564626eda96177fa5c33  gcc/lto/common.c
  dc83390218daebe5ba0cc15e5d0ef4f2  gcc/lto/common.h
--- 5037,5048 ----
  23f5d4b3f3519ea92d0ea4ff7651f2c6  gcc/lto-section-in.c
  bf0ddd1d4c06ede718cd6c9d68d66a79  gcc/lto-section-names.h
  1dfeb5b8bc8b8ef92eeaf44f80f4e6d7  gcc/lto-section-out.c
! 55a66815969ef85831a6dd30de2116ec  gcc/lto-streamer-in.c
! 01b16356638e13c0f582d23189139e36  gcc/lto-streamer-out.c
  f7413cc95127c24fbfbca57399cc405e  gcc/lto-streamer.c
! de5dc207e0fce2b71b40d23bf5633e93  gcc/lto-streamer.h
! fd56c65c4405675aa827d395e750ae85  gcc/lto-wrapper.c
! a39d3249cade7d0620dd3af62056b4fe  gcc/lto/ChangeLog
  ced02ce6ebb471e6f0707b1098d059f9  gcc/lto/Make-lang.in
  4df36a5baf5c564626eda96177fa5c33  gcc/lto/common.c
  dc83390218daebe5ba0cc15e5d0ef4f2  gcc/lto/common.h
*************** e647bcb6f853f2020a69bd125fba4c2d  gcc/lt
*** 5056,5062 ****
  002d86ffe05da917cfd80bbb511cf0eb  gcc/machmode.def
  f7ad77889393cf493f1262771d70d953  gcc/machmode.h
  4ceeedac880cc5287574b380950589b2  gcc/main.c
! 556923984747eafe525152e5af24aa1e  gcc/match.pd
  18e3456c1e7d2132e422198943304c3b  gcc/mcf.c
  c281c4f8369da7724070f49c9fe97512  gcc/mem-stats-traits.h
  0588309a92b9b0bc147e0e3f8977dcad  gcc/mem-stats.h
--- 5061,5067 ----
  002d86ffe05da917cfd80bbb511cf0eb  gcc/machmode.def
  f7ad77889393cf493f1262771d70d953  gcc/machmode.h
  4ceeedac880cc5287574b380950589b2  gcc/main.c
! 3846ac589f783cdf50a059911935b38e  gcc/match.pd
  18e3456c1e7d2132e422198943304c3b  gcc/mcf.c
  c281c4f8369da7724070f49c9fe97512  gcc/mem-stats-traits.h
  0588309a92b9b0bc147e0e3f8977dcad  gcc/mem-stats.h
*************** ac2a441b236321b828165bc61f84e45a  gcc/mk
*** 5068,5079 ****
  f3bb81dc9fe0c7b25dbb89202fb9fedb  gcc/mode-switching.c
  8b38296cb48aac7025e957d0eb2e0beb  gcc/modulo-sched.c
  ab99ec689b35d3782d0d6c9673e8a80c  gcc/multiple_target.c
! 99b70018a0a547c3874986bb760d4abe  gcc/objc/ChangeLog
  52fb9c112577eef989bc43e36f696692  gcc/objc/Make-lang.in
  07963422f6222392a9f1d56d0cbc53ae  gcc/objc/config-lang.in
  cf8e0bb9d548e2c3d720f5c4ebc5bb9c  gcc/objc/lang-specs.h
! 6497ac77d7736d6d98f9c5723745511c  gcc/objc/objc-act.c
! a25092d4f4fe28a245de31f2f1511ff4  gcc/objc/objc-act.h
  7ee25cf44832e5313ee3fc7db192be9c  gcc/objc/objc-encoding.c
  b163ce4192cb6eb54634165d0ac4af49  gcc/objc/objc-encoding.h
  a8773d77127fbc00fe25eff818943e6d  gcc/objc/objc-gnu-runtime-abi-01.c
--- 5073,5084 ----
  f3bb81dc9fe0c7b25dbb89202fb9fedb  gcc/mode-switching.c
  8b38296cb48aac7025e957d0eb2e0beb  gcc/modulo-sched.c
  ab99ec689b35d3782d0d6c9673e8a80c  gcc/multiple_target.c
! 3ddb557bc95eae5f1f709b2f3c1f8f65  gcc/objc/ChangeLog
  52fb9c112577eef989bc43e36f696692  gcc/objc/Make-lang.in
  07963422f6222392a9f1d56d0cbc53ae  gcc/objc/config-lang.in
  cf8e0bb9d548e2c3d720f5c4ebc5bb9c  gcc/objc/lang-specs.h
! 13dbd9b1d978d400271d31e9c67d93a5  gcc/objc/objc-act.c
! 9aedf9a604a0d5c28128a603b5eef7bc  gcc/objc/objc-act.h
  7ee25cf44832e5313ee3fc7db192be9c  gcc/objc/objc-encoding.c
  b163ce4192cb6eb54634165d0ac4af49  gcc/objc/objc-encoding.h
  a8773d77127fbc00fe25eff818943e6d  gcc/objc/objc-gnu-runtime-abi-01.c
*************** c14acf8a1dab7d0c2adef37ade287b05  gcc/ob
*** 5087,5111 ****
  796e40d4a426f2ba961cb7b03597697b  gcc/objc/objc-runtime-shared-support.c
  cc66abe3f07d32de5c77248e82f02dbe  gcc/objc/objc-runtime-shared-support.h
  ef63c61988d20447a799378fa1f25022  gcc/objc/objc-tree.def
! eee7962269acb763acf9598c019e57b4  gcc/objcp/ChangeLog
  afdfeea4c2028aa5b15e0355f8cade93  gcc/objcp/Make-lang.in
! c74e423b803cf4446b16c17243b63e5a  gcc/objcp/config-lang.in
  eef32d7df29581d83432d58d9cb2cd94  gcc/objcp/lang-specs.h
  b8840e5f3e0b48eef202eebe67f8506d  gcc/objcp/objcp-decl.c
  db17a97fa0c8d9e96cf691936d987f01  gcc/objcp/objcp-decl.h
  8edee735611b099133f17e56cef4dc46  gcc/objcp/objcp-lang.c
  b4f4aff7ed47834bd4bfcf2dfba20395  gcc/omp-builtins.def
! 6975a19ed0cef03b57fff8f942cf74f3  gcc/omp-expand.c
  d177ce89d1052ec1caeecdc3b6376077  gcc/omp-expand.h
  101508bef954bca7004e675270e17636  gcc/omp-general.c
  f5c582e7b207e6818eb3ba0c0b992872  gcc/omp-general.h
  8cba34fb20f0481e5ffbfb4e1694a907  gcc/omp-grid.c
  fc6b582c9cf11cb29fcf672e5b78c7ba  gcc/omp-grid.h
! bc242b798227bd2a9791e3089d865321  gcc/omp-low.c
  d68f234609f652e17b2b917374726838  gcc/omp-low.h
  c3c2cd5ff8c4eadd8d9e432e16cf092c  gcc/omp-offload.c
  cf7b95c9f21a4b2fa6826b529e3ce596  gcc/omp-offload.h
! 4be4d81923461b377d0bb0bef5b0749c  gcc/omp-simd-clone.c
  d41de71d486a8be28201d75094263299  gcc/opt-functions.awk
  141229a2685dddd4b6da38f50de9d465  gcc/opt-gather.awk
  7a11f4a94c0bd345d3423bb0cef7c896  gcc/opt-include.awk
--- 5092,5116 ----
  796e40d4a426f2ba961cb7b03597697b  gcc/objc/objc-runtime-shared-support.c
  cc66abe3f07d32de5c77248e82f02dbe  gcc/objc/objc-runtime-shared-support.h
  ef63c61988d20447a799378fa1f25022  gcc/objc/objc-tree.def
! ade22da37a181559a77e46aa355616f3  gcc/objcp/ChangeLog
  afdfeea4c2028aa5b15e0355f8cade93  gcc/objcp/Make-lang.in
! ad26fe2b6dae22b0ab8ab22c390382f3  gcc/objcp/config-lang.in
  eef32d7df29581d83432d58d9cb2cd94  gcc/objcp/lang-specs.h
  b8840e5f3e0b48eef202eebe67f8506d  gcc/objcp/objcp-decl.c
  db17a97fa0c8d9e96cf691936d987f01  gcc/objcp/objcp-decl.h
  8edee735611b099133f17e56cef4dc46  gcc/objcp/objcp-lang.c
  b4f4aff7ed47834bd4bfcf2dfba20395  gcc/omp-builtins.def
! f1c4f053335ce9fb1eac8ff10dac00fd  gcc/omp-expand.c
  d177ce89d1052ec1caeecdc3b6376077  gcc/omp-expand.h
  101508bef954bca7004e675270e17636  gcc/omp-general.c
  f5c582e7b207e6818eb3ba0c0b992872  gcc/omp-general.h
  8cba34fb20f0481e5ffbfb4e1694a907  gcc/omp-grid.c
  fc6b582c9cf11cb29fcf672e5b78c7ba  gcc/omp-grid.h
! bfccb994e5abc83622b487018098b6b7  gcc/omp-low.c
  d68f234609f652e17b2b917374726838  gcc/omp-low.h
  c3c2cd5ff8c4eadd8d9e432e16cf092c  gcc/omp-offload.c
  cf7b95c9f21a4b2fa6826b529e3ce596  gcc/omp-offload.h
! 6c1b899dc08ecf853730ec83ef996d15  gcc/omp-simd-clone.c
  d41de71d486a8be28201d75094263299  gcc/opt-functions.awk
  141229a2685dddd4b6da38f50de9d465  gcc/opt-gather.awk
  7a11f4a94c0bd345d3423bb0cef7c896  gcc/opt-include.awk
*************** b028c7a9c90208c6a41c251a754a8b18  gcc/op
*** 5116,5131 ****
  d3cedc015b66305d40274f90a8e197cc  gcc/optabs-query.h
  3d905dc67e605c37e0eedb76c5caef04  gcc/optabs-tree.c
  3e6875e4d6f2dbe3ed60c448551f5e86  gcc/optabs-tree.h
! 576cb3dd4dff3a861d2641868a5b8985  gcc/optabs.c
  4e124c742e2a5d3ee49599f3e9b976dc  gcc/optabs.def
  ad27afe318db2ba35c962089be2a6753  gcc/optabs.h
  12965c68fb5394ce2ff713f9a02ce532  gcc/optc-gen.awk
! 3334035d4ed123a15511a538ff552d38  gcc/optc-save-gen.awk
! b36f15821f233758c3731307d8f6245f  gcc/opth-gen.awk
! 39c48c6db3bf6ad12a2ceac33cf9a4b1  gcc/opts-common.c
  dceccf26e9f4521217455d25b4df27b7  gcc/opts-diagnostic.h
! 62023174447e1a21cc36cd138c59eb03  gcc/opts-global.c
! debbff247b2c2ff666c32dc0674f4b3f  gcc/opts.c
  f93e8648abf396fa77c25dcdd03f9869  gcc/opts.h
  ff7abf43af46428f2896e4b55240035b  gcc/output.h
  389afec912a480acd35b8d978ee26f92  gcc/params-enum.h
--- 5121,5136 ----
  d3cedc015b66305d40274f90a8e197cc  gcc/optabs-query.h
  3d905dc67e605c37e0eedb76c5caef04  gcc/optabs-tree.c
  3e6875e4d6f2dbe3ed60c448551f5e86  gcc/optabs-tree.h
! 02730ccd744a7945790608a6b03d96f8  gcc/optabs.c
  4e124c742e2a5d3ee49599f3e9b976dc  gcc/optabs.def
  ad27afe318db2ba35c962089be2a6753  gcc/optabs.h
  12965c68fb5394ce2ff713f9a02ce532  gcc/optc-gen.awk
! a555843fa35cac6108b92b537afd8b57  gcc/optc-save-gen.awk
! f0ff869d803f4772a4c344590c5f1988  gcc/opth-gen.awk
! c3afd120c7d239971274c77f1c87ddab  gcc/opts-common.c
  dceccf26e9f4521217455d25b4df27b7  gcc/opts-diagnostic.h
! 9875203aad3ab8b2dd93b9ce16d0ed23  gcc/opts-global.c
! 15cf13354ec58d6f28bda866b6bbbb49  gcc/opts.c
  f93e8648abf396fa77c25dcdd03f9869  gcc/opts.h
  ff7abf43af46428f2896e4b55240035b  gcc/output.h
  389afec912a480acd35b8d978ee26f92  gcc/params-enum.h
*************** c2783219174c8fa71e584ddcd27d47fb  gcc/pa
*** 5140,5146 ****
  5398ce30fca85a2ac1d00ce91b14f146  gcc/plugin.c
  2746c4de7c7d517bb42a495e1dd8740d  gcc/plugin.def
  6940e44bf30362e059cceb844a043e4f  gcc/plugin.h
! 324980796e704ee96be8865cc07dca07  gcc/po/ChangeLog
  28b130f4b67c51e48b2b431b12ee9bc3  gcc/po/EXCLUDES
  91c634ac61c253e979dd99a24560ca02  gcc/po/be.gmo
  77877776122e6719ab1d793423a871c2  gcc/po/be.po
--- 5145,5151 ----
  5398ce30fca85a2ac1d00ce91b14f146  gcc/plugin.c
  2746c4de7c7d517bb42a495e1dd8740d  gcc/plugin.def
  6940e44bf30362e059cceb844a043e4f  gcc/plugin.h
! 07b73c7acd915c5e2e588549c1a9b9f5  gcc/po/ChangeLog
  28b130f4b67c51e48b2b431b12ee9bc3  gcc/po/EXCLUDES
  91c634ac61c253e979dd99a24560ca02  gcc/po/be.gmo
  77877776122e6719ab1d793423a871c2  gcc/po/be.po
*************** dd41c821b8625e4697bf17679a151555  gcc/re
*** 5224,5230 ****
  ac60869ad50176108b2582f282b56d68  gcc/reload.h
  0103c2cc15d45b633b0f4ff2fce69c43  gcc/reload1.c
  e3f93c413a58cfeec53f2747ae1dce8f  gcc/reorg.c
! 90997bd67acc28dbd0956e47a4be7d0e  gcc/resource.c
  012e3a805df645a90a2453dd0b9b37d3  gcc/resource.h
  4c5f8660ff1d2252d0b26c1f2d988d43  gcc/rtl-chkp.c
  ce51ae5d10f5cb8b145a4ff0699046e2  gcc/rtl-chkp.h
--- 5229,5235 ----
  ac60869ad50176108b2582f282b56d68  gcc/reload.h
  0103c2cc15d45b633b0f4ff2fce69c43  gcc/reload1.c
  e3f93c413a58cfeec53f2747ae1dce8f  gcc/reorg.c
! 3a8ff2ff704b6efdf5c9fa842b41ff14  gcc/resource.c
  012e3a805df645a90a2453dd0b9b37d3  gcc/resource.h
  4c5f8660ff1d2252d0b26c1f2d988d43  gcc/rtl-chkp.c
  ce51ae5d10f5cb8b145a4ff0699046e2  gcc/rtl-chkp.h
*************** d76ca39349983cb0b54c6ad134f61920  gcc/rt
*** 5234,5241 ****
  d2bb5073ea343a1ae4939771412b63e0  gcc/rtl-tests.c
  908701aba46db9a1a44393e99d07c6e6  gcc/rtl.c
  7e78287e5749d4be4bc0c862b05f140c  gcc/rtl.def
! 6b94bb5d689ef5236a6376ff8fad4eeb  gcc/rtl.h
! ec5bc18a4cf3f9021e4092ce068fdc16  gcc/rtlanal.c
  5c77db4ff466d7c8384d3007c09e56d0  gcc/rtlhash.c
  cb5fb683f24857f0ab9551a7e86100f2  gcc/rtlhash.h
  f541ab154aeea10a302aeac4bb8a22b1  gcc/rtlhooks-def.h
--- 5239,5246 ----
  d2bb5073ea343a1ae4939771412b63e0  gcc/rtl-tests.c
  908701aba46db9a1a44393e99d07c6e6  gcc/rtl.c
  7e78287e5749d4be4bc0c862b05f140c  gcc/rtl.def
! d7975b6bca38a8642361e8b9cd97a5ac  gcc/rtl.h
! 5004dc8e36ae16da96d005dbeb2be92a  gcc/rtlanal.c
  5c77db4ff466d7c8384d3007c09e56d0  gcc/rtlhash.c
  cb5fb683f24857f0ab9551a7e86100f2  gcc/rtlhash.h
  f541ab154aeea10a302aeac4bb8a22b1  gcc/rtlhooks-def.h
*************** acfd89a99214448406e007b8b47be709  gcc/st
*** 5288,5294 ****
  6241bf746244c38ee2b5bb2f50700720  gcc/stmt.h
  dd8689c93f1877a7a663963f004790a7  gcc/stor-layout.c
  1c7daba8028822e5b94a2153155ad602  gcc/stor-layout.h
! 8e1d62fd4e94be5e6ca36846b1aa8c50  gcc/store-motion.c
  f8d66329a1a49cc3f918ca0cc8dabe29  gcc/streamer-hooks.c
  44fc77a08ef845e26d7b98a41e81567d  gcc/streamer-hooks.h
  99939e3eae08d6ec0e2ee9a8efefdeca  gcc/stringpool.c
--- 5293,5299 ----
  6241bf746244c38ee2b5bb2f50700720  gcc/stmt.h
  dd8689c93f1877a7a663963f004790a7  gcc/stor-layout.c
  1c7daba8028822e5b94a2153155ad602  gcc/stor-layout.h
! 9f99a37c7e71c377704ba7f2bd6e9b7d  gcc/store-motion.c
  f8d66329a1a49cc3f918ca0cc8dabe29  gcc/streamer-hooks.c
  44fc77a08ef845e26d7b98a41e81567d  gcc/streamer-hooks.h
  99939e3eae08d6ec0e2ee9a8efefdeca  gcc/stringpool.c
*************** f8d66329a1a49cc3f918ca0cc8dabe29  gcc/st
*** 5296,5302 ****
  363bf9610ccd5a07e44e4a6f3eb6dc71  gcc/substring-locations.c
  9878badb619687340998bcf3640b3cbd  gcc/substring-locations.h
  b7b5a00a031835983125f2937db4804a  gcc/symbol-summary.h
! 30129bff70c8649dddc3d8c9586a0d6f  gcc/symtab.c
  bd271aa5ad96d6349cf5b502f6c1f5c4  gcc/sync-builtins.def
  4b3a7a754c52da9ef683b6f7294a8617  gcc/system.h
  08334c3b5c7914017c1b60360c0a1ff3  gcc/target-def.h
--- 5301,5307 ----
  363bf9610ccd5a07e44e4a6f3eb6dc71  gcc/substring-locations.c
  9878badb619687340998bcf3640b3cbd  gcc/substring-locations.h
  b7b5a00a031835983125f2937db4804a  gcc/symbol-summary.h
! 2c6b27b4c768e03cbffb6e20964b44f8  gcc/symtab.c
  bd271aa5ad96d6349cf5b502f6c1f5c4  gcc/sync-builtins.def
  4b3a7a754c52da9ef683b6f7294a8617  gcc/system.h
  08334c3b5c7914017c1b60360c0a1ff3  gcc/target-def.h
*************** a05a444f8043177dc60812bbde449eda  gcc/ta
*** 5309,5315 ****
  130ded7300d8bd75644b06dd136911c9  gcc/targhooks.c
  0aab1bb3e79d26285582376c20aeb077  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! f3e8db809086f15907ea959fb6897bc2  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 5314,5320 ----
  130ded7300d8bd75644b06dd136911c9  gcc/targhooks.c
  0aab1bb3e79d26285582376c20aeb077  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 9089c93c4197f3e646b20badd9cea7bd  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** b2ce89f1ba635f8d6701308583cd4759  gcc/te
*** 8549,8554 ****
--- 8554,8560 ----
  99033a31ad0844a80bb561d39f21bc2c  gcc/testsuite/c-c++-common/gomp/atomic-8.c
  a6583e4cf6c5bb3b1a46172a0635d197  gcc/testsuite/c-c++-common/gomp/atomic-9.c
  2549b3ee367b2011758b46cca97eecbe  gcc/testsuite/c-c++-common/gomp/cancel-1.c
+ a3db48f5141f35b798f8eb198176c58a  gcc/testsuite/c-c++-common/gomp/cancel-2.c
  4643decfdedb2843b4b2903c5f686d54  gcc/testsuite/c-c++-common/gomp/clauses-1.c
  91184268a02254af5f18494d3321de38  gcc/testsuite/c-c++-common/gomp/clauses-2.c
  657094047e2432f3bc3c5cafde1eafcd  gcc/testsuite/c-c++-common/gomp/clauses-3.c
*************** f65cd3e2b7713964176e994c1aab473e  gcc/te
*** 8561,8566 ****
--- 8567,8573 ----
  685c37a890fe3f63baeef038dca54d42  gcc/testsuite/c-c++-common/gomp/depend-4.c
  389475c8477c859e20aa20be1676dbd0  gcc/testsuite/c-c++-common/gomp/distribute-1.c
  b0b92f325dfe971970390ef3edd85743  gcc/testsuite/c-c++-common/gomp/doacross-1.c
+ f0e8744f81b4bd363089960ae8a6bbb6  gcc/testsuite/c-c++-common/gomp/doacross-2.c
  5a70f931f3d1911a210ec6155240d4dc  gcc/testsuite/c-c++-common/gomp/element-1.c
  52e6c91a76e14e06cc40b81b362ebe34  gcc/testsuite/c-c++-common/gomp/gridify-1.c
  c24725037d3fce70e48f0d8904037cee  gcc/testsuite/c-c++-common/gomp/gridify-2.c
*************** a1d1201800784f60e84899ae25155f9b  gcc/te
*** 8627,8636 ****
  5c98b968b8b8fa3dcda75ece1f760d12  gcc/testsuite/c-c++-common/gomp/pr84341.c
  fb9e5ede5d43a206c572fa77be49ff02  gcc/testsuite/c-c++-common/gomp/pr85696.c
  62a0e309912895235f385cc84af32654  gcc/testsuite/c-c++-common/gomp/pr86025.c
  5d522e2f1f7455bc45f6c1f230d5a5b0  gcc/testsuite/c-c++-common/gomp/priority-1.c
  1dc7bbbafb91e179ac43fa3959ab125f  gcc/testsuite/c-c++-common/gomp/reduction-1.c
  8af1ef16f27f56d5d687ed958b671d57  gcc/testsuite/c-c++-common/gomp/schedule-1.c
! a73d7c3b3886856e6621c6e5854c3333  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
  0ec2e2f575568924dc191f53badc3e5d  gcc/testsuite/c-c++-common/gomp/schedule-simd-1.c
  328147f679f9eac26be960bf85acb2e8  gcc/testsuite/c-c++-common/gomp/sections1.c
  c7cb982e272572b3d42948b23c3c6229  gcc/testsuite/c-c++-common/gomp/simd1.c
--- 8634,8645 ----
  5c98b968b8b8fa3dcda75ece1f760d12  gcc/testsuite/c-c++-common/gomp/pr84341.c
  fb9e5ede5d43a206c572fa77be49ff02  gcc/testsuite/c-c++-common/gomp/pr85696.c
  62a0e309912895235f385cc84af32654  gcc/testsuite/c-c++-common/gomp/pr86025.c
+ 0e989c3d25d634c553662814c966233e  gcc/testsuite/c-c++-common/gomp/pr88588.c
+ 61ca8b866c491c9064a5bbfddd90f421  gcc/testsuite/c-c++-common/gomp/pr90954.c
  5d522e2f1f7455bc45f6c1f230d5a5b0  gcc/testsuite/c-c++-common/gomp/priority-1.c
  1dc7bbbafb91e179ac43fa3959ab125f  gcc/testsuite/c-c++-common/gomp/reduction-1.c
  8af1ef16f27f56d5d687ed958b671d57  gcc/testsuite/c-c++-common/gomp/schedule-1.c
! 5d7ebe38e36cae232e0504c4d3f42f44  gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
  0ec2e2f575568924dc191f53badc3e5d  gcc/testsuite/c-c++-common/gomp/schedule-simd-1.c
  328147f679f9eac26be960bf85acb2e8  gcc/testsuite/c-c++-common/gomp/sections1.c
  c7cb982e272572b3d42948b23c3c6229  gcc/testsuite/c-c++-common/gomp/simd1.c
*************** dee5af747bd0ddc9371dcb5f4acebedc  gcc/te
*** 8642,8648 ****
  4763c84e6c50d72fa161297e3be84c0c  gcc/testsuite/c-c++-common/gomp/single1.c
  61d98a13d45cbac048b37277817470a0  gcc/testsuite/c-c++-common/gomp/sink-1.c
  1c82cae2e7ce3866f8094c1dd264cbae  gcc/testsuite/c-c++-common/gomp/sink-2.c
! ee53749fe1ce6195a2d3af75b4e8d7fb  gcc/testsuite/c-c++-common/gomp/sink-3.c
  0c93f7b88c30539ace084df2f4c7f5ae  gcc/testsuite/c-c++-common/gomp/sink-4.c
  a8435825c61a8dc6ab7b5b8cda3dd35d  gcc/testsuite/c-c++-common/gomp/target-teams-1.c
  5e0762ad9f0a708e2bb91ebe98e91915  gcc/testsuite/c-c++-common/gomp/udr-1.c
--- 8651,8657 ----
  4763c84e6c50d72fa161297e3be84c0c  gcc/testsuite/c-c++-common/gomp/single1.c
  61d98a13d45cbac048b37277817470a0  gcc/testsuite/c-c++-common/gomp/sink-1.c
  1c82cae2e7ce3866f8094c1dd264cbae  gcc/testsuite/c-c++-common/gomp/sink-2.c
! 5da781fbb8445e840fae91d1a209f84a  gcc/testsuite/c-c++-common/gomp/sink-3.c
  0c93f7b88c30539ace084df2f4c7f5ae  gcc/testsuite/c-c++-common/gomp/sink-4.c
  a8435825c61a8dc6ab7b5b8cda3dd35d  gcc/testsuite/c-c++-common/gomp/target-teams-1.c
  5e0762ad9f0a708e2bb91ebe98e91915  gcc/testsuite/c-c++-common/gomp/udr-1.c
*************** ee387176acb2650d09f446c7722b79b9  gcc/te
*** 8789,8794 ****
--- 8798,8805 ----
  21015038ab7179791a8c873570bdcb3c  gcc/testsuite/c-c++-common/pr83059.c
  9dba97555bca18ab93f6efcd421e0a52  gcc/testsuite/c-c++-common/pr84873.c
  2f717264a94f69b645aabceb21aa58e5  gcc/testsuite/c-c++-common/pr84999.c
+ 3631e7a853bf47afcc4f5db428d630ff  gcc/testsuite/c-c++-common/pr89933.c
+ 6b55a407d08d3d9c405be8cf45164944  gcc/testsuite/c-c++-common/pr90108.c
  b0ba836310044e7b419ef679f0b48d6f  gcc/testsuite/c-c++-common/raw-string-1.c
  554e7071d2525351de28445762633866  gcc/testsuite/c-c++-common/raw-string-10.c
  fc54e7227094f307fa566b3a8cd0ba9a  gcc/testsuite/c-c++-common/raw-string-11.c
*************** e1bf0eadfe0faa636f8ac8a16f0eeccd  gcc/te
*** 8856,8861 ****
--- 8867,8873 ----
  7bca2da5972cb85245dd77174723b039  gcc/testsuite/c-c++-common/tm/wrap-1.c
  c1e50a7071b6999a8895b383c899231c  gcc/testsuite/c-c++-common/torture/aarch64-vect-lane-1.c
  1edeec204eca5114343b0dd1c1b0540e  gcc/testsuite/c-c++-common/torture/aarch64-vect-lane-2.c
+ a10b02fb3b2593b2641dfd572427f365  gcc/testsuite/c-c++-common/torture/asm-inline.c
  44b670d0aec741e3503143d1fd81cfa5  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-1.c
  465154bc8a7a51c9299788073fd630ec  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-1.h
  070fcd634c88f93e465c85d1f83bd66a  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-10.c
*************** a86987a20e9cedd0388c3b5602a4458c  gcc/te
*** 9469,9474 ****
--- 9481,9489 ----
  c97655a29a37d7897f9edc7f3201eab3  gcc/testsuite/g++.dg/asan/use-after-scope-types-4.C
  d2d4ea16490b45388c168c416c6640d5  gcc/testsuite/g++.dg/asan/use-after-scope-types-5.C
  e20a12eb6455f420adb919299f6e8991  gcc/testsuite/g++.dg/asan/use-after-scope-types.h
+ 01499301a7233f3e3e0bac80890e7dea  gcc/testsuite/g++.dg/asm-qual-1.C
+ 0a7cdd480ff9677cd742fad1ef91da3a  gcc/testsuite/g++.dg/asm-qual-2.C
+ f09dff4e126233e185c2284fca8e9cfa  gcc/testsuite/g++.dg/asm-qual-3.C
  2b91ca979d1cd0ba3142812068d73796  gcc/testsuite/g++.dg/bprob/bprob.exp
  232269dc2a9b913c19e49f1e7a29bf08  gcc/testsuite/g++.dg/bprob/g++-bprob-1.C
  91292dc36de1287d9de59661dd0c8c78  gcc/testsuite/g++.dg/bprob/g++-bprob-2.C
*************** afb210848d078a6555666048b75692fb  gcc/te
*** 10142,10147 ****
--- 10157,10163 ----
  8a9f91865ab6d92e00b1d78f32c26682  gcc/testsuite/g++.dg/cpp0x/constexpr-79822.C
  1e7c8ba8ab02820df5254f7b652cafd5  gcc/testsuite/g++.dg/cpp0x/constexpr-84449.C
  c5c31ddd271a1ea41e1cc0115e3e4305  gcc/testsuite/g++.dg/cpp0x/constexpr-84463.C
+ b9007290e56f8c058df6fc2174bc755b  gcc/testsuite/g++.dg/cpp0x/constexpr-87506.C
  6aa74413b4ef74580a0a5da7abf23914  gcc/testsuite/g++.dg/cpp0x/constexpr-98.C
  1bc1c995533b047ed8df6f6f24905cd1  gcc/testsuite/g++.dg/cpp0x/constexpr-99.C
  3ccc1912e7827aae6b55936a3bf3bb24  gcc/testsuite/g++.dg/cpp0x/constexpr-__func__.C
*************** fab23eb9efdcf1b8c0f8393aa5ad7913  gcc/te
*** 10848,10853 ****
--- 10864,10871 ----
  93763afe3eb7edb5553f76daf0ed0de3  gcc/testsuite/g++.dg/cpp0x/initlist-vect.C
  bc81668e2b4c77a6a8c52350eb5f9bc7  gcc/testsuite/g++.dg/cpp0x/initlist1.C
  56eb446b9a79a3e01433eed6090a0b6d  gcc/testsuite/g++.dg/cpp0x/initlist10.C
+ 4332c7fdfb0318d5053e58202a4cfb1d  gcc/testsuite/g++.dg/cpp0x/initlist105.C
+ cc1c5e5e24fb9bef8d00a876df016ada  gcc/testsuite/g++.dg/cpp0x/initlist106.C
  f787403dc64b99be9c0c9b763121c4d7  gcc/testsuite/g++.dg/cpp0x/initlist11.C
  540183723223acf529878183682623fb  gcc/testsuite/g++.dg/cpp0x/initlist12.C
  a5e64985a46db12492fa03d5e7dfd347  gcc/testsuite/g++.dg/cpp0x/initlist13.C
*************** b0aef9b4e29c1c639c49513dd20eddaa  gcc/te
*** 11459,11464 ****
--- 11477,11483 ----
  22640f58e38b3f775918e32eb89ae1c5  gcc/testsuite/g++.dg/cpp0x/pr83556.C
  0e513eaf320aa9c504e7cd59d73bb3ea  gcc/testsuite/g++.dg/cpp0x/pr83824.C
  e220051a1789469e32d70224f27f40f1  gcc/testsuite/g++.dg/cpp0x/pr85147.C
+ af1a15e45c3cc6236ceb323ed17dc3d7  gcc/testsuite/g++.dg/cpp0x/pr89403.C
  53428f69a6d0153074c9b06ee9fbe9e7  gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C
  6e8e648c26d9bf237cc152180e88c2c2  gcc/testsuite/g++.dg/cpp0x/range-for1.C
  5c7a98d8ca2f0f427c081bf6902aa831  gcc/testsuite/g++.dg/cpp0x/range-for10.C
*************** db69e4e0631892725d99d48517e599d5  gcc/te
*** 11528,11533 ****
--- 11547,11553 ----
  06f5ab84d35793554cbac00bc5cbd06a  gcc/testsuite/g++.dg/cpp0x/rv-cast5.C
  ccba3040ed86b5ffae7d72b18f556d1c  gcc/testsuite/g++.dg/cpp0x/rv-cond1.C
  682309935142019cb21a9df2c35d9a5c  gcc/testsuite/g++.dg/cpp0x/rv-cond2.C
+ 3a02f68ebc48112a74f31983fd72c639  gcc/testsuite/g++.dg/cpp0x/rv-cond3.C
  4d78acdd9f4b8ae8afa532ceaf0c07c4  gcc/testsuite/g++.dg/cpp0x/rv-conv1.C
  889a7002f4d78b4abd44856da792f8dc  gcc/testsuite/g++.dg/cpp0x/rv-copy1.C
  de88aaa56b0d394bd02f079bb0f4dddf  gcc/testsuite/g++.dg/cpp0x/rv-deduce.C
*************** fe118321a9f7ae6d0b7db3dea8fea392  gcc/te
*** 12198,12203 ****
--- 12218,12225 ----
  fabb2b807c750e9106c4bf0957c73eb5  gcc/testsuite/g++.dg/cpp1y/lambda-init14.C
  ca7e8735db99f7f5fd14ba8748118d88  gcc/testsuite/g++.dg/cpp1y/lambda-init15.C
  94541d9e486223ed3e08f03421566a99  gcc/testsuite/g++.dg/cpp1y/lambda-init15a.C
+ 5fe011c8566939194cd3e0837e9e34c0  gcc/testsuite/g++.dg/cpp1y/lambda-init18.C
+ 958fe0b6d46088167932b1f19e7a6780  gcc/testsuite/g++.dg/cpp1y/lambda-init19.C
  8ed9afde76486ea02c03ca491cadf017  gcc/testsuite/g++.dg/cpp1y/lambda-init2.C
  2cd05217a3f9f694b94c428a478c4d15  gcc/testsuite/g++.dg/cpp1y/lambda-init3.C
  f2fd3b3d96f31c07233bb82ba0c0f2f5  gcc/testsuite/g++.dg/cpp1y/lambda-init4.C
*************** dbace3f995d674f58bab880f12a9759b  gcc/te
*** 12311,12316 ****
--- 12333,12339 ----
  940fc182569446c043306bfa0393ad5d  gcc/testsuite/g++.dg/cpp1y/pr84558.C
  aea4fd5f8c777c7f1bfde6284bf03cfa  gcc/testsuite/g++.dg/cpp1y/pr84662.C
  11abcca649e7c260d96b20dd2bb71bc7  gcc/testsuite/g++.dg/cpp1y/pr85076.C
+ 76d3c8355d513d753398e1184e4c4ece  gcc/testsuite/g++.dg/cpp1y/pr89767.C
  ac3a3cc471361b1fc9f3e55ad12dd7a8  gcc/testsuite/g++.dg/cpp1y/regress1.C
  9a759de4b7ac375d3c274acdf73c4fbe  gcc/testsuite/g++.dg/cpp1y/sized-dealloc1.C
  aeb199bf9a897359b6d538b5bce4e5ef  gcc/testsuite/g++.dg/cpp1y/sized-dealloc2.C
*************** f47aed01d0a8d51c841d31adce366f2f  gcc/te
*** 12383,12388 ****
--- 12406,12412 ----
  2d80dca3b1754f5129c41c3e12947ca9  gcc/testsuite/g++.dg/cpp1y/var-templ58a.C
  d02a4d5b691aff1357a5f77cf5774190  gcc/testsuite/g++.dg/cpp1y/var-templ59.C
  46f96806c3f041172407dd6ff7943dc8  gcc/testsuite/g++.dg/cpp1y/var-templ6.C
+ d40d9f43eb7820281681023bed02f7ce  gcc/testsuite/g++.dg/cpp1y/var-templ61.C
  3c670164f1a7f8f91ef1db2f80526182  gcc/testsuite/g++.dg/cpp1y/var-templ7.C
  7490ba7f2bf9511118a48f52e8c4ceed  gcc/testsuite/g++.dg/cpp1y/var-templ8.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
*************** a0b1b80cd241f9f881d8620db4841d7b  gcc/te
*** 12528,12533 ****
--- 12552,12558 ----
  c3be5debcaadeed1590bfa9d901b6b4a  gcc/testsuite/g++.dg/cpp1z/decomp4.C
  eb9f8718288112ad5ebd15a4550540bf  gcc/testsuite/g++.dg/cpp1z/decomp41.C
  1d5ef27ba1bc0d334fdace775bcca4de  gcc/testsuite/g++.dg/cpp1z/decomp42.C
+ be58a05c982a80cf0c6b4457f2ee655c  gcc/testsuite/g++.dg/cpp1z/decomp49.C
  f98a9feae4ead80bf6fea589d0978072  gcc/testsuite/g++.dg/cpp1z/decomp5.C
  94932c496662eac8e1fca1974af2185e  gcc/testsuite/g++.dg/cpp1z/decomp6.C
  6d3336af679ac74615e17a984a46d36e  gcc/testsuite/g++.dg/cpp1z/decomp7.C
*************** bed8d123852d255e811f9196daf3eaba  gcc/te
*** 12772,12779 ****
--- 12797,12806 ----
  c97b36f101808a4d1b88e966d08df228  gcc/testsuite/g++.dg/debug/dwarf2/pr79129.C
  3ab0da15d5f47d7a8b827b5c7757e2f0  gcc/testsuite/g++.dg/debug/dwarf2/pr80234-1.C
  97746fde88b3156e4e9704f6bad8eb65  gcc/testsuite/g++.dg/debug/dwarf2/pr80234-2.C
+ 0f874907f5857287c313bccd53771ee0  gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C
  a6b0d9b886cd92ee869a01fd967f123e  gcc/testsuite/g++.dg/debug/dwarf2/pr87462.C
  eb8df2f4b1148c5f6b77553d91cb7877  gcc/testsuite/g++.dg/debug/dwarf2/pr88006.C
+ 1f426b6d87ce5765a45728a91f7e3337  gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C
  48e69b012a6da8a3f37c0eea7d671389  gcc/testsuite/g++.dg/debug/dwarf2/ptrdmem-1.C
  5d8f03fa19703b37b960eccf4cdd64b6  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C
  69071f2ae478f0d1d78f2bcbfbd97e32  gcc/testsuite/g++.dg/debug/dwarf2/pubnames-2.C
*************** ccda43f2f659360264083e64ebc66d22  gcc/te
*** 12863,12868 ****
--- 12890,12896 ----
  cbfed194d2ff10e85931bbec759ed626  gcc/testsuite/g++.dg/debug/pr71432.C
  271f75e481615831453a65f49baedcd5  gcc/testsuite/g++.dg/debug/pr72808.C
  5199aaaf442cc3d08fba7ecd3483d537  gcc/testsuite/g++.dg/debug/pr80461.C
+ ff81bad5bdaf6ebdf3b91953ac3a3e83  gcc/testsuite/g++.dg/debug/pr88181.C
  a5e8d546d53a780cc3eb41574ea9f263  gcc/testsuite/g++.dg/debug/ra1.C
  c3f392076ad11f8768ef0321b89abd5f  gcc/testsuite/g++.dg/debug/static1.C
  7e13d86d33b17cfb7cdf61b7b8cca961  gcc/testsuite/g++.dg/debug/template1.C
*************** b7f5975e22585a2f3d80be63f70dccc8  gcc/te
*** 13164,13170 ****
  8086207ba3911ed58a971e642fbfdd29  gcc/testsuite/g++.dg/ext/align1.C
  9b72806f0ff8dd6bff6e2ef84f0ce102  gcc/testsuite/g++.dg/ext/align2.C
  ae6df71fd3bee2754f2c1b710ca23b88  gcc/testsuite/g++.dg/ext/alignof1.C
! e151939f5adf47a2bc58124b53a4606f  gcc/testsuite/g++.dg/ext/alignof2.C
  f94bcd708feb1a029065a7503b545f54  gcc/testsuite/g++.dg/ext/altivec-1.C
  11c64f0deba1e4621429dc584ee88ae4  gcc/testsuite/g++.dg/ext/altivec-10.C
  11e05978299d38b5d2b835ef7303988d  gcc/testsuite/g++.dg/ext/altivec-11.C
--- 13192,13198 ----
  8086207ba3911ed58a971e642fbfdd29  gcc/testsuite/g++.dg/ext/align1.C
  9b72806f0ff8dd6bff6e2ef84f0ce102  gcc/testsuite/g++.dg/ext/align2.C
  ae6df71fd3bee2754f2c1b710ca23b88  gcc/testsuite/g++.dg/ext/alignof1.C
! c193f1254c92080bca2fd5ab48c1e175  gcc/testsuite/g++.dg/ext/alignof2.C
  f94bcd708feb1a029065a7503b545f54  gcc/testsuite/g++.dg/ext/altivec-1.C
  11c64f0deba1e4621429dc584ee88ae4  gcc/testsuite/g++.dg/ext/altivec-10.C
  11e05978299d38b5d2b835ef7303988d  gcc/testsuite/g++.dg/ext/altivec-11.C
*************** d377fb4f9ef6d1ed2029c1551ddf7e3b  gcc/te
*** 13226,13233 ****
  e44c9c980378260d4b601d86e9cc1197  gcc/testsuite/g++.dg/ext/asm12.C
  0262e403551bf2b3da1b5f7349d74e00  gcc/testsuite/g++.dg/ext/asm13.C
  b03656b1cd67c4e115686cb70664ee3b  gcc/testsuite/g++.dg/ext/asm14.C
! d0cdfeb86cc1bd5048bc8a6eccd22158  gcc/testsuite/g++.dg/ext/asm15.C
! 6d4d89936aae31f929753c3c6fbe416c  gcc/testsuite/g++.dg/ext/asm16.C
  80a3695697c7262c931be9b1380fa283  gcc/testsuite/g++.dg/ext/asm2.C
  d79d3809a45ef739f741819f3a0e3979  gcc/testsuite/g++.dg/ext/asm3.C
  f8da779ccf232ebdb2dee94530a1bf48  gcc/testsuite/g++.dg/ext/asm4.C
--- 13254,13262 ----
  e44c9c980378260d4b601d86e9cc1197  gcc/testsuite/g++.dg/ext/asm12.C
  0262e403551bf2b3da1b5f7349d74e00  gcc/testsuite/g++.dg/ext/asm13.C
  b03656b1cd67c4e115686cb70664ee3b  gcc/testsuite/g++.dg/ext/asm14.C
! be1c80dcae5cbae6a8e240931f3c0271  gcc/testsuite/g++.dg/ext/asm15.C
! 2135f9ca8816461a01d6402d135aadb3  gcc/testsuite/g++.dg/ext/asm16.C
! 883f7391e5262e580b7d6560610b3012  gcc/testsuite/g++.dg/ext/asm17.C
  80a3695697c7262c931be9b1380fa283  gcc/testsuite/g++.dg/ext/asm2.C
  d79d3809a45ef739f741819f3a0e3979  gcc/testsuite/g++.dg/ext/asm3.C
  f8da779ccf232ebdb2dee94530a1bf48  gcc/testsuite/g++.dg/ext/asm4.C
*************** fa0fdbfe242e37c8962c867f656e7e36  gcc/te
*** 13453,13458 ****
--- 13482,13488 ----
  f1c4a8c29985318295579ac9077ee176  gcc/testsuite/g++.dg/ext/flexary23.C
  799928c572de3a0a1d8c1318932df135  gcc/testsuite/g++.dg/ext/flexary24.C
  21926590c31816347bbb7ba438127f63  gcc/testsuite/g++.dg/ext/flexary3.C
+ b2c60991d5b6f21b7202a6d5a7c81412  gcc/testsuite/g++.dg/ext/flexary34.C
  3d3772048887cc532cac316c5dfc3727  gcc/testsuite/g++.dg/ext/flexary4.C
  0cdb8ed93bc6d926326dda41fc92d614  gcc/testsuite/g++.dg/ext/flexary5.C
  57643e50a930f6d1e7ea68411e707a26  gcc/testsuite/g++.dg/ext/flexary6.C
*************** a24f991beb2c5296f2e8144630b7bb1a  gcc/te
*** 13500,13506 ****
  04cb5500126619139ae126fdc51c8a1f  gcc/testsuite/g++.dg/ext/injected-ttp.C
  f2cf0baaaf489aa15f22210e07d052d1  gcc/testsuite/g++.dg/ext/inline1.C
  6cfdb6711dd7c538f7c4411216e0cc5b  gcc/testsuite/g++.dg/ext/instantiate1.C
! 5e54f0ef2e625e228e1d382cd9aa24b3  gcc/testsuite/g++.dg/ext/instantiate2.C
  561bb7137df38a016a786156224c9769  gcc/testsuite/g++.dg/ext/instantiate3.C
  64c2566bddee53ad391dac93f9ac20f8  gcc/testsuite/g++.dg/ext/int128-1.C
  32e47d9edd5e9de41660e6f8d0faa6c8  gcc/testsuite/g++.dg/ext/int128-2.C
--- 13530,13536 ----
  04cb5500126619139ae126fdc51c8a1f  gcc/testsuite/g++.dg/ext/injected-ttp.C
  f2cf0baaaf489aa15f22210e07d052d1  gcc/testsuite/g++.dg/ext/inline1.C
  6cfdb6711dd7c538f7c4411216e0cc5b  gcc/testsuite/g++.dg/ext/instantiate1.C
! 34f12a4e88c7d91723528bbca194ce29  gcc/testsuite/g++.dg/ext/instantiate2.C
  561bb7137df38a016a786156224c9769  gcc/testsuite/g++.dg/ext/instantiate3.C
  64c2566bddee53ad391dac93f9ac20f8  gcc/testsuite/g++.dg/ext/int128-1.C
  32e47d9edd5e9de41660e6f8d0faa6c8  gcc/testsuite/g++.dg/ext/int128-2.C
*************** de012dba14bc48d236b469793d5ca899  gcc/te
*** 13676,13682 ****
  e4a78d4631d98dda8d34b1baf828c158  gcc/testsuite/g++.dg/ext/sync-1.C
  7d2ab13d9258d8fc570367eacc626bf6  gcc/testsuite/g++.dg/ext/sync-2.C
  96d325d0b1cb729ac3fd1b3d32a6b67b  gcc/testsuite/g++.dg/ext/sync-3.C
! 25e688901e0b995b22374a4e20633531  gcc/testsuite/g++.dg/ext/sync-4.C
  f9fa49961395404e1860aeb9a8b78208  gcc/testsuite/g++.dg/ext/timevar1.C
  01c68a4ad6501d5104065731b3cf67c4  gcc/testsuite/g++.dg/ext/timevar2.C
  b0c4b5418bbb0cea1304a888bae68465  gcc/testsuite/g++.dg/ext/tmplattr1.C
--- 13706,13712 ----
  e4a78d4631d98dda8d34b1baf828c158  gcc/testsuite/g++.dg/ext/sync-1.C
  7d2ab13d9258d8fc570367eacc626bf6  gcc/testsuite/g++.dg/ext/sync-2.C
  96d325d0b1cb729ac3fd1b3d32a6b67b  gcc/testsuite/g++.dg/ext/sync-3.C
! 46eb991a03413f1965a4192b07913b9f  gcc/testsuite/g++.dg/ext/sync-4.C
  f9fa49961395404e1860aeb9a8b78208  gcc/testsuite/g++.dg/ext/timevar1.C
  01c68a4ad6501d5104065731b3cf67c4  gcc/testsuite/g++.dg/ext/timevar2.C
  b0c4b5418bbb0cea1304a888bae68465  gcc/testsuite/g++.dg/ext/tmplattr1.C
*************** abdeb34b11f4d994523c72c30c39e053  gcc/te
*** 13781,13786 ****
--- 13811,13817 ----
  c3b38049951f0b2eddec58e423441ed3  gcc/testsuite/g++.dg/ext/vector31.C
  f2e6795ff798b5625687e21de0a778df  gcc/testsuite/g++.dg/ext/vector32.C
  f2e6795ff798b5625687e21de0a778df  gcc/testsuite/g++.dg/ext/vector32a.C
+ abeb7f1800f1c5a18e83e13fb0f1d304  gcc/testsuite/g++.dg/ext/vector36.C
  1d6b45dce331a414b31b64c5104ab383  gcc/testsuite/g++.dg/ext/vector4.C
  3231264b4b96091ab8a2351e76707e8d  gcc/testsuite/g++.dg/ext/vector5.C
  9dca9632e59d179ee1b85a181a34cae7  gcc/testsuite/g++.dg/ext/vector6.C
*************** d1eae0fc9007ab702478f6de3cc99b0b  gcc/te
*** 13909,13915 ****
  831e98c6ca97a4a3897a673f4bab9b09  gcc/testsuite/g++.dg/gcov/gcov.exp
  28167c93ffea74cb328ff3cd087d643a  gcc/testsuite/g++.dg/gcov/gcovpart-12b.C
  7d9eee67c3f8041f2ddace387e1df1c2  gcc/testsuite/g++.dg/gcov/pr16855-priority.C
! 6a00a42444ecfc55fcc35215a85e8a01  gcc/testsuite/g++.dg/gcov/pr16855.C
  eb61f760d343ff5c713477f9b4bd1edd  gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp
  480677ba2b0c1444ca7f51a2bf4efd71  gcc/testsuite/g++.dg/goacc/data-1.C
  2b70bd2b15144e92ee104c07a8e2bc13  gcc/testsuite/g++.dg/goacc/deviceptr-1.C
--- 13940,13946 ----
  831e98c6ca97a4a3897a673f4bab9b09  gcc/testsuite/g++.dg/gcov/gcov.exp
  28167c93ffea74cb328ff3cd087d643a  gcc/testsuite/g++.dg/gcov/gcovpart-12b.C
  7d9eee67c3f8041f2ddace387e1df1c2  gcc/testsuite/g++.dg/gcov/pr16855-priority.C
! 0e2959a120e9dabe4dc820b1236a1579  gcc/testsuite/g++.dg/gcov/pr16855.C
  eb61f760d343ff5c713477f9b4bd1edd  gcc/testsuite/g++.dg/goacc-gomp/goacc-gomp.exp
  480677ba2b0c1444ca7f51a2bf4efd71  gcc/testsuite/g++.dg/goacc/data-1.C
  2b70bd2b15144e92ee104c07a8e2bc13  gcc/testsuite/g++.dg/goacc/deviceptr-1.C
*************** c3c132c63e769145d5869a1e0c14f686  gcc/te
*** 13937,13942 ****
--- 13968,13976 ----
  21fde38c324f474c2251280d6cd9a190  gcc/testsuite/g++.dg/gomp/block-7.C
  a2fa0bd0c20ee3b75edbfece640cf607  gcc/testsuite/g++.dg/gomp/block-8.C
  cbb7791c1d34b472a8662c5d203ff28c  gcc/testsuite/g++.dg/gomp/block-9.C
+ a734cd9ac4c7933b7e53991e05b0aed5  gcc/testsuite/g++.dg/gomp/cancel-1.C
+ 1ded075e5504b0cdb4b01214eb33c7af  gcc/testsuite/g++.dg/gomp/cancel-2.C
+ 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
  451cdb5a4d9b3f55c9dfdb9bea6c4cfc  gcc/testsuite/g++.dg/gomp/clause-3.C
*************** bcce5f289dacd7e032453729bf06e161  gcc/te
*** 13977,13982 ****
--- 14011,14017 ----
  d9604d99f8b1a6974afc5a3cab2765b3  gcc/testsuite/g++.dg/gomp/for-8.C
  34eb86e893e0bd796aad8d236b5bc215  gcc/testsuite/g++.dg/gomp/for-9.C
  e6be88782f0e60ae056fe40845979bf7  gcc/testsuite/g++.dg/gomp/gomp.exp
+ eb763d050fd680e1a3302fbda441475d  gcc/testsuite/g++.dg/gomp/lastprivate-1.C
  7f682781cd88149270eb73eb44f419f7  gcc/testsuite/g++.dg/gomp/linear-1.C
  2fe09fbd7df28122d262deb35faa2ae9  gcc/testsuite/g++.dg/gomp/linear-2.C
  6dcaf2b099c377baab33fe0ad0e0e268  gcc/testsuite/g++.dg/gomp/loop-1.C
*************** ba547a4dc52e5fa57b7cf7b21dfac263  gcc/te
*** 14107,14112 ****
--- 14142,14149 ----
  d43c7636f8d004a836e8c8543a39d4aa  gcc/testsuite/g++.dg/gomp/pr84556.C
  509552ea6a4e3381b95cf49447f0217f  gcc/testsuite/g++.dg/gomp/pr84557.C
  f4af350e7c840b674d4df142d3432e80  gcc/testsuite/g++.dg/gomp/pr84791.C
+ 4b42a7fda8d3ea41699780101b9c6384  gcc/testsuite/g++.dg/gomp/pr88949.C
+ c1464987d35d87dd8f66e42e5434dd87  gcc/testsuite/g++.dg/gomp/pr89796.C
  adbfca0228fdb71a91ae227ecc88afab  gcc/testsuite/g++.dg/gomp/predetermined-1.C
  edac71d2b358ecd6e646fece69c5426d  gcc/testsuite/g++.dg/gomp/private-1.C
  d447246d410ae61ed9f733998e77b958  gcc/testsuite/g++.dg/gomp/reference-1.C
*************** e9a3cd760e81664690da407f52b34364  gcc/te
*** 14778,14783 ****
--- 14815,14821 ----
  05592a0935fec817a7688eb12baa50c2  gcc/testsuite/g++.dg/ipa/pr82801.C
  a6ea68da40fdbc3c5627d8fd52058c74  gcc/testsuite/g++.dg/ipa/pr83549.C
  d31daabe5d2bb29c818c1bbbe31a5a4b  gcc/testsuite/g++.dg/ipa/pr84658.C
+ 09c0ea9b37840a41bc30204d7af8c1ef  gcc/testsuite/g++.dg/ipa/pr89009.C
  33a70012ed132fa7937f4953a4dc0f17  gcc/testsuite/g++.dg/ipa/pure-const-1.C
  c5bddc0233cbf24a8f75d96eb5685658  gcc/testsuite/g++.dg/ipa/pure-const-2.C
  b98de12e73f586f35f30ed6bf46a1463  gcc/testsuite/g++.dg/ipa/pure-const-3.C
*************** f73a831dbfcd6430b723ed4198037c98  gcc/te
*** 14921,14926 ****
--- 14959,14965 ----
  326caa0ef916da51fec348c662a91f18  gcc/testsuite/g++.dg/lookup/ns3.C
  b16d2b44bfa0aeed86e99a04f412703d  gcc/testsuite/g++.dg/lookup/ns4.C
  2ddc73877ee8726480b98b6b881569b6  gcc/testsuite/g++.dg/lookup/pr21802.C
+ 2378e813c805e961b5f594f4a76ec56d  gcc/testsuite/g++.dg/lookup/pr60994.C
  6133d93b9e3d1477d5f921d386c406a0  gcc/testsuite/g++.dg/lookup/pr6936.C
  3717c2026453719d4d718f3e8061ba28  gcc/testsuite/g++.dg/lookup/pr70205.C
  c3e7ce4b437773eaeeb6bf033add6ae5  gcc/testsuite/g++.dg/lookup/pr77549.C
*************** b8ca536d41e8477bd6c838e3069600de  gcc/te
*** 15548,15554 ****
--- 15587,15598 ----
  51275b1dfdc4bd6a07a6ff88ac8d81c3  gcc/testsuite/g++.dg/opt/pr83084.C
  ef14b1c0d0459097940d563471958957  gcc/testsuite/g++.dg/opt/pr83608.C
  58b650e9e9104f63b1cccbbef63a1887  gcc/testsuite/g++.dg/opt/pr83609.C
+ b1f567104f98b61d3068d7b7f076ad11  gcc/testsuite/g++.dg/opt/pr84272.C
  ca10d6d09de6260347893fccdabd81a8  gcc/testsuite/g++.dg/opt/pr85196.C
+ dd4b362edbe19cdf29a47f7bb90e6e2a  gcc/testsuite/g++.dg/opt/pr89187.C
+ eea9eb29aff452d80dae491fa69bef1b  gcc/testsuite/g++.dg/opt/pr89188.C
+ 7842f073118719d55d2d03e047ef75de  gcc/testsuite/g++.dg/opt/pr90090.C
+ 6a8ecb5087f6e681c993119a988900ef  gcc/testsuite/g++.dg/opt/pr90187.C
  1451eba24eea82cbd0c1ab87885c0f77  gcc/testsuite/g++.dg/opt/preinc1.C
  0841088f825be785d32663d712ecf675  gcc/testsuite/g++.dg/opt/ptrintsum1.C
  8ceccf2f02b3f64f372600e32148e146  gcc/testsuite/g++.dg/opt/ptrmem1.C
*************** edba4dc64424b99c4e6984f1aa7e9507  gcc/te
*** 15863,15868 ****
--- 15907,15914 ----
  76ee0895897247483e60443661edeb22  gcc/testsuite/g++.dg/other/pr80423.C
  1c00accbdd570039dad5f6ca97899478  gcc/testsuite/g++.dg/other/pr80534-1.C
  0a2126b949cb2478421893594c7f8cf4  gcc/testsuite/g++.dg/other/pr80534-2.C
+ 13c0075f5c1ed3cc04f6b8285a72ad36  gcc/testsuite/g++.dg/other/pr86669.C
+ e716b31d86bef260a0d00fd877fbc9cf  gcc/testsuite/g++.dg/other/pr88568.C
  2b96e0cda3aaa703c284fca6a0dd72c9  gcc/testsuite/g++.dg/other/pragma-re-1.C
  bdec0c9208af6ee3a9ab1f2c07d3ba19  gcc/testsuite/g++.dg/other/pragma-re-2.C
  f804e6064a0c7cd94d73f58ba8f6e5e0  gcc/testsuite/g++.dg/other/profile1.C
*************** d41d8cd98f00b204e9800998ecf8427e  gcc/te
*** 16529,16534 ****
--- 16575,16582 ----
  a42f209088bbce8d3650be5966861b6b  gcc/testsuite/g++.dg/pch/pch.C
  95603c8965412870090ed14011f4b123  gcc/testsuite/g++.dg/pch/pch.Hs
  537b8069528dfb3dbf4d571c45b9d36e  gcc/testsuite/g++.dg/pch/pch.exp
+ a79b4c14973bc580e45325abf4c19b72  gcc/testsuite/g++.dg/pch/pr90326.C
+ 8733db8bb02cf7abd5d7d07601acc332  gcc/testsuite/g++.dg/pch/pr90326.Hs
  956a76bba7ed55fcdd73d80efdfa4c90  gcc/testsuite/g++.dg/pch/static-1.C
  4aaad0cfa4436b8cd8b37b1bf218edc8  gcc/testsuite/g++.dg/pch/static-1.Hs
  a5379c2bad433698a01b3bc2d5473a2e  gcc/testsuite/g++.dg/pch/system-1.C
*************** dd5b895f9e8e377b3fc861eecf9bdbf7  gcc/te
*** 16668,16674 ****
  ee53985be6eef8ab3747c18a09b14caa  gcc/testsuite/g++.dg/pr71624.C
  09cad9312be77f437ead53868ad169ac  gcc/testsuite/g++.dg/pr71633.C
  8756c72da60c2ac8cdddc20291df82e3  gcc/testsuite/g++.dg/pr71655.C
! 3af641d9468be57e76fd08c60c6f9412  gcc/testsuite/g++.dg/pr71694.C
  1202ce040862ab92e1f0e7f8da8f372a  gcc/testsuite/g++.dg/pr71973-1.C
  4d7bbea7ad49c81e67fcd756ddcfd12f  gcc/testsuite/g++.dg/pr71973-2.C
  77a4316445a154cba3284882042820df  gcc/testsuite/g++.dg/pr71973-3.C
--- 16716,16722 ----
  ee53985be6eef8ab3747c18a09b14caa  gcc/testsuite/g++.dg/pr71624.C
  09cad9312be77f437ead53868ad169ac  gcc/testsuite/g++.dg/pr71633.C
  8756c72da60c2ac8cdddc20291df82e3  gcc/testsuite/g++.dg/pr71655.C
! 70040a9303642cd08929d6db08a0cc2d  gcc/testsuite/g++.dg/pr71694.C
  1202ce040862ab92e1f0e7f8da8f372a  gcc/testsuite/g++.dg/pr71973-1.C
  4d7bbea7ad49c81e67fcd756ddcfd12f  gcc/testsuite/g++.dg/pr71973-2.C
  77a4316445a154cba3284882042820df  gcc/testsuite/g++.dg/pr71973-3.C
*************** b5452fdc9af692c5acb4d9af45519954  gcc/te
*** 16698,16703 ****
--- 16746,16752 ----
  0776b7a6a5995c6b17c86a9c10abbdb2  gcc/testsuite/g++.dg/pr82155.C
  da4464f64c7ae819c4a0629cfaf7095e  gcc/testsuite/g++.dg/pr84279.C
  e4a1820535e55911e89f64e30d107b90  gcc/testsuite/g++.dg/pr85026.C
+ f44929163adaa17a52ef23e11535a9dd  gcc/testsuite/g++.dg/pr88998.C
  80e57549741422847fb3acbd80e38ea8  gcc/testsuite/g++.dg/predict-loop-exit-1.C
  b6e066cc704bbace8cbfa3d84d6416c9  gcc/testsuite/g++.dg/predict-loop-exit-2.C
  2ee9d3e34345a096b88c9c1968c037c7  gcc/testsuite/g++.dg/predict-loop-exit-3.C
*************** ec6c7e65d57e2a70cb1a6852131a0f16  gcc/te
*** 18045,18051 ****
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
  f4ebaa2e9bc5b065a4c81b1ec15efe2c  gcc/testsuite/g++.dg/tls/pr77285-1.C
! e0fc234d5008e949006f7c1d2462ab2d  gcc/testsuite/g++.dg/tls/pr77285-2.C
  98121ea9f83550dc4f25814e30c3a21d  gcc/testsuite/g++.dg/tls/pr79288.C
  a9720fe58f11ddd0e2a21ab5df5a77bf  gcc/testsuite/g++.dg/tls/static-1.C
  29ba155db4cb83d5330b9a806c2cd296  gcc/testsuite/g++.dg/tls/static-1a.cc
--- 18094,18100 ----
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
  f4ebaa2e9bc5b065a4c81b1ec15efe2c  gcc/testsuite/g++.dg/tls/pr77285-1.C
! 2cbcc4da79d109e544b95de73592684e  gcc/testsuite/g++.dg/tls/pr77285-2.C
  98121ea9f83550dc4f25814e30c3a21d  gcc/testsuite/g++.dg/tls/pr79288.C
  a9720fe58f11ddd0e2a21ab5df5a77bf  gcc/testsuite/g++.dg/tls/static-1.C
  29ba155db4cb83d5330b9a806c2cd296  gcc/testsuite/g++.dg/tls/static-1a.cc
*************** e4cfba8fd55d0168821bd21efa0237d8  gcc/te
*** 18063,18068 ****
--- 18112,18132 ----
  99dccd364a36e6a92aff0c835b1005ec  gcc/testsuite/g++.dg/tls/thread_local-wrap4.C
  29af05035afeff433899afc9dd95e242  gcc/testsuite/g++.dg/tls/thread_local1.C
  8c04798ad83e68ad71e341845cf0aeea  gcc/testsuite/g++.dg/tls/thread_local10.C
+ d51480fe7dc0200fc725bf275a051cb5  gcc/testsuite/g++.dg/tls/thread_local11.C
+ 8d34f091643f50841b92580e83aa27fb  gcc/testsuite/g++.dg/tls/thread_local11.h
+ 9ba00c6b2ff009c3c09ac3dc8f87325b  gcc/testsuite/g++.dg/tls/thread_local11a.C
+ 4ee3a501daaa3f91b5a4941105652046  gcc/testsuite/g++.dg/tls/thread_local12a.C
+ 07a03169e8eaaa6a65499c38ca8154a8  gcc/testsuite/g++.dg/tls/thread_local12b.C
+ cfa272153ce2e8b87bddf23c6c971e83  gcc/testsuite/g++.dg/tls/thread_local12c.C
+ 7d539c2fee82717ebf1ad60ba091e890  gcc/testsuite/g++.dg/tls/thread_local12d.C
+ 2f53ea521803b3719811b517b1071942  gcc/testsuite/g++.dg/tls/thread_local12e.C
+ b10c9b604da95af284abb90c70bbe962  gcc/testsuite/g++.dg/tls/thread_local12f.C
+ 2852fc0e74cee314c443e70cb6a4dbf0  gcc/testsuite/g++.dg/tls/thread_local12g.C
+ eec5b49db7ec33fc099a967e0568bb60  gcc/testsuite/g++.dg/tls/thread_local12h.C
+ f7e4853292654f0af6a0a460b8924add  gcc/testsuite/g++.dg/tls/thread_local12i.C
+ 6e16acccf0c9f3e11f613dd140679e49  gcc/testsuite/g++.dg/tls/thread_local12j.C
+ 9eb8b3d800f83f9d7d869d484abd19e6  gcc/testsuite/g++.dg/tls/thread_local12k.C
+ b6d15debf41ad15b105889629ec239cc  gcc/testsuite/g++.dg/tls/thread_local12l.C
  24b7dce2c6b463d883c54b5a853ce0ad  gcc/testsuite/g++.dg/tls/thread_local2.C
  6c980c168dd76bd2823f2ec310b5f47b  gcc/testsuite/g++.dg/tls/thread_local2g.C
  8961fdb81f19276885d5cbcb01b4aa9f  gcc/testsuite/g++.dg/tls/thread_local3.C
*************** a9183140f924e2b97b58b04769243a15  gcc/te
*** 18288,18294 ****
  2719444d1d7a7d86ae85daae86a66833  gcc/testsuite/g++.dg/torture/pr44069.C
  e5fc7e96fce391069c98fe8b6a6e48eb  gcc/testsuite/g++.dg/torture/pr44148.C
  21914f1786b649768c65385d18cbda0c  gcc/testsuite/g++.dg/torture/pr44206.C
! 61a1cfe01bbf4dc4b73d344cd112a208  gcc/testsuite/g++.dg/torture/pr44295.C
  7063a1d0e2e7d10ebad128af0ec171f1  gcc/testsuite/g++.dg/torture/pr44357.C
  1be5987e0648f5a325798384c799425c  gcc/testsuite/g++.dg/torture/pr44492.C
  a33cbb24fc74fe5e413c5ca21e00db9d  gcc/testsuite/g++.dg/torture/pr44535.C
--- 18352,18358 ----
  2719444d1d7a7d86ae85daae86a66833  gcc/testsuite/g++.dg/torture/pr44069.C
  e5fc7e96fce391069c98fe8b6a6e48eb  gcc/testsuite/g++.dg/torture/pr44148.C
  21914f1786b649768c65385d18cbda0c  gcc/testsuite/g++.dg/torture/pr44206.C
! db2fd8e2b4b769db6007f9091e0777d7  gcc/testsuite/g++.dg/torture/pr44295.C
  7063a1d0e2e7d10ebad128af0ec171f1  gcc/testsuite/g++.dg/torture/pr44357.C
  1be5987e0648f5a325798384c799425c  gcc/testsuite/g++.dg/torture/pr44492.C
  a33cbb24fc74fe5e413c5ca21e00db9d  gcc/testsuite/g++.dg/torture/pr44535.C
*************** dea7b576a4c2e4d3fcde36a40bb8ba54  gcc/te
*** 18538,18543 ****
--- 18602,18612 ----
  cbc6cd52e3c07bb0cbd331817134fe42  gcc/testsuite/g++.dg/torture/pr85496.C
  c004bb94adc4b3e0994cc5b6d5ebfb2c  gcc/testsuite/g++.dg/torture/pr86763.C
  7f01f3aa3a86678c9ff69f4ecb09c5c8  gcc/testsuite/g++.dg/torture/pr87014.C
+ dbe58e15424b476b932c58cb5bc16046  gcc/testsuite/g++.dg/torture/pr88149.C
+ cf4f053f829cc77941d9499636dba788  gcc/testsuite/g++.dg/torture/pr88861.C
+ 28251f0199f94a1606cac696e1db484b  gcc/testsuite/g++.dg/torture/pr89303.C
+ 6295f2521ee059610fe7d8e12800e20b  gcc/testsuite/g++.dg/torture/pr89698.C
+ 922274fa2bea46eb7cee843b1f139ab8  gcc/testsuite/g++.dg/torture/pr90194.C
  389892c1f2e87d69449479d1b053c70c  gcc/testsuite/g++.dg/torture/predcom-1.C
  d28910105d9c9253d94d70eacd5e19d4  gcc/testsuite/g++.dg/torture/pushpop_macro.C
  a1b47b9c3e69d79d1895ebc4fd11032b  gcc/testsuite/g++.dg/torture/stackalign/check.h
*************** e8bc9d8d25d9976d39a6ac63446f8a90  gcc/te
*** 18855,18860 ****
--- 18924,18930 ----
  9d4cf2cbb1dc2baf567abd24e6896123  gcc/testsuite/g++.dg/ubsan/pr81929.C
  1e73d2818207263906c21f51263036de  gcc/testsuite/g++.dg/ubsan/pr83987-2.C
  18c06ad656504d030053c0f32b2e5da2  gcc/testsuite/g++.dg/ubsan/pr83987.C
+ b418b9ea8faf4e227b8682929711cea2  gcc/testsuite/g++.dg/ubsan/pr89234.C
  23b03c04f7b3df05a2e3c261dbfbc91d  gcc/testsuite/g++.dg/ubsan/return-1.C
  c729687b59770dc8f9e0991370cb1879  gcc/testsuite/g++.dg/ubsan/return-2.C
  40257a16173db28137a5538f88bfea0e  gcc/testsuite/g++.dg/ubsan/return-3.C
*************** bbd48a1573bd960959a8345bfc55d5db  gcc/te
*** 18871,18876 ****
--- 18941,18947 ----
  5217088a7dd4248f6e9f0170ee0f262b  gcc/testsuite/g++.dg/ubsan/vptr-1.C
  5de2b1282f667edcca7c8b102d137b0d  gcc/testsuite/g++.dg/ubsan/vptr-10.C
  7871fdd28f8d26bc692ef38fd24d6573  gcc/testsuite/g++.dg/ubsan/vptr-11.C
+ eb65a43bfca2604f5a8b2e2f09212f46  gcc/testsuite/g++.dg/ubsan/vptr-14.C
  cef046f562c0a23eb331cea94cd5b44f  gcc/testsuite/g++.dg/ubsan/vptr-2.C
  729147822cd9bf5bf718456c1dbff28d  gcc/testsuite/g++.dg/ubsan/vptr-3.C
  6d748dbe9831f330d94427b44994cd9f  gcc/testsuite/g++.dg/ubsan/vptr-4.C
*************** c471f7c58d47cda3d9bff2cd6b0b4a01  gcc/te
*** 24279,24284 ****
--- 24350,24356 ----
  d47f5879509ae9dfb39ea1ee1063230e  gcc/testsuite/gcc.c-torture/compile/pr70355.c
  86500b6aaf9f75325f0cad332855ed1b  gcc/testsuite/gcc.c-torture/compile/pr70633.c
  6aa2a7d0fe94be24238130841efe702b  gcc/testsuite/gcc.c-torture/compile/pr70916.c
+ 5a1019493cad94310cfe0d0eea9fbcb0  gcc/testsuite/gcc.c-torture/compile/pr71109.c
  329f204bcd03c83da441493cb753c554  gcc/testsuite/gcc.c-torture/compile/pr71112.c
  25ea11998401d4aac4c189df9a53715b  gcc/testsuite/gcc.c-torture/compile/pr71272.c
  5dd5f6724944ca1e08ed8793f7052be3  gcc/testsuite/gcc.c-torture/compile/pr71295.c
*************** d2abfdabdbeb6670f7a517aaa74714b3  gcc/te
*** 24290,24296 ****
  231fb44a71ba7441d73d3169fe8d727a  gcc/testsuite/gcc.c-torture/compile/pr72742.c
  4804583cdbcf43906c92312b12f102ec  gcc/testsuite/gcc.c-torture/compile/pr72749.c
  05499a956abf0168b43207b10ff55b6f  gcc/testsuite/gcc.c-torture/compile/pr72771.c
! bd9f10a73e289f0fdac2ce08641816f0  gcc/testsuite/gcc.c-torture/compile/pr72802.c
  69f131eecfe2e8d743fa8534acd3d542  gcc/testsuite/gcc.c-torture/compile/pr77901.c
  1b4de683f3cdcab42ba24cd8b0866196  gcc/testsuite/gcc.c-torture/compile/pr77929.c
  aadd21b68c00eaa36b449d0c7b5c4a14  gcc/testsuite/gcc.c-torture/compile/pr78162.c
--- 24362,24368 ----
  231fb44a71ba7441d73d3169fe8d727a  gcc/testsuite/gcc.c-torture/compile/pr72742.c
  4804583cdbcf43906c92312b12f102ec  gcc/testsuite/gcc.c-torture/compile/pr72749.c
  05499a956abf0168b43207b10ff55b6f  gcc/testsuite/gcc.c-torture/compile/pr72771.c
! cc75623377210ae96adbf2222955e9c4  gcc/testsuite/gcc.c-torture/compile/pr72802.c
  69f131eecfe2e8d743fa8534acd3d542  gcc/testsuite/gcc.c-torture/compile/pr77901.c
  1b4de683f3cdcab42ba24cd8b0866196  gcc/testsuite/gcc.c-torture/compile/pr77929.c
  aadd21b68c00eaa36b449d0c7b5c4a14  gcc/testsuite/gcc.c-torture/compile/pr78162.c
*************** d2821401144573975d9f5852f6fc676b  gcc/te
*** 24321,24331 ****
--- 24393,24413 ----
  c66006d27d9a3bb3a5e84e943d10d273  gcc/testsuite/gcc.c-torture/compile/pr82096.c
  196daa7de18c0a8ecd7788d3e482cc7b  gcc/testsuite/gcc.c-torture/compile/pr82337.c
  793a4f5f0940ddfbb7bf0f7247486342  gcc/testsuite/gcc.c-torture/compile/pr82549.c
+ a08af5da6dce88ef7b897f14c7b60b04  gcc/testsuite/gcc.c-torture/compile/pr82564.c
  e7f459c4af5a8e616ac0225605a4c7c0  gcc/testsuite/gcc.c-torture/compile/pr83448.c
  88a8aece4f21f4a06af4abec9669bc53  gcc/testsuite/gcc.c-torture/compile/pr84425.c
  1e2f6944d3ccc384e22d3ecf9dd66f9e  gcc/testsuite/gcc.c-torture/compile/pr84860.c
  46a9146c4c4cdf7759a366c4deb686dd  gcc/testsuite/gcc.c-torture/compile/pr85945.c
  c07cb6bbf144841ec62369603efc6e0b  gcc/testsuite/gcc.c-torture/compile/pr87473.c
+ 7bb746aff7daab01a69c68ac718afce2  gcc/testsuite/gcc.c-torture/compile/pr87647.c
+ d16a0436ee4e7c019d745cad343ff18b  gcc/testsuite/gcc.c-torture/compile/pr89412.c
+ fc86c5909e9a80383dab6366a0f8648d  gcc/testsuite/gcc.c-torture/compile/pr89663-1.c
+ 4179c42c98ca2dbabe246deb1ea1ad0e  gcc/testsuite/gcc.c-torture/compile/pr89663-2.c
+ 85c74cdcb2f35d038f3606a817979061  gcc/testsuite/gcc.c-torture/compile/pr89703-1.c
+ 834bb0f0fe637b3f72cd75082e139b0a  gcc/testsuite/gcc.c-torture/compile/pr89703-2.c
+ 9e0af4f9e229aa8a0151b863c40f3072  gcc/testsuite/gcc.c-torture/compile/pr89998-1.c
+ 28107e4eddc0810b8c90657b7cca7ab0  gcc/testsuite/gcc.c-torture/compile/pr89998-2.c
+ 99639c63132deca7d94430de65a54739  gcc/testsuite/gcc.c-torture/compile/pr90139.c
  9611ffa8936d9c80d0a9ccde8dd093b2  gcc/testsuite/gcc.c-torture/compile/pret-arg.c
  b9e6ce52b90320c1c3803c25113844c5  gcc/testsuite/gcc.c-torture/compile/pta-1.c
  ed716c1d1727fc2c748162e0cbc4ee47  gcc/testsuite/gcc.c-torture/compile/ptr-conv-1.c
*************** f8b802f2d501bc5da713d9ae58a70c11  gcc/te
*** 24906,24911 ****
--- 24988,24995 ----
  c498b868df794aac4975b6925c3f0d24  gcc/testsuite/gcc.c-torture/execute/20180131-1.c
  a024382373a506e7761148108043c429  gcc/testsuite/gcc.c-torture/execute/20180226-1.c
  03e6abf4c7580822fb8fcbb32c3bb34a  gcc/testsuite/gcc.c-torture/execute/20181120-1.c
+ 7150fff7ca016cb22dde70648cd5b481  gcc/testsuite/gcc.c-torture/execute/20190820-1.c
+ 2e368329bfad3d99e406eade7d55032d  gcc/testsuite/gcc.c-torture/execute/20191023-1.c
  65f01ac7346bd4d47ed9c1ca94ab74ff  gcc/testsuite/gcc.c-torture/execute/900409-1.c
  5aefab4daab0bd29ecf2a389f3c44f40  gcc/testsuite/gcc.c-torture/execute/920202-1.c
  655936aaf9a63e991a555cbc16738485  gcc/testsuite/gcc.c-torture/execute/920302-1.c
*************** caa74354806f94b1777d3d438547d909  gcc/te
*** 25242,25248 ****
  d7d9ce89ee3d3fe0e8938f62790f051e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c
  1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c
  8784d3bd9b264b3c2abfb7b7ea25ccb6  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c
! 0e3e56a5232485824e68deda49cd59dd  gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
  82dc8c0cc07405b06eb5eee9b43cb713  gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
  f36e146a2aececdc84d9199d53a363ec  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c
  8b5a662c0134cd00115a5866e1c0b6c9  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c
--- 25326,25332 ----
  d7d9ce89ee3d3fe0e8938f62790f051e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-2.c
  1dda6f7a5d9ce23a5db5f59c430ae29e  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3-lib.c
  8784d3bd9b264b3c2abfb7b7ea25ccb6  gcc/testsuite/gcc.c-torture/execute/builtins/abs-3.c
! dd3837d08a72b59f37168df4881ac453  gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
  82dc8c0cc07405b06eb5eee9b43cb713  gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
  f36e146a2aececdc84d9199d53a363ec  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1-lib.c
  8b5a662c0134cd00115a5866e1c0b6c9  gcc/testsuite/gcc.c-torture/execute/builtins/complex-1.c
*************** ebba06cada42b66940cf9eb3e3d99c95  gcc/te
*** 26040,26045 ****
--- 26124,26133 ----
  7ef8799b809624e5fa67184df448ee45  gcc/testsuite/gcc.c-torture/execute/pr85529-2.c
  3ab7b8879941a2bdaa3491b532cd4a8d  gcc/testsuite/gcc.c-torture/execute/pr86231.c
  be5244d3595e8650a26f33594260da75  gcc/testsuite/gcc.c-torture/execute/pr87623.c
+ 02748f1c49306654aaf30f2433dce5e7  gcc/testsuite/gcc.c-torture/execute/pr88739.c
+ f864350b54f06af7e11f09f29c9e0976  gcc/testsuite/gcc.c-torture/execute/pr89195.c
+ 5235b3e2d6dd776b53d6a44ba5933a8a  gcc/testsuite/gcc.c-torture/execute/pr90949.c
+ 7f239d011b9e98943acdc8e3437ed19c  gcc/testsuite/gcc.c-torture/execute/pr91137.c
  85441b3599a9d20a4ede0f10c54a4e6b  gcc/testsuite/gcc.c-torture/execute/printf-1.c
  54f80bf321bfe46d44040493d9821a03  gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c
  f397d221ccf3a7ce631cf42078dfadb5  gcc/testsuite/gcc.c-torture/execute/pta-field-1.c
*************** eb5b0c5d1ba0f0b26668b834ca04262c  gcc/te
*** 26755,26761 ****
  f79fea549fa19de730b00d37d3282778  gcc/testsuite/gcc.dg/asan/pr80659.c
  643d751ee068e33d234d5fd6b48ee720  gcc/testsuite/gcc.dg/asan/pr81186.c
  d53f314be67b41e00cd6234bc47d1a8f  gcc/testsuite/gcc.dg/asan/pr81224.c
! 668c2f9b583b3061bd97cdf975229771  gcc/testsuite/gcc.dg/asan/pr81923.c
  650fc3032a7e08987ca619b55b3a366b  gcc/testsuite/gcc.dg/asan/pr82545.c
  da89dc3f01ef08b35253f1daef462bec  gcc/testsuite/gcc.dg/asan/sancov-1.c
  a765628a82a2516225ae1dd368e4c8fb  gcc/testsuite/gcc.dg/asan/use-after-scope-1.c
--- 26843,26849 ----
  f79fea549fa19de730b00d37d3282778  gcc/testsuite/gcc.dg/asan/pr80659.c
  643d751ee068e33d234d5fd6b48ee720  gcc/testsuite/gcc.dg/asan/pr81186.c
  d53f314be67b41e00cd6234bc47d1a8f  gcc/testsuite/gcc.dg/asan/pr81224.c
! db5432c9efc7dc40270438aeee76eb69  gcc/testsuite/gcc.dg/asan/pr81923.c
  650fc3032a7e08987ca619b55b3a366b  gcc/testsuite/gcc.dg/asan/pr82545.c
  da89dc3f01ef08b35253f1daef462bec  gcc/testsuite/gcc.dg/asan/sancov-1.c
  a765628a82a2516225ae1dd368e4c8fb  gcc/testsuite/gcc.dg/asan/use-after-scope-1.c
*************** bcbbadd260cb26dea44e22620dc945b0  gcc/te
*** 26788,26794 ****
  e370903640e76bf4ef407aafe0286689  gcc/testsuite/gcc.dg/asm-fs-1.c
  6c3cba24c3d3fbf660605697935b9be5  gcc/testsuite/gcc.dg/asm-names.c
  9c3b7de14ce6ac49627b91e2808376e5  gcc/testsuite/gcc.dg/asm-pr24146.c
! 30c0db8f2dbd87c0958f9d1f061177a1  gcc/testsuite/gcc.dg/asm-qual-1.c
  db0a8e014eddd1da9a78a03ddc2cf187  gcc/testsuite/gcc.dg/asm-wide-1.c
  085c27a754d9d7ab0376729bd31a4ffe  gcc/testsuite/gcc.dg/asr_div1.c
  24f7a4c97b8b88d8299ad100f545b5bf  gcc/testsuite/gcc.dg/assign-warn-1.c
--- 26876,26884 ----
  e370903640e76bf4ef407aafe0286689  gcc/testsuite/gcc.dg/asm-fs-1.c
  6c3cba24c3d3fbf660605697935b9be5  gcc/testsuite/gcc.dg/asm-names.c
  9c3b7de14ce6ac49627b91e2808376e5  gcc/testsuite/gcc.dg/asm-pr24146.c
! 72dcca850f2740e706c397896bf108ae  gcc/testsuite/gcc.dg/asm-qual-1.c
! dca9a54735325b919335c863e6e479ea  gcc/testsuite/gcc.dg/asm-qual-2.c
! 3319a351e393bcc9ae1fa119f0f275af  gcc/testsuite/gcc.dg/asm-qual-3.c
  db0a8e014eddd1da9a78a03ddc2cf187  gcc/testsuite/gcc.dg/asm-wide-1.c
  085c27a754d9d7ab0376729bd31a4ffe  gcc/testsuite/gcc.dg/asr_div1.c
  24f7a4c97b8b88d8299ad100f545b5bf  gcc/testsuite/gcc.dg/assign-warn-1.c
*************** a345c8424d097325ceddaefa74a387d5  gcc/te
*** 26970,26975 ****
--- 27060,27066 ----
  35bf77a6f395ee231591b83871e4d57c  gcc/testsuite/gcc.dg/autopar/pr69109.c
  d4c6704efcf13b06e8298878fac4997e  gcc/testsuite/gcc.dg/autopar/pr69110.c
  0a5194faeff35d018f0826c0ededa45b  gcc/testsuite/gcc.dg/autopar/pr69426.c
+ 3d4c01d8ebd6016af606107bc5ba65f5  gcc/testsuite/gcc.dg/autopar/pr91162.c
  cfcabb1d73fb9955200dafe2f7cd4eda  gcc/testsuite/gcc.dg/autopar/reduc-1.c
  bd8dcababb2b878b4b2e6a7b44270723  gcc/testsuite/gcc.dg/autopar/reduc-1char.c
  faacb19babd5a7b53cfd57e60279fa11  gcc/testsuite/gcc.dg/autopar/reduc-1short.c
*************** fefb3e35a8a1d6bc164a6eb33d7fdbb6  gcc/te
*** 27949,27955 ****
  99a74985c69613ac4a42ee34fb74051f  gcc/testsuite/gcc.dg/cpp/include5.c
  407474d1770120e01043176212576177  gcc/testsuite/gcc.dg/cpp/include6.c
  b169efc722fc4f26173ce092c4172e89  gcc/testsuite/gcc.dg/cpp/include7.c
! 10a60705ad3a511b1b8d4078bd299c37  gcc/testsuite/gcc.dg/cpp/isysroot-1.c
  d2356c14719220729fca6a1807576fd6  gcc/testsuite/gcc.dg/cpp/isysroot-2.c
  6aec7ee07d2c4b1e4dbca7996c29c33d  gcc/testsuite/gcc.dg/cpp/lexident.c
  ed521ab2015dc11905c0db0f47732ede  gcc/testsuite/gcc.dg/cpp/lexnum.c
--- 28040,28046 ----
  99a74985c69613ac4a42ee34fb74051f  gcc/testsuite/gcc.dg/cpp/include5.c
  407474d1770120e01043176212576177  gcc/testsuite/gcc.dg/cpp/include6.c
  b169efc722fc4f26173ce092c4172e89  gcc/testsuite/gcc.dg/cpp/include7.c
! d5a926e3d208d77f347b69e459787e36  gcc/testsuite/gcc.dg/cpp/isysroot-1.c
  d2356c14719220729fca6a1807576fd6  gcc/testsuite/gcc.dg/cpp/isysroot-2.c
  6aec7ee07d2c4b1e4dbca7996c29c33d  gcc/testsuite/gcc.dg/cpp/lexident.c
  ed521ab2015dc11905c0db0f47732ede  gcc/testsuite/gcc.dg/cpp/lexnum.c
*************** fe82f155f148a27e0e5e22f4daa9c8a9  gcc/te
*** 28261,28267 ****
  ceabc2be17934f64bed1ff4d748cd44a  gcc/testsuite/gcc.dg/cpp/unc4.c
  34fc89f1d246197a5b7c09184e223c2d  gcc/testsuite/gcc.dg/cpp/undef-opt-1.c
  a4a59949f81e7c481a6a71d7bf69ce8a  gcc/testsuite/gcc.dg/cpp/undef2.c
! b580fc14655d151bc7323c9844094653  gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h
  b2573d118970340cf652e946e2f42a3c  gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c
  2adb7d5686ff190b39e11527a9b2fece  gcc/testsuite/gcc.dg/cpp/vararg1.c
  7d4c3e4f46665b8a19524995ee62bdf7  gcc/testsuite/gcc.dg/cpp/vararg2.c
--- 28352,28358 ----
  ceabc2be17934f64bed1ff4d748cd44a  gcc/testsuite/gcc.dg/cpp/unc4.c
  34fc89f1d246197a5b7c09184e223c2d  gcc/testsuite/gcc.dg/cpp/undef-opt-1.c
  a4a59949f81e7c481a6a71d7bf69ce8a  gcc/testsuite/gcc.dg/cpp/undef2.c
! b580fc14655d151bc7323c9844094653  gcc/testsuite/gcc.dg/cpp/usr/include/example.h
  b2573d118970340cf652e946e2f42a3c  gcc/testsuite/gcc.dg/cpp/utf8-5byte-1.c
  2adb7d5686ff190b39e11527a9b2fece  gcc/testsuite/gcc.dg/cpp/vararg1.c
  7d4c3e4f46665b8a19524995ee62bdf7  gcc/testsuite/gcc.dg/cpp/vararg2.c
*************** c9fb88e0f1b5c073a2385125ee506c3d  gcc/te
*** 28318,28328 ****
  fb5a1322bd685744938894a0d61c31cd  gcc/testsuite/gcc.dg/darwin-ld-3.c
  9403f2a573873e69a5f66d792f2002b9  gcc/testsuite/gcc.dg/darwin-ld-4.c
  ac166dddd60ee5e26796af85796e8ce4  gcc/testsuite/gcc.dg/darwin-ld-5.c
! fe43be65e311390f6095588e6e663238  gcc/testsuite/gcc.dg/darwin-minversion-1.c
  8d9b0ae7630ed3e5ea62d8f528be9535  gcc/testsuite/gcc.dg/darwin-minversion-10.c
  2710c165e530b0df4195d645b6818a14  gcc/testsuite/gcc.dg/darwin-minversion-11.c
  a83187c00bd86f2436c9e84b40b88937  gcc/testsuite/gcc.dg/darwin-minversion-12.c
! 944161eec9e0dffb752119544a188705  gcc/testsuite/gcc.dg/darwin-minversion-2.c
  7f95fd24b4c6320826303eb18bf069e5  gcc/testsuite/gcc.dg/darwin-minversion-3.c
  6397e1571ab9acb562272433e8b604f5  gcc/testsuite/gcc.dg/darwin-minversion-4.c
  f82c26e49414aa09e3346f397544e64e  gcc/testsuite/gcc.dg/darwin-minversion-5.c
--- 28409,28419 ----
  fb5a1322bd685744938894a0d61c31cd  gcc/testsuite/gcc.dg/darwin-ld-3.c
  9403f2a573873e69a5f66d792f2002b9  gcc/testsuite/gcc.dg/darwin-ld-4.c
  ac166dddd60ee5e26796af85796e8ce4  gcc/testsuite/gcc.dg/darwin-ld-5.c
! f88d22acd71cc3219834b77615cedbc8  gcc/testsuite/gcc.dg/darwin-minversion-1.c
  8d9b0ae7630ed3e5ea62d8f528be9535  gcc/testsuite/gcc.dg/darwin-minversion-10.c
  2710c165e530b0df4195d645b6818a14  gcc/testsuite/gcc.dg/darwin-minversion-11.c
  a83187c00bd86f2436c9e84b40b88937  gcc/testsuite/gcc.dg/darwin-minversion-12.c
! 0ee0b5bc033ff95d344923707892a0f3  gcc/testsuite/gcc.dg/darwin-minversion-2.c
  7f95fd24b4c6320826303eb18bf069e5  gcc/testsuite/gcc.dg/darwin-minversion-3.c
  6397e1571ab9acb562272433e8b604f5  gcc/testsuite/gcc.dg/darwin-minversion-4.c
  f82c26e49414aa09e3346f397544e64e  gcc/testsuite/gcc.dg/darwin-minversion-5.c
*************** ee94511375797117140ca777fd1695b1  gcc/te
*** 28330,28341 ****
  704c9a2dca0a451cca6e5855f7f2347f  gcc/testsuite/gcc.dg/darwin-minversion-7.c
  5a8b775f8ce1e0cafb8782fbc39b58e4  gcc/testsuite/gcc.dg/darwin-minversion-8.c
  aa9dfa39c42ef65a88c0a708412fb842  gcc/testsuite/gcc.dg/darwin-minversion-9.c
  333be43e38c5b8f9c8bde5d01493902a  gcc/testsuite/gcc.dg/darwin-sections.c
  3cfa6daebed9a12884613012f50433e4  gcc/testsuite/gcc.dg/darwin-segaddr.c
  c9bd4478d375a6bea777dcc7c9667d5a  gcc/testsuite/gcc.dg/darwin-version-1.c
  9145b589b54240035dacb7540309d62e  gcc/testsuite/gcc.dg/darwin-weakimport-1.c
  bda7de2e2fd6472aa3ffe7873407e58d  gcc/testsuite/gcc.dg/darwin-weakimport-2.c
! 17dc761b8be4e29841270d6ef57c59a7  gcc/testsuite/gcc.dg/darwin-weakimport-3.c
  d8aef0c8953934ea061fdce6e985cdf1  gcc/testsuite/gcc.dg/darwin-weakref-1.c
  4e2720fdf9f84481a42dcd33f4b6d7a5  gcc/testsuite/gcc.dg/debug/20000503-1.c
  eeacdefaf2f5fad28609bc9a156918cb  gcc/testsuite/gcc.dg/debug/20010207-1.c
--- 28421,28433 ----
  704c9a2dca0a451cca6e5855f7f2347f  gcc/testsuite/gcc.dg/darwin-minversion-7.c
  5a8b775f8ce1e0cafb8782fbc39b58e4  gcc/testsuite/gcc.dg/darwin-minversion-8.c
  aa9dfa39c42ef65a88c0a708412fb842  gcc/testsuite/gcc.dg/darwin-minversion-9.c
+ 5ca3ca317094442241bdcaf1320473d2  gcc/testsuite/gcc.dg/darwin-minversion-link.c
  333be43e38c5b8f9c8bde5d01493902a  gcc/testsuite/gcc.dg/darwin-sections.c
  3cfa6daebed9a12884613012f50433e4  gcc/testsuite/gcc.dg/darwin-segaddr.c
  c9bd4478d375a6bea777dcc7c9667d5a  gcc/testsuite/gcc.dg/darwin-version-1.c
  9145b589b54240035dacb7540309d62e  gcc/testsuite/gcc.dg/darwin-weakimport-1.c
  bda7de2e2fd6472aa3ffe7873407e58d  gcc/testsuite/gcc.dg/darwin-weakimport-2.c
! 616f3eafcf2947e4dd54e569654c0721  gcc/testsuite/gcc.dg/darwin-weakimport-3.c
  d8aef0c8953934ea061fdce6e985cdf1  gcc/testsuite/gcc.dg/darwin-weakref-1.c
  4e2720fdf9f84481a42dcd33f4b6d7a5  gcc/testsuite/gcc.dg/debug/20000503-1.c
  eeacdefaf2f5fad28609bc9a156918cb  gcc/testsuite/gcc.dg/debug/20010207-1.c
*************** f3585dc62ae648c6def8f07287ea7b86  gcc/te
*** 28450,28455 ****
--- 28542,28548 ----
  eb3e8d32cc98a65b9bf903f485425719  gcc/testsuite/gcc.dg/debug/dwarf2/pr66482.c
  f03dc9944066917662e80164971b7db3  gcc/testsuite/gcc.dg/debug/dwarf2/pr71855.c
  adcb04100f301278ba60a4cc3b3966e4  gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c
+ 3fe83570daf6a275058d5254e5811a58  gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c
  04ed708ea8db6a152acb5ebe98de283b  gcc/testsuite/gcc.dg/debug/dwarf2/prod-options.c
  84c94e8435cec0cb1a4a8e83a9c3633d  gcc/testsuite/gcc.dg/debug/dwarf2/short-circuit.c
  fd5753c0c85e2e3c862b46c2f851ad80  gcc/testsuite/gcc.dg/debug/dwarf2/sso.c
*************** f04843ea87c9c55accf161e9ee241f15  gcc/te
*** 28498,28503 ****
--- 28591,28597 ----
  1a1a5a16846e5e1f309692815729ce1d  gcc/testsuite/gcc.dg/debug/pr78587.c
  2444e8441e19d7a1f14287f247114ea3  gcc/testsuite/gcc.dg/debug/pr80321.c
  240d53072f9b064ae6ea8d4d1b72f427  gcc/testsuite/gcc.dg/debug/pr85252.c
+ a9e9af5e94d12834ec3ce411c747df0d  gcc/testsuite/gcc.dg/debug/pr89704.c
  e39702ba4ac8cdf1b4d7895fa15c394f  gcc/testsuite/gcc.dg/debug/redecl-1.c
  60c3f3165dda429cbc7646a06969d16c  gcc/testsuite/gcc.dg/debug/redecl-2.c
  175fa916ededdb94d71518eecbe6fa1a  gcc/testsuite/gcc.dg/debug/redecl-3.c
*************** c810b7347465014e305c14700d42a85b  gcc/te
*** 29198,29203 ****
--- 29292,29298 ----
  17f7da7684b46a98f721a4c305549405  gcc/testsuite/gcc.dg/gomp/block-7.c
  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
  f4006970812013ba6dd58f3ad04c03c6  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
*************** a85b0288fea2d86fdb34d6e61c8fb5c4  gcc/te
*** 29333,29340 ****
--- 29428,29450 ----
  bc9fedcf7d4ab83a9eac1b425a07e995  gcc/testsuite/gcc.dg/gomp/pr68128-2.c
  b6e412b1e41464bf3c6ad63059710985  gcc/testsuite/gcc.dg/gomp/pr68640.c
  94d52afbc97b558472c16b172f9755e9  gcc/testsuite/gcc.dg/gomp/pr72781.c
+ 789ef66f070336e211866c3e5ec1dc53  gcc/testsuite/gcc.dg/gomp/pr78884.c
  3dfa5450530e68792fc799c17f83fc46  gcc/testsuite/gcc.dg/gomp/pr81768-1.c
  43bccc2e99a04235390798e75d04c6d1  gcc/testsuite/gcc.dg/gomp/pr81768-2.c
+ c2238ef3622834a9d2e9a1dd614ede1c  gcc/testsuite/gcc.dg/gomp/pr85594.c
+ 42a7faa8338896e947caadf259df6c7f  gcc/testsuite/gcc.dg/gomp/pr87887-1.c
+ 5f387fcdd6742ba35feb45a289816ad9  gcc/testsuite/gcc.dg/gomp/pr87887-2.c
+ 213f498fc1d5c80eea0bfc72166e91cf  gcc/testsuite/gcc.dg/gomp/pr87895-1.c
+ 1b395b6db340a30b301bd0c04cdd4e04  gcc/testsuite/gcc.dg/gomp/pr87895-2.c
+ b462e4f21233e920632f7d3698a11d53  gcc/testsuite/gcc.dg/gomp/pr87895-3.c
+ e5b0e398ad8cc5330e9e79662a929b72  gcc/testsuite/gcc.dg/gomp/pr88105.c
+ 522ead0f43ee7eaed965b981a599f4b0  gcc/testsuite/gcc.dg/gomp/pr88107.c
+ 48e095ec77c345c13667bb35f1e78fa7  gcc/testsuite/gcc.dg/gomp/pr88415.c
+ d7416cac7d67876a0d0d2ddd8b64c9d9  gcc/testsuite/gcc.dg/gomp/pr88553.c
+ 5562aec5b8ddedbdc4184f8c90685937  gcc/testsuite/gcc.dg/gomp/pr89104.c
+ 0c7376f88d06747513e9db1619206c72  gcc/testsuite/gcc.dg/gomp/pr89246-1.c
+ c60bd6d06d92414ccd01870addd85132  gcc/testsuite/gcc.dg/gomp/pr89246-2.c
+ ef3626bfd9a01c1b3e4b0d6ca7d55c1a  gcc/testsuite/gcc.dg/gomp/pr89796.c
  32d1b4709fce01c7b0f596da5c040f2a  gcc/testsuite/gcc.dg/gomp/preprocess-1.c
  5a96f232ac76ad6d8182f67c3f3a4acf  gcc/testsuite/gcc.dg/gomp/reduction-1.c
  536359d59fc418a1570a6d8574a66ca1  gcc/testsuite/gcc.dg/gomp/sections-1.c
*************** febbd295db57a2123e78312360a0adee  gcc/te
*** 29562,29567 ****
--- 29672,29678 ----
  1b9515edc4478a8ec28b75c7088351fc  gcc/testsuite/gcc.dg/graphite/pr79977.c
  bb10feccbec2eee90b555fb13034016d  gcc/testsuite/gcc.dg/graphite/pr80167.c
  33c3065b57699d5f72a22e77ad90ad1b  gcc/testsuite/gcc.dg/graphite/pr80906.c
+ 6e5ed82f12c16fde0ef98df0e521f12e  gcc/testsuite/gcc.dg/graphite/pr84552.c
  16574d3df752f79e2361bed11b712e31  gcc/testsuite/gcc.dg/graphite/run-id-1.c
  69c11dc302a921c92977db519167bec1  gcc/testsuite/gcc.dg/graphite/run-id-2.c
  84a75a861553ce658d85018a3ced0a6b  gcc/testsuite/gcc.dg/graphite/run-id-3.c
*************** e9cb995bb14a5d52b9213cdc06457285  gcc/te
*** 29790,29795 ****
--- 29901,29908 ----
  74f4a8ee94b6280cdb6f8d9dfe9cdd8f  gcc/testsuite/gcc.dg/inline-38.c
  6f71bec20367f7ca38fe893953d25024  gcc/testsuite/gcc.dg/inline-39.c
  2eed98dfcc022044e610af32e1c937c1  gcc/testsuite/gcc.dg/inline-4.c
+ b1da3859103cd524b6f06a987437986c  gcc/testsuite/gcc.dg/inline-40.c
+ 11fe410fd32445cd4e9ec94bae8bef30  gcc/testsuite/gcc.dg/inline-41.c
  7fc691c96ff167ea4acaf530fdfd717a  gcc/testsuite/gcc.dg/inline-5.c
  96b467a4117442b64211f4f3411003a4  gcc/testsuite/gcc.dg/inline-6.c
  ba66b4f621efcd9fab8ee6d7a3de2f82  gcc/testsuite/gcc.dg/inline-7.c
*************** be5489532ad8117e567e1ea5c8ad4b6a  gcc/te
*** 29915,29920 ****
--- 30028,30034 ----
  c6293a456f4127b16f05d471e3cecb9e  gcc/testsuite/gcc.dg/ipa/ipcp-2.c
  2b28e86ef61a2946185db1daab03a644  gcc/testsuite/gcc.dg/ipa/ipcp-3.c
  5204e6cd28c18692d9b78b4d46f02179  gcc/testsuite/gcc.dg/ipa/ipcp-4.c
+ 1d6188a3ce8385221389a004eb653357  gcc/testsuite/gcc.dg/ipa/ipcp-5.c
  869bd19c205f2ccf580f8b640709d232  gcc/testsuite/gcc.dg/ipa/ipcp-agg-1.c
  c71233f7e2ddb4a8889ca1fe57ea62cc  gcc/testsuite/gcc.dg/ipa/ipcp-agg-2.c
  b30637ee2dfddd2f33e1f6f41de2efa3  gcc/testsuite/gcc.dg/ipa/ipcp-agg-3.c
*************** fa8ddbcc7285d68bc45e806fa10c5aa5  gcc/te
*** 29970,29975 ****
--- 30084,30090 ----
  e7fc4be7576352c4cd0c02e049c49640  gcc/testsuite/gcc.dg/ipa/pr81696.c
  e69e8e71bc18aee250eb3863dee58b57  gcc/testsuite/gcc.dg/ipa/pr82001.c
  c5a982844b74e3d73d7511fd2cb5ce36  gcc/testsuite/gcc.dg/ipa/pr82808.c
+ 4d2a385eed9a0157f2820e93f227f411  gcc/testsuite/gcc.dg/ipa/pr88214.c
  8294157f7e95bf0310146944166a33f7  gcc/testsuite/gcc.dg/ipa/propalign-1.c
  60d5533330395d9f80d7f318856ba6ab  gcc/testsuite/gcc.dg/ipa/propalign-2.c
  b3c9ac7648ec0372964326c8ec24be99  gcc/testsuite/gcc.dg/ipa/propalign-3.c
*************** e9ff238723b78ce9df572712d231be5f  gcc/te
*** 30301,30307 ****
  4f9eacf4c94ac2a58a8d84f093e2c490  gcc/testsuite/gcc.dg/lto/pr83954.h
  197d1eb297bc02eb3d0ed7634f1bcdf5  gcc/testsuite/gcc.dg/lto/pr83954_0.c
  9a2072fdcc9f631ef319beead5326f1d  gcc/testsuite/gcc.dg/lto/pr83954_1.c
! 6428e1d34804348de4f0ff99845fa0ba  gcc/testsuite/gcc.dg/lto/pr85248_0.c
  4656266c7db0c0e6a9f9b406df75deda  gcc/testsuite/gcc.dg/lto/pr85248_1.c
  260506c568e35bc49112021166edf8f2  gcc/testsuite/gcc.dg/lto/resolutions_0.c
  1084184a9b11a84eee39ef130211f70b  gcc/testsuite/gcc.dg/lto/save-temps_0.c
--- 30416,30422 ----
  4f9eacf4c94ac2a58a8d84f093e2c490  gcc/testsuite/gcc.dg/lto/pr83954.h
  197d1eb297bc02eb3d0ed7634f1bcdf5  gcc/testsuite/gcc.dg/lto/pr83954_0.c
  9a2072fdcc9f631ef319beead5326f1d  gcc/testsuite/gcc.dg/lto/pr83954_1.c
! 8162c65a97b9ede53ca0cc0684a3d0db  gcc/testsuite/gcc.dg/lto/pr85248_0.c
  4656266c7db0c0e6a9f9b406df75deda  gcc/testsuite/gcc.dg/lto/pr85248_1.c
  260506c568e35bc49112021166edf8f2  gcc/testsuite/gcc.dg/lto/resolutions_0.c
  1084184a9b11a84eee39ef130211f70b  gcc/testsuite/gcc.dg/lto/save-temps_0.c
*************** aef6b45460d36ff8c438fc57d0f23e58  gcc/te
*** 30327,30333 ****
  5fffcdfefb3c530e1b472e8397d647cb  gcc/testsuite/gcc.dg/march.c
  797c5b8279b119e196b60ddd82ff6200  gcc/testsuite/gcc.dg/max-1.c
  1a4cdf01852ee814e663ce4a12f81332  gcc/testsuite/gcc.dg/max.c
! ea69a7c6dfdbc300054dbb534113d27c  gcc/testsuite/gcc.dg/memcmp-1.c
  27c87483c7fcbea0947ee744dcfb316a  gcc/testsuite/gcc.dg/memcpy-1.c
  4faafb8a22b962ececd697ba35218789  gcc/testsuite/gcc.dg/memcpy-2.c
  d2e1206d26231777e76c9f21d67f4425  gcc/testsuite/gcc.dg/memcpy-3.c
--- 30442,30448 ----
  5fffcdfefb3c530e1b472e8397d647cb  gcc/testsuite/gcc.dg/march.c
  797c5b8279b119e196b60ddd82ff6200  gcc/testsuite/gcc.dg/max-1.c
  1a4cdf01852ee814e663ce4a12f81332  gcc/testsuite/gcc.dg/max.c
! 8f3a6ea1a3e641f5fa27bb7492fe305e  gcc/testsuite/gcc.dg/memcmp-1.c
  27c87483c7fcbea0947ee744dcfb316a  gcc/testsuite/gcc.dg/memcpy-1.c
  4faafb8a22b962ececd697ba35218789  gcc/testsuite/gcc.dg/memcpy-2.c
  d2e1206d26231777e76c9f21d67f4425  gcc/testsuite/gcc.dg/memcpy-3.c
*************** e493111d21e55c655eba6eaa3ebdda47  gcc/te
*** 30362,30367 ****
--- 30477,30483 ----
  d07d9c82b2a97d45b09c04346a5ac493  gcc/testsuite/gcc.dg/nested-func-1.c
  b290d4b46f9b4f3b547af34fc6d6102c  gcc/testsuite/gcc.dg/nested-func-10.c
  a267c54ded564d4503609c4e3b0c06d5  gcc/testsuite/gcc.dg/nested-func-11.c
+ 3d5fe1b30c5d0cca6b06e3dfa5f9a18c  gcc/testsuite/gcc.dg/nested-func-12.c
  09b5bf76a67802372892a2a1af9d82b2  gcc/testsuite/gcc.dg/nested-func-2.c
  dc2268399923a1dc34a044ba5a9fc3c6  gcc/testsuite/gcc.dg/nested-func-3.c
  4bc44650c99364fa62ff8683492dcb8f  gcc/testsuite/gcc.dg/nested-func-4.c
*************** cd48e0546e5f7e9d101ff76d0ac20137  gcc/te
*** 32151,32158 ****
--- 32267,32296 ----
  1eccee440762e525a97556576c144d1f  gcc/testsuite/gcc.dg/pr87024.c
  8b7d73da2d5d78000716492365a85d5a  gcc/testsuite/gcc.dg/pr8715.c
  45a1003c5d24f4875b1c3a5d4f9569fe  gcc/testsuite/gcc.dg/pr8788-1.c
+ 0cb1263d58005e7943ed8e4e7280590d  gcc/testsuite/gcc.dg/pr87929.c
+ b3735ce491eeb75e002c4d0e33f03f4c  gcc/testsuite/gcc.dg/pr88074-2.c
+ b4a69f8a95ed49f8ce827cea184da075  gcc/testsuite/gcc.dg/pr88074.c
  be04382a35ebb1cfae1b2168f1693a94  gcc/testsuite/gcc.dg/pr8835-1.c
+ ca44df045802a83545871c2e454164d1  gcc/testsuite/gcc.dg/pr88563.c
+ 9bc22a141d09239c0b7e4cda9f0c7526  gcc/testsuite/gcc.dg/pr88568.c
+ 3d03b712ec5ddcf1011a2e3ad2937fab  gcc/testsuite/gcc.dg/pr88594.c
+ 9831a0e405bbc2e4df9d1b9d1d88b7f0  gcc/testsuite/gcc.dg/pr88870.c
+ b6a6442523e13cc8d22cef6d9b29643f  gcc/testsuite/gcc.dg/pr89037.c
  6d86fe504f8715d8b161e54c57b05401  gcc/testsuite/gcc.dg/pr8927-1.c
+ 805c3b6133ae2a2da39e43c108f2cb04  gcc/testsuite/gcc.dg/pr89278.c
+ e30bce51f7105571806672d1430b4476  gcc/testsuite/gcc.dg/pr89314.c
+ e0bb97c06584dce3955740a9322025ef  gcc/testsuite/gcc.dg/pr89342.c
+ a4e32f5a03dcacccfc28bcac31a3aa45  gcc/testsuite/gcc.dg/pr89354.c
+ 60832e2a572601eeddf23c8b9641b3ce  gcc/testsuite/gcc.dg/pr89520-1.c
+ a5f05c4ad343f3e9f77908f5e61b8319  gcc/testsuite/gcc.dg/pr89520-2.c
+ 257d6cccc19ffd7b76dfd92523ef410e  gcc/testsuite/gcc.dg/pr89521-1.c
+ 2c9315db914b2d546cfa5ba3a8d5d492  gcc/testsuite/gcc.dg/pr89521-2.c
+ 37d9958e568bd455cf03bd403e5d9560  gcc/testsuite/gcc.dg/pr89590.c
+ 7e94f0d5a822303e0339481ee07ad796  gcc/testsuite/gcc.dg/pr89679.c
+ e6faf0945d1f5f965c65759fe557a7d4  gcc/testsuite/gcc.dg/pr89734.c
+ 0a4f5fe719bf1ce6ae61fc33e03adf0f  gcc/testsuite/gcc.dg/pr90082.c
+ 7c81184e9f0f9dead0859125d7a01a19  gcc/testsuite/gcc.dg/pr90756.c
+ a5cf54d159902a526ee7923257cf4b92  gcc/testsuite/gcc.dg/pr90760.c
  3825638bdc3a2a004aba9b3d95352327  gcc/testsuite/gcc.dg/pr9365-1.c
  ec1830becced622760bda688ca2bb126  gcc/testsuite/gcc.dg/pr9814-1.c
  38d740dd13641c97d4f565dcd6338d23  gcc/testsuite/gcc.dg/pragma-align-2.c
*************** f4259274e626508e8351a9fdc0a89800  gcc/te
*** 32207,32215 ****
  e5a739c8627718a467c9f8b2d8469181  gcc/testsuite/gcc.dg/pthread-init-2.c
  1e43eff6196cdabcccbabb483e4e5469  gcc/testsuite/gcc.dg/pthread-init-common.h
  e01cd721e30903c5500537cd55e71685  gcc/testsuite/gcc.dg/pubtypes-1.c
! 54e6ff98ad272c592c094a060a5e2c87  gcc/testsuite/gcc.dg/pubtypes-2.c
! 9585dc1d00f2aeba94313c4b4a6cf636  gcc/testsuite/gcc.dg/pubtypes-3.c
! c6fd093efdaca04d3b1d686091ac9373  gcc/testsuite/gcc.dg/pubtypes-4.c
  e91f166b4de92c03f81d916150bf3333  gcc/testsuite/gcc.dg/pure-1.c
  701b9d5c2eec087c414cba620038d0a6  gcc/testsuite/gcc.dg/pure-2.c
  131d7728e0baca355ff811d6c48cc2c2  gcc/testsuite/gcc.dg/qual-component-1.c
--- 32345,32353 ----
  e5a739c8627718a467c9f8b2d8469181  gcc/testsuite/gcc.dg/pthread-init-2.c
  1e43eff6196cdabcccbabb483e4e5469  gcc/testsuite/gcc.dg/pthread-init-common.h
  e01cd721e30903c5500537cd55e71685  gcc/testsuite/gcc.dg/pubtypes-1.c
! 3072533c594b8d475515566f8170216f  gcc/testsuite/gcc.dg/pubtypes-2.c
! e85fea48928a08676475b37086816e7a  gcc/testsuite/gcc.dg/pubtypes-3.c
! fffd1bf953242ead14b539c407d690cc  gcc/testsuite/gcc.dg/pubtypes-4.c
  e91f166b4de92c03f81d916150bf3333  gcc/testsuite/gcc.dg/pure-1.c
  701b9d5c2eec087c414cba620038d0a6  gcc/testsuite/gcc.dg/pure-2.c
  131d7728e0baca355ff811d6c48cc2c2  gcc/testsuite/gcc.dg/qual-component-1.c
*************** e18294d3404279a1f70b16e5f321d933  gcc/te
*** 32912,32917 ****
--- 33050,33056 ----
  33f2d5a949f3be0de5e28e8cf8bec90f  gcc/testsuite/gcc.dg/torture/mips-div-1.c
  4e40647acd4c0b0f635e3e9be60ce610  gcc/testsuite/gcc.dg/torture/mips-hilo-2.c
  d07ecd707fac97fa40042e04a59d4b1e  gcc/testsuite/gcc.dg/torture/mips-sdata-1.c
+ f509ceab15e52f50f8b11d7cacc6447f  gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c
  ba222bffc08c28a180298a0d4c6d6aea  gcc/testsuite/gcc.dg/torture/nested-fn-1.c
  4ac07881b7842f59c3aeffe74b35a881  gcc/testsuite/gcc.dg/torture/parm-coalesce.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
*************** afbc98302fa1cb47c152b4f482be2590  gcc/te
*** 33467,33475 ****
  87c918e158e3ccc3b026108203a1e1ab  gcc/testsuite/gcc.dg/torture/pr67953.c
  47ff79c68173fd64e216bdb58e6b86e4  gcc/testsuite/gcc.dg/torture/pr68017.c
  c2e62c5e0ede18699d8172e562ea2a7e  gcc/testsuite/gcc.dg/torture/pr68031.c
! a43c7648f03aa051e2d27dac74da598c  gcc/testsuite/gcc.dg/torture/pr68037-1.c
! 6d5f77e609e71f1eab3c2325ebebbc78  gcc/testsuite/gcc.dg/torture/pr68037-2.c
! fc417a9d2c3313eed85196c844b37e8f  gcc/testsuite/gcc.dg/torture/pr68037-3.c
  020e97f08f15594913d5d03292dd388b  gcc/testsuite/gcc.dg/torture/pr68060-1.c
  1f12518a49562090042d01b5bd7a8743  gcc/testsuite/gcc.dg/torture/pr68060-2.c
  153cf921cf7c7ad9b124f36403e29853  gcc/testsuite/gcc.dg/torture/pr68067-1.c
--- 33606,33614 ----
  87c918e158e3ccc3b026108203a1e1ab  gcc/testsuite/gcc.dg/torture/pr67953.c
  47ff79c68173fd64e216bdb58e6b86e4  gcc/testsuite/gcc.dg/torture/pr68017.c
  c2e62c5e0ede18699d8172e562ea2a7e  gcc/testsuite/gcc.dg/torture/pr68031.c
! 37b7fbb665fc7b0b9b6103cd27edc798  gcc/testsuite/gcc.dg/torture/pr68037-1.c
! f2294906a6476231e2b12ff68137ab65  gcc/testsuite/gcc.dg/torture/pr68037-2.c
! 399eb13ce044e42f33e89416e8d43dae  gcc/testsuite/gcc.dg/torture/pr68037-3.c
  020e97f08f15594913d5d03292dd388b  gcc/testsuite/gcc.dg/torture/pr68060-1.c
  1f12518a49562090042d01b5bd7a8743  gcc/testsuite/gcc.dg/torture/pr68060-2.c
  153cf921cf7c7ad9b124f36403e29853  gcc/testsuite/gcc.dg/torture/pr68067-1.c
*************** ba6a8318799042eb31dcfd6ff1f850d0  gcc/te
*** 33478,33484 ****
  008a31a5e5c41eb7c5a60f3c0b6ee396  gcc/testsuite/gcc.dg/torture/pr68104.c
  393863972c6ca6b4f6cb098bd55f868e  gcc/testsuite/gcc.dg/torture/pr68240.c
  cc9c8592efb6deac1cef42effd1a86b6  gcc/testsuite/gcc.dg/torture/pr68248.c
! 23973fc1b122e4dfc5b1d94885428451  gcc/testsuite/gcc.dg/torture/pr68264.c
  a51a547efd2608066695ab7bae57b97a  gcc/testsuite/gcc.dg/torture/pr68379.c
  087e8b6be4668a1d43c1b1b5f5ca4ba4  gcc/testsuite/gcc.dg/torture/pr68517.c
  d97bda1e2b9d4a1a15d587e807ffaba1  gcc/testsuite/gcc.dg/torture/pr68528.c
--- 33617,33623 ----
  008a31a5e5c41eb7c5a60f3c0b6ee396  gcc/testsuite/gcc.dg/torture/pr68104.c
  393863972c6ca6b4f6cb098bd55f868e  gcc/testsuite/gcc.dg/torture/pr68240.c
  cc9c8592efb6deac1cef42effd1a86b6  gcc/testsuite/gcc.dg/torture/pr68248.c
! 528fea938c3e659f599e826e1fcc189f  gcc/testsuite/gcc.dg/torture/pr68264.c
  a51a547efd2608066695ab7bae57b97a  gcc/testsuite/gcc.dg/torture/pr68379.c
  087e8b6be4668a1d43c1b1b5f5ca4ba4  gcc/testsuite/gcc.dg/torture/pr68517.c
  d97bda1e2b9d4a1a15d587e807ffaba1  gcc/testsuite/gcc.dg/torture/pr68528.c
*************** e7da68ecb5c3ee758ea96fc820f3665b  gcc/te
*** 33693,33700 ****
--- 33832,33856 ----
  84582e6576b1677bf5e7a5707e957a38  gcc/testsuite/gcc.dg/torture/pr85588.c
  d85ac821c4f08b30a3a217a09f4b7f83  gcc/testsuite/gcc.dg/torture/pr85989.c
  327321c3c176f377b100524879fff77a  gcc/testsuite/gcc.dg/torture/pr86505.c
+ 998ddd79301599888e0d3e0e2d923f8c  gcc/testsuite/gcc.dg/torture/pr86554-1.c
+ 261fd75c0cdfae9be61da923aaa9d608  gcc/testsuite/gcc.dg/torture/pr86554-2.c
  81a3b9b7d7f1325b323debfc6a0661f1  gcc/testsuite/gcc.dg/torture/pr87645.c
  6a8a30446e8686e53d5eabab08339206  gcc/testsuite/gcc.dg/torture/pr87665.c
+ 6e9fc245efc4c9fc3b6ac670e231ccc2  gcc/testsuite/gcc.dg/torture/pr89008.c
+ deaf9ef54f621df69db3af8cdd9248d8  gcc/testsuite/gcc.dg/torture/pr89091.c
+ a7a8227fb7312ecb3e13fbd0ae9a51c6  gcc/testsuite/gcc.dg/torture/pr89135.c
+ bc5bedb53a5031564816c911cd9f7bd1  gcc/testsuite/gcc.dg/torture/pr89223.c
+ 5027d01e012944eed6e57508cf5efccf  gcc/testsuite/gcc.dg/torture/pr89505.c
+ 67023595cda810dfd27ab63686f32e54  gcc/testsuite/gcc.dg/torture/pr89572.c
+ 66e6d1d850f181ba202147d0c255aafa  gcc/testsuite/gcc.dg/torture/pr89677.c
+ 3ebff6f9fdd08ad83f1b108d52ed3515  gcc/testsuite/gcc.dg/torture/pr89710.c
+ 03ff50043fe9b066d5d9805c81aeed55  gcc/testsuite/gcc.dg/torture/pr90020.c
+ f13f8d9bb577a47a3c6edb46c6c340b5  gcc/testsuite/gcc.dg/torture/pr90071.c
+ 00e6f1395499e5956a1821ce97b809c7  gcc/testsuite/gcc.dg/torture/pr90278.c
+ 4ef9a08d45ac674212e3da254667abc1  gcc/testsuite/gcc.dg/torture/pr90328.c
+ 6658d6f5893b06f49b107ca7db0f19e3  gcc/testsuite/gcc.dg/torture/pr91126.c
+ 9a517e2a6fabc62383485f161c86b5df  gcc/testsuite/gcc.dg/torture/pr91200.c
+ e398c88cb4160ec78fc9362787569fe9  gcc/testsuite/gcc.dg/torture/pr91812.c
  d086c3946230ba05df33a45be4862730  gcc/testsuite/gcc.dg/torture/pta-callused-1.c
  39620328710fd9ff170741766805e426  gcc/testsuite/gcc.dg/torture/pta-escape-1.c
  f50cbae53561b1267140f574974f7fc0  gcc/testsuite/gcc.dg/torture/pta-ptrarith-1.c
*************** b82f09e52f40b5e142ca17a69421bfad  gcc/te
*** 33708,33713 ****
--- 33864,33870 ----
  5e4ed3eeb940f3f8f5de9b8951123bec  gcc/testsuite/gcc.dg/torture/restrict-4.c
  9bedd7550914e2e483d55e47c44723e3  gcc/testsuite/gcc.dg/torture/restrict-5.c
  b4bc986eae683153ce2c232320c5bd27  gcc/testsuite/gcc.dg/torture/restrict-6.c
+ 568321b2b1eea2f97749015ca7f0b1b0  gcc/testsuite/gcc.dg/torture/restrict-7.c
  ae4bd16210e8a183a5a9c10baeb4171c  gcc/testsuite/gcc.dg/torture/ssa-pta-fn-1.c
  fed60676d191957175e5d7d91ce11f0b  gcc/testsuite/gcc.dg/torture/stackalign/alloca-1.c
  2d416072232dd69f1b2a756bbb4d1dfd  gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
*************** fa7217b4e402db46b1d64ca38eb6f212  gcc/te
*** 33840,33848 ****
  d5100edb99fb878f5b24f4d8457b2ad6  gcc/testsuite/gcc.dg/tree-prof/pr66295.c
  41f2b0f1caac2c21616dfe0830cd87fe  gcc/testsuite/gcc.dg/tree-prof/pr79587.c
  6326a041bce19e077fb8352676c53447  gcc/testsuite/gcc.dg/tree-prof/prof-robust-1.c
! f1aee3218249eb01a8ccf255141e26bb  gcc/testsuite/gcc.dg/tree-prof/section-attr-1.c
! 221cdfc15a54be42d4e3e364000d440a  gcc/testsuite/gcc.dg/tree-prof/section-attr-2.c
! cca4eabbfbcccd4665538ceb02d85d15  gcc/testsuite/gcc.dg/tree-prof/section-attr-3.c
  c2122329768fbed2958f52176f4808a7  gcc/testsuite/gcc.dg/tree-prof/stringop-1.c
  fd15880f8aec6477baedf3e207a6f1b5  gcc/testsuite/gcc.dg/tree-prof/stringop-2.c
  a3e14a90c2fe02c076dd64c26c51f57b  gcc/testsuite/gcc.dg/tree-prof/switch-case-1.c
--- 33997,34005 ----
  d5100edb99fb878f5b24f4d8457b2ad6  gcc/testsuite/gcc.dg/tree-prof/pr66295.c
  41f2b0f1caac2c21616dfe0830cd87fe  gcc/testsuite/gcc.dg/tree-prof/pr79587.c
  6326a041bce19e077fb8352676c53447  gcc/testsuite/gcc.dg/tree-prof/prof-robust-1.c
! d90de338620a9a2e0a53410e2d8ac25b  gcc/testsuite/gcc.dg/tree-prof/section-attr-1.c
! 5efd0d2523540c7533883445f52205e4  gcc/testsuite/gcc.dg/tree-prof/section-attr-2.c
! a19d2afb91074d3b5a1cf1231a3bf50b  gcc/testsuite/gcc.dg/tree-prof/section-attr-3.c
  c2122329768fbed2958f52176f4808a7  gcc/testsuite/gcc.dg/tree-prof/stringop-1.c
  fd15880f8aec6477baedf3e207a6f1b5  gcc/testsuite/gcc.dg/tree-prof/stringop-2.c
  a3e14a90c2fe02c076dd64c26c51f57b  gcc/testsuite/gcc.dg/tree-prof/switch-case-1.c
*************** d33f4213b2023b5f7798fbdda71e4dce  gcc/te
*** 34712,34717 ****
--- 34869,34875 ----
  f46e92172b945f661bae1ab06ce7f4ac  gcc/testsuite/gcc.dg/tree-ssa/pr82340.c
  75141932aa922f32bbb87834cd9630ad  gcc/testsuite/gcc.dg/tree-ssa/pr82726.c
  f807ed0961b01a668364922fd655af81  gcc/testsuite/gcc.dg/tree-ssa/pr83198.c
+ e9230122742d9f2e19bb99dcd54db233  gcc/testsuite/gcc.dg/tree-ssa/pr89872.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
*************** dbcccd12dda553ecb5a906b8fe24ab00  gcc/te
*** 35286,35291 ****
--- 35444,35451 ----
  1de3cdbef0251dc14d21f1fc5e419d05  gcc/testsuite/gcc.dg/tree-ssa/wnull-dereference.c
  016029e7b08dbc8fe1d266551df2fdd3  gcc/testsuite/gcc.dg/tree-ssa/writeonly.c
  22eb0b8eeae794a6956326b2c9383fb2  gcc/testsuite/gcc.dg/trunc-1.c
+ dcc8ff133faffd3fe561dfe431569a07  gcc/testsuite/gcc.dg/tsan/pr88030.c
+ 65ac9eca3bcd49137d096a4f2573e2e2  gcc/testsuite/gcc.dg/tsan/pr90208-2.c
  6193757156510ad2bdd1315e65f0d5df  gcc/testsuite/gcc.dg/tsan/tsan.exp
  19bcece84455539263b66ec6c2bfaa0c  gcc/testsuite/gcc.dg/two-types-1.c
  95ad9b7c791f67ee2f4be1bd942e6718  gcc/testsuite/gcc.dg/two-types-10.c
*************** c611b4ad3ec4bad367027a6ab1ef6505  gcc/te
*** 35372,35378 ****
  c47999a5663fbe110a3d4134c92050c2  gcc/testsuite/gcc.dg/uninit-17-O0.c
  728401b250e40769899aeaa5eb3c4f2e  gcc/testsuite/gcc.dg/uninit-17.c
  997ae4c527f3facdc5684123c0d1cddb  gcc/testsuite/gcc.dg/uninit-18.c
! 11f48b9181cccb47d0906280c4cf5c5a  gcc/testsuite/gcc.dg/uninit-19.c
  668c58e2312b2988b8c85c02786bdbeb  gcc/testsuite/gcc.dg/uninit-2-O0.c
  e7bbbf0090661e8a065ace2511f8f195  gcc/testsuite/gcc.dg/uninit-2.c
  ddfc3a41edab799f26758dadfa5a4d09  gcc/testsuite/gcc.dg/uninit-20.c
--- 35532,35538 ----
  c47999a5663fbe110a3d4134c92050c2  gcc/testsuite/gcc.dg/uninit-17-O0.c
  728401b250e40769899aeaa5eb3c4f2e  gcc/testsuite/gcc.dg/uninit-17.c
  997ae4c527f3facdc5684123c0d1cddb  gcc/testsuite/gcc.dg/uninit-18.c
! fc736ac0b669fa8623b74bbf61326dd4  gcc/testsuite/gcc.dg/uninit-19.c
  668c58e2312b2988b8c85c02786bdbeb  gcc/testsuite/gcc.dg/uninit-2-O0.c
  e7bbbf0090661e8a065ace2511f8f195  gcc/testsuite/gcc.dg/uninit-2.c
  ddfc3a41edab799f26758dadfa5a4d09  gcc/testsuite/gcc.dg/uninit-20.c
*************** fb7fb911814f67c58846323d51173f98  gcc/te
*** 35415,35420 ****
--- 35575,35581 ----
  e821794f64a67239864ede698d50f620  gcc/testsuite/gcc.dg/uninit-pr78295.c
  e5914ec194abe834db8656483a92fcdc  gcc/testsuite/gcc.dg/uninit-pr78548.c
  e37d87bcbc2425be943ff59a8baa223d  gcc/testsuite/gcc.dg/uninit-pr81782.c
+ bc12979aeecbec0cc9fe92fcb51c30b9  gcc/testsuite/gcc.dg/uninit-pr89296.c
  2e2b2ca64d1c3db87c75755a21b4bc06  gcc/testsuite/gcc.dg/uninit-pred-2_a.c
  7d67cd7432d67994c6642a61e0020d9e  gcc/testsuite/gcc.dg/uninit-pred-2_b.c
  dc20b95e0c82e7593d7e562b3b1e5aaf  gcc/testsuite/gcc.dg/uninit-pred-2_c.c
*************** f746ae3bf44586fbe281fa0651586662  gcc/te
*** 35580,35585 ****
--- 35741,35747 ----
  423921ccfb9c50e7945533d3786afd5a  gcc/testsuite/gcc.dg/vect/bb-slp-pr69907.c
  4381bb16caa660fbf909762342d1ebaf  gcc/testsuite/gcc.dg/vect/bb-slp-pr78205.c
  7bde18f16db8ba76291d8ca502888f3e  gcc/testsuite/gcc.dg/vect/bb-slp-pr80705.c
+ a689d9ca07b59620e68b3c142ebeb12e  gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c
  5428e4471ece92d28564b1d30192ed87  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-1.c
  892d0604340291572dec6ee6deee1f79  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-2.c
  ac97f8715430e9981d35fdaf30359bcb  gcc/testsuite/gcc.dg/vect/bb-slp-subgroups-3.c
*************** ad63fdd3c21a22619dd1f66e5e9a7410  gcc/te
*** 35988,35997 ****
--- 36150,36163 ----
  dd369fee4b54f132a1e62f5f6bd24627  gcc/testsuite/gcc.dg/vect/pr80631-2.c
  ab01171ee6ad27ca13cbc3085178f4b6  gcc/testsuite/gcc.dg/vect/pr81410.c
  3b59a28d58088fb3cfd4756b716a52cb  gcc/testsuite/gcc.dg/vect/pr81633.c
+ 29c150b7cf40ec651f6b59e757f2e5f6  gcc/testsuite/gcc.dg/vect/pr81740-1.c
+ 1002dc6ff6f56a42e9d25daf4509b973  gcc/testsuite/gcc.dg/vect/pr81740-2.c
  7b87a8f59e1bd5262c259ee074d8f12a  gcc/testsuite/gcc.dg/vect/pr82108.c
  e14263baf37160b7fe78dcea65251c62  gcc/testsuite/gcc.dg/vect/pr82436.c
  8a0a2f34f0be9c53f74aefbc7f6e8f97  gcc/testsuite/gcc.dg/vect/pr84485.c
  b9935cee50a5b2b9496865c653bad56a  gcc/testsuite/gcc.dg/vect/pr85597.c
+ 706ffeb725a655c10c3af015fa40d1ea  gcc/testsuite/gcc.dg/vect/pr88903-1.c
+ 3fa6b0486dc4b237da9bc2ffa11dd19e  gcc/testsuite/gcc.dg/vect/pr88903-2.c
  32d06c886c85516fbdce4ca1bd516496  gcc/testsuite/gcc.dg/vect/section-anchors-pr27770.c
  00b8b4e778221f5bedb59cfc69f6c9d7  gcc/testsuite/gcc.dg/vect/section-anchors-vect-69.c
  218f2e2bcfb33c838c80a2ae8c302759  gcc/testsuite/gcc.dg/vect/slp-1.c
*************** aa2dfd18bc6784e0bc7ee00c3ef8561a  gcc/te
*** 37718,37723 ****
--- 37884,37890 ----
  61509ec6c4ac78da70369f76797f43be  gcc/testsuite/gcc.target/aarch64/pr81647.c
  1d033f86e944555bbda9ca32ec2cb181  gcc/testsuite/gcc.target/aarch64/pr83370.c
  438fbd8d80e583c9dd8e4b6f03d561d9  gcc/testsuite/gcc.target/aarch64/pr87511.c
+ 476fb6d37ab03368b4eead6712633cd2  gcc/testsuite/gcc.target/aarch64/pr90075.c
  d3e6defa85b5cd4bb506306377e59a53  gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c
  1f95766b4ed5bfb5f2cf1f168a607a8d  gcc/testsuite/gcc.target/aarch64/predefine_large.c
  d38e476730748c653068e7cb2d8d6ca6  gcc/testsuite/gcc.target/aarch64/predefine_small.c
*************** d721a88ae72a8be261b58663490fc7ee  gcc/te
*** 38755,38760 ****
--- 38922,38928 ----
  14c1154266333682f985fe7c6c6e3911  gcc/testsuite/gcc.target/arm/eliminate.c
  35daa2bef7020b26f98b70184aa411d4  gcc/testsuite/gcc.target/arm/empty_fiq_handler.c
  78487646e9710e62b0d506909e9588a8  gcc/testsuite/gcc.target/arm/epilog-1.c
+ 98721ddb43f41d55892aac39cc051828  gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c
  af1ccf2d19987a11d4e08cd9cccf8a69  gcc/testsuite/gcc.target/arm/fixed-point-exec.c
  30d8dad9a97da5758da204e1f71d1aa1  gcc/testsuite/gcc.target/arm/fixed_float_conversion.c
  6619cf7c22b0ec3c6ca6626d69a8f826  gcc/testsuite/gcc.target/arm/flip-thumb.c
*************** e9273f96fab761cd7ea5079114cf850a  gcc/te
*** 39145,39150 ****
--- 39313,39322 ----
  433157273902c9544461f755ababe38e  gcc/testsuite/gcc.target/arm/pr82989.c
  c3c03d98bf1110fec6902ef64b984fde  gcc/testsuite/gcc.target/arm/pr83687.c
  3c9cf24fda1d77cb6ade61e736cb8056  gcc/testsuite/gcc.target/arm/pr84826.c
+ 13b419ece183c8289f8cd381a21bd825  gcc/testsuite/gcc.target/arm/pr88167-1.c
+ 061a3fd61673c5c82f24f6000121e426  gcc/testsuite/gcc.target/arm/pr88167-2.c
+ c11a83f6e8e6cfecb2d201bb9832efb3  gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c
+ 7e118390a8f6adc60508c71323d3a526  gcc/testsuite/gcc.target/arm/pr89222.c
  321232597c3b16471c510b972ad557b4  gcc/testsuite/gcc.target/arm/pragma_attribute.c
  cdf14fd079c2cd544c152c39ceb8ac66  gcc/testsuite/gcc.target/arm/pragma_cpp_fma.c
  5b1a9414b404b74eb5cf36760730cf83  gcc/testsuite/gcc.target/arm/pure-code/ffunction-sections.c
*************** d5c8fd29fb9b2ff9d36bac3d01f75b13  gcc/te
*** 39480,39485 ****
--- 39652,39658 ----
  2ed1f0bc4da53e9763c2d91642fbe089  gcc/testsuite/gcc.target/avr/pr71676.c
  859b3836a035473a6251a77102bbe16d  gcc/testsuite/gcc.target/avr/pr71678.c
  f91d8c4774a3ac3e49934378e0629b52  gcc/testsuite/gcc.target/avr/pr71873.c
+ 675750e3e482b5f5103d79510bfe2e28  gcc/testsuite/gcc.target/avr/pr88253.c
  881cb1836ddfc3105e0aacacc481aa09  gcc/testsuite/gcc.target/avr/progmem-error-1.c
  2eb3f167ae58b534e25afc1b94617746  gcc/testsuite/gcc.target/avr/progmem-error-1.cpp
  56de611fd29076ce9da389a853476819  gcc/testsuite/gcc.target/avr/progmem-warning-1.c
*************** bce67b236520c561f93006d5bd66eea1  gcc/te
*** 41045,41050 ****
--- 41218,41224 ----
  923b4b67baacfc2aedf431c5989f2d6e  gcc/testsuite/gcc.target/i386/avx512bw-pr70509.c
  acddcdfbf1c37bd8a7c7778c2c6eeea1  gcc/testsuite/gcc.target/i386/avx512bw-pr77476.c
  a27fb111df1b083f6396bafe5a66337b  gcc/testsuite/gcc.target/i386/avx512bw-pr84524.c
+ e044a1a48fbcb95582405a16937eeaaa  gcc/testsuite/gcc.target/i386/avx512bw-pr91150.c
  186b4d26f65c47b5b328795efe473c71  gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-1.c
  aa76e419ea439da7ae72280b04d232b8  gcc/testsuite/gcc.target/i386/avx512bw-vdbpsadbw-2.c
  c8ba4cce715fd7698d0bd8d7cc7eca78  gcc/testsuite/gcc.target/i386/avx512bw-vmovdqu16-1.c
*************** cd96f3da4c2192b767b58d01e5f08cd4  gcc/te
*** 42236,42241 ****
--- 42410,42417 ----
  994c768ea6f011cb5852de30a104bd2e  gcc/testsuite/gcc.target/i386/avx512vl-pack-2.c
  1ce70da2226efd6f3d5d92c101fb79d9  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-1.c
  e3cc31b3308cdb56423451f2cd8c2a00  gcc/testsuite/gcc.target/i386/avx512vl-pr79299-2.c
+ 3ac53657ab626d7c8b5b6aecd274e654  gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c
+ 0281545da64a3bf0c393627c047b8f06  gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c
  a7e85788730f7acc7e5174c636d29676  gcc/testsuite/gcc.target/i386/avx512vl-vaddpd-1.c
  2b0c748a58e54ffa4102710cc467b33b  gcc/testsuite/gcc.target/i386/avx512vl-vaddpd-2.c
  df4c1c2e223dab18c858a16ca0d5bb83  gcc/testsuite/gcc.target/i386/avx512vl-vaddps-1.c
*************** a9b1dee6ec200856939709d32118cf4d  gcc/te
*** 42974,42980 ****
  c8f91a97e3f4734a3595572bab26a3e7  gcc/testsuite/gcc.target/i386/builtin-unreachable.c
  ca53333fb98c69aa04d16fd2bf6b671c  gcc/testsuite/gcc.target/i386/builtin_target.c
  4278b9cf349a82b327a03ec6fb2f2b43  gcc/testsuite/gcc.target/i386/cadd.c
! 371f18813dae88e704517a2270da2fa7  gcc/testsuite/gcc.target/i386/call-1.c
  3985d85760cf959bc3eddfd3b26016b9  gcc/testsuite/gcc.target/i386/chkp-always_inline.c
  a21a66b279b0f3c13d2cdaa11daf5d10  gcc/testsuite/gcc.target/i386/chkp-bndret.c
  5161c68e74b6e01ef0ef925b81edb747  gcc/testsuite/gcc.target/i386/chkp-builtins-1.c
--- 43150,43157 ----
  c8f91a97e3f4734a3595572bab26a3e7  gcc/testsuite/gcc.target/i386/builtin-unreachable.c
  ca53333fb98c69aa04d16fd2bf6b671c  gcc/testsuite/gcc.target/i386/builtin_target.c
  4278b9cf349a82b327a03ec6fb2f2b43  gcc/testsuite/gcc.target/i386/cadd.c
! bcb496f917fb6dad4ebb0207c1334471  gcc/testsuite/gcc.target/i386/call-1.c
! 56af436898c3b3f6cada29e8343591ed  gcc/testsuite/gcc.target/i386/call-2.c
  3985d85760cf959bc3eddfd3b26016b9  gcc/testsuite/gcc.target/i386/chkp-always_inline.c
  a21a66b279b0f3c13d2cdaa11daf5d10  gcc/testsuite/gcc.target/i386/chkp-bndret.c
  5161c68e74b6e01ef0ef925b81edb747  gcc/testsuite/gcc.target/i386/chkp-builtins-1.c
*************** a8f61a3e9626bdd65b4e124dbc719d3e  gcc/te
*** 43159,43165 ****
  41b53063e22afc0a435659c465424d74  gcc/testsuite/gcc.target/i386/fpcvt-2.c
  fc83f958b3df91c520e859127c479d26  gcc/testsuite/gcc.target/i386/fpcvt-3.c
  f4728a5ddd8f5b7d2932dd853b2fc88f  gcc/testsuite/gcc.target/i386/fpcvt-4.c
! de21850aa1ee59ff7fed86c89e17eb4a  gcc/testsuite/gcc.target/i386/fpprec-1.c
  c7969e1cd5d8b5cc915431d457857508  gcc/testsuite/gcc.target/i386/funcspec-1.c
  6806422c170b295fd8ff09ca22b12150  gcc/testsuite/gcc.target/i386/funcspec-10.c
  c1320fd604803bc04257c984f1e3ba77  gcc/testsuite/gcc.target/i386/funcspec-11.c
--- 43336,43342 ----
  41b53063e22afc0a435659c465424d74  gcc/testsuite/gcc.target/i386/fpcvt-2.c
  fc83f958b3df91c520e859127c479d26  gcc/testsuite/gcc.target/i386/fpcvt-3.c
  f4728a5ddd8f5b7d2932dd853b2fc88f  gcc/testsuite/gcc.target/i386/fpcvt-4.c
! 7b2c5d3679acd1583e1591dbf6d4c2e5  gcc/testsuite/gcc.target/i386/fpprec-1.c
  c7969e1cd5d8b5cc915431d457857508  gcc/testsuite/gcc.target/i386/funcspec-1.c
  6806422c170b295fd8ff09ca22b12150  gcc/testsuite/gcc.target/i386/funcspec-10.c
  c1320fd604803bc04257c984f1e3ba77  gcc/testsuite/gcc.target/i386/funcspec-11.c
*************** bb2e4a2d9494cb7c0124220a190caff5  gcc/te
*** 43172,43181 ****
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  c5cbddeb1b01f35a7fa7f281fb2acdb4  gcc/testsuite/gcc.target/i386/funcspec-8.c
  98162f894173cc3f53a1739d65f4341d  gcc/testsuite/gcc.target/i386/funcspec-9.c
! a01d3229673b2eb02bbfb6d1191f0b4a  gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c
  b24def76cda5e6910ee6d0acbaa240e6  gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm-run.c
! d9dbff8ba7e41565da26487dba05d168  gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
! 2d33bd1acc40ca1c46ab6778a9ee92ac  gcc/testsuite/gcc.target/i386/fuse-caller-save.c
  374b8a1c71832c58fa214de004488fce  gcc/testsuite/gcc.target/i386/fxrstor-1.c
  4ba171e5929e217bf7404c8b2936f4dd  gcc/testsuite/gcc.target/i386/fxrstor64-1.c
  997710cd1065bc38da6deb8c74781d45  gcc/testsuite/gcc.target/i386/fxsave-1.c
--- 43349,43358 ----
  35655de5c9348f2a36254312a8d17908  gcc/testsuite/gcc.target/i386/funcspec-7.c
  c5cbddeb1b01f35a7fa7f281fb2acdb4  gcc/testsuite/gcc.target/i386/funcspec-8.c
  98162f894173cc3f53a1739d65f4341d  gcc/testsuite/gcc.target/i386/funcspec-9.c
! 3a08303eb38d70d9bd8e13a2c173ac97  gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c
  b24def76cda5e6910ee6d0acbaa240e6  gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm-run.c
! bf2ba8b379ebd6007b1d051966393d53  gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
! 2b0fb9cbf57f10cb2e97ffa7daa9ca55  gcc/testsuite/gcc.target/i386/fuse-caller-save.c
  374b8a1c71832c58fa214de004488fce  gcc/testsuite/gcc.target/i386/fxrstor-1.c
  4ba171e5929e217bf7404c8b2936f4dd  gcc/testsuite/gcc.target/i386/fxrstor64-1.c
  997710cd1065bc38da6deb8c74781d45  gcc/testsuite/gcc.target/i386/fxsave-1.c
*************** b56cbb83f01d0feeec0ec874e60a703c  gcc/te
*** 43246,43294 ****
  cdd25f9aac1f47c227bf3e42b258efa9  gcc/testsuite/gcc.target/i386/incoming-7.c
  74e35cf742c4e2fe9ce50213ed289958  gcc/testsuite/gcc.target/i386/incoming-8.c
  9be1a58062ffa2d8454af884da1b9f81  gcc/testsuite/gcc.target/i386/incoming-9.c
! 05d3ff7fd6d107eff7cfa9af54aed600  gcc/testsuite/gcc.target/i386/indirect-thunk-1.c
  20988adf9b08c4b293517a2c73863343  gcc/testsuite/gcc.target/i386/indirect-thunk-10.c
! d5a10c340aca1e4c1b2116dc0bc19ebe  gcc/testsuite/gcc.target/i386/indirect-thunk-2.c
! bfa68ec42c5a8e83f24ab6be88127029  gcc/testsuite/gcc.target/i386/indirect-thunk-3.c
! e893e88ca56cb471d1d2aef3d0750402  gcc/testsuite/gcc.target/i386/indirect-thunk-4.c
  76b5340f3d1cae758f7f24f209df6970  gcc/testsuite/gcc.target/i386/indirect-thunk-5.c
  f337c4677a3c1c6729fe81c061d9d002  gcc/testsuite/gcc.target/i386/indirect-thunk-6.c
! 63f3f75fb9218c46a8907df2585e5a34  gcc/testsuite/gcc.target/i386/indirect-thunk-7.c
  136c6b3bb1163a3077d4207bfc4e5275  gcc/testsuite/gcc.target/i386/indirect-thunk-8.c
  c6d529ddda0429e0c528b2de3c8384d4  gcc/testsuite/gcc.target/i386/indirect-thunk-9.c
! e506d2eeeb5b8b6b43de5c106e80ef80  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c
  b346e03904cb1d652c2c4820cca183ee  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-10.c
  4bdf208508a160ea7a3791b56b304575  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-11.c
! ea5b37cade05b968b2f5aae50077c1c3  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c
! ee3b180c37ee9f060fe5b24fbacc428f  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c
! e852a496ae80ad82a0595c6f008a2722  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c
! 3c36cf61aba8f95f05132704b4b0c8eb  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c
! 0bf52c88118e706a56766cfe59df0852  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c
! b5359c757d218de412eb45871137cbee  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c
! 867bd0927104666fdf41c8c325a2553d  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c
  f062bd94d2bcc6229905c541b481a03c  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-9.c
! 77b1a8e1b258b90e1edbf0d45372c0eb  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c
! d58705acef59a328f4fd1bbe1a065bac  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c
  6b017ce0cbb85638db969dbc3bd5bf0e  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-3.c
  03f873271ded2e06b27882e045268f8d  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-4.c
! 14cc4f9a9b2dd94edd821f84af94c611  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c
! 4a1f3c4792dd58316fcbf552deda210a  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
! 1bbe5649136f8a47208ce67e71058493  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
! 8995ae15651c704262997baa0032794a  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c
  d60595421b98710f0053736975cb92fb  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-5.c
  159efa6bc07479836c1f52e007ec64f0  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-6.c
! 1821b816a47c91c728ca25d527e6eef6  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c
! d908699f85e4c95b098f3d81dbba9a45  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c
! 4b8df590855bc29c6f9a503d85024db8  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c
! 2942c6699b3b2e99c37686f596473393  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c
! 8c08ad924ba0e02e7ff6522ade53773b  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c
  22d3ec31148d7eb42f889f412e80b98e  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-5.c
  4bb39d2b0069f6a250bb165c0280899d  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-6.c
! 097bfd363392d403f5385d77cbb64786  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c
! 1a18d20db658bd8f06db72e826e24451  gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c
! 2f7b88c05e6f84c135d8684048b1ddfb  gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c
! 0f53eb2f8dd4745fc0d56597a3a5cc39  gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c
! cc84faa83bbaff46af08a97446ceeeb8  gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c
  ee5ee3c3feb8c1952691f98991ee7be3  gcc/testsuite/gcc.target/i386/indjmp-1.c
  aa8a4b5daac0c21a379120ce3ab4e865  gcc/testsuite/gcc.target/i386/inline-mcpy.c
  e72f30e619db24586870d8d3878cd987  gcc/testsuite/gcc.target/i386/inline_error.c
--- 43423,43471 ----
  cdd25f9aac1f47c227bf3e42b258efa9  gcc/testsuite/gcc.target/i386/incoming-7.c
  74e35cf742c4e2fe9ce50213ed289958  gcc/testsuite/gcc.target/i386/incoming-8.c
  9be1a58062ffa2d8454af884da1b9f81  gcc/testsuite/gcc.target/i386/incoming-9.c
! adb09d5162a99729c58768a1bbd44763  gcc/testsuite/gcc.target/i386/indirect-thunk-1.c
  20988adf9b08c4b293517a2c73863343  gcc/testsuite/gcc.target/i386/indirect-thunk-10.c
! c95e46383fd5a4501004a0bc1f5d9d21  gcc/testsuite/gcc.target/i386/indirect-thunk-2.c
! 39789750ec26c1198ac2729a8223576c  gcc/testsuite/gcc.target/i386/indirect-thunk-3.c
! ec33ad460f56b421c34b43146b548d48  gcc/testsuite/gcc.target/i386/indirect-thunk-4.c
  76b5340f3d1cae758f7f24f209df6970  gcc/testsuite/gcc.target/i386/indirect-thunk-5.c
  f337c4677a3c1c6729fe81c061d9d002  gcc/testsuite/gcc.target/i386/indirect-thunk-6.c
! cd9517f2fb2890df6ac085a32cef6533  gcc/testsuite/gcc.target/i386/indirect-thunk-7.c
  136c6b3bb1163a3077d4207bfc4e5275  gcc/testsuite/gcc.target/i386/indirect-thunk-8.c
  c6d529ddda0429e0c528b2de3c8384d4  gcc/testsuite/gcc.target/i386/indirect-thunk-9.c
! 5f543478181e42734efbd6110e7a3598  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c
  b346e03904cb1d652c2c4820cca183ee  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-10.c
  4bdf208508a160ea7a3791b56b304575  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-11.c
! 266256bf9c72b3811751520548dcdf0e  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c
! 7ad61ec0982e9eba391693dbb5e52d1c  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c
! 7acc4f7264d2475c20aeb874707181ee  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c
! b97ad0329e6caafdacfeb7480b4b75cc  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c
! c27b27ac0212566fd3133978c6ad8edf  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c
! 471f2dfce9f65df08f6b6ed7390f1781  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c
! 1a3da150db1b16fc41bda9bbd7ca308e  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c
  f062bd94d2bcc6229905c541b481a03c  gcc/testsuite/gcc.target/i386/indirect-thunk-attr-9.c
! 248485e93728454351ce9e7bd278b507  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c
! c2a04a6c09ea9da2269bab141681c226  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c
  6b017ce0cbb85638db969dbc3bd5bf0e  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-3.c
  03f873271ded2e06b27882e045268f8d  gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-4.c
! b56dd85b92863436bb371da8d9f1a9b8  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c
! 2965e739e22d2a2f074cf21684e44d79  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
! 642fe8dc37b80cd5a23db87f2790d7da  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
! a7eb6eedf20a23f9562103441bfe762e  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c
  d60595421b98710f0053736975cb92fb  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-5.c
  159efa6bc07479836c1f52e007ec64f0  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-6.c
! 65751ba34bb1b454afdd924216d7f71a  gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c
! dc38272c2c77f004e9b1432854810cc0  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c
! 3647393dca68e3247168db40d40dfddc  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c
! c0f49c5ea58f441879a0a937ede627ef  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c
! 577426cf82a5f996238328bf79562260  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c
  22d3ec31148d7eb42f889f412e80b98e  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-5.c
  4bb39d2b0069f6a250bb165c0280899d  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-6.c
! 9b18301c6819350bef178c74ce5003b1  gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c
! efda0af05107f5f099c13c03e1157e44  gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c
! a09ada0e82af6f6e6522d77d6b3e549d  gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c
! 995443abdd47a45dcd059145549ffe13  gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c
! 2589f31cac8d58723b7156ade58d680a  gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c
  ee5ee3c3feb8c1952691f98991ee7be3  gcc/testsuite/gcc.target/i386/indjmp-1.c
  aa8a4b5daac0c21a379120ce3ab4e865  gcc/testsuite/gcc.target/i386/inline-mcpy.c
  e72f30e619db24586870d8d3878cd987  gcc/testsuite/gcc.target/i386/inline_error.c
*************** cda0d89452347311cc45a79be2d8f0fc  gcc/te
*** 43462,43473 ****
  536862ceddae932e3d7da830f0866d31  gcc/testsuite/gcc.target/i386/memcpy-3.c
  410707f31f232fcc090c3b9edf6509de  gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c
  77bdb8cca8e868330213fec62f92dbbf  gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c
! 36eea93d2314b17dabcb2b0a81e809d9  gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c
  6e857b4eb94b8707c380e73efcbc5a51  gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c
  3339e7064ffdc160acaf1274e183706d  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-1.c
  c84ec8a2cd4608e33d447c561108ce97  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-2.c
  40cce91585f47cde61390171cd489668  gcc/testsuite/gcc.target/i386/memset-1.c
! 8dc0b20158a4bbdad650a8874321918c  gcc/testsuite/gcc.target/i386/memset-strategy-1.c
  e34fc4954adf255e63dd959604f68e95  gcc/testsuite/gcc.target/i386/memset-strategy-2.c
  abacd2e1491b7c40915d4be18c0229b4  gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c
  87dbca58e427b20c0f83b7a2aefbd38a  gcc/testsuite/gcc.target/i386/memset-vector_loop-2.c
--- 43639,43650 ----
  536862ceddae932e3d7da830f0866d31  gcc/testsuite/gcc.target/i386/memcpy-3.c
  410707f31f232fcc090c3b9edf6509de  gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c
  77bdb8cca8e868330213fec62f92dbbf  gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c
! 9724a363e64e9b37caa5ac0cf2159afd  gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c
  6e857b4eb94b8707c380e73efcbc5a51  gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c
  3339e7064ffdc160acaf1274e183706d  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-1.c
  c84ec8a2cd4608e33d447c561108ce97  gcc/testsuite/gcc.target/i386/memcpy-vector_loop-2.c
  40cce91585f47cde61390171cd489668  gcc/testsuite/gcc.target/i386/memset-1.c
! 5d42d8053ea9c0f90ccef1a5662638be  gcc/testsuite/gcc.target/i386/memset-strategy-1.c
  e34fc4954adf255e63dd959604f68e95  gcc/testsuite/gcc.target/i386/memset-strategy-2.c
  abacd2e1491b7c40915d4be18c0229b4  gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c
  87dbca58e427b20c0f83b7a2aefbd38a  gcc/testsuite/gcc.target/i386/memset-vector_loop-2.c
*************** e8b5b0802fdf96fc410ecd02fd9f6c85  gcc/te
*** 43889,43895 ****
  fdacb6b61a5d36e161500b14166654ae  gcc/testsuite/gcc.target/i386/pr21101.c
  6043d0b4998dd913e2d9e533a24f6a55  gcc/testsuite/gcc.target/i386/pr21291.c
  95f61d1360614e076d6888229ba0588f  gcc/testsuite/gcc.target/i386/pr21518.c
! b905c216d478c5dc8bb6646ee9d631e2  gcc/testsuite/gcc.target/i386/pr22076.c
  7c75138083b8282a0a6352ac179a89b4  gcc/testsuite/gcc.target/i386/pr22141.c
  8f2b174cc8f2156d82ca023e56a0b480  gcc/testsuite/gcc.target/i386/pr22152.c
  8ba2071af1172c3cd6d8259c589bc794  gcc/testsuite/gcc.target/i386/pr22362.c
--- 44066,44072 ----
  fdacb6b61a5d36e161500b14166654ae  gcc/testsuite/gcc.target/i386/pr21101.c
  6043d0b4998dd913e2d9e533a24f6a55  gcc/testsuite/gcc.target/i386/pr21291.c
  95f61d1360614e076d6888229ba0588f  gcc/testsuite/gcc.target/i386/pr21518.c
! 873aea068e102b2d11c7796945eba0e6  gcc/testsuite/gcc.target/i386/pr22076.c
  7c75138083b8282a0a6352ac179a89b4  gcc/testsuite/gcc.target/i386/pr22141.c
  8f2b174cc8f2156d82ca023e56a0b480  gcc/testsuite/gcc.target/i386/pr22152.c
  8ba2071af1172c3cd6d8259c589bc794  gcc/testsuite/gcc.target/i386/pr22362.c
*************** e99eb064d503f38b5a9c419915b38ae9  gcc/te
*** 43906,43912 ****
  d0e5cc510ff9f517c83e2f7086ecb411  gcc/testsuite/gcc.target/i386/pr24178.c
  7757504bdc3b5bd70de1a5960fb48a38  gcc/testsuite/gcc.target/i386/pr24306.c
  32fe0462a1b53d3fc2901ef49c868f00  gcc/testsuite/gcc.target/i386/pr24315.c
! 9e228011509a5ea1e0aa6c774b08d522  gcc/testsuite/gcc.target/i386/pr24414.c
  7374a381241b2f4065e5ce84cfc03f77  gcc/testsuite/gcc.target/i386/pr25196.c
  e2e1fa15682cd42c52206538adc05f64  gcc/testsuite/gcc.target/i386/pr25254.c
  303aec7f9e7bd15228b804c19e082f1e  gcc/testsuite/gcc.target/i386/pr25293.c
--- 44083,44089 ----
  d0e5cc510ff9f517c83e2f7086ecb411  gcc/testsuite/gcc.target/i386/pr24178.c
  7757504bdc3b5bd70de1a5960fb48a38  gcc/testsuite/gcc.target/i386/pr24306.c
  32fe0462a1b53d3fc2901ef49c868f00  gcc/testsuite/gcc.target/i386/pr24315.c
! 0f58cd327f51c6024b5baa09e289c4e1  gcc/testsuite/gcc.target/i386/pr24414.c
  7374a381241b2f4065e5ce84cfc03f77  gcc/testsuite/gcc.target/i386/pr25196.c
  e2e1fa15682cd42c52206538adc05f64  gcc/testsuite/gcc.target/i386/pr25254.c
  303aec7f9e7bd15228b804c19e082f1e  gcc/testsuite/gcc.target/i386/pr25293.c
*************** b5578714e28fde60a2ebba4b56c2fe6b  gcc/te
*** 43941,43954 ****
  9b916b67c68cce873259ce7198b6593b  gcc/testsuite/gcc.target/i386/pr32065-1.c
  694842da5eb4c5254d8b4bfe1dc8c111  gcc/testsuite/gcc.target/i386/pr32065-2.c
  1f9ce93e6d6ec25c764294b90cdb8d4a  gcc/testsuite/gcc.target/i386/pr32191.c
! 22203c7ad5e43b79eb21de05c3452845  gcc/testsuite/gcc.target/i386/pr32219-1.c
! 55289efe9ecdd9f86bee8fb362351170  gcc/testsuite/gcc.target/i386/pr32219-2.c
! 78624072da7312f0eb3cca7f219f416a  gcc/testsuite/gcc.target/i386/pr32219-3.c
! 3300f67245e33576cce58d6bc96e779c  gcc/testsuite/gcc.target/i386/pr32219-4.c
! 8ea5bd47a0cead9c4356e12ff6b5dcef  gcc/testsuite/gcc.target/i386/pr32219-5.c
! efa58ffb44f624da36aeac4c205d0d78  gcc/testsuite/gcc.target/i386/pr32219-6.c
! a63c6aefa093092a5201851c6a0ebc55  gcc/testsuite/gcc.target/i386/pr32219-7.c
! 07c126afe0aa2853ccc8538da083fd19  gcc/testsuite/gcc.target/i386/pr32219-8.c
  0d754f3296fed9daf149740a268d8931  gcc/testsuite/gcc.target/i386/pr32219-9.c
  d165bed09148366aaa31f611e7089751  gcc/testsuite/gcc.target/i386/pr32268.c
  23769d8ea259071995070dc88b8cefc7  gcc/testsuite/gcc.target/i386/pr32280-1.c
--- 44118,44131 ----
  9b916b67c68cce873259ce7198b6593b  gcc/testsuite/gcc.target/i386/pr32065-1.c
  694842da5eb4c5254d8b4bfe1dc8c111  gcc/testsuite/gcc.target/i386/pr32065-2.c
  1f9ce93e6d6ec25c764294b90cdb8d4a  gcc/testsuite/gcc.target/i386/pr32191.c
! 3ef466a500bee78557e9f8543d11be2f  gcc/testsuite/gcc.target/i386/pr32219-1.c
! 79a2e189766746b2f0f07d4459e83e18  gcc/testsuite/gcc.target/i386/pr32219-2.c
! 324eb5d6acff05e4f8056c7dbee9683c  gcc/testsuite/gcc.target/i386/pr32219-3.c
! 31e1ff1e1dea7eb33b16e3b0e7b51cc1  gcc/testsuite/gcc.target/i386/pr32219-4.c
! b4936c47ad27f5cfcac7ada484a24cac  gcc/testsuite/gcc.target/i386/pr32219-5.c
! 786db7c45dc2a6ae29200eac1b80c7d3  gcc/testsuite/gcc.target/i386/pr32219-6.c
! 89fc6d77f9488a3112b71f1d23bc8864  gcc/testsuite/gcc.target/i386/pr32219-7.c
! 51cdace97592cf8fb6a08aa60c3eb253  gcc/testsuite/gcc.target/i386/pr32219-8.c
  0d754f3296fed9daf149740a268d8931  gcc/testsuite/gcc.target/i386/pr32219-9.c
  d165bed09148366aaa31f611e7089751  gcc/testsuite/gcc.target/i386/pr32268.c
  23769d8ea259071995070dc88b8cefc7  gcc/testsuite/gcc.target/i386/pr32280-1.c
*************** b17093c3bfb7dce01e2961b9007a74f1  gcc/te
*** 44023,44030 ****
  302fd577a2a020db1af8817a3e4168ac  gcc/testsuite/gcc.target/i386/pr38824.c
  cc52fb6e855215f99580b9fa0002669f  gcc/testsuite/gcc.target/i386/pr38931.c
  776dfcacbe92f325df29c325a1a39d91  gcc/testsuite/gcc.target/i386/pr38988.c
! c8d1ff9429ba4604dabba902390d2bb7  gcc/testsuite/gcc.target/i386/pr39013-1.c
! 209afdf599b8ee30768436785833894b  gcc/testsuite/gcc.target/i386/pr39013-2.c
  1441ac15d0d7e61256bb4a348e29d6cf  gcc/testsuite/gcc.target/i386/pr39058.c
  b11c8e619e3aa58383c3682c25436e38  gcc/testsuite/gcc.target/i386/pr39082-1.c
  94f116f1e5835fc4ff466f7510f151e4  gcc/testsuite/gcc.target/i386/pr39139.c
--- 44200,44207 ----
  302fd577a2a020db1af8817a3e4168ac  gcc/testsuite/gcc.target/i386/pr38824.c
  cc52fb6e855215f99580b9fa0002669f  gcc/testsuite/gcc.target/i386/pr38931.c
  776dfcacbe92f325df29c325a1a39d91  gcc/testsuite/gcc.target/i386/pr38988.c
! 139b8a82970c0216c2382ef1c3fafd48  gcc/testsuite/gcc.target/i386/pr39013-1.c
! 8ed5e3e1acfe24d9701317573d9c1a1b  gcc/testsuite/gcc.target/i386/pr39013-2.c
  1441ac15d0d7e61256bb4a348e29d6cf  gcc/testsuite/gcc.target/i386/pr39058.c
  b11c8e619e3aa58383c3682c25436e38  gcc/testsuite/gcc.target/i386/pr39082-1.c
  94f116f1e5835fc4ff466f7510f151e4  gcc/testsuite/gcc.target/i386/pr39139.c
*************** e4cb1df2af54fb838523220e3c4c3720  gcc/te
*** 44188,44194 ****
  d6e516d1e403892d4cc4985025b0655a  gcc/testsuite/gcc.target/i386/pr49715-1.c
  f2fc960bed4e328a5f9df7a309ea139d  gcc/testsuite/gcc.target/i386/pr49715-2.c
  f7ab73a2fd4f6a3dd974d04abb4a16b0  gcc/testsuite/gcc.target/i386/pr49781-1.c
! a507190570770ea7556f6f0f98836c16  gcc/testsuite/gcc.target/i386/pr49866.c
  f6f60a959460e8b78dd6402b43af4809  gcc/testsuite/gcc.target/i386/pr49920.c
  4e2731d8a8d0fba23d5859b02be21702  gcc/testsuite/gcc.target/i386/pr49927.c
  4e15899cf7cde94f403bc044accb5f22  gcc/testsuite/gcc.target/i386/pr50038.c
--- 44365,44371 ----
  d6e516d1e403892d4cc4985025b0655a  gcc/testsuite/gcc.target/i386/pr49715-1.c
  f2fc960bed4e328a5f9df7a309ea139d  gcc/testsuite/gcc.target/i386/pr49715-2.c
  f7ab73a2fd4f6a3dd974d04abb4a16b0  gcc/testsuite/gcc.target/i386/pr49781-1.c
! 60f4b57b6b6a4d210042d2f56e1d33cf  gcc/testsuite/gcc.target/i386/pr49866.c
  f6f60a959460e8b78dd6402b43af4809  gcc/testsuite/gcc.target/i386/pr49920.c
  4e2731d8a8d0fba23d5859b02be21702  gcc/testsuite/gcc.target/i386/pr49927.c
  4e15899cf7cde94f403bc044accb5f22  gcc/testsuite/gcc.target/i386/pr50038.c
*************** aff7074250516571a07457eace3f2639  gcc/te
*** 44204,44220 ****
  e2c5c9c01d62f181543c46c15e625efc  gcc/testsuite/gcc.target/i386/pr51236.c
  cc3feb019a23f31f22f8d90ea35306a2  gcc/testsuite/gcc.target/i386/pr51393.c
  feae34d686df3d5dc6348f1e08292d5f  gcc/testsuite/gcc.target/i386/pr51987.c
! 9e2c6dc3ff1a53066110e22a1b8878fa  gcc/testsuite/gcc.target/i386/pr52146.c
  fa01242d5badde4691345c598d6cad72  gcc/testsuite/gcc.target/i386/pr52171.c
  ef886cc6e383e494a854c7e9478d4347  gcc/testsuite/gcc.target/i386/pr52252-atom.c
  66960d383ca0ec04f2cfc2ce546d9746  gcc/testsuite/gcc.target/i386/pr52252-core.c
  e90dc7f0b1e6d26c11b5224430e328db  gcc/testsuite/gcc.target/i386/pr52330.c
! 663a04de8e14ab888ac539e83abb3848  gcc/testsuite/gcc.target/i386/pr52698.c
  0c3fdc1f40423ab5e185c0b1d9df7215  gcc/testsuite/gcc.target/i386/pr52736.c
  d5747936af421343d3d26320d8dd18a6  gcc/testsuite/gcc.target/i386/pr52754.c
! f3734af93c1735fb407310153bbcc265  gcc/testsuite/gcc.target/i386/pr52857-1.c
! 3c73c51d0b4edd63528474f20107a721  gcc/testsuite/gcc.target/i386/pr52857-2.c
! 381f8bdb2c5734137664263510de70fe  gcc/testsuite/gcc.target/i386/pr52876.c
  ae96f2a6ec3876560fe977282760bda7  gcc/testsuite/gcc.target/i386/pr52882.c
  908f895d749fbe4b41db70b705b92270  gcc/testsuite/gcc.target/i386/pr52883.c
  7cd607f59acbf5495f51e7f583bdfaaf  gcc/testsuite/gcc.target/i386/pr53249.c
--- 44381,44397 ----
  e2c5c9c01d62f181543c46c15e625efc  gcc/testsuite/gcc.target/i386/pr51236.c
  cc3feb019a23f31f22f8d90ea35306a2  gcc/testsuite/gcc.target/i386/pr51393.c
  feae34d686df3d5dc6348f1e08292d5f  gcc/testsuite/gcc.target/i386/pr51987.c
! 28bbe8fb8e03847360d72e655a04541c  gcc/testsuite/gcc.target/i386/pr52146.c
  fa01242d5badde4691345c598d6cad72  gcc/testsuite/gcc.target/i386/pr52171.c
  ef886cc6e383e494a854c7e9478d4347  gcc/testsuite/gcc.target/i386/pr52252-atom.c
  66960d383ca0ec04f2cfc2ce546d9746  gcc/testsuite/gcc.target/i386/pr52252-core.c
  e90dc7f0b1e6d26c11b5224430e328db  gcc/testsuite/gcc.target/i386/pr52330.c
! c48d1106f891da8cb9f2181a389e01b7  gcc/testsuite/gcc.target/i386/pr52698.c
  0c3fdc1f40423ab5e185c0b1d9df7215  gcc/testsuite/gcc.target/i386/pr52736.c
  d5747936af421343d3d26320d8dd18a6  gcc/testsuite/gcc.target/i386/pr52754.c
! 517bbfb07279a94cd6901ed62f114aa9  gcc/testsuite/gcc.target/i386/pr52857-1.c
! 2d8dc92c147e4d0bcabd8dc699be03f3  gcc/testsuite/gcc.target/i386/pr52857-2.c
! 67c8a8851a7e43ad299c6d011f62094a  gcc/testsuite/gcc.target/i386/pr52876.c
  ae96f2a6ec3876560fe977282760bda7  gcc/testsuite/gcc.target/i386/pr52882.c
  908f895d749fbe4b41db70b705b92270  gcc/testsuite/gcc.target/i386/pr52883.c
  7cd607f59acbf5495f51e7f583bdfaaf  gcc/testsuite/gcc.target/i386/pr53249.c
*************** fd40b61a82fba3ab0c6bb50cfedfb117  gcc/te
*** 44230,44240 ****
  438890bd8588325bfdd31602ae74f65c  gcc/testsuite/gcc.target/i386/pr53425-1.c
  384ba022d2854e096a4ab0f145961c51  gcc/testsuite/gcc.target/i386/pr53425-2.c
  b39743561f1aade37b33835b241fb062  gcc/testsuite/gcc.target/i386/pr53623.c
! fab0d7a06b537344b89206ac0118ede7  gcc/testsuite/gcc.target/i386/pr53698.c
  7a5c747070caa41b5e773ef449165641  gcc/testsuite/gcc.target/i386/pr53712.c
  a9790955f72731a48e8cc07e79081c86  gcc/testsuite/gcc.target/i386/pr53759.c
  b845585001d3aa1599603bf8f8438393  gcc/testsuite/gcc.target/i386/pr53907.c
! a1bce0d57b6fd35c2faf04c2f80d6550  gcc/testsuite/gcc.target/i386/pr54157.c
  dba42c939904ce7e33213ea822d41659  gcc/testsuite/gcc.target/i386/pr54400.c
  414b8adf659b6e0fae2493215e4c8e43  gcc/testsuite/gcc.target/i386/pr54445-1.c
  f69bb6692a438b6c4c3ae59e8151f9e5  gcc/testsuite/gcc.target/i386/pr54445-2.c
--- 44407,44417 ----
  438890bd8588325bfdd31602ae74f65c  gcc/testsuite/gcc.target/i386/pr53425-1.c
  384ba022d2854e096a4ab0f145961c51  gcc/testsuite/gcc.target/i386/pr53425-2.c
  b39743561f1aade37b33835b241fb062  gcc/testsuite/gcc.target/i386/pr53623.c
! 179de2cb7520586109384b9edf5a9b30  gcc/testsuite/gcc.target/i386/pr53698.c
  7a5c747070caa41b5e773ef449165641  gcc/testsuite/gcc.target/i386/pr53712.c
  a9790955f72731a48e8cc07e79081c86  gcc/testsuite/gcc.target/i386/pr53759.c
  b845585001d3aa1599603bf8f8438393  gcc/testsuite/gcc.target/i386/pr53907.c
! c6b9296a558aaf5187a02addf73c05d0  gcc/testsuite/gcc.target/i386/pr54157.c
  dba42c939904ce7e33213ea822d41659  gcc/testsuite/gcc.target/i386/pr54400.c
  414b8adf659b6e0fae2493215e4c8e43  gcc/testsuite/gcc.target/i386/pr54445-1.c
  f69bb6692a438b6c4c3ae59e8151f9e5  gcc/testsuite/gcc.target/i386/pr54445-2.c
*************** f69bb6692a438b6c4c3ae59e8151f9e5  gcc/te
*** 44242,44251 ****
  49bc157be86e0960ae4e4637c5986069  gcc/testsuite/gcc.target/i386/pr54592.c
  6d7b053bbb28bb9e1a4e8c1967a60835  gcc/testsuite/gcc.target/i386/pr54694.c
  c502c143bfe08e286784446e3a530233  gcc/testsuite/gcc.target/i386/pr54703.c
! 94c3ae931dcc50fe3b4806ac10d8b49d  gcc/testsuite/gcc.target/i386/pr55049-1.c
! e64fab110c29e7a7dac4eab53a510cd4  gcc/testsuite/gcc.target/i386/pr55093.c
! 971529c1cb0a306601d8a61d4df7716c  gcc/testsuite/gcc.target/i386/pr55116-1.c
! 9fa9c0c5f09f31e76035778e3bf46b4f  gcc/testsuite/gcc.target/i386/pr55116-2.c
  850e83f914a40f18a2e5580f476368ec  gcc/testsuite/gcc.target/i386/pr55130.c
  815f3e59894f23400b8f65f47018b0a6  gcc/testsuite/gcc.target/i386/pr55141.c
  f87cf0427662776b6b805de195141d67  gcc/testsuite/gcc.target/i386/pr55142-1.c
--- 44419,44428 ----
  49bc157be86e0960ae4e4637c5986069  gcc/testsuite/gcc.target/i386/pr54592.c
  6d7b053bbb28bb9e1a4e8c1967a60835  gcc/testsuite/gcc.target/i386/pr54694.c
  c502c143bfe08e286784446e3a530233  gcc/testsuite/gcc.target/i386/pr54703.c
! f9b778e3b98dfbae81a8d9edc0e6e7f0  gcc/testsuite/gcc.target/i386/pr55049-1.c
! 2d60942307fe4e7e807550a8a784f351  gcc/testsuite/gcc.target/i386/pr55093.c
! 65f2fe2ece7ea124fb44ac3412f502b0  gcc/testsuite/gcc.target/i386/pr55116-1.c
! daa42859823476fca1b35a79f1daabe0  gcc/testsuite/gcc.target/i386/pr55116-2.c
  850e83f914a40f18a2e5580f476368ec  gcc/testsuite/gcc.target/i386/pr55130.c
  815f3e59894f23400b8f65f47018b0a6  gcc/testsuite/gcc.target/i386/pr55141.c
  f87cf0427662776b6b805de195141d67  gcc/testsuite/gcc.target/i386/pr55142-1.c
*************** b4fb0c886229835ec55bd681f831812b  gcc/te
*** 44267,44273 ****
  2d3d0716987d79a9b2427e2e7237c420  gcc/testsuite/gcc.target/i386/pr55512-4.c
  ed1ba8dd30b6e7d0c41497405b5c6d08  gcc/testsuite/gcc.target/i386/pr55590-1.c
  f36e5b68f83ad7f55d170085ad4c4fff  gcc/testsuite/gcc.target/i386/pr55590-2.c
! 3a737ef7a5b3519c35502247ffe7f87c  gcc/testsuite/gcc.target/i386/pr55597.c
  e5a8b0266c09bde63ddb64aa7cacdf75  gcc/testsuite/gcc.target/i386/pr55672.c
  f10a165430aeef45c61d11278003318d  gcc/testsuite/gcc.target/i386/pr55686.c
  12194a8a936bb0fdc429c4ad3ad689df  gcc/testsuite/gcc.target/i386/pr55775.c
--- 44444,44450 ----
  2d3d0716987d79a9b2427e2e7237c420  gcc/testsuite/gcc.target/i386/pr55512-4.c
  ed1ba8dd30b6e7d0c41497405b5c6d08  gcc/testsuite/gcc.target/i386/pr55590-1.c
  f36e5b68f83ad7f55d170085ad4c4fff  gcc/testsuite/gcc.target/i386/pr55590-2.c
! bdfd75705a8ed1ae370d0e6397e89e61  gcc/testsuite/gcc.target/i386/pr55597.c
  e5a8b0266c09bde63ddb64aa7cacdf75  gcc/testsuite/gcc.target/i386/pr55672.c
  f10a165430aeef45c61d11278003318d  gcc/testsuite/gcc.target/i386/pr55686.c
  12194a8a936bb0fdc429c4ad3ad689df  gcc/testsuite/gcc.target/i386/pr55775.c
*************** af5df137e86c7cfd11e8d68f07c8d25c  gcc/te
*** 44368,44377 ****
  0c2d582f00adc7472660160cba8ba19b  gcc/testsuite/gcc.target/i386/pr59839.c
  d1a0e61387e72001b140b22cec7d1a93  gcc/testsuite/gcc.target/i386/pr59874-1.c
  5e70c91e6aef9c124836dbc1d66c0bdc  gcc/testsuite/gcc.target/i386/pr59874-2.c
! 2ec6baf4aeb86d68a84163d2477d428e  gcc/testsuite/gcc.target/i386/pr59874-3.c
  918053d5181acfecc88c708f27f8f436  gcc/testsuite/gcc.target/i386/pr59880.c
  b87fe1f8e7496a37c4723f6e51a2ea39  gcc/testsuite/gcc.target/i386/pr59927.c
! ef5e7cf22fd8cf05d21ba509a8796cae  gcc/testsuite/gcc.target/i386/pr59929.c
  fb96b888f73b2dddf89b41b3dbc9da0e  gcc/testsuite/gcc.target/i386/pr60077-1.c
  87f9b9773ac7d3c76e952ed8199c7a7c  gcc/testsuite/gcc.target/i386/pr60077-2.c
  ca6424ec4af0910766ce85dcf738c0c9  gcc/testsuite/gcc.target/i386/pr60205-1.c
--- 44545,44554 ----
  0c2d582f00adc7472660160cba8ba19b  gcc/testsuite/gcc.target/i386/pr59839.c
  d1a0e61387e72001b140b22cec7d1a93  gcc/testsuite/gcc.target/i386/pr59874-1.c
  5e70c91e6aef9c124836dbc1d66c0bdc  gcc/testsuite/gcc.target/i386/pr59874-2.c
! aeab82c6005d256c58b161b65c623187  gcc/testsuite/gcc.target/i386/pr59874-3.c
  918053d5181acfecc88c708f27f8f436  gcc/testsuite/gcc.target/i386/pr59880.c
  b87fe1f8e7496a37c4723f6e51a2ea39  gcc/testsuite/gcc.target/i386/pr59927.c
! 3dfeef977e468af129b5ad1907b7cbcf  gcc/testsuite/gcc.target/i386/pr59929.c
  fb96b888f73b2dddf89b41b3dbc9da0e  gcc/testsuite/gcc.target/i386/pr60077-1.c
  87f9b9773ac7d3c76e952ed8199c7a7c  gcc/testsuite/gcc.target/i386/pr60077-2.c
  ca6424ec4af0910766ce85dcf738c0c9  gcc/testsuite/gcc.target/i386/pr60205-1.c
*************** b30c0b8f6df46552067659d00c2b413f  gcc/te
*** 44400,44406 ****
  c2ad80ced67848aa724c64790fae16e7  gcc/testsuite/gcc.target/i386/pr61423.c
  2e681bb97b6870c8edb1514a2edad73a  gcc/testsuite/gcc.target/i386/pr61446.c
  41c81c5a9c11d9139ad858d341f4ab52  gcc/testsuite/gcc.target/i386/pr61572.c
! 3f4cbdecf1917a066aa3efa5412627d9  gcc/testsuite/gcc.target/i386/pr61599-1.c
  15c0ecfbbb1821976c91e66b75baac53  gcc/testsuite/gcc.target/i386/pr61599-2.c
  2ee0efa258974320c9447d777ed0cd1e  gcc/testsuite/gcc.target/i386/pr61794.c
  0af95498db628ce9ab87f06bcc3818c2  gcc/testsuite/gcc.target/i386/pr61801.c
--- 44577,44583 ----
  c2ad80ced67848aa724c64790fae16e7  gcc/testsuite/gcc.target/i386/pr61423.c
  2e681bb97b6870c8edb1514a2edad73a  gcc/testsuite/gcc.target/i386/pr61446.c
  41c81c5a9c11d9139ad858d341f4ab52  gcc/testsuite/gcc.target/i386/pr61572.c
! 051e752e6f5f3b5c6c426d1626da2a1e  gcc/testsuite/gcc.target/i386/pr61599-1.c
  15c0ecfbbb1821976c91e66b75baac53  gcc/testsuite/gcc.target/i386/pr61599-2.c
  2ee0efa258974320c9447d777ed0cd1e  gcc/testsuite/gcc.target/i386/pr61794.c
  0af95498db628ce9ab87f06bcc3818c2  gcc/testsuite/gcc.target/i386/pr61801.c
*************** c401b2b80062c0d9567f773adca682d1  gcc/te
*** 44416,44422 ****
  c5d5a6e45cbe795c19e3ccb075e2c353  gcc/testsuite/gcc.target/i386/pr63495.c
  d411131829e4182bcd0f01c491669453  gcc/testsuite/gcc.target/i386/pr63527.c
  50ea06065d2e674f38033361f71fea26  gcc/testsuite/gcc.target/i386/pr63534.c
! b94984e7c628f56d531f92149504a0ed  gcc/testsuite/gcc.target/i386/pr63538.c
  561aeb698494e71bb2a1de5b9848f5f5  gcc/testsuite/gcc.target/i386/pr63542-1.c
  c2179fbbe68a40ce1e3486b98db6a47f  gcc/testsuite/gcc.target/i386/pr63542-2.c
  9c17e1a161d05dcffaa896376c5ecc02  gcc/testsuite/gcc.target/i386/pr63563.c
--- 44593,44599 ----
  c5d5a6e45cbe795c19e3ccb075e2c353  gcc/testsuite/gcc.target/i386/pr63495.c
  d411131829e4182bcd0f01c491669453  gcc/testsuite/gcc.target/i386/pr63527.c
  50ea06065d2e674f38033361f71fea26  gcc/testsuite/gcc.target/i386/pr63534.c
! 30aaae44143ac2a44f16e0db0cec0af6  gcc/testsuite/gcc.target/i386/pr63538.c
  561aeb698494e71bb2a1de5b9848f5f5  gcc/testsuite/gcc.target/i386/pr63542-1.c
  c2179fbbe68a40ce1e3486b98db6a47f  gcc/testsuite/gcc.target/i386/pr63542-2.c
  9c17e1a161d05dcffaa896376c5ecc02  gcc/testsuite/gcc.target/i386/pr63563.c
*************** e70e8eb63cff3610044e38fdad89e34b  gcc/te
*** 44438,44444 ****
  516133a673f4f174a446f2fc7a80e412  gcc/testsuite/gcc.target/i386/pr64114.c
  06cb0e7a72d6bb5683ff9652a80c6ae9  gcc/testsuite/gcc.target/i386/pr64291-1.c
  2b7674a20e784b4cf390cb695a576dfe  gcc/testsuite/gcc.target/i386/pr64291-2.c
! 49608ce01a9e0d30d5e69f3723ac732a  gcc/testsuite/gcc.target/i386/pr64317.c
  062641897c1f576f8e34f6685a28feab  gcc/testsuite/gcc.target/i386/pr64386.c
  4ab995a39be1d9f6ab51bed74868b4d9  gcc/testsuite/gcc.target/i386/pr64387.c
  7f461e790905a6a59c18169efe63b087  gcc/testsuite/gcc.target/i386/pr64393.c
--- 44615,44621 ----
  516133a673f4f174a446f2fc7a80e412  gcc/testsuite/gcc.target/i386/pr64114.c
  06cb0e7a72d6bb5683ff9652a80c6ae9  gcc/testsuite/gcc.target/i386/pr64291-1.c
  2b7674a20e784b4cf390cb695a576dfe  gcc/testsuite/gcc.target/i386/pr64291-2.c
! e05ae6facbbbf26826893a785e206bc4  gcc/testsuite/gcc.target/i386/pr64317.c
  062641897c1f576f8e34f6685a28feab  gcc/testsuite/gcc.target/i386/pr64386.c
  4ab995a39be1d9f6ab51bed74868b4d9  gcc/testsuite/gcc.target/i386/pr64387.c
  7f461e790905a6a59c18169efe63b087  gcc/testsuite/gcc.target/i386/pr64393.c
*************** eba9fc2cd96c68428c1d78d35c3f7e05  gcc/te
*** 44507,44513 ****
  9691b9fb2206de681ed083de689c89c7  gcc/testsuite/gcc.target/i386/pr66334.c
  7e1d59ce8293eee1a626a8693fdb6e4f  gcc/testsuite/gcc.target/i386/pr66412.c
  bbcc4bad6e85470b150a7b32458d3e35  gcc/testsuite/gcc.target/i386/pr66424.c
! a15e6d4602a8708a08f7528489b4c898  gcc/testsuite/gcc.target/i386/pr66470.c
  adcb62c54481141a24a282aa3efd51eb  gcc/testsuite/gcc.target/i386/pr66473.c
  a90810efc19810051c42bbf05fc2f72b  gcc/testsuite/gcc.target/i386/pr66560-1.c
  e67da57ff2aa6286b42715d71c873ffa  gcc/testsuite/gcc.target/i386/pr66560-2.c
--- 44684,44690 ----
  9691b9fb2206de681ed083de689c89c7  gcc/testsuite/gcc.target/i386/pr66334.c
  7e1d59ce8293eee1a626a8693fdb6e4f  gcc/testsuite/gcc.target/i386/pr66412.c
  bbcc4bad6e85470b150a7b32458d3e35  gcc/testsuite/gcc.target/i386/pr66424.c
! 19bb97a482a9e3d01f67c4fe65bfdb96  gcc/testsuite/gcc.target/i386/pr66470.c
  adcb62c54481141a24a282aa3efd51eb  gcc/testsuite/gcc.target/i386/pr66473.c
  a90810efc19810051c42bbf05fc2f72b  gcc/testsuite/gcc.target/i386/pr66560-1.c
  e67da57ff2aa6286b42715d71c873ffa  gcc/testsuite/gcc.target/i386/pr66560-2.c
*************** ab260630154714d6a92fa264356ec077  gcc/te
*** 44529,44536 ****
  2736f559d9ed3001d877f7450d819853  gcc/testsuite/gcc.target/i386/pr66818.c
  3a8525427a2c06a8b1267e82570c0b32  gcc/testsuite/gcc.target/i386/pr66819-1.c
  706dbaecc1d6996b81f72c1443d9709e  gcc/testsuite/gcc.target/i386/pr66819-2.c
! 3b93308bdecf42fb2c2176aa9e4b5b1e  gcc/testsuite/gcc.target/i386/pr66819-3.c
! c775a183cd78571eb1b5fb056475ab2a  gcc/testsuite/gcc.target/i386/pr66819-4.c
  a085a03f3e2cb2efe81768c469c38448  gcc/testsuite/gcc.target/i386/pr66819-5.c
  977ca8ebf3373ba11feedebeb69aea2c  gcc/testsuite/gcc.target/i386/pr66821.c
  32a7bc9b1156780a17e61321fa5d0b20  gcc/testsuite/gcc.target/i386/pr66824.c
--- 44706,44713 ----
  2736f559d9ed3001d877f7450d819853  gcc/testsuite/gcc.target/i386/pr66818.c
  3a8525427a2c06a8b1267e82570c0b32  gcc/testsuite/gcc.target/i386/pr66819-1.c
  706dbaecc1d6996b81f72c1443d9709e  gcc/testsuite/gcc.target/i386/pr66819-2.c
! 84d18626653364c4aeae9aa54f1304e1  gcc/testsuite/gcc.target/i386/pr66819-3.c
! 6f5c7f70b4c803c33e6e9c040c4e1d69  gcc/testsuite/gcc.target/i386/pr66819-4.c
  a085a03f3e2cb2efe81768c469c38448  gcc/testsuite/gcc.target/i386/pr66819-5.c
  977ca8ebf3373ba11feedebeb69aea2c  gcc/testsuite/gcc.target/i386/pr66821.c
  32a7bc9b1156780a17e61321fa5d0b20  gcc/testsuite/gcc.target/i386/pr66824.c
*************** bea583c8259434a6a826cd2c30638802  gcc/te
*** 44566,44572 ****
  20023d24d21d62dd6789da2589104070  gcc/testsuite/gcc.target/i386/pr67963-2.c
  139b1bdb98e3296f9ddee0838954fe94  gcc/testsuite/gcc.target/i386/pr67963-3.c
  1821cb97402be7ffe7bdc5f23f8e3199  gcc/testsuite/gcc.target/i386/pr67985-1.c
! 4212d7a5843c1b880161949554647739  gcc/testsuite/gcc.target/i386/pr67985-2.c
  4f7ff503d6a736a2ea199675c6262322  gcc/testsuite/gcc.target/i386/pr67985-3.c
  4f8f5573505d9b60bab0ee48c5fe922f  gcc/testsuite/gcc.target/i386/pr67995-1.c
  e5e29507fd1dff3f68bf471a7ebabe04  gcc/testsuite/gcc.target/i386/pr67995-2.c
--- 44743,44749 ----
  20023d24d21d62dd6789da2589104070  gcc/testsuite/gcc.target/i386/pr67963-2.c
  139b1bdb98e3296f9ddee0838954fe94  gcc/testsuite/gcc.target/i386/pr67963-3.c
  1821cb97402be7ffe7bdc5f23f8e3199  gcc/testsuite/gcc.target/i386/pr67985-1.c
! dd5ee7ef74ea9dfe9ed9da3e757be1a2  gcc/testsuite/gcc.target/i386/pr67985-2.c
  4f7ff503d6a736a2ea199675c6262322  gcc/testsuite/gcc.target/i386/pr67985-3.c
  4f8f5573505d9b60bab0ee48c5fe922f  gcc/testsuite/gcc.target/i386/pr67995-1.c
  e5e29507fd1dff3f68bf471a7ebabe04  gcc/testsuite/gcc.target/i386/pr67995-2.c
*************** fb74d73535ae13841ad274eed8746e1d  gcc/te
*** 44705,44711 ****
  1b44db35f8df9b2763028de6125de9e3  gcc/testsuite/gcc.target/i386/pr70738-4.c
  61eaf57653733d78911ae6debba297f3  gcc/testsuite/gcc.target/i386/pr70738-5.c
  2c2031d1591def6dc255c3c4e1b5ea98  gcc/testsuite/gcc.target/i386/pr70738-6.c
! a12202905bd4ab853068b48a260a39fc  gcc/testsuite/gcc.target/i386/pr70738-7.c
  3a1ef414c243d704288672ae2ed719ae  gcc/testsuite/gcc.target/i386/pr70738-8.c
  b79c0bcdf58f6e1bba3f6620fefa6f0f  gcc/testsuite/gcc.target/i386/pr70738-9.c
  0adbcabe255b36ad14e5fced66fe8a7c  gcc/testsuite/gcc.target/i386/pr70750-1.c
--- 44882,44888 ----
  1b44db35f8df9b2763028de6125de9e3  gcc/testsuite/gcc.target/i386/pr70738-4.c
  61eaf57653733d78911ae6debba297f3  gcc/testsuite/gcc.target/i386/pr70738-5.c
  2c2031d1591def6dc255c3c4e1b5ea98  gcc/testsuite/gcc.target/i386/pr70738-6.c
! 234057751bd4af4434ba4b09c32e7465  gcc/testsuite/gcc.target/i386/pr70738-7.c
  3a1ef414c243d704288672ae2ed719ae  gcc/testsuite/gcc.target/i386/pr70738-8.c
  b79c0bcdf58f6e1bba3f6620fefa6f0f  gcc/testsuite/gcc.target/i386/pr70738-9.c
  0adbcabe255b36ad14e5fced66fe8a7c  gcc/testsuite/gcc.target/i386/pr70750-1.c
*************** c912bb68571e4d5714afa27a8a0bbfbb  gcc/te
*** 44749,44755 ****
  6b0d02fbe2f46273848e2a4f2e1562cb  gcc/testsuite/gcc.target/i386/pr77761.c
  e24e16431564ae1db7f06ba62681abaa  gcc/testsuite/gcc.target/i386/pr77833.c
  e5be6cf6d0060be81cbbeb24d1b45ac8  gcc/testsuite/gcc.target/i386/pr77856.c
! ddcb7f5cb340f4cab23fd0392eed65ce  gcc/testsuite/gcc.target/i386/pr77881.c
  ebdf78610e5253029e5305e68875b6c9  gcc/testsuite/gcc.target/i386/pr77991.c
  e92468cd3d6db284b41cbd24c3b82524  gcc/testsuite/gcc.target/i386/pr78035.c
  a0f1a716d3aa44f2dbe260d265da5118  gcc/testsuite/gcc.target/i386/pr78037.c
--- 44926,44932 ----
  6b0d02fbe2f46273848e2a4f2e1562cb  gcc/testsuite/gcc.target/i386/pr77761.c
  e24e16431564ae1db7f06ba62681abaa  gcc/testsuite/gcc.target/i386/pr77833.c
  e5be6cf6d0060be81cbbeb24d1b45ac8  gcc/testsuite/gcc.target/i386/pr77856.c
! 93e914077bc0a0fec60293774cf1fb84  gcc/testsuite/gcc.target/i386/pr77881.c
  ebdf78610e5253029e5305e68875b6c9  gcc/testsuite/gcc.target/i386/pr77991.c
  e92468cd3d6db284b41cbd24c3b82524  gcc/testsuite/gcc.target/i386/pr78035.c
  a0f1a716d3aa44f2dbe260d265da5118  gcc/testsuite/gcc.target/i386/pr78037.c
*************** b7f2c0b3d382bb72b6dc274a9b8ae5cf  gcc/te
*** 44860,44870 ****
--- 45037,45070 ----
  240d163e1ad4d0cb25ce82ae3b980872  gcc/testsuite/gcc.target/i386/pr85095-1.c
  da8dddf5375beef8a5899951924780ea  gcc/testsuite/gcc.target/i386/pr85095-2.c
  2c9fa20db8db57984e210a776424e3aa  gcc/testsuite/gcc.target/i386/pr85193.c
+ e89855e4afbc8be3009567aa4b7ef483  gcc/testsuite/gcc.target/i386/pr86334.c
  4302cd96928c315422f2c1fd5d5e767e  gcc/testsuite/gcc.target/i386/pr86627.c
+ c5292926a0f6c5a61e62910d3331aa2f  gcc/testsuite/gcc.target/i386/pr86952.c
  7300b3d2e6c51732192703b00e1633eb  gcc/testsuite/gcc.target/i386/pr87065.c
  4bcf1f2404bf83c2e402690653adf2bc  gcc/testsuite/gcc.target/i386/pr87370.c
  640f95ee3bcfcdd3ddddf350e70a219e  gcc/testsuite/gcc.target/i386/pr87550.c
+ b91162801f7d0d6af855bd692e22ab63  gcc/testsuite/gcc.target/i386/pr87853.c
  4b54801016bc4b3cc228ac7dd70de407  gcc/testsuite/gcc.target/i386/pr87928.c
+ 8aa15a462c33644313684b33656a3512  gcc/testsuite/gcc.target/i386/pr88416.c
+ 561c19e980c43266fc4b3d3a28fe8bc2  gcc/testsuite/gcc.target/i386/pr88418.c
+ 40a7ef6fb3bcabb2e6a14793769e9983  gcc/testsuite/gcc.target/i386/pr88470.c
+ 44f18856f00f48988a17b6c2f08502ed  gcc/testsuite/gcc.target/i386/pr88906.c
+ f32a1aef3d374a5b4ad42047396a3805  gcc/testsuite/gcc.target/i386/pr88938.c
+ 141169b2e8ff64bdba2208ca1feb4a7c  gcc/testsuite/gcc.target/i386/pr88948.c
+ 741d1c44cbb9ba8dfdfc363a84b46d20  gcc/testsuite/gcc.target/i386/pr89523-1a.c
+ bcb8ff722b8b594bcfd9075d37eaff6f  gcc/testsuite/gcc.target/i386/pr89523-1b.c
+ 1a7b71dea5f1b81b4c20d53bd27d1604  gcc/testsuite/gcc.target/i386/pr89523-2.c
+ c477d7333d280aa9ba0232f363826175  gcc/testsuite/gcc.target/i386/pr89523-3.c
+ 37d95d0f23ac1bfc04510b1a7b4a0ed7  gcc/testsuite/gcc.target/i386/pr89523-4.c
+ b9dc216c8935f73126bb07b75ef58c82  gcc/testsuite/gcc.target/i386/pr89523-5.c
+ 21b4d2c258f9255ac099efdcceba396c  gcc/testsuite/gcc.target/i386/pr89523-6.c
+ 104a2416e74048f45915a5e09656c2aa  gcc/testsuite/gcc.target/i386/pr89523-7.c
+ fa633632e627d7c0fcb34ba2673e196b  gcc/testsuite/gcc.target/i386/pr89523-8.c
+ aab7cb035d0456e2d0bf25f7f53cfd30  gcc/testsuite/gcc.target/i386/pr89523-9.c
+ f529a8c1dee59aa4275d01977b57a0f2  gcc/testsuite/gcc.target/i386/pr89945.c
+ 71daed2fce58de22bfa193c1d29d8205  gcc/testsuite/gcc.target/i386/pr90547.c
+ 214e297c0a7eb9cbfdb0fe5aaefdfaa2  gcc/testsuite/gcc.target/i386/pr91131.c
+ acc82a5b459bf1433e5f0d6d4849c00a  gcc/testsuite/gcc.target/i386/pr91704.c
  849234c7a569c1e86023244bc5561263  gcc/testsuite/gcc.target/i386/pr9771-1.c
  24ceb6d5f3f5cde4b9d852839bdb98ae  gcc/testsuite/gcc.target/i386/prefetchw-1.c
  f11f4731c396f099373c033ab016a64f  gcc/testsuite/gcc.target/i386/prefetchwt1-1.c
*************** e2839913fadc6a00676c8f02deb3f59e  gcc/te
*** 44893,44924 ****
  27b94da412b0e514a304cb667a1125f1  gcc/testsuite/gcc.target/i386/regparm-stdcall.c
  f460909450afd8b803c32061496a4d75  gcc/testsuite/gcc.target/i386/regparm.c
  e47bbd1acfd37236fccff011d4c82e82  gcc/testsuite/gcc.target/i386/reload-1.c
! e7bdddab413e9342ceea674dcc11efa9  gcc/testsuite/gcc.target/i386/ret-thunk-1.c
! 6e20f7a638ba67005154ba64a205629f  gcc/testsuite/gcc.target/i386/ret-thunk-10.c
! 75f06d0b0b8a0aa78cbafd8eb7ac2ac3  gcc/testsuite/gcc.target/i386/ret-thunk-11.c
! 09edc45a2c857d7bf5d35a27ba84d494  gcc/testsuite/gcc.target/i386/ret-thunk-12.c
! c7716ba4d15d568304b3d15fa4dd1efa  gcc/testsuite/gcc.target/i386/ret-thunk-13.c
! a115b1a64b3d2e61e179f8cb9c41c216  gcc/testsuite/gcc.target/i386/ret-thunk-14.c
! 305b2b3bbf8f5059edc1a6cd5d289c9f  gcc/testsuite/gcc.target/i386/ret-thunk-15.c
! eab910bbf14695323d54cd2754f6c13c  gcc/testsuite/gcc.target/i386/ret-thunk-16.c
  cc34b9f508b9c8334f3288b096cb78f7  gcc/testsuite/gcc.target/i386/ret-thunk-17.c
  7d462469a74829644f625dfd13e56245  gcc/testsuite/gcc.target/i386/ret-thunk-18.c
  43b59ba2c7eee4d8d807697e3b13092c  gcc/testsuite/gcc.target/i386/ret-thunk-19.c
! dd35d0e1f55e30827da00a7a3b72f2fc  gcc/testsuite/gcc.target/i386/ret-thunk-2.c
  f3573edd139415913734286a945036c2  gcc/testsuite/gcc.target/i386/ret-thunk-20.c
  b2806d5288ed6597c93c3c78b98f8d80  gcc/testsuite/gcc.target/i386/ret-thunk-21.c
! 2c5f8484e1fe3ff717433984bd9e430e  gcc/testsuite/gcc.target/i386/ret-thunk-22.c
! 224c4a6a3890adb17f39118b19a33a3b  gcc/testsuite/gcc.target/i386/ret-thunk-23.c
! 0ec08e1985573ff0205c8a7332d5f386  gcc/testsuite/gcc.target/i386/ret-thunk-24.c
! 97183e70692a615a0923a028c6a93205  gcc/testsuite/gcc.target/i386/ret-thunk-25.c
  8322bb75badb0a22b6e9d839deed11ee  gcc/testsuite/gcc.target/i386/ret-thunk-26.c
! fd5c5e9bb01a2b8dc7c5f900d1d87998  gcc/testsuite/gcc.target/i386/ret-thunk-3.c
! ca53ce2b9665ac27d11a2ef828928360  gcc/testsuite/gcc.target/i386/ret-thunk-4.c
! b0ef8962f326b0e0b7e4311f2dc69a16  gcc/testsuite/gcc.target/i386/ret-thunk-5.c
! c7853edb1c95703c93c35ebe12f833be  gcc/testsuite/gcc.target/i386/ret-thunk-6.c
! b51e205421f10208d462405cedb0f344  gcc/testsuite/gcc.target/i386/ret-thunk-7.c
! 848e6463fd3be83bbddee8c7c6dbfdf3  gcc/testsuite/gcc.target/i386/ret-thunk-8.c
! a5919d44210b1a316a9c96379d2a234c  gcc/testsuite/gcc.target/i386/ret-thunk-9.c
  fe7ee8a9110596ef272c4f9b6ad8adad  gcc/testsuite/gcc.target/i386/retarg.c
  7a1e62697051aa68ade1f41fac61f6f8  gcc/testsuite/gcc.target/i386/rop1.c
  63bd489c03ce382cdba38349c30041ad  gcc/testsuite/gcc.target/i386/rotate-1.c
--- 45093,45124 ----
  27b94da412b0e514a304cb667a1125f1  gcc/testsuite/gcc.target/i386/regparm-stdcall.c
  f460909450afd8b803c32061496a4d75  gcc/testsuite/gcc.target/i386/regparm.c
  e47bbd1acfd37236fccff011d4c82e82  gcc/testsuite/gcc.target/i386/reload-1.c
! 9205036382fb9371e714bf429d4a169a  gcc/testsuite/gcc.target/i386/ret-thunk-1.c
! 6971ab1d9b2e25035613d9da2ff831ea  gcc/testsuite/gcc.target/i386/ret-thunk-10.c
! 45844628ad39226fa04f338031bc35ff  gcc/testsuite/gcc.target/i386/ret-thunk-11.c
! 07476edeb4edea2a4b3fdf830978b54a  gcc/testsuite/gcc.target/i386/ret-thunk-12.c
! 14d89c82cb35544a32336240ef58c500  gcc/testsuite/gcc.target/i386/ret-thunk-13.c
! 8165c1fc58be1608397622f39d926c07  gcc/testsuite/gcc.target/i386/ret-thunk-14.c
! 98a375b3b373296dc9ba7870c9c50d32  gcc/testsuite/gcc.target/i386/ret-thunk-15.c
! 18e90525f1abe3c52128427f9fb39b3e  gcc/testsuite/gcc.target/i386/ret-thunk-16.c
  cc34b9f508b9c8334f3288b096cb78f7  gcc/testsuite/gcc.target/i386/ret-thunk-17.c
  7d462469a74829644f625dfd13e56245  gcc/testsuite/gcc.target/i386/ret-thunk-18.c
  43b59ba2c7eee4d8d807697e3b13092c  gcc/testsuite/gcc.target/i386/ret-thunk-19.c
! a1802923debe6064d056b780f4ee6111  gcc/testsuite/gcc.target/i386/ret-thunk-2.c
  f3573edd139415913734286a945036c2  gcc/testsuite/gcc.target/i386/ret-thunk-20.c
  b2806d5288ed6597c93c3c78b98f8d80  gcc/testsuite/gcc.target/i386/ret-thunk-21.c
! 29d69e15cf5da161b7801ded9cd2d41c  gcc/testsuite/gcc.target/i386/ret-thunk-22.c
! 4b91204f1e7fb9ce122819bf38a258c0  gcc/testsuite/gcc.target/i386/ret-thunk-23.c
! 80f22614da15e0c6c503229e825594bb  gcc/testsuite/gcc.target/i386/ret-thunk-24.c
! 3fbc6374d7bea54c795b6b7f151f22ae  gcc/testsuite/gcc.target/i386/ret-thunk-25.c
  8322bb75badb0a22b6e9d839deed11ee  gcc/testsuite/gcc.target/i386/ret-thunk-26.c
! 32bd7ac2d14f8f3a3b38d58c04171c4f  gcc/testsuite/gcc.target/i386/ret-thunk-3.c
! c0e1cf033713f4d9f46705d898afe08a  gcc/testsuite/gcc.target/i386/ret-thunk-4.c
! 3eaad5daa9f6529dc9f4448e224a4c08  gcc/testsuite/gcc.target/i386/ret-thunk-5.c
! d51fd9f2d7e7069d77886270f69d0f12  gcc/testsuite/gcc.target/i386/ret-thunk-6.c
! 4234854200abfc91e34d2fc53f42eff3  gcc/testsuite/gcc.target/i386/ret-thunk-7.c
! 6f9c6a5223282b22bc65105d4a0e7e53  gcc/testsuite/gcc.target/i386/ret-thunk-8.c
! 3b6dbe45cc864be4f9eaf860348ad4da  gcc/testsuite/gcc.target/i386/ret-thunk-9.c
  fe7ee8a9110596ef272c4f9b6ad8adad  gcc/testsuite/gcc.target/i386/retarg.c
  7a1e62697051aa68ade1f41fac61f6f8  gcc/testsuite/gcc.target/i386/rop1.c
  63bd489c03ce382cdba38349c30041ad  gcc/testsuite/gcc.target/i386/rotate-1.c
*************** c441836462a082b52b8df4f3644b8ee1  gcc/te
*** 46501,46507 ****
  7594d13b6afbb5788fd3ff108fa1798d  gcc/testsuite/gcc.target/powerpc/altivec-10.c
  87921f986b2e966c18eb11c96891c323  gcc/testsuite/gcc.target/powerpc/altivec-11.c
  42750be666c33639ff6fcf929f5593ed  gcc/testsuite/gcc.target/powerpc/altivec-12.c
! 1e8231a30a3c22fd4174ccfbc4bf8117  gcc/testsuite/gcc.target/powerpc/altivec-13.c
  0b9bf01e28c861e640e6a5a50df72d04  gcc/testsuite/gcc.target/powerpc/altivec-14.c
  7d113615ba33f8f305ca3d6dbaf84dd3  gcc/testsuite/gcc.target/powerpc/altivec-15.c
  11c64f0deba1e4621429dc584ee88ae4  gcc/testsuite/gcc.target/powerpc/altivec-16.c
--- 46701,46707 ----
  7594d13b6afbb5788fd3ff108fa1798d  gcc/testsuite/gcc.target/powerpc/altivec-10.c
  87921f986b2e966c18eb11c96891c323  gcc/testsuite/gcc.target/powerpc/altivec-11.c
  42750be666c33639ff6fcf929f5593ed  gcc/testsuite/gcc.target/powerpc/altivec-12.c
! 21f4460e010cad4fdac5158dd8484518  gcc/testsuite/gcc.target/powerpc/altivec-13.c
  0b9bf01e28c861e640e6a5a50df72d04  gcc/testsuite/gcc.target/powerpc/altivec-14.c
  7d113615ba33f8f305ca3d6dbaf84dd3  gcc/testsuite/gcc.target/powerpc/altivec-15.c
  11c64f0deba1e4621429dc584ee88ae4  gcc/testsuite/gcc.target/powerpc/altivec-16.c
*************** d4d40fb333f645bfba7d5f95d447bb27  gcc/te
*** 46530,46536 ****
  a007efc316dcfa1327d38adb2feca1d8  gcc/testsuite/gcc.target/powerpc/altivec-4.c
  2586491d3f0993007b6292363a62437c  gcc/testsuite/gcc.target/powerpc/altivec-5.c
  9304d8abe305f6069344f238eecabcc1  gcc/testsuite/gcc.target/powerpc/altivec-6.c
! 341295c259d8ac5d502dca5fea643bf9  gcc/testsuite/gcc.target/powerpc/altivec-7.c
  3b775cfada4a412a8209544bafd90f12  gcc/testsuite/gcc.target/powerpc/altivec-8.c
  344ee7e5df617a76788873f981090de7  gcc/testsuite/gcc.target/powerpc/altivec-9.c
  a6cf4dfc1e0f3ea252ad2bc0e93a9c65  gcc/testsuite/gcc.target/powerpc/altivec-cell-1.c
--- 46730,46736 ----
  a007efc316dcfa1327d38adb2feca1d8  gcc/testsuite/gcc.target/powerpc/altivec-4.c
  2586491d3f0993007b6292363a62437c  gcc/testsuite/gcc.target/powerpc/altivec-5.c
  9304d8abe305f6069344f238eecabcc1  gcc/testsuite/gcc.target/powerpc/altivec-6.c
! cbd0203ee0c15e549c54fd05af0bb9ec  gcc/testsuite/gcc.target/powerpc/altivec-7.h
  3b775cfada4a412a8209544bafd90f12  gcc/testsuite/gcc.target/powerpc/altivec-8.c
  344ee7e5df617a76788873f981090de7  gcc/testsuite/gcc.target/powerpc/altivec-9.c
  a6cf4dfc1e0f3ea252ad2bc0e93a9c65  gcc/testsuite/gcc.target/powerpc/altivec-cell-1.c
*************** f33508c9e3523762dc11271c9a92ede6  gcc/te
*** 46556,46561 ****
--- 46756,46763 ----
  4295f24ac801b25ff384e9c0059dc3f0  gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
  f12268642caf2b8f80bf48e0b7f5bd87  gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c
  c1ad5df368bf78f67f3b4c15cbe1c757  gcc/testsuite/gcc.target/powerpc/altivec-volatile.c
+ 541dc69590a0abf3cefd6043e9b408fe  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c
+ 70f3b3f2a0f6da1f6a9709a6730b94e1  gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c
  f92704c5f7f462e7f0b0f7a56209b9c1  gcc/testsuite/gcc.target/powerpc/asm-es-1.c
  ab233b59d18c7aa71a26292124ceae27  gcc/testsuite/gcc.target/powerpc/asm-es-2.c
  f1f6a9ec080c7f1554b538d5701c21e2  gcc/testsuite/gcc.target/powerpc/asm-y.c
*************** f7e7c3525d555350473e6eaeb20a763c  gcc/te
*** 46566,46572 ****
  8ab84785c1c977598d1e8a4da5840d01  gcc/testsuite/gcc.target/powerpc/bcd-1.c
  8527d886bfcfacf285ed77737269e96d  gcc/testsuite/gcc.target/powerpc/bcd-2.c
  e3c5cf48f1ba6a92d77572167cd142a8  gcc/testsuite/gcc.target/powerpc/bcd-3.c
! c0e5b1d38588a8004b42aa28e765606d  gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
  50b9b13be56cde20a9deafd8957022cb  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c
  ed537806770a6bd863695dc3c1c6db97  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c
  bd78b4043653e615210457352f190cb9  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c
--- 46768,46774 ----
  8ab84785c1c977598d1e8a4da5840d01  gcc/testsuite/gcc.target/powerpc/bcd-1.c
  8527d886bfcfacf285ed77737269e96d  gcc/testsuite/gcc.target/powerpc/bcd-2.c
  e3c5cf48f1ba6a92d77572167cd142a8  gcc/testsuite/gcc.target/powerpc/bcd-3.c
! 798b92b860d8f2856bfc7af42dac46e9  gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
  50b9b13be56cde20a9deafd8957022cb  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c
  ed537806770a6bd863695dc3c1c6db97  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c
  bd78b4043653e615210457352f190cb9  gcc/testsuite/gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c
*************** caf01994c96172dac156c3da29317823  gcc/te
*** 46647,46656 ****
  931398e0111335374a570dab11f94aba  gcc/testsuite/gcc.target/powerpc/bswap64-3.c
  37c12fff6f77333d7cb7d787bbb7f908  gcc/testsuite/gcc.target/powerpc/bswap64-4.c
  5d7722a5bfe7fbb9896a1eb4f88e022d  gcc/testsuite/gcc.target/powerpc/builtins-1.c
! fc8793b521e1298ab0e99e4fb318b34b  gcc/testsuite/gcc.target/powerpc/builtins-2.c
! b46abca6c4cd08a5de1d13f33c9a9ef6  gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
  492ac089419f0bb359f220419b9dd912  gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c
! 87b0fefa6c0cfed1e213437588c52b0d  gcc/testsuite/gcc.target/powerpc/builtins-3.c
  152da1e6a5994b32721d906034b3265b  gcc/testsuite/gcc.target/powerpc/builtins-7-p9-runnable.c
  7f35a56e8dea223eabe96fb48dba06ed  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-0.c
  ffc28a6e3572df02a4e4068818687d49  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-1.c
--- 46849,46859 ----
  931398e0111335374a570dab11f94aba  gcc/testsuite/gcc.target/powerpc/bswap64-3.c
  37c12fff6f77333d7cb7d787bbb7f908  gcc/testsuite/gcc.target/powerpc/bswap64-4.c
  5d7722a5bfe7fbb9896a1eb4f88e022d  gcc/testsuite/gcc.target/powerpc/builtins-1.c
! 8774005798929f576a8fdff946576421  gcc/testsuite/gcc.target/powerpc/builtins-2.c
! 2105a866339dec7c2679e3b6be1b635e  gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
! a0d756ecde56337c3f89c8c8c37abe60  gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c
  492ac089419f0bb359f220419b9dd912  gcc/testsuite/gcc.target/powerpc/builtins-3-p9.c
! e1af92c4195273ca93ed3d7d666b5a48  gcc/testsuite/gcc.target/powerpc/builtins-3.c
  152da1e6a5994b32721d906034b3265b  gcc/testsuite/gcc.target/powerpc/builtins-7-p9-runnable.c
  7f35a56e8dea223eabe96fb48dba06ed  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-0.c
  ffc28a6e3572df02a4e4068818687d49  gcc/testsuite/gcc.target/powerpc/byte-in-either-range-1.c
*************** caf3aba39c0565b4369f2e0263b16af5  gcc/te
*** 46674,46680 ****
  4b60a8662648a73cedee85dd08e278eb  gcc/testsuite/gcc.target/powerpc/cprophard.c
  ceee196d52c1e634069b5d122f09e1ae  gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c
  30020a956cfba3e60bd9193370a7c3b8  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1-runnable.c
! 1fb2215d04b688ce2fdb0faccd58b012  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c
  14fe4a3bc84df2b97d9440c94d7c8339  gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
  4e3992362b37b544083ac6eaeaa1acca  gcc/testsuite/gcc.target/powerpc/ctz-1.c
  9266181f224f779baa6b98a2f3b171e8  gcc/testsuite/gcc.target/powerpc/ctz-2.c
--- 46877,46883 ----
  4b60a8662648a73cedee85dd08e278eb  gcc/testsuite/gcc.target/powerpc/cprophard.c
  ceee196d52c1e634069b5d122f09e1ae  gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c
  30020a956cfba3e60bd9193370a7c3b8  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1-runnable.c
! 16426344a1170bd3e605af23630e86d3  gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c
  14fe4a3bc84df2b97d9440c94d7c8339  gcc/testsuite/gcc.target/powerpc/crypto-builtin-2.c
  4e3992362b37b544083ac6eaeaa1acca  gcc/testsuite/gcc.target/powerpc/ctz-1.c
  9266181f224f779baa6b98a2f3b171e8  gcc/testsuite/gcc.target/powerpc/ctz-2.c
*************** dcd67b030ac5a36c48772f45c9311a7a  gcc/te
*** 46683,46688 ****
--- 46886,46892 ----
  dff00811bdc4a0d32afb132f16084b8c  gcc/testsuite/gcc.target/powerpc/darn-0.c
  a3b7e0d3cc77ae3e0b0aea94e91b58e5  gcc/testsuite/gcc.target/powerpc/darn-1.c
  3a484a34727d320db4da25fdd45adeeb  gcc/testsuite/gcc.target/powerpc/darn-2.c
+ 7f5ef611c24ec8821112bbf698514fe7  gcc/testsuite/gcc.target/powerpc/darn-3.c
  965986b227062a2b8c664c916a71ad45  gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c
  9a0e4836781f28669ddca26eb214c2b2  gcc/testsuite/gcc.target/powerpc/darwin-abi-10.c
  66e5cfd1b7491e37c0ef258d09b6634d  gcc/testsuite/gcc.target/powerpc/darwin-abi-11.c
*************** dc2cf23b07f8ee916ff7449cc8184804  gcc/te
*** 46695,46701 ****
  077c78cf99209d89283cbb5bddc4cb00  gcc/testsuite/gcc.target/powerpc/darwin-abi-7.c
  fbafe20fb642af275b59d470cbb84ac9  gcc/testsuite/gcc.target/powerpc/darwin-abi-8.c
  0f82424f87427f46ef95b80a9c04784a  gcc/testsuite/gcc.target/powerpc/darwin-abi-9.c
! f8920aee2833fd404308e7134a58361a  gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c
  d898994d2dd12e123fcb756d46aed2c4  gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c
  4d1a56e3fa08f8cd9ab9a96132d6f7a7  gcc/testsuite/gcc.target/powerpc/darwin-ehreturn-1.c
  e5a3f954e535f339c4a0f35fc50c6302  gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c
--- 46899,46905 ----
  077c78cf99209d89283cbb5bddc4cb00  gcc/testsuite/gcc.target/powerpc/darwin-abi-7.c
  fbafe20fb642af275b59d470cbb84ac9  gcc/testsuite/gcc.target/powerpc/darwin-abi-8.c
  0f82424f87427f46ef95b80a9c04784a  gcc/testsuite/gcc.target/powerpc/darwin-abi-9.c
! 42da5af8a68c5b53856fefe7531c3a1f  gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c
  d898994d2dd12e123fcb756d46aed2c4  gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c
  4d1a56e3fa08f8cd9ab9a96132d6f7a7  gcc/testsuite/gcc.target/powerpc/darwin-ehreturn-1.c
  e5a3f954e535f339c4a0f35fc50c6302  gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c
*************** edc590c61b2a5fd6c1f8da5e10b52099  gcc/te
*** 46715,46721 ****
  918f43d2707c381ec6a3c8f95d06ba7a  gcc/testsuite/gcc.target/powerpc/dfp-td-2.c
  d29a538f7ef7ada44a91b35380ca809c  gcc/testsuite/gcc.target/powerpc/dfp-td-3.c
  f99e26532b9bfe0b24631290281df325  gcc/testsuite/gcc.target/powerpc/dfp-td.c
! bdcc34a514465c46140fce3b10a28b9a  gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
  03cc7e47a4479ec2055b9af5a2055522  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c
  6959ef5cd0438cde997e2af826ef2d8d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c
  8f82047dd5d13bd7808101a6cae2f96a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c
--- 46919,46925 ----
  918f43d2707c381ec6a3c8f95d06ba7a  gcc/testsuite/gcc.target/powerpc/dfp-td-2.c
  d29a538f7ef7ada44a91b35380ca809c  gcc/testsuite/gcc.target/powerpc/dfp-td-3.c
  f99e26532b9bfe0b24631290281df325  gcc/testsuite/gcc.target/powerpc/dfp-td.c
! 4636147efb530baa2ed1a66c7ac87be8  gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
  03cc7e47a4479ec2055b9af5a2055522  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-0.c
  6959ef5cd0438cde997e2af826ef2d8d  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-1.c
  8f82047dd5d13bd7808101a6cae2f96a  gcc/testsuite/gcc.target/powerpc/dfp/dtstsfi-10.c
*************** d0a7757fdd02514672979d273c5dff0d  gcc/te
*** 46894,46900 ****
  582d7bb7e4106b5cb9134d552025a68e  gcc/testsuite/gcc.target/powerpc/outofline_rnreg.c
  bac0e7d390854f0c869cf6ae4b52c773  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c
  d07905c4fe68bcbc9f8aef973a7a039b  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c
! c9275a719128041f0bdbd96336d20f9c  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c
  330fc5c1657a0c9c682e64e1710acc46  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-3.c
  497c5a8f053f0aae3fa4eca733f05158  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-4.c
  48adc5108e19edfebefa832c19e1c869  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-5.c
--- 47098,47104 ----
  582d7bb7e4106b5cb9134d552025a68e  gcc/testsuite/gcc.target/powerpc/outofline_rnreg.c
  bac0e7d390854f0c869cf6ae4b52c773  gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c
  d07905c4fe68bcbc9f8aef973a7a039b  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c
! c99728a7f482ebf0c869dd88ece62a1d  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c
  330fc5c1657a0c9c682e64e1710acc46  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-3.c
  497c5a8f053f0aae3fa4eca733f05158  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-4.c
  48adc5108e19edfebefa832c19e1c869  gcc/testsuite/gcc.target/powerpc/p8vector-builtin-5.c
*************** f0e0420e02de20b6842edd31ee31ee10  gcc/te
*** 46970,46976 ****
  384725f498b861af6f8bed0530eeac73  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c
  b49bfc8892e32ccd4715b924f41106d6  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c
  90d042fffee10d77e01ab7cf9fcbb7c1  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c
! c9f9c3ba98632df0c5de87ebce48fce4  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
  637bdb830638aea14574ce31ff970381  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
  c5fa5fe79895d06f5f65590d9082f47a  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c
  399cb515c37318fe2c759d53e77324fb  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c
--- 47174,47180 ----
  384725f498b861af6f8bed0530eeac73  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c
  b49bfc8892e32ccd4715b924f41106d6  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c
  90d042fffee10d77e01ab7cf9fcbb7c1  gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c
! 786746f093ad6105362e3aa48d05b3cd  gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
  637bdb830638aea14574ce31ff970381  gcc/testsuite/gcc.target/powerpc/ppc-fortran/pr80108-1.f90
  c5fa5fe79895d06f5f65590d9082f47a  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-1.c
  399cb515c37318fe2c759d53e77324fb  gcc/testsuite/gcc.target/powerpc/ppc-fpconv-10.c
*************** b5f67a5154b009c6dec03e4ced76145b  gcc/te
*** 47100,47106 ****
  90631e1f2929b792894198b96774c9fc  gcc/testsuite/gcc.target/powerpc/pr63354.c
  79cc2b3def17722aafab5508449b1c68  gcc/testsuite/gcc.target/powerpc/pr63491.c
  d007c804b52c9e1198491a05a600186a  gcc/testsuite/gcc.target/powerpc/pr64019.c
! 727b62309f1ecf81c78b3199ad86a8cb  gcc/testsuite/gcc.target/powerpc/pr64205.c
  888b7bff8991c2ede1c7e198bc2a05bf  gcc/testsuite/gcc.target/powerpc/pr64505.c
  564b9b7942b8363816b2ed8864ac1b7a  gcc/testsuite/gcc.target/powerpc/pr65058.c
  a284d0dacfcd6f771fef90d01d3a6372  gcc/testsuite/gcc.target/powerpc/pr65456.c
--- 47304,47310 ----
  90631e1f2929b792894198b96774c9fc  gcc/testsuite/gcc.target/powerpc/pr63354.c
  79cc2b3def17722aafab5508449b1c68  gcc/testsuite/gcc.target/powerpc/pr63491.c
  d007c804b52c9e1198491a05a600186a  gcc/testsuite/gcc.target/powerpc/pr64019.c
! b046ef8139fb2996a14da78fc4d5d49a  gcc/testsuite/gcc.target/powerpc/pr64205.c
  888b7bff8991c2ede1c7e198bc2a05bf  gcc/testsuite/gcc.target/powerpc/pr64505.c
  564b9b7942b8363816b2ed8864ac1b7a  gcc/testsuite/gcc.target/powerpc/pr65058.c
  a284d0dacfcd6f771fef90d01d3a6372  gcc/testsuite/gcc.target/powerpc/pr65456.c
*************** aff8492d29822aab5bcc6408a127993c  gcc/te
*** 47140,47146 ****
  9d1ceb34ff4072b9b15ceedc2d7a4618  gcc/testsuite/gcc.target/powerpc/pr71698.c
  6eff11fe03297bc9b383cc7e57a4fa46  gcc/testsuite/gcc.target/powerpc/pr71720.c
  d9ccfe0048f3d64bbe5861c9aea6294f  gcc/testsuite/gcc.target/powerpc/pr71763.c
! a1a29a276bb3f6f8436c361b1ef31e74  gcc/testsuite/gcc.target/powerpc/pr71785.c
  743729f568d85b4bd156413e92dea820  gcc/testsuite/gcc.target/powerpc/pr71805.c
  c9d28f12142b7a930625854f8a516817  gcc/testsuite/gcc.target/powerpc/pr71977-1.c
  dbd0e190ff3cfe7ee4d447cd76f56dc0  gcc/testsuite/gcc.target/powerpc/pr71977-2.c
--- 47344,47350 ----
  9d1ceb34ff4072b9b15ceedc2d7a4618  gcc/testsuite/gcc.target/powerpc/pr71698.c
  6eff11fe03297bc9b383cc7e57a4fa46  gcc/testsuite/gcc.target/powerpc/pr71720.c
  d9ccfe0048f3d64bbe5861c9aea6294f  gcc/testsuite/gcc.target/powerpc/pr71763.c
! 1a2ab1b5ac9370a9c043f60e7d47c0b8  gcc/testsuite/gcc.target/powerpc/pr71785.c
  743729f568d85b4bd156413e92dea820  gcc/testsuite/gcc.target/powerpc/pr71805.c
  c9d28f12142b7a930625854f8a516817  gcc/testsuite/gcc.target/powerpc/pr71977-1.c
  dbd0e190ff3cfe7ee4d447cd76f56dc0  gcc/testsuite/gcc.target/powerpc/pr71977-2.c
*************** e16e95e49a068e3c198ca05f1f517f27  gcc/te
*** 47179,47185 ****
  467b382b65b1ebbac6326ad8455010b0  gcc/testsuite/gcc.target/powerpc/pr79799-4.c
  6fb3807ef298bd1214fdd2135b1c617a  gcc/testsuite/gcc.target/powerpc/pr79799-5.c
  193063767498ad5eeaed2c356a368d0f  gcc/testsuite/gcc.target/powerpc/pr79907.c
! 642c9f1dcfbb4e02caa3fdaa9add4539  gcc/testsuite/gcc.target/powerpc/pr79909.c
  c4116b75f2059a7e1bab2e403b724598  gcc/testsuite/gcc.target/powerpc/pr79947.c
  8fe70e669118bfd74ac64bf553741d89  gcc/testsuite/gcc.target/powerpc/pr79951.c
  1224dd35ef12806b3401158f5e60cb18  gcc/testsuite/gcc.target/powerpc/pr80098-1.c
--- 47383,47389 ----
  467b382b65b1ebbac6326ad8455010b0  gcc/testsuite/gcc.target/powerpc/pr79799-4.c
  6fb3807ef298bd1214fdd2135b1c617a  gcc/testsuite/gcc.target/powerpc/pr79799-5.c
  193063767498ad5eeaed2c356a368d0f  gcc/testsuite/gcc.target/powerpc/pr79907.c
! 208f87119e5c5894a646fa100ba6605f  gcc/testsuite/gcc.target/powerpc/pr79909.c
  c4116b75f2059a7e1bab2e403b724598  gcc/testsuite/gcc.target/powerpc/pr79947.c
  8fe70e669118bfd74ac64bf553741d89  gcc/testsuite/gcc.target/powerpc/pr79951.c
  1224dd35ef12806b3401158f5e60cb18  gcc/testsuite/gcc.target/powerpc/pr80098-1.c
*************** f836e066bf7362a4c98962931153e731  gcc/te
*** 47193,47199 ****
  641c02efa8079ef3086b94358b04dbbe  gcc/testsuite/gcc.target/powerpc/pr80099-5.c
  e3724d1b8faf6dcacb8d047defe64496  gcc/testsuite/gcc.target/powerpc/pr80101-1.c
  a63b5847eb3daabd4a56b649ab602f4c  gcc/testsuite/gcc.target/powerpc/pr80103-1.c
! 66ae7647dd692b6ddc6355ddda4f0fa6  gcc/testsuite/gcc.target/powerpc/pr80125.c
  0c08f4c83d90538f2c1ff74965ce6a2b  gcc/testsuite/gcc.target/powerpc/pr80210-2.c
  32dc6ec7c4a1a3cefe2efbb3b602ef2c  gcc/testsuite/gcc.target/powerpc/pr80210.c
  c74100b0e24e645cbd51ff8d93f11730  gcc/testsuite/gcc.target/powerpc/pr80246.c
--- 47397,47403 ----
  641c02efa8079ef3086b94358b04dbbe  gcc/testsuite/gcc.target/powerpc/pr80099-5.c
  e3724d1b8faf6dcacb8d047defe64496  gcc/testsuite/gcc.target/powerpc/pr80101-1.c
  a63b5847eb3daabd4a56b649ab602f4c  gcc/testsuite/gcc.target/powerpc/pr80103-1.c
! d898a03a0134d7a17ff89a9859557dc9  gcc/testsuite/gcc.target/powerpc/pr80125.c
  0c08f4c83d90538f2c1ff74965ce6a2b  gcc/testsuite/gcc.target/powerpc/pr80210-2.c
  32dc6ec7c4a1a3cefe2efbb3b602ef2c  gcc/testsuite/gcc.target/powerpc/pr80210.c
  c74100b0e24e645cbd51ff8d93f11730  gcc/testsuite/gcc.target/powerpc/pr80246.c
*************** f933cd0da11eebb48da12afacd0c1f1b  gcc/te
*** 47228,47233 ****
--- 47432,47445 ----
  48d76dd15431a54c280ce4fa945acb55  gcc/testsuite/gcc.target/powerpc/pr85698.c
  a350423ed93def71f8b093f25456d889  gcc/testsuite/gcc.target/powerpc/pr85755.c
  d86d5375cd27e7c265ce5093d761b62e  gcc/testsuite/gcc.target/powerpc/pr87033.c
+ aee1daf1d9bcf717ca4f522da06e6367  gcc/testsuite/gcc.target/powerpc/pr87496-1.c
+ c9cbb61f1f9d670e00d6618835784a6c  gcc/testsuite/gcc.target/powerpc/pr87496-2.c
+ 665a6a746b1a2aad357624853b871c54  gcc/testsuite/gcc.target/powerpc/pr87496-3.c
+ a3fcebbcc49f4e8e80184966262e4f7c  gcc/testsuite/gcc.target/powerpc/pr87532-mc.c
+ 5fd4bcc0443a583aade647593b461bf0  gcc/testsuite/gcc.target/powerpc/pr87532.c
+ c37f43ea14b9c2771195287a84b61d7f  gcc/testsuite/gcc.target/powerpc/pr89424-0.c
+ 641d52f8caa1635a7b47a9370f9b19ed  gcc/testsuite/gcc.target/powerpc/pr89765-mc.c
+ 212a3d50b8d112a6d4111e1f90023028  gcc/testsuite/gcc.target/powerpc/pr91275.c
  17f878b62dd2e08735d53fce64232a47  gcc/testsuite/gcc.target/powerpc/quad-atomic.c
  171a411d14f30e8450dc3f2ef38b1bd7  gcc/testsuite/gcc.target/powerpc/recip-1.c
  6b7c4920c070e84f6819377bcdb90c0d  gcc/testsuite/gcc.target/powerpc/recip-2.c
*************** bf385d7310a8dab90ee44f86832aa03b  gcc/te
*** 47268,47280 ****
  afd35ba530c1198a75e9e1a79650add6  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c
  7aacc521251d44cf2fa3a75a564c4270  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c
  b21c33d525f0c97602d4a2348994de36  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c
! e8409a903c25e73258a07cc7263f0fff  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
  15bd7d0b1c9766ac9c14300c015d5793  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
  fecbca1485084d70d917631126a31ef1  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
  440a279cd4b54a0d56f1725ad5e57d55  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-4.c
  ef8eb7cbf624be95837254f86c894d5b  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-5.c
  24a2f6cdda4929c5eaa245cc358ce7c6  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-6.c
! ca1b282ad40b24683e13c46737288d7e  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
  f66a7c7a9b7cdd49a6b9860dbb16d90a  gcc/testsuite/gcc.target/powerpc/savres.c
  98a0676ba42103cce9e60b2313f8b2ef  gcc/testsuite/gcc.target/powerpc/sd-pwr6.c
  65a53924a48d5df99017fa40a01962f4  gcc/testsuite/gcc.target/powerpc/sd-vsx.c
--- 47480,47492 ----
  afd35ba530c1198a75e9e1a79650add6  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c
  7aacc521251d44cf2fa3a75a564c4270  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c
  b21c33d525f0c97602d4a2348994de36  gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-3.c
! 117d3bda48a47bac18d3fc69aafa9bc5  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
  15bd7d0b1c9766ac9c14300c015d5793  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-2.c
  fecbca1485084d70d917631126a31ef1  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-3.c
  440a279cd4b54a0d56f1725ad5e57d55  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-4.c
  ef8eb7cbf624be95837254f86c894d5b  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-5.c
  24a2f6cdda4929c5eaa245cc358ce7c6  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-6.c
! 97459dfff65ecd5b32b5428b110a3cbb  gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
  f66a7c7a9b7cdd49a6b9860dbb16d90a  gcc/testsuite/gcc.target/powerpc/savres.c
  98a0676ba42103cce9e60b2313f8b2ef  gcc/testsuite/gcc.target/powerpc/sd-pwr6.c
  65a53924a48d5df99017fa40a01962f4  gcc/testsuite/gcc.target/powerpc/sd-vsx.c
*************** aefbc9c117b311a9394883e9c890efb9  gcc/te
*** 47295,47301 ****
  32bb5e201dd78c548aed0cdf044779ec  gcc/testsuite/gcc.target/powerpc/spe1.c
  c4da621e2f792bd21112c40ff73a206d  gcc/testsuite/gcc.target/powerpc/ssp-1.c
  28df2b90767c1ab9ffd06127b47b30f9  gcc/testsuite/gcc.target/powerpc/ssp-2.c
! c9be7e0cc9ba390460928b1de506fa70  gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c
  ab241355ba77c8e163b05eb81f33d1c5  gcc/testsuite/gcc.target/powerpc/stack-limit.c
  a59ee456442fb848ede07589c0a6bb6e  gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c
  f9cfd48e5324b92443f64a93e5c47140  gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c
--- 47507,47513 ----
  32bb5e201dd78c548aed0cdf044779ec  gcc/testsuite/gcc.target/powerpc/spe1.c
  c4da621e2f792bd21112c40ff73a206d  gcc/testsuite/gcc.target/powerpc/ssp-1.c
  28df2b90767c1ab9ffd06127b47b30f9  gcc/testsuite/gcc.target/powerpc/ssp-2.c
! 13c6ee4934b094179a2336371362f10d  gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c
  ab241355ba77c8e163b05eb81f33d1c5  gcc/testsuite/gcc.target/powerpc/stack-limit.c
  a59ee456442fb848ede07589c0a6bb6e  gcc/testsuite/gcc.target/powerpc/swaps-p8-1.c
  f9cfd48e5324b92443f64a93e5c47140  gcc/testsuite/gcc.target/powerpc/swaps-p8-10.c
*************** e1d0f48ef3f5ad5024aa68b2846ceab4  gcc/te
*** 47363,47371 ****
--- 47575,47596 ----
  2d50edc7d6c2af7c695bdafc06d15556  gcc/testsuite/gcc.target/powerpc/vec-extract-7.c
  e3fefbaf3ebb589e2ccc28b73788df22  gcc/testsuite/gcc.target/powerpc/vec-extract-8.c
  fca76fdfa8cd69914a318fb873bc4e4a  gcc/testsuite/gcc.target/powerpc/vec-extract-9.c
+ 6fa3a78094c3ff7dd26f5dae36baf3bc  gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c
+ ad1e5ca02f2dc123d7723bfab022c19e  gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c
+ e8d7f9d9cb6382edc26e551480efd645  gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c
+ 2e039bdf4ca2e6d944dbd8a121a97e8e  gcc/testsuite/gcc.target/powerpc/vec-extract-slong-1.c
+ 39d3cf7341f519f7e0ec53700774cbad  gcc/testsuite/gcc.target/powerpc/vec-extract-sshort-1.c
+ a427b05e8b9ef68507dd6fe235562170  gcc/testsuite/gcc.target/powerpc/vec-extract-uchar-1.c
+ 5124becf3bbc38028f271b2a6410fb02  gcc/testsuite/gcc.target/powerpc/vec-extract-uint-1.c
+ ff639434947505aeedf0da741f8f729f  gcc/testsuite/gcc.target/powerpc/vec-extract-uint128-1.c
+ 57f8458519011f3e52a4f54d87e894c1  gcc/testsuite/gcc.target/powerpc/vec-extract-ulong-1.c
+ c896734b9eeb5426643c95d554b3c537  gcc/testsuite/gcc.target/powerpc/vec-extract-ushort-1.c
  54b4e79e3e68990bbb35785a9baebefe  gcc/testsuite/gcc.target/powerpc/vec-extract-v16qi-df.c
  17dc541115d43f98928aa98aec2e8966  gcc/testsuite/gcc.target/powerpc/vec-extract-v16qi.c
  fa4d484cedb3e830a8c4ed23fcac60f1  gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-df.c
+ 715dd2ff2b925703cee51c3591a11a39  gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h
+ 1642c9c56d8fc26c4a00e52271e9aa62  gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c
+ fa2b56f4604687d4c40b1dc0dcaf0a93  gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c
  0cf0efad9beb904fc660081db1e08b5b  gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu.c
  3e12eaa72b1a5951659db6fa313cc678  gcc/testsuite/gcc.target/powerpc/vec-extract-v2df.c
  ed5d771bd86a170ce802a098b04be68b  gcc/testsuite/gcc.target/powerpc/vec-extract-v2di.c
*************** f0528163d3f2787ef58fd1e06a0e2bbd  gcc/te
*** 47519,47532 ****
--- 47744,47807 ----
  415232ff7d42d45b489b5968120ad4cc  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-8.c
  96ef4a5ea4fce11b1b86e842a4455ebd  gcc/testsuite/gcc.target/powerpc/vsu/vec-xst-len-9.c
  c0e5b1d38588a8004b42aa28e765606d  gcc/testsuite/gcc.target/powerpc/vsu/vsu.exp
+ aaeb960a2e271bc474363e9917aecb51  gcc/testsuite/gcc.target/powerpc/vsx-13.c
+ dda33ad7be60f57b58ed431fa32786d2  gcc/testsuite/gcc.target/powerpc/vsx-7.h
  4ceb6855c2485b8644bf41d0692dce88  gcc/testsuite/gcc.target/powerpc/vsx-builtin-1.c
+ 746a6949d77db46dfd9f2e1e8fec69ae  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c
+ ee3ef7928ea6e74901f53131d408b023  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c
+ 9d682d5a5fd031d3e41611dbc8838f10  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c
+ 3dc8ccf65d4614d0c682d9459a4b1620  gcc/testsuite/gcc.target/powerpc/vsx-builtin-10d.c
+ 1bdbd00004403d369e96bc57687fe65b  gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c
+ 4d688d6cc30f1fc3c08737845ddab784  gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c
+ d8de4a1238d67cb93380cea219a1c4a1  gcc/testsuite/gcc.target/powerpc/vsx-builtin-11c.c
+ f6cbf8e71f48a7a75897e540e89b4fd2  gcc/testsuite/gcc.target/powerpc/vsx-builtin-11d.c
+ 1ebbfe9fa476b355b9e13099e7b50ec7  gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c
+ d7651b4972f66a6d7723f6db28e98dd4  gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c
+ 14caae2cbbe03ad25daed350e6b3a6dd  gcc/testsuite/gcc.target/powerpc/vsx-builtin-12c.c
+ 44033307838f447152183070116da9ec  gcc/testsuite/gcc.target/powerpc/vsx-builtin-12d.c
+ 538d3cf96986b862419784127e5e291d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c
+ 0b7e8c580b33ced4e69da2f49d78a4b9  gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c
+ 70521d0c42ddccdf8e09cdeed533bdec  gcc/testsuite/gcc.target/powerpc/vsx-builtin-13c.c
+ 429c38af99dff70d9a830a4de4ecac6d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-13d.c
+ f78214f727e056cb438aa1dc4f19c735  gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c
+ 6d407c44e65dacb9f32753308a3fc6e8  gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c
+ 8444014ba0811419ad1dc54a94835cc3  gcc/testsuite/gcc.target/powerpc/vsx-builtin-14c.c
+ f8ff6fdf4e4d9c21651204401d90dbb6  gcc/testsuite/gcc.target/powerpc/vsx-builtin-14d.c
+ f6fa5f193712221d9f11af0ddc252276  gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c
+ da132fcd19023e902814c2c6c3d3e728  gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c
+ 7ff64276f648cac42ab55f4a33abc049  gcc/testsuite/gcc.target/powerpc/vsx-builtin-15c.c
+ 04ac76b0b1f69b6e2d06d182954ee632  gcc/testsuite/gcc.target/powerpc/vsx-builtin-15d.c
+ 0df772c46c802870a93dbc5b775249bf  gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c
+ c9315e5014dc595cb7bb80a684e77d47  gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c
+ 555d256392e00f41da27e30bfb6b2140  gcc/testsuite/gcc.target/powerpc/vsx-builtin-16c.c
+ 99f7a0d1d3d3f422c095ece91811cf66  gcc/testsuite/gcc.target/powerpc/vsx-builtin-16d.c
+ 5c7ef9406c168be4ac15c2543a1475cb  gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c
+ 7ddf389b2cf068432671b0739b2b8457  gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c
+ efc4c39d238a4eb46e670b94cdfc9834  gcc/testsuite/gcc.target/powerpc/vsx-builtin-17c.c
+ efc4c39d238a4eb46e670b94cdfc9834  gcc/testsuite/gcc.target/powerpc/vsx-builtin-17d.c
+ a114b00aa5a1b18273f1299e1fc08afe  gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c
+ 23c41691997a3ea06df29aef360ae13b  gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c
+ ee3bc99955a32918aed1906ad772e2c9  gcc/testsuite/gcc.target/powerpc/vsx-builtin-18c.c
+ ac19be27b979d134fa38e21eff9da1d5  gcc/testsuite/gcc.target/powerpc/vsx-builtin-18d.c
+ 6576ab9009c0a3a1175ff644b5490d1d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c
+ 5d3014e34a036f0024487d6be5274ab0  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c
+ ef6577fd84945078b4cef14e99d50716  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c
+ eb41712c0a85d75f7ad259f45c035835  gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c
  9e3c77c5253ece30391881a511c37067  gcc/testsuite/gcc.target/powerpc/vsx-builtin-2.c
+ d128b18a20f2a55978e519508f48f1ae  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c
+ 462d58bd5e0209dd5d6550bfae0c2311  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c
+ 6481e7c45c6c95a23feaca3286bf3c1d  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c
+ 42b7bc847179c4ef1e6e7142bb27bf11  gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c
  d6aef2cc5b6d426a696fad3f9bd0cf2c  gcc/testsuite/gcc.target/powerpc/vsx-builtin-3.c
  6246ea29025c11b1b9f4c6b8d036cbc3  gcc/testsuite/gcc.target/powerpc/vsx-builtin-4.c
  acf95bd1a1e2b9b14c0640b45f2e75f5  gcc/testsuite/gcc.target/powerpc/vsx-builtin-5.c
  0b61a376e7164778a523a0766df4ce6e  gcc/testsuite/gcc.target/powerpc/vsx-builtin-6.c
  aec0aad4ad9d1a50c30d68081c0f2184  gcc/testsuite/gcc.target/powerpc/vsx-builtin-7.c
  88cd9f4d3675a8897d01117429ae8094  gcc/testsuite/gcc.target/powerpc/vsx-builtin-8.c
+ 33633751eb0bfabbb2951a0070770508  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c
+ 2e9c4b2355be46611bfe42e4a9f8d1f3  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c
+ 1e35ead3525b068deff65ea3783111ee  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c
+ 2d6ebc881e5a0f8f968a2999b0706911  gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c
  29415c0ab3cf79b03ca4a55fa764901b  gcc/testsuite/gcc.target/powerpc/vsx-extract-1.c
  ad77cf7854ac810c73e5ad0184232f20  gcc/testsuite/gcc.target/powerpc/vsx-extract-2.c
  e4ac7f141f61cf4cf8934fe3ee7cf407  gcc/testsuite/gcc.target/powerpc/vsx-extract-3.c
*************** af342c50defde2d3bc67d77ec6beb0aa  gcc/te
*** 47551,47557 ****
  4a05f2cb2b0a410f90bff4713a58165f  gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c
  4ddb7eeffe7b9f8698918a3dbe8154ac  gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c
  a7b9c04e0f20eab9e51d1bdd023d94af  gcc/testsuite/gcc.target/powerpc/vsx-vector-5.c
! a2072ad74a24ce30e97fe2d798e82f17  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.c
  5c438f6c6002a682ed88deac9a40303f  gcc/testsuite/gcc.target/powerpc/vsx-vector-7.c
  9c09a9e1fbe05972f2c7ae287e8beb97  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-1.c
  d10764d77e5bf498f053a1dcc3189476  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
--- 47826,47835 ----
  4a05f2cb2b0a410f90bff4713a58165f  gcc/testsuite/gcc.target/powerpc/vsx-vector-3.c
  4ddb7eeffe7b9f8698918a3dbe8154ac  gcc/testsuite/gcc.target/powerpc/vsx-vector-4.c
  a7b9c04e0f20eab9e51d1bdd023d94af  gcc/testsuite/gcc.target/powerpc/vsx-vector-5.c
! c5c0edec217c4bbb824f5252329761e9  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.h
! bf76f30d8022c3cac5aed18805423226  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c
! 65f3b776fee1322f9c3203314637f612  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p8.c
! 6b6c31e560eca4f580a5ce505bc92de4  gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p9.c
  5c438f6c6002a682ed88deac9a40303f  gcc/testsuite/gcc.target/powerpc/vsx-vector-7.c
  9c09a9e1fbe05972f2c7ae287e8beb97  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-1.c
  d10764d77e5bf498f053a1dcc3189476  gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
*************** f6942a3fba9c800bffade3bb79196479  gcc/te
*** 47870,47875 ****
--- 48148,48154 ----
  3f0e273f04c5175b1fdb100976e981c6  gcc/testsuite/gcc.target/s390/vector/vec-nopeel-1.c
  03ba06d58e7f65b8e47eace2aff32bda  gcc/testsuite/gcc.target/s390/vector/vec-scalar-cmp-1.c
  8de36944e18edbbcc735c9baad533f52  gcc/testsuite/gcc.target/s390/vector/vec-shift-1.c
+ 0f81f716920700cba16fc05e47df6d56  gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c
  cea49877a5895e80cb13491b6cdfa2a2  gcc/testsuite/gcc.target/s390/vector/vec-sub-1.c
  db4e2b1f6b0441e2f2f64b6e141245cd  gcc/testsuite/gcc.target/s390/vector/vec-vcond-1.c
  3820ec0689c3262f947212e6f357e08c  gcc/testsuite/gcc.target/s390/vector/vec-vrepi-1.c
*************** dc95f2902df894907c8cd4f00960f509  gcc/te
*** 47882,47887 ****
--- 48161,48168 ----
  6924d62f235015dbe0a12e676b094f6d  gcc/testsuite/gcc.target/s390/zvector/vec-cmp-1.c
  bb894f21fe3b3c694eb81f45bc0b0bba  gcc/testsuite/gcc.target/s390/zvector/vec-cmp-2.c
  ccdf3c2d3031ce42906139030ba856e1  gcc/testsuite/gcc.target/s390/zvector/vec-dbl-math-compile-1.c
+ 99a4d9d376b39be880dd323c2ff0e424  gcc/testsuite/gcc.target/s390/zvector/vec-double-1.c
+ 49a1b950a9fdcff9d3d01ebb3d53e342  gcc/testsuite/gcc.target/s390/zvector/vec-double-2.c
  f42e228f92a8dfb9e1ded9cb20bc6622  gcc/testsuite/gcc.target/s390/zvector/vec-elem-1.c
  a7f2bd9fee8c03add8265ce21e47cb8f  gcc/testsuite/gcc.target/s390/zvector/vec-genbytemask-1.c
  f0adb63cec7e7cc8928e697e9eb9fc6c  gcc/testsuite/gcc.target/s390/zvector/vec-genmask-1.c
*************** ffba4a644f6c776dd608a5285349bff8  gcc/te
*** 48121,48127 ****
  a67458660c2ef2010f128fdaa4faaa86  gcc/testsuite/gcc.target/sparc/20160104-1.c
  22f916e859ece29a91c18dffaca9e14b  gcc/testsuite/gcc.target/sparc/20160104-2.c
  3d69d4562d0fbb323ff101a9d3271e9a  gcc/testsuite/gcc.target/sparc/20160229-1.c
! f105a9c71ffd58f541747bfe25ebdc89  gcc/testsuite/gcc.target/sparc/20161111-1.c
  5b34d024151ffbbd5c3b91733a663c88  gcc/testsuite/gcc.target/sparc/20170205-1.c
  e470b0a0d1a056b60c3915a6dfcfd4ae  gcc/testsuite/gcc.target/sparc/20170228-1.c
  44373c57181608413fc07f3ec0e2ad6e  gcc/testsuite/gcc.target/sparc/align.c
--- 48402,48408 ----
  a67458660c2ef2010f128fdaa4faaa86  gcc/testsuite/gcc.target/sparc/20160104-1.c
  22f916e859ece29a91c18dffaca9e14b  gcc/testsuite/gcc.target/sparc/20160104-2.c
  3d69d4562d0fbb323ff101a9d3271e9a  gcc/testsuite/gcc.target/sparc/20160229-1.c
! 5b143c3e46fe04901dc0f5da126d1e44  gcc/testsuite/gcc.target/sparc/20161111-1.c
  5b34d024151ffbbd5c3b91733a663c88  gcc/testsuite/gcc.target/sparc/20170205-1.c
  e470b0a0d1a056b60c3915a6dfcfd4ae  gcc/testsuite/gcc.target/sparc/20170228-1.c
  44373c57181608413fc07f3ec0e2ad6e  gcc/testsuite/gcc.target/sparc/align.c
*************** eb9fea9eb3ccdd5fb4d85ac011c10dc5  gcc/te
*** 48227,48234 ****
  96ac755e92338efd01e188e2e94bbf8f  gcc/testsuite/gcc.target/sparc/sparc-ret-3.c
  1943f3e1f1253e644f6fe445637c2dec  gcc/testsuite/gcc.target/sparc/sparc-trap-1.c
  91441cf444e7cb6158d5e4a48e88a6f9  gcc/testsuite/gcc.target/sparc/sparc.exp
! 9d0e2b5fe42dfe4e33a910954d24877b  gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c
  8e13d07524eb18b1e933aa690c21a993  gcc/testsuite/gcc.target/sparc/struct-ret-check-2.c
  25b3fbaad3a2016e2d2b3cdf5fea854d  gcc/testsuite/gcc.target/sparc/ultrasp1.c
  d6162326dc1d13ceac299feecb9623b5  gcc/testsuite/gcc.target/sparc/ultrasp10.c
  ce12e4f274007d914a57153cf148abad  gcc/testsuite/gcc.target/sparc/ultrasp11.c
--- 48508,48522 ----
  96ac755e92338efd01e188e2e94bbf8f  gcc/testsuite/gcc.target/sparc/sparc-ret-3.c
  1943f3e1f1253e644f6fe445637c2dec  gcc/testsuite/gcc.target/sparc/sparc-trap-1.c
  91441cf444e7cb6158d5e4a48e88a6f9  gcc/testsuite/gcc.target/sparc/sparc.exp
! 36ce6bf50327f9b2f6c9980aea9830d2  gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c
  8e13d07524eb18b1e933aa690c21a993  gcc/testsuite/gcc.target/sparc/struct-ret-check-2.c
+ 29c9104d23f7983b691da600e79c9cf0  gcc/testsuite/gcc.target/sparc/tls-ld-int16.c
+ 68666324197bd5951b494840eeaf90ee  gcc/testsuite/gcc.target/sparc/tls-ld-int32.c
+ 2e3b09054a27c6d44a334e642e027c91  gcc/testsuite/gcc.target/sparc/tls-ld-int64.c
+ dae737220e93a16f50e7becc25baf844  gcc/testsuite/gcc.target/sparc/tls-ld-int8.c
+ 8cc25e4e4e726efbb76ac206a2b3e225  gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c
+ 27f99d07ba15d650eeb6b80cdb3b7913  gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c
+ de1289d9d1103ff86463c136e374c48d  gcc/testsuite/gcc.target/sparc/tls-ld-uint8.c
  25b3fbaad3a2016e2d2b3cdf5fea854d  gcc/testsuite/gcc.target/sparc/ultrasp1.c
  d6162326dc1d13ceac299feecb9623b5  gcc/testsuite/gcc.target/sparc/ultrasp10.c
  ce12e4f274007d914a57153cf148abad  gcc/testsuite/gcc.target/sparc/ultrasp11.c
*************** fa804286199303928e807b43822a9e6e  gcc/te
*** 48345,48358 ****
  3003646df75711be87357346568aa8b2  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
  93e2be6e941082bc6be7ef4044f4e8f0  gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
  f559d61e72669fec3c7c3bb1345a001f  gcc/testsuite/gcc.target/x86_64/abi/avx/args.h
  2ab990bb306a8a9c1f146095795ed0bb  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
  4061363418adffdceb4cff80966eaf32  gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h
  d3c71d269c1b4265e86c5ace1089e848  gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c
  b43e5e8d171dcdbec5cac42b0b9a298c  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c
  ff732b27c9bb0c5b99ccccb31d12d3ea  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c
  d02989c16f0d1cd0951fe435483c550e  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
! a571e2595a04525bc92ee6892034d8d3  gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp
  2cf03d73572ce81dab43dcceeeacf5c4  gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h
  341c91bf54efad299e2f11e9329738fa  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S
  1c4dc628c680a1d3ad4767c3a1455499  gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h
  75a0b911edb2a39978caadbf2c750015  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c
--- 48633,48648 ----
  3003646df75711be87357346568aa8b2  gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
  93e2be6e941082bc6be7ef4044f4e8f0  gcc/testsuite/gcc.target/x86_64/abi/avx/abi-avx.exp
  f559d61e72669fec3c7c3bb1345a001f  gcc/testsuite/gcc.target/x86_64/abi/avx/args.h
+ c85a8ff66d503afba32af980c3b1b620  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s
  2ab990bb306a8a9c1f146095795ed0bb  gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S
  4061363418adffdceb4cff80966eaf32  gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h
  d3c71d269c1b4265e86c5ace1089e848  gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c
  b43e5e8d171dcdbec5cac42b0b9a298c  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c
  ff732b27c9bb0c5b99ccccb31d12d3ea  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_structs.c
  d02989c16f0d1cd0951fe435483c550e  gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_unions.c
! 3481ac41e0dec20b58a9a2c4678d62c8  gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp
  2cf03d73572ce81dab43dcceeeacf5c4  gcc/testsuite/gcc.target/x86_64/abi/avx512f/args.h
+ c79ac297933c3dae25e3f797420d1814  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s
  341c91bf54efad299e2f11e9329738fa  gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S
  1c4dc628c680a1d3ad4767c3a1455499  gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h
  75a0b911edb2a39978caadbf2c750015  gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c
*************** dc5bd15d39629bdb9c6791eb1b939d2b  gcc/te
*** 48726,48731 ****
--- 49016,49022 ----
  1d2cf79427b4c041f17470d0205af957  gcc/testsuite/gfortran.dg/alloc_comp_assign_13.f08
  ce3c5ae7cd8e4635a87d230d5d263ab0  gcc/testsuite/gfortran.dg/alloc_comp_assign_14.f08
  a7d3d47dae489c27b136ee114e9cb610  gcc/testsuite/gfortran.dg/alloc_comp_assign_15.f03
+ ae9a8153879a562e6eaad8b096b2f86b  gcc/testsuite/gfortran.dg/alloc_comp_assign_16.f03
  d3cc31f30dcc8ad53b212e34a4909874  gcc/testsuite/gfortran.dg/alloc_comp_assign_2.f90
  afdc1d937c6fbd1b064165c9325fa117  gcc/testsuite/gfortran.dg/alloc_comp_assign_3.f90
  4177396dbf37d479cedf198fee04fbe1  gcc/testsuite/gfortran.dg/alloc_comp_assign_4.f90
*************** b852529cec3b92b7d12cc9eec0f3559f  gcc/te
*** 48889,48894 ****
--- 49180,49187 ----
  9b31f9f4ca2bcd7c062e04bc30721dc3  gcc/testsuite/gfortran.dg/altreturn_6.f90
  6a910b032025fe47523df7cd010b4a31  gcc/testsuite/gfortran.dg/altreturn_7.f90
  233eef9f00992461977dfc6c8ec80c9f  gcc/testsuite/gfortran.dg/altreturn_8.f90
+ 14f153f4930c4715ce36663b7f2859d1  gcc/testsuite/gfortran.dg/altreturn_9_0.f90
+ 3c92d543d83475baecb2a7bac4775a08  gcc/testsuite/gfortran.dg/altreturn_9_1.f90
  5efcafe8829b585812ac42002ce9079c  gcc/testsuite/gfortran.dg/ambiguous_reference_1.f90
  407349fe5dc0dd80df43de2e773a4cab  gcc/testsuite/gfortran.dg/ambiguous_reference_2.f90
  4a2d243fa69596ed5111843ecb20b347  gcc/testsuite/gfortran.dg/ambiguous_specific_1.f90
*************** a665074c9d37da1eeb1d261fe4259056  gcc/te
*** 49009,49015 ****
  3afaa99751f4b884afdb193178002cf8  gcc/testsuite/gfortran.dg/array_function_2.f90
  784dbde53c3024a9ece796b66df76ad0  gcc/testsuite/gfortran.dg/array_function_3.f90
  299c77bc10af8aa7d4d3369c9802de55  gcc/testsuite/gfortran.dg/array_function_4.f90
! 0b943a7b1268dc0f7948d9697c3bfe44  gcc/testsuite/gfortran.dg/array_function_5.f90
  8f75e90f6ecbefe7ac0df22a21373888  gcc/testsuite/gfortran.dg/array_function_6.f90
  f7deaa09f12d6b0d7167e9ea3c764992  gcc/testsuite/gfortran.dg/array_initializer_1.f90
  f089112961eb27984a439266fde9cf16  gcc/testsuite/gfortran.dg/array_initializer_2.f90
--- 49302,49308 ----
  3afaa99751f4b884afdb193178002cf8  gcc/testsuite/gfortran.dg/array_function_2.f90
  784dbde53c3024a9ece796b66df76ad0  gcc/testsuite/gfortran.dg/array_function_3.f90
  299c77bc10af8aa7d4d3369c9802de55  gcc/testsuite/gfortran.dg/array_function_4.f90
! a4c64b685de9c02c56f36e2092db0045  gcc/testsuite/gfortran.dg/array_function_5.f90
  8f75e90f6ecbefe7ac0df22a21373888  gcc/testsuite/gfortran.dg/array_function_6.f90
  f7deaa09f12d6b0d7167e9ea3c764992  gcc/testsuite/gfortran.dg/array_initializer_1.f90
  f089112961eb27984a439266fde9cf16  gcc/testsuite/gfortran.dg/array_initializer_2.f90
*************** ada9a3758cef9c8c02a55f1139c4f13b  gcc/te
*** 49091,49096 ****
--- 49384,49390 ----
  6eab1bfbc8235d8fcf743d9f5635aea3  gcc/testsuite/gfortran.dg/associate_30.f90
  4143f553bd13a860954e31145b26bcba  gcc/testsuite/gfortran.dg/associate_33.f03
  a1f5f0d8423367d45fe9382b407ce7e9  gcc/testsuite/gfortran.dg/associate_4.f08
+ 9a37c444f19b419083ffbbdcc1e8eb59  gcc/testsuite/gfortran.dg/associate_44.f90
  6143ba2a228800dde0bd37f3665e0994  gcc/testsuite/gfortran.dg/associate_46.f90
  5dfaf5e9c3d8b8b8f835046ca42ccbf4  gcc/testsuite/gfortran.dg/associate_5.f03
  b9a80d4815a13a74f89c8e64782f5c16  gcc/testsuite/gfortran.dg/associate_6.f03
*************** cdbd174fba27a1cc2fe42d6e10b97afd  gcc/te
*** 49158,49164 ****
  8bf64bb3c49e7fe58c386a66c599504b  gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90
  3e96e44672f88b56bd72f233716f03cd  gcc/testsuite/gfortran.dg/assumed_size_refs_4.f90
  6637ca606075a490a8af76882f9b6797  gcc/testsuite/gfortran.dg/assumed_type_1.f90
! 64d76b59391d15dc8c8c058b9862973a  gcc/testsuite/gfortran.dg/assumed_type_2.f90
  27b0b5ad82abb1d06990db9025f0c992  gcc/testsuite/gfortran.dg/assumed_type_3.f90
  efe423227b9fdac2ac81898e5770a7d9  gcc/testsuite/gfortran.dg/assumed_type_4.f90
  4700aa6f851cace7a18c8476fe6d6872  gcc/testsuite/gfortran.dg/assumed_type_5.f90
--- 49452,49458 ----
  8bf64bb3c49e7fe58c386a66c599504b  gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90
  3e96e44672f88b56bd72f233716f03cd  gcc/testsuite/gfortran.dg/assumed_size_refs_4.f90
  6637ca606075a490a8af76882f9b6797  gcc/testsuite/gfortran.dg/assumed_type_1.f90
! 02512575a252aa05aa0c66b6f2f63ef1  gcc/testsuite/gfortran.dg/assumed_type_2.f90
  27b0b5ad82abb1d06990db9025f0c992  gcc/testsuite/gfortran.dg/assumed_type_3.f90
  efe423227b9fdac2ac81898e5770a7d9  gcc/testsuite/gfortran.dg/assumed_type_4.f90
  4700aa6f851cace7a18c8476fe6d6872  gcc/testsuite/gfortran.dg/assumed_type_5.f90
*************** ec29931f9b3f84e65c0addc59ccb39bf  gcc/te
*** 49291,49296 ****
--- 49585,49594 ----
  524014cc930fc384a29d75d9885c914f  gcc/testsuite/gfortran.dg/binding_label_tests_26b.f90
  9dfb6e19dab1724fd7bc6c7ddd36dfeb  gcc/testsuite/gfortran.dg/binding_label_tests_27.f90
  3da0c43e404ea44650ab9a963fa41bee  gcc/testsuite/gfortran.dg/binding_label_tests_3.f03
+ e9eb0ce619abe6c5f23f938496878cff  gcc/testsuite/gfortran.dg/binding_label_tests_30.f90
+ c0d788f5fa3898fea232e169e1b1fbd0  gcc/testsuite/gfortran.dg/binding_label_tests_31.f90
+ d2102c94673affc257d3e7376d873240  gcc/testsuite/gfortran.dg/binding_label_tests_32.f90
+ 71cba30c6667a8dc0eed115b1e1f658d  gcc/testsuite/gfortran.dg/binding_label_tests_33.f90
  3013bc9de3bacac5bf462e52231abf50  gcc/testsuite/gfortran.dg/binding_label_tests_4.f03
  27695dee78547e7050f28a42fe933cf4  gcc/testsuite/gfortran.dg/binding_label_tests_5.f03
  430fa43d0c3ae8503b805e49e562838a  gcc/testsuite/gfortran.dg/binding_label_tests_6.f03
*************** bd6eb17303abbc4e9007d3120de885aa  gcc/te
*** 49318,49323 ****
--- 49616,49622 ----
  467e3192431dc9f382e940356a5e9e31  gcc/testsuite/gfortran.dg/block_name_1.f90
  af3c12f2a878273c530d8127f9dea7fb  gcc/testsuite/gfortran.dg/block_name_2.f90
  ad949a7d41c107c01e619cb4276aa8e5  gcc/testsuite/gfortran.dg/blockdata_1.f90
+ 7dd308b3ba190467e90bfb36452b2778  gcc/testsuite/gfortran.dg/blockdata_11.f90
  d7ced503ea09a16752521a1f4b1fddc8  gcc/testsuite/gfortran.dg/blockdata_2.f90
  8f473f427228b27b02d4863c73894c8b  gcc/testsuite/gfortran.dg/blockdata_3.f90
  e8876e93b76b208250265dc7c4145e96  gcc/testsuite/gfortran.dg/blockdata_4.f90
*************** f15e935d03dbafa7dc6f2f16a6745eaf  gcc/te
*** 49452,49457 ****
--- 49751,49758 ----
  cd3aad9da106691903e91c9c088f78a8  gcc/testsuite/gfortran.dg/c_funloc_tests_6.f90
  50f4b315c9bd0e25bc32f9dd348dd475  gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90
  59490e9c85587d64c753922197bc3806  gcc/testsuite/gfortran.dg/c_funloc_tests_8.f90
+ f8f8342ffbfc860b3fd25bf3bb1a89b1  gcc/testsuite/gfortran.dg/c_funptr_1.f90
+ 3fc97d796867c00b63bcdccb04232885  gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90
  4b6d52265411683cdb8530282a8dff39  gcc/testsuite/gfortran.dg/c_kind_int128_test1.f03
  0733118e389e1606ac84d84f59389db8  gcc/testsuite/gfortran.dg/c_kind_int128_test2.f03
  a4cc3575cb70912e0c1e8f6d5f3ba75a  gcc/testsuite/gfortran.dg/c_kind_params.f90
*************** d1999f6a0eaf5632d582305034467208  gcc/te
*** 49494,49499 ****
--- 49795,49801 ----
  ef5c9b71cfe2a7ae0c7eda3f4213cb68  gcc/testsuite/gfortran.dg/c_ptr_tests_16.f90
  ac91e127e05ae13da7cec3fc1053a789  gcc/testsuite/gfortran.dg/c_ptr_tests_17.f90
  7a873f03774fb774534f537314416225  gcc/testsuite/gfortran.dg/c_ptr_tests_18.f90
+ 98fb1fadfe2e07ccdc842d472fd09e95  gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90
  19526fb6a19b0628fb7a70b634ebe98d  gcc/testsuite/gfortran.dg/c_ptr_tests_5.f03
  f6be312d40aa69afff5a2130cf70acb9  gcc/testsuite/gfortran.dg/c_ptr_tests_7.f03
  7aa5685a7f16644136d0f0d20953db0f  gcc/testsuite/gfortran.dg/c_ptr_tests_7_driver.c
*************** aa76a700f1775b4615f5bc59e6a6f86f  gcc/te
*** 49586,49591 ****
--- 49888,49894 ----
  2c012b25be62885e19ecb346e3e0b8c0  gcc/testsuite/gfortran.dg/char_result_15.f90
  a8c885ea4e0c6bc88f0ace8c9441b54c  gcc/testsuite/gfortran.dg/char_result_16.f90
  c57ff1e13c323e08a3d7e31aaad2177d  gcc/testsuite/gfortran.dg/char_result_18.f90
+ c23be0d92be5574c5c53b96a89405886  gcc/testsuite/gfortran.dg/char_result_19.f90
  addbd6613662098935525e2467474eb4  gcc/testsuite/gfortran.dg/char_result_2.f90
  7aca40512679e7e9da0693bc91c40364  gcc/testsuite/gfortran.dg/char_result_3.f90
  1d3114221c526ae44bd098b162824d82  gcc/testsuite/gfortran.dg/char_result_4.f90
*************** f7d230606b53d7b328f30f5b3d6608dc  gcc/te
*** 49594,49599 ****
--- 49897,49903 ----
  2cc1cffa8dca181a520ddcb6d337aff1  gcc/testsuite/gfortran.dg/char_result_7.f90
  72e3b4aefed542507d5abe9256ee067f  gcc/testsuite/gfortran.dg/char_result_8.f90
  5093ae73a32a476b807d4a5128b4ed80  gcc/testsuite/gfortran.dg/char_result_9.f90
+ 1ced3da36308e54e5d306659bf14b653  gcc/testsuite/gfortran.dg/char_result_mod_19.f90
  db8a40e5c81b6bb7faee95d2cfe924a8  gcc/testsuite/gfortran.dg/char_spread_1.f90
  97538021b1b31ffd7b7c9f1f6dc0e49f  gcc/testsuite/gfortran.dg/char_transpose_1.f90
  282e86050baa24c488dcf2d912a3b1ac  gcc/testsuite/gfortran.dg/char_type_len.f90
*************** f3d0c2f9dd3430fcde70c063f5f1f609  gcc/te
*** 49625,49630 ****
--- 49929,49935 ----
  a172ca937d7924e5b9285065ca6b21dd  gcc/testsuite/gfortran.dg/charlen_14.f90
  2206de0890f2534a89c4aae24ad16449  gcc/testsuite/gfortran.dg/charlen_15.f90
  02d6fd55abf3af692a9be6039454369c  gcc/testsuite/gfortran.dg/charlen_16.f90
+ 6789f241b90393509e933466d0ce37dd  gcc/testsuite/gfortran.dg/charlen_17.f90
  e17d3a2ee93edbc78761cd7b4bc7a07b  gcc/testsuite/gfortran.dg/chkbits.f90
  3878b20ca157f84a63efc3ed7d107f76  gcc/testsuite/gfortran.dg/chmod_1.f90
  8734b41ae39408708165754bbf06ee09  gcc/testsuite/gfortran.dg/chmod_2.f90
*************** e8904afb9adfeb76555179cf83d18504  gcc/te
*** 49693,49699 ****
  96edfbbf02b9106a48eb73f24d4ea360  gcc/testsuite/gfortran.dg/class_63.f90
  0ce4624d38091f6542bcf6fab4486b51  gcc/testsuite/gfortran.dg/class_64.f90
  123e8fdbca935f6b90c89e509f0a97f7  gcc/testsuite/gfortran.dg/class_65.f90
! 6cc892c72c07b16501f3fb172d19f06e  gcc/testsuite/gfortran.dg/class_66.f90
  21a5ae6531304c6748be745ba95ac961  gcc/testsuite/gfortran.dg/class_67.f90
  cc0c048415b8d0593fe7e5b164763dc7  gcc/testsuite/gfortran.dg/class_7.f03
  765b5ae237d318aee8909def266c457e  gcc/testsuite/gfortran.dg/class_8.f03
--- 49998,50004 ----
  96edfbbf02b9106a48eb73f24d4ea360  gcc/testsuite/gfortran.dg/class_63.f90
  0ce4624d38091f6542bcf6fab4486b51  gcc/testsuite/gfortran.dg/class_64.f90
  123e8fdbca935f6b90c89e509f0a97f7  gcc/testsuite/gfortran.dg/class_65.f90
! 39af4a53bf77c8d015f34092be1c57c7  gcc/testsuite/gfortran.dg/class_66.f90
  21a5ae6531304c6748be745ba95ac961  gcc/testsuite/gfortran.dg/class_67.f90
  cc0c048415b8d0593fe7e5b164763dc7  gcc/testsuite/gfortran.dg/class_7.f03
  765b5ae237d318aee8909def266c457e  gcc/testsuite/gfortran.dg/class_8.f03
*************** b51c285d2aa337ba9d51a48947b0788a  gcc/te
*** 49776,49782 ****
  afecbef3bd5f68f4872a7ed414762932  gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90
  77a59a37262e649592960648d8f49884  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  66a73e153495da5e9139cb83e979ea52  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! 4465280c9d8af39d0e631134b63fe18d  gcc/testsuite/gfortran.dg/coarray/caf.exp
  bc1ad7d1140827fd94c615e483ec80a0  gcc/testsuite/gfortran.dg/coarray/codimension.f90
  5458460c74c7764eb6fc6ca41f3520cb  gcc/testsuite/gfortran.dg/coarray/codimension_2.f90
  9604ece34279ee35811c44344503ca51  gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90
--- 50081,50087 ----
  afecbef3bd5f68f4872a7ed414762932  gcc/testsuite/gfortran.dg/coarray/allocate_errgmsg.f90
  77a59a37262e649592960648d8f49884  gcc/testsuite/gfortran.dg/coarray/atomic_1.f90
  66a73e153495da5e9139cb83e979ea52  gcc/testsuite/gfortran.dg/coarray/atomic_2.f90
! a1876958fad12f17e2a0cb6c5e06d27f  gcc/testsuite/gfortran.dg/coarray/caf.exp
  bc1ad7d1140827fd94c615e483ec80a0  gcc/testsuite/gfortran.dg/coarray/codimension.f90
  5458460c74c7764eb6fc6ca41f3520cb  gcc/testsuite/gfortran.dg/coarray/codimension_2.f90
  9604ece34279ee35811c44344503ca51  gcc/testsuite/gfortran.dg/coarray/codimension_2a.f90
*************** bc2e49396148d7be346be065b8879d1b  gcc/te
*** 49791,49797 ****
  393c735e4ed3573f46d59b6be8dfe555  gcc/testsuite/gfortran.dg/coarray/dummy_1.f90
  145d35dc06fc9f1f4dedae6e06844cc4  gcc/testsuite/gfortran.dg/coarray/event_1.f90
  82478fce64f3e0b6eabec854f96800c2  gcc/testsuite/gfortran.dg/coarray/event_2.f90
! 7bdec35df5c34a10372c7a54a6b5ab8f  gcc/testsuite/gfortran.dg/coarray/event_3.f08
  69e67a47c4572bb8954e710fb63e1241  gcc/testsuite/gfortran.dg/coarray/event_4.f08
  d5151e59e2e1e14dc716281be617a2b7  gcc/testsuite/gfortran.dg/coarray/fail_image_1.f08
  f2e0d8eab800c2440470c47e27dbc818  gcc/testsuite/gfortran.dg/coarray/fail_image_2.f08
--- 50096,50102 ----
  393c735e4ed3573f46d59b6be8dfe555  gcc/testsuite/gfortran.dg/coarray/dummy_1.f90
  145d35dc06fc9f1f4dedae6e06844cc4  gcc/testsuite/gfortran.dg/coarray/event_1.f90
  82478fce64f3e0b6eabec854f96800c2  gcc/testsuite/gfortran.dg/coarray/event_2.f90
! adfbd63a82cb07a5f08fcfc37965d57e  gcc/testsuite/gfortran.dg/coarray/event_3.f08
  69e67a47c4572bb8954e710fb63e1241  gcc/testsuite/gfortran.dg/coarray/event_4.f08
  d5151e59e2e1e14dc716281be617a2b7  gcc/testsuite/gfortran.dg/coarray/fail_image_1.f08
  f2e0d8eab800c2440470c47e27dbc818  gcc/testsuite/gfortran.dg/coarray/fail_image_2.f08
*************** fd555c460e9a2fe3d73c2849790b7206  gcc/te
*** 49884,49889 ****
--- 50189,50195 ----
  eda6cad3c6c6f004e3137cf3e30aedf1  gcc/testsuite/gfortran.dg/coarray_alloc_with_implicit_sync_2.f90
  964249eae6cd40820f1f28256a0bf3aa  gcc/testsuite/gfortran.dg/coarray_allocate_1.f90
  7f7ada77f8ccf2a006c41d9c27523532  gcc/testsuite/gfortran.dg/coarray_allocate_10.f08
+ 89da7a5247ec226a9d595e4ee6bbbab8  gcc/testsuite/gfortran.dg/coarray_allocate_11.f90
  285b5b3c2c36332e70a6fca024996fbd  gcc/testsuite/gfortran.dg/coarray_allocate_2.f08
  978bd13bbc4b2c95d2299d14606fb122  gcc/testsuite/gfortran.dg/coarray_allocate_3.f08
  d990f539ac9bc71eee9dd4cc02f84412  gcc/testsuite/gfortran.dg/coarray_allocate_4.f08
*************** d8b0925104e27edfd7554327aec7e656  gcc/te
*** 49918,49923 ****
--- 50224,50230 ----
  3868ecdad997c64216510129983de4eb  gcc/testsuite/gfortran.dg/coarray_collectives_8.f90
  e7f7c38c4530db86c8bf560b1800b017  gcc/testsuite/gfortran.dg/coarray_collectives_9.f90
  967c97a8edd55b3e24d9f53bacf51ab2  gcc/testsuite/gfortran.dg/coarray_critical_1.f90
+ f24b69052d445ea075f93eefed61e789  gcc/testsuite/gfortran.dg/coarray_data_1.f90
  9548b18ea57c3895468bd270375183d8  gcc/testsuite/gfortran.dg/coarray_dependency_1.f90
  ae24a8ba632b111617b5af3d9ec9ed23  gcc/testsuite/gfortran.dg/coarray_event_1.f08
  a863774927689ef296949ebaa242ffb2  gcc/testsuite/gfortran.dg/coarray_fail_st.f90
*************** bb8d56d19a9b76a2194076b6f5de055f  gcc/te
*** 49942,49948 ****
  c132dbfa1738d526e8055c025c1641e0  gcc/testsuite/gfortran.dg/coarray_lock_4.f90
  074eddb0df81baa8fa98afe087fec459  gcc/testsuite/gfortran.dg/coarray_lock_5.f90
  5a1674540bf58193c6febb71d5f4b58b  gcc/testsuite/gfortran.dg/coarray_lock_6.f90
! 10b44fa37903d9e34e858ef9b0fc9218  gcc/testsuite/gfortran.dg/coarray_lock_7.f90
  363f712216477dd98bef29eaa7b022e7  gcc/testsuite/gfortran.dg/coarray_poly_1.f90
  be78a9a8d107997dfb6a26a694e767f6  gcc/testsuite/gfortran.dg/coarray_poly_2.f90
  7c19739bc10d458b120fb0ab4ca4dbf2  gcc/testsuite/gfortran.dg/coarray_poly_3.f90
--- 50249,50255 ----
  c132dbfa1738d526e8055c025c1641e0  gcc/testsuite/gfortran.dg/coarray_lock_4.f90
  074eddb0df81baa8fa98afe087fec459  gcc/testsuite/gfortran.dg/coarray_lock_5.f90
  5a1674540bf58193c6febb71d5f4b58b  gcc/testsuite/gfortran.dg/coarray_lock_6.f90
! 3515a00d26fca44fbf66f64e625e8482  gcc/testsuite/gfortran.dg/coarray_lock_7.f90
  363f712216477dd98bef29eaa7b022e7  gcc/testsuite/gfortran.dg/coarray_poly_1.f90
  be78a9a8d107997dfb6a26a694e767f6  gcc/testsuite/gfortran.dg/coarray_poly_2.f90
  7c19739bc10d458b120fb0ab4ca4dbf2  gcc/testsuite/gfortran.dg/coarray_poly_3.f90
*************** adf3e611b5d9dd41324a93faee4fe2c9  gcc/te
*** 50124,50130 ****
  e62cb07af37a3023dea48cda7bae2544  gcc/testsuite/gfortran.dg/deallocate_stat_2.f90
  1f6d173ba353df6282857ed63520cb21  gcc/testsuite/gfortran.dg/debug/debug.exp
  c8fe955f02d446b949b45194c7d29caf  gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f
! 2eac2116b9d52581b9b5d185acecd1e2  gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f
  67306648e7f17b3880c7c867fad9e0c9  gcc/testsuite/gfortran.dg/debug/pr37738.f
  788a70497a0a2ddba0abf97330a47c01  gcc/testsuite/gfortran.dg/debug/pr43166.f
  f49bca9d2dccbedebe34c595e7e099d0  gcc/testsuite/gfortran.dg/debug/pr46756.f
--- 50431,50437 ----
  e62cb07af37a3023dea48cda7bae2544  gcc/testsuite/gfortran.dg/deallocate_stat_2.f90
  1f6d173ba353df6282857ed63520cb21  gcc/testsuite/gfortran.dg/debug/debug.exp
  c8fe955f02d446b949b45194c7d29caf  gcc/testsuite/gfortran.dg/debug/pr35154-dwarf2.f
! 4ca72322789f14d749b67a8810c9f243  gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f
  67306648e7f17b3880c7c867fad9e0c9  gcc/testsuite/gfortran.dg/debug/pr37738.f
  788a70497a0a2ddba0abf97330a47c01  gcc/testsuite/gfortran.dg/debug/pr43166.f
  f49bca9d2dccbedebe34c595e7e099d0  gcc/testsuite/gfortran.dg/debug/pr46756.f
*************** b5027dd480b5ebe7e0147828f05aed61  gcc/te
*** 50166,50175 ****
  299b547bcb6b486a2e1f3e6ff0e387b8  gcc/testsuite/gfortran.dg/dec_structure_1.f90
  facc0d311d19c38571f70f8db13044bc  gcc/testsuite/gfortran.dg/dec_structure_10.f90
  bebb7b5cba927374343e4d102d6bdef2  gcc/testsuite/gfortran.dg/dec_structure_11.f90
! c7371f966fa8fe05eb7f3540fda3af92  gcc/testsuite/gfortran.dg/dec_structure_12.f90
  f49f855af4f970d26d54c898d689cf45  gcc/testsuite/gfortran.dg/dec_structure_13.f90
! 5420066ea47f8652a0c02abc68b7c185  gcc/testsuite/gfortran.dg/dec_structure_14.f90
! a72e275582cc00af9666fcd65f11856b  gcc/testsuite/gfortran.dg/dec_structure_15.f90
  0c2deddf183b1829738b6c015b933f07  gcc/testsuite/gfortran.dg/dec_structure_16.f90
  6609d701473c6ac18cb7eaf33f217448  gcc/testsuite/gfortran.dg/dec_structure_17.f90
  c065ec9eab467c19e2503ea2b5ec35f6  gcc/testsuite/gfortran.dg/dec_structure_2.f90
--- 50473,50482 ----
  299b547bcb6b486a2e1f3e6ff0e387b8  gcc/testsuite/gfortran.dg/dec_structure_1.f90
  facc0d311d19c38571f70f8db13044bc  gcc/testsuite/gfortran.dg/dec_structure_10.f90
  bebb7b5cba927374343e4d102d6bdef2  gcc/testsuite/gfortran.dg/dec_structure_11.f90
! cc7923e03cd538e563c645138bbb901c  gcc/testsuite/gfortran.dg/dec_structure_12.f90
  f49f855af4f970d26d54c898d689cf45  gcc/testsuite/gfortran.dg/dec_structure_13.f90
! 14efd07f9de8042ea9476e559c133981  gcc/testsuite/gfortran.dg/dec_structure_14.f90
! ebba8043478aa96038ef334b3246bf71  gcc/testsuite/gfortran.dg/dec_structure_15.f90
  0c2deddf183b1829738b6c015b933f07  gcc/testsuite/gfortran.dg/dec_structure_16.f90
  6609d701473c6ac18cb7eaf33f217448  gcc/testsuite/gfortran.dg/dec_structure_17.f90
  c065ec9eab467c19e2503ea2b5ec35f6  gcc/testsuite/gfortran.dg/dec_structure_2.f90
*************** c2d3fe3d7d640f7941cc2bc632a62dae  gcc/te
*** 50219,50224 ****
--- 50526,50532 ----
  1a26e360dc164c3593384827ba0ea576  gcc/testsuite/gfortran.dg/deferred_character_18.f90
  0065ab4e114bfcdbbb2b3374d1ffdc63  gcc/testsuite/gfortran.dg/deferred_character_2.f90
  dfd1a256ace2833d668ae709e8f43f9e  gcc/testsuite/gfortran.dg/deferred_character_3.f90
+ f405c538ee221b34e2094a843f78c12a  gcc/testsuite/gfortran.dg/deferred_character_32.f90
  1d0633419cdd140f8ca51872f6219b2d  gcc/testsuite/gfortran.dg/deferred_character_4.f90
  b90b86dcee8b12dac9cb174a3177fc66  gcc/testsuite/gfortran.dg/deferred_character_5.f90
  8f0e0ad0341dea63051e52e1afc7a198  gcc/testsuite/gfortran.dg/deferred_character_6.f90
*************** dca63cf93efe22616e44d9f46b5b1933  gcc/te
*** 50296,50301 ****
--- 50604,50610 ----
  0b500dcd3858e049021939919e789ac4  gcc/testsuite/gfortran.dg/dependency_48.f90
  c9817191c2bb4937bf557342ac314361  gcc/testsuite/gfortran.dg/dependency_49.f90
  590a99c4ec44cc37aa92b225e93d6e87  gcc/testsuite/gfortran.dg/dependency_5.f90
+ 4e12ffe31088cb1a780ebbce0ec059ef  gcc/testsuite/gfortran.dg/dependency_53.f90
  03218919538313b26e09fa1b8f0efda0  gcc/testsuite/gfortran.dg/dependency_6.f90
  699f1378f5c1fcdc54eb21fdb4a59be1  gcc/testsuite/gfortran.dg/dependency_7.f90
  89a3206dfabae1e31ea62ec7fa264ee6  gcc/testsuite/gfortran.dg/dependency_8.f90
*************** dd5ecf2c74eaa6c3f2c981a9dcb2caa3  gcc/te
*** 50351,50357 ****
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  adbce17b40220bfd236ee3eae3f70a9d  gcc/testsuite/gfortran.dg/dev_null.F90
  d655f69be703cce0cf887b416272ea61  gcc/testsuite/gfortran.dg/dfloat_1.f90
! c9f9c3ba98632df0c5de87ebce48fce4  gcc/testsuite/gfortran.dg/dg.exp
  cf9206e8c02e17079f63e1e6860bdb3b  gcc/testsuite/gfortran.dg/dim_range_1.f90
  ea4b46f100a2bfd145edbb489c0084b0  gcc/testsuite/gfortran.dg/direct_io_1.f90
  2a1539169ac7a352e0c4d17620d0cc9a  gcc/testsuite/gfortran.dg/direct_io_10.f
--- 50660,50666 ----
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  adbce17b40220bfd236ee3eae3f70a9d  gcc/testsuite/gfortran.dg/dev_null.F90
  d655f69be703cce0cf887b416272ea61  gcc/testsuite/gfortran.dg/dfloat_1.f90
! 786746f093ad6105362e3aa48d05b3cd  gcc/testsuite/gfortran.dg/dg.exp
  cf9206e8c02e17079f63e1e6860bdb3b  gcc/testsuite/gfortran.dg/dim_range_1.f90
  ea4b46f100a2bfd145edbb489c0084b0  gcc/testsuite/gfortran.dg/direct_io_1.f90
  2a1539169ac7a352e0c4d17620d0cc9a  gcc/testsuite/gfortran.dg/direct_io_10.f
*************** a0b74fda00f9c5255be3c14e5cade4fb  gcc/te
*** 50629,50635 ****
  67b1a5f1fc1b03b37fe0ddb31db8314f  gcc/testsuite/gfortran.dg/extended_char_comparison_1.f
  2a20ea5b0c45c04aee1ab3cbf795ad69  gcc/testsuite/gfortran.dg/extends_1.f03
  0e44b2eb2c1a529f05be5d12105a377a  gcc/testsuite/gfortran.dg/extends_10.f03
! 6334ad8fcee8d591255fc679d233c894  gcc/testsuite/gfortran.dg/extends_11.f03
  b7e2413270f6481d88fa6592dfc294f5  gcc/testsuite/gfortran.dg/extends_12.f03
  d4e27af6507d9c4c9757a560f61cf4b0  gcc/testsuite/gfortran.dg/extends_13.f03
  47fb1ab6628d7320424113485c1be2c0  gcc/testsuite/gfortran.dg/extends_14.f03
--- 50938,50944 ----
  67b1a5f1fc1b03b37fe0ddb31db8314f  gcc/testsuite/gfortran.dg/extended_char_comparison_1.f
  2a20ea5b0c45c04aee1ab3cbf795ad69  gcc/testsuite/gfortran.dg/extends_1.f03
  0e44b2eb2c1a529f05be5d12105a377a  gcc/testsuite/gfortran.dg/extends_10.f03
! 3d68eda9ecc156089a6d87ab7de8a1f2  gcc/testsuite/gfortran.dg/extends_11.f03
  b7e2413270f6481d88fa6592dfc294f5  gcc/testsuite/gfortran.dg/extends_12.f03
  d4e27af6507d9c4c9757a560f61cf4b0  gcc/testsuite/gfortran.dg/extends_13.f03
  47fb1ab6628d7320424113485c1be2c0  gcc/testsuite/gfortran.dg/extends_14.f03
*************** d88c4f69c4e8abbcf539c35db1c38c47  gcc/te
*** 50697,50707 ****
  7777e7da27f0f204cb380c5791769371  gcc/testsuite/gfortran.dg/finalize_24.f90
  9d8695ba5d9b84a617601b19fbc15f3e  gcc/testsuite/gfortran.dg/finalize_25.f90
  41d2ab1f1acf2bfddbbdceb10c9ae399  gcc/testsuite/gfortran.dg/finalize_27.f90
! efc9cd9348a3f56180139e80d960002c  gcc/testsuite/gfortran.dg/finalize_28.f90
  b0b40e9272a3a3ddc92029a3f499ef91  gcc/testsuite/gfortran.dg/finalize_29.f08
  fd6f56591cff43978fb9e37af994eec0  gcc/testsuite/gfortran.dg/finalize_3.f03
  e100c711627c65e22ec895f123885efe  gcc/testsuite/gfortran.dg/finalize_30.f90
  5df1306fb500720b7f7dafdb58f4a46d  gcc/testsuite/gfortran.dg/finalize_31.f90
  92b4ca27645d88cb11543d720382b004  gcc/testsuite/gfortran.dg/finalize_4.f03
  ce817f495edb0ac306d6ae1052014e67  gcc/testsuite/gfortran.dg/finalize_5.f03
  00394d3b18b9e094a6751225fef04a51  gcc/testsuite/gfortran.dg/finalize_6.f90
--- 51006,51017 ----
  7777e7da27f0f204cb380c5791769371  gcc/testsuite/gfortran.dg/finalize_24.f90
  9d8695ba5d9b84a617601b19fbc15f3e  gcc/testsuite/gfortran.dg/finalize_25.f90
  41d2ab1f1acf2bfddbbdceb10c9ae399  gcc/testsuite/gfortran.dg/finalize_27.f90
! d30e2b4888cd7deaa0b011ec6dc2730a  gcc/testsuite/gfortran.dg/finalize_28.f90
  b0b40e9272a3a3ddc92029a3f499ef91  gcc/testsuite/gfortran.dg/finalize_29.f08
  fd6f56591cff43978fb9e37af994eec0  gcc/testsuite/gfortran.dg/finalize_3.f03
  e100c711627c65e22ec895f123885efe  gcc/testsuite/gfortran.dg/finalize_30.f90
  5df1306fb500720b7f7dafdb58f4a46d  gcc/testsuite/gfortran.dg/finalize_31.f90
+ bf28fc2ddb1347b5d4cd2aac68cccbc5  gcc/testsuite/gfortran.dg/finalize_34.f90
  92b4ca27645d88cb11543d720382b004  gcc/testsuite/gfortran.dg/finalize_4.f03
  ce817f495edb0ac306d6ae1052014e67  gcc/testsuite/gfortran.dg/finalize_5.f03
  00394d3b18b9e094a6751225fef04a51  gcc/testsuite/gfortran.dg/finalize_6.f90
*************** eaa9f5415777a4aa8e9cb87901c13910  gcc/te
*** 51297,51308 ****
--- 51607,51623 ----
  13b62b43e8c430a8a748b9782ee8d3d1  gcc/testsuite/gfortran.dg/gomp/pr83977.f90
  28b8381f9a6407f3fbdf2a45fe796f66  gcc/testsuite/gfortran.dg/gomp/pr84116.f90
  900e29bb957f49d5b8cee27818655396  gcc/testsuite/gfortran.dg/gomp/pr85313.f90
+ 474faa53ddfedb432c4594b4df78d3f3  gcc/testsuite/gfortran.dg/gomp/pr88377.f90
+ 5ec5bffb9591a9ffd391899e3384e8c4  gcc/testsuite/gfortran.dg/gomp/pr89621.f90
+ 6399dd6d481972c65426ae5a0fe674a2  gcc/testsuite/gfortran.dg/gomp/pr89651.f90
  b4be3f9de7631846875a711ae9b67293  gcc/testsuite/gfortran.dg/gomp/proc_ptr_1.f90
  87885556568e657ef4c936c53e1c7305  gcc/testsuite/gfortran.dg/gomp/proc_ptr_2.f90
  59e444df8ec8f5ea9859b5aef4d75865  gcc/testsuite/gfortran.dg/gomp/reduction1.f90
  02484261b0434dbaf2709c34db58cd4d  gcc/testsuite/gfortran.dg/gomp/reduction2.f90
  a2addf1a691db784ba87841fe1cf8f23  gcc/testsuite/gfortran.dg/gomp/reduction3.f90
  96b7be608b1727fa1e3fc8a9c0185d70  gcc/testsuite/gfortran.dg/gomp/schedule-1.f90
+ c525cee40cfdc1d7f1dda5cf299fdde9  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90
+ 8ad2e6ddba3c3e3e8fd13e26a2cb7c46  gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90
  9f419935560eeba38800fbec9faa6990  gcc/testsuite/gfortran.dg/gomp/sharing-1.f90
  bb19e54aafc9016401c4797e4cb0d75d  gcc/testsuite/gfortran.dg/gomp/sharing-2.f90
  31d6e090f7c514b28f2656086d853df7  gcc/testsuite/gfortran.dg/gomp/sharing-3.f90
*************** e6c37a9def09433a6a2f8bc1d9220133  gcc/te
*** 51467,51473 ****
  e75d952c59fd79d136d9f20ac5f9d493  gcc/testsuite/gfortran.dg/ichar_1.f90
  9f00cdde2669030be42ca86f95884598  gcc/testsuite/gfortran.dg/ichar_2.f90
  b614ce421f97fb4ab6fa10f1f1c47ab0  gcc/testsuite/gfortran.dg/ichar_3.f90
! 61a90a701bdb712772bc39dc480bf8d1  gcc/testsuite/gfortran.dg/ieee/ieee.exp
  d4e79f3d59da8bf78ed9abd64e14a66e  gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
  c160ba4534ede110d46792244ef13084  gcc/testsuite/gfortran.dg/ieee/ieee_2.f90
  11531bb40c1766300ca1cb9d0343c12c  gcc/testsuite/gfortran.dg/ieee/ieee_3.f90
--- 51782,51788 ----
  e75d952c59fd79d136d9f20ac5f9d493  gcc/testsuite/gfortran.dg/ichar_1.f90
  9f00cdde2669030be42ca86f95884598  gcc/testsuite/gfortran.dg/ichar_2.f90
  b614ce421f97fb4ab6fa10f1f1c47ab0  gcc/testsuite/gfortran.dg/ichar_3.f90
! 7ec907ceded29e9a82126a233eb13f85  gcc/testsuite/gfortran.dg/ieee/ieee.exp
  d4e79f3d59da8bf78ed9abd64e14a66e  gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
  c160ba4534ede110d46792244ef13084  gcc/testsuite/gfortran.dg/ieee/ieee_2.f90
  11531bb40c1766300ca1cb9d0343c12c  gcc/testsuite/gfortran.dg/ieee/ieee_3.f90
*************** b4d472d28fc0ac004218dc87eb241306  gcc/te
*** 51710,51715 ****
--- 52025,52031 ----
  b3de2cdb7dfd995e8d4a97fabcc29a38  gcc/testsuite/gfortran.dg/interface_abstract_2.f90
  e797a26594e33f4316a85af1fe223cbc  gcc/testsuite/gfortran.dg/interface_abstract_3.f90
  a30d85d2601e16438a18162122cbc190  gcc/testsuite/gfortran.dg/interface_abstract_4.f90
+ bb1e6a032a10a9e1ff7d9a5d79c13aa6  gcc/testsuite/gfortran.dg/interface_abstract_5.f90
  b5ce20e569dd18b2200d162ba545aaa9  gcc/testsuite/gfortran.dg/interface_assignment_1.f90
  2fc809c732294a8d3020830bc126420d  gcc/testsuite/gfortran.dg/interface_assignment_2.f90
  91f77567fb0079c826db40c2ce9296c0  gcc/testsuite/gfortran.dg/interface_assignment_3.f90
*************** a50aae7296164245305033ac9ad76f9e  gcc/te
*** 51945,51953 ****
  cce764967a53580b4da5528603b77e0c  gcc/testsuite/gfortran.dg/lto/20091015-1_1.f
  b15d12ceedaec19ba0c3dccda0ff8ff3  gcc/testsuite/gfortran.dg/lto/20091015-1_2.f
  22260f45e69e095269c5ce9ffd573fdd  gcc/testsuite/gfortran.dg/lto/20091016-1_0.f90
! 4f2edde20f8cc5e9648cbd641c65f4b0  gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90
  3347d22ad57680bea0046ec09834ace3  gcc/testsuite/gfortran.dg/lto/20091028-1_1.c
! 4f2edde20f8cc5e9648cbd641c65f4b0  gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90
  132111f4eb309b2a60ee09bdd249ad57  gcc/testsuite/gfortran.dg/lto/20091028-2_1.c
  a712ac9ff8597986399f0e39238ae03d  gcc/testsuite/gfortran.dg/lto/20100110-1_0.f90
  a359cbb68407bfc3d0394abe1fbff589  gcc/testsuite/gfortran.dg/lto/20100222-1_0.f03
--- 52261,52269 ----
  cce764967a53580b4da5528603b77e0c  gcc/testsuite/gfortran.dg/lto/20091015-1_1.f
  b15d12ceedaec19ba0c3dccda0ff8ff3  gcc/testsuite/gfortran.dg/lto/20091015-1_2.f
  22260f45e69e095269c5ce9ffd573fdd  gcc/testsuite/gfortran.dg/lto/20091016-1_0.f90
! f485672dc63fa62c9200ae105fae2521  gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90
  3347d22ad57680bea0046ec09834ace3  gcc/testsuite/gfortran.dg/lto/20091028-1_1.c
! f485672dc63fa62c9200ae105fae2521  gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90
  132111f4eb309b2a60ee09bdd249ad57  gcc/testsuite/gfortran.dg/lto/20091028-2_1.c
  a712ac9ff8597986399f0e39238ae03d  gcc/testsuite/gfortran.dg/lto/20100110-1_0.f90
  a359cbb68407bfc3d0394abe1fbff589  gcc/testsuite/gfortran.dg/lto/20100222-1_0.f03
*************** f388840da10adfc224269f398590a10a  gcc/te
*** 51989,51994 ****
--- 52305,52313 ----
  a9d014274eb56078098dae3d4f9a8fe7  gcc/testsuite/gfortran.dg/lto/pr60635_0.f90
  a8ba679c6307cb7e937915e91616c861  gcc/testsuite/gfortran.dg/lto/pr60635_1.c
  f4d0f3a9eea039a45f8f40d5a4d52efb  gcc/testsuite/gfortran.dg/lto/pr79108_0.f90
+ ba08aed6efe11198caa459b3c16a5ccd  gcc/testsuite/gfortran.dg/lto/pr87689_0.f
+ a05a13a27c2b09cdc9cd3c6a8b7bf7a4  gcc/testsuite/gfortran.dg/lto/pr87689_1.f
+ f5272c5b4153fa5ce60b4c526701d273  gcc/testsuite/gfortran.dg/lto/pr89084_0.f90
  90434c89063bd3bdc5d9a8c4eee70ada  gcc/testsuite/gfortran.dg/make_unit.f90
  b49070ec831f64c85f249772acd9a59f  gcc/testsuite/gfortran.dg/malloc_free_1.f90
  fac981decf60a31ee9a61ded4eff6076  gcc/testsuite/gfortran.dg/mapping_1.f90
*************** cf1aadbb18d5e6f8399c252ebc5de0bf  gcc/te
*** 52304,52310 ****
  13d28611ec12cad2c98a2b98760c1cfa  gcc/testsuite/gfortran.dg/nint_2.f90
  f867bd2d1caf94b8344ac3386b825ea1  gcc/testsuite/gfortran.dg/nint_p7.f90
  03b84fc5eca43cc5d1a0b1a93937da73  gcc/testsuite/gfortran.dg/no_arg_check_1.f90
! 303a890b2110e8215f31f06f3296a575  gcc/testsuite/gfortran.dg/no_arg_check_2.f90
  b737c11615e1c006ec919afcf954359a  gcc/testsuite/gfortran.dg/no_arg_check_3.f90
  b8ed55f3a0b0c5b3a0d9e46a8d126422  gcc/testsuite/gfortran.dg/no_range_check_1.f90
  10ba36a54e4167012d313c9d133e2697  gcc/testsuite/gfortran.dg/no_range_check_2.f90
--- 52623,52629 ----
  13d28611ec12cad2c98a2b98760c1cfa  gcc/testsuite/gfortran.dg/nint_2.f90
  f867bd2d1caf94b8344ac3386b825ea1  gcc/testsuite/gfortran.dg/nint_p7.f90
  03b84fc5eca43cc5d1a0b1a93937da73  gcc/testsuite/gfortran.dg/no_arg_check_1.f90
! 82f3ab9b8a10f2f7823510a3b555339a  gcc/testsuite/gfortran.dg/no_arg_check_2.f90
  b737c11615e1c006ec919afcf954359a  gcc/testsuite/gfortran.dg/no_arg_check_3.f90
  b8ed55f3a0b0c5b3a0d9e46a8d126422  gcc/testsuite/gfortran.dg/no_range_check_1.f90
  10ba36a54e4167012d313c9d133e2697  gcc/testsuite/gfortran.dg/no_range_check_2.f90
*************** b2823ca785899e4525f0fc17a220141f  gcc/te
*** 52323,52328 ****
--- 52642,52648 ----
  91353d61f3211c7a23b612772e08fd95  gcc/testsuite/gfortran.dg/nosigned_zero_3.f90
  159e718b6cdc3ab81ad5a1d7d7784a9e  gcc/testsuite/gfortran.dg/null1.f90
  3fb21e1a3ab7abb4fda4c7de5e911da6  gcc/testsuite/gfortran.dg/null_1.f90
+ e49574cae7efd91e2d92bce10b9d46ec  gcc/testsuite/gfortran.dg/null_10.f90
  395e8ab85b617da87692d07766c92d12  gcc/testsuite/gfortran.dg/null_2.f90
  4a039c37a090768395179ad5abf300cc  gcc/testsuite/gfortran.dg/null_3.f90
  e5fa40276b7e0de18f35bf0ad1ffb8bc  gcc/testsuite/gfortran.dg/null_4.f90
*************** f054254e454828510bea70958afa02a8  gcc/te
*** 52455,52467 ****
  53df30aa4d33665f06dffc149edb1acc  gcc/testsuite/gfortran.dg/pointer_function_actual_2.f90
  ca3502e61ad4ad83ad0d8c0bd4258847  gcc/testsuite/gfortran.dg/pointer_function_result_1.f90
  b8411fe9cca01b5165020fe5db99ea7f  gcc/testsuite/gfortran.dg/pointer_init_1.f90
! d65add36c892fbd171b2a6230e3df47a  gcc/testsuite/gfortran.dg/pointer_init_2.f90
  420bfb631f3b55335367be5626fee801  gcc/testsuite/gfortran.dg/pointer_init_3.f90
  4d72723b2b5af10ed43643040e25b44a  gcc/testsuite/gfortran.dg/pointer_init_4.f90
  453ecb034e724f36fa5bedfa34421eb7  gcc/testsuite/gfortran.dg/pointer_init_5.f90
! d72c5595a92cdc30ae5c763e89917fad  gcc/testsuite/gfortran.dg/pointer_init_6.f90
  04a911b96a459127d681989557ce10aa  gcc/testsuite/gfortran.dg/pointer_init_7.f90
  3207d3004ca83ffbdfb378e718c43744  gcc/testsuite/gfortran.dg/pointer_init_8.f90
  ea510da8f62c8fefcddeee09623cb9e9  gcc/testsuite/gfortran.dg/pointer_intent_1.f90
  df45593ceab569302723dbccf3cd63de  gcc/testsuite/gfortran.dg/pointer_intent_2.f90
  9bb45e748921409aa8ed658c7f890789  gcc/testsuite/gfortran.dg/pointer_intent_3.f90
--- 52775,52788 ----
  53df30aa4d33665f06dffc149edb1acc  gcc/testsuite/gfortran.dg/pointer_function_actual_2.f90
  ca3502e61ad4ad83ad0d8c0bd4258847  gcc/testsuite/gfortran.dg/pointer_function_result_1.f90
  b8411fe9cca01b5165020fe5db99ea7f  gcc/testsuite/gfortran.dg/pointer_init_1.f90
! 172ad5baa7baf2ab310a7cbce0cfaf13  gcc/testsuite/gfortran.dg/pointer_init_2.f90
  420bfb631f3b55335367be5626fee801  gcc/testsuite/gfortran.dg/pointer_init_3.f90
  4d72723b2b5af10ed43643040e25b44a  gcc/testsuite/gfortran.dg/pointer_init_4.f90
  453ecb034e724f36fa5bedfa34421eb7  gcc/testsuite/gfortran.dg/pointer_init_5.f90
! 859dd7c2364c1c9047201cb2598f2828  gcc/testsuite/gfortran.dg/pointer_init_6.f90
  04a911b96a459127d681989557ce10aa  gcc/testsuite/gfortran.dg/pointer_init_7.f90
  3207d3004ca83ffbdfb378e718c43744  gcc/testsuite/gfortran.dg/pointer_init_8.f90
+ ae06d6761f5e36e2c2e46067aa089b8e  gcc/testsuite/gfortran.dg/pointer_init_9.f90
  ea510da8f62c8fefcddeee09623cb9e9  gcc/testsuite/gfortran.dg/pointer_intent_1.f90
  df45593ceab569302723dbccf3cd63de  gcc/testsuite/gfortran.dg/pointer_intent_2.f90
  9bb45e748921409aa8ed658c7f890789  gcc/testsuite/gfortran.dg/pointer_intent_3.f90
*************** c47875bcd653c4574e99444029c51b62  gcc/te
*** 52493,52498 ****
--- 52814,52820 ----
  c90f7e25726cc6898d590f98aee096d5  gcc/testsuite/gfortran.dg/power_4.f90
  9a44d42654a526adbe450d1ef2d6f771  gcc/testsuite/gfortran.dg/power_5.f90
  a3ab8fbef738997039cfd45f350461a3  gcc/testsuite/gfortran.dg/power_6.f90
+ 77eca811eac1f80edb0f33c68ac0c4d3  gcc/testsuite/gfortran.dg/power_7.f90
  41cf415c6e21f209054052055d3b27e2  gcc/testsuite/gfortran.dg/pr12884.f
  f2f5d37f01f228930742b800f664a82b  gcc/testsuite/gfortran.dg/pr15129.f90
  84a2259df58a58af62b88732f4acd394  gcc/testsuite/gfortran.dg/pr15140.f90
*************** c22c5fcb7376badaea646e51947b3b9d  gcc/te
*** 52577,52582 ****
--- 52899,52905 ----
  a5e0103722a22ee4318dbc6a09066b4b  gcc/testsuite/gfortran.dg/pr33646.f90
  f37aff73f33e31695d9a33c68e406840  gcc/testsuite/gfortran.dg/pr33794.f90
  ff7d6bedf25daa2dd953d19c3f530ec4  gcc/testsuite/gfortran.dg/pr34163.f90
+ 6bd9bb75002c6474d2b042bddf5d54a5  gcc/testsuite/gfortran.dg/pr35031.f90
  3d101411c99362e8f11666e807ec7bc0  gcc/testsuite/gfortran.dg/pr35662.f90
  6b74d1849a69dc7a1ded9d0ae64797e1  gcc/testsuite/gfortran.dg/pr35849.f90
  c3d8d9d591ce2602aec62d28145126dc  gcc/testsuite/gfortran.dg/pr35944-1.f90
*************** f687c2bae87e50ac2773852543037742  gcc/te
*** 52673,52679 ****
  58ef52a5a164af942250c1ed58c78a9d  gcc/testsuite/gfortran.dg/pr50069_2.f90
  baba316baa03ee3527448735c40da508  gcc/testsuite/gfortran.dg/pr50769.f90
  6d40b8b2b18fefbafaa1495c64dc7b65  gcc/testsuite/gfortran.dg/pr50875.f90
! 106b6d8b2bc880f0a9cd862194a6c34e  gcc/testsuite/gfortran.dg/pr51434.f90
  392a9020525f62a719dfb6ec68012809  gcc/testsuite/gfortran.dg/pr51993.f90
  bb7add9250612f62914277baa59b409c  gcc/testsuite/gfortran.dg/pr52370.f90
  d427f4eb6f044237726ce98aa1dc9754  gcc/testsuite/gfortran.dg/pr52608.f90
--- 52996,53002 ----
  58ef52a5a164af942250c1ed58c78a9d  gcc/testsuite/gfortran.dg/pr50069_2.f90
  baba316baa03ee3527448735c40da508  gcc/testsuite/gfortran.dg/pr50769.f90
  6d40b8b2b18fefbafaa1495c64dc7b65  gcc/testsuite/gfortran.dg/pr50875.f90
! 8ba23b49a86151ea9987a2845a260bb9  gcc/testsuite/gfortran.dg/pr51434.f90
  392a9020525f62a719dfb6ec68012809  gcc/testsuite/gfortran.dg/pr51993.f90
  bb7add9250612f62914277baa59b409c  gcc/testsuite/gfortran.dg/pr52370.f90
  d427f4eb6f044237726ce98aa1dc9754  gcc/testsuite/gfortran.dg/pr52608.f90
*************** a3fc06fbb8d6c53a22462ce8a5fade30  gcc/te
*** 52705,52711 ****
  81f4e8de062c12971e225844fc9fdd90  gcc/testsuite/gfortran.dg/pr58027.f90
  1ca63f28ae284979c3b2b1c01dc88abf  gcc/testsuite/gfortran.dg/pr58290.f90
  d09d9e61d93384cc4510957f1243b371  gcc/testsuite/gfortran.dg/pr58484.f
! 129350cb378300c375a01369309e31b6  gcc/testsuite/gfortran.dg/pr58968.f
  54642dc29547df928c052d04531cae6f  gcc/testsuite/gfortran.dg/pr59440-1.f90
  29517347731146172a1733a27581daa9  gcc/testsuite/gfortran.dg/pr59440-2.f90
  f5878abe544570f500d4148c17a74cc4  gcc/testsuite/gfortran.dg/pr59440-3.f90
--- 53028,53034 ----
  81f4e8de062c12971e225844fc9fdd90  gcc/testsuite/gfortran.dg/pr58027.f90
  1ca63f28ae284979c3b2b1c01dc88abf  gcc/testsuite/gfortran.dg/pr58290.f90
  d09d9e61d93384cc4510957f1243b371  gcc/testsuite/gfortran.dg/pr58484.f
! 756af060f4f83f1c7fac64450555d67c  gcc/testsuite/gfortran.dg/pr58968.f
  54642dc29547df928c052d04531cae6f  gcc/testsuite/gfortran.dg/pr59440-1.f90
  29517347731146172a1733a27581daa9  gcc/testsuite/gfortran.dg/pr59440-2.f90
  f5878abe544570f500d4148c17a74cc4  gcc/testsuite/gfortran.dg/pr59440-3.f90
*************** c0ada255b8d4b02a2bf3f62ec3fd9223  gcc/te
*** 52783,52789 ****
  4239cbc5229572dbb1b8db5b9e534c59  gcc/testsuite/gfortran.dg/pr68227.f90
  9b3855eb7267f08dfbb31622bb7ccd2f  gcc/testsuite/gfortran.dg/pr68251.f90
  62de51c227f08efdca419f1251a72597  gcc/testsuite/gfortran.dg/pr68283.f90
! 53367d2d1c3060e4cca1dbeebef89967  gcc/testsuite/gfortran.dg/pr68318_1.f90
  b3ef2aaf4796b96c50079acc822669c9  gcc/testsuite/gfortran.dg/pr68318_2.f90
  94426d6f9de03e56102a32084142c32c  gcc/testsuite/gfortran.dg/pr68319.f90
  72efb9f6fc6b90e2038662cf5300c2b9  gcc/testsuite/gfortran.dg/pr68379-1.f90
--- 53106,53112 ----
  4239cbc5229572dbb1b8db5b9e534c59  gcc/testsuite/gfortran.dg/pr68227.f90
  9b3855eb7267f08dfbb31622bb7ccd2f  gcc/testsuite/gfortran.dg/pr68251.f90
  62de51c227f08efdca419f1251a72597  gcc/testsuite/gfortran.dg/pr68283.f90
! 698bcf6aa622bf31c97dfd828d0975f7  gcc/testsuite/gfortran.dg/pr68318_1.f90
  b3ef2aaf4796b96c50079acc822669c9  gcc/testsuite/gfortran.dg/pr68318_2.f90
  94426d6f9de03e56102a32084142c32c  gcc/testsuite/gfortran.dg/pr68319.f90
  72efb9f6fc6b90e2038662cf5300c2b9  gcc/testsuite/gfortran.dg/pr68379-1.f90
*************** eea87284cbfbd1719101caddb4ac38a8  gcc/te
*** 52795,52800 ****
--- 53118,53125 ----
  08ac83e05f38ebf756a253414d9f87b0  gcc/testsuite/gfortran.dg/pr68864.f90
  b9749045f7e8d01ce770bef143077398  gcc/testsuite/gfortran.dg/pr69055.f90
  4dfe5b03dbae8d8845caac4e7f7c0a89  gcc/testsuite/gfortran.dg/pr69155.f90
+ 76138edfc2f50c95b9776fd1ddbf7633  gcc/testsuite/gfortran.dg/pr69455_1.f90
+ 4888552ee29a6b2e46e1b22d0f8a8483  gcc/testsuite/gfortran.dg/pr69455_2.f90
  af40f4dedd6541b74e692dc2ab3d113d  gcc/testsuite/gfortran.dg/pr69514_1.f90
  a76232d35f35517cbd958d99d1ca3975  gcc/testsuite/gfortran.dg/pr69514_2.f90
  f0a6995f73ec38a5c8e24e5d968a365b  gcc/testsuite/gfortran.dg/pr69554-1.F90
*************** c718be52c08cbfe5941dc1bb7a50bcb5  gcc/te
*** 52810,52816 ****
  aa6073708fcde459f6b44a5e294fd6b0  gcc/testsuite/gfortran.dg/pr70409.f90
  23dc11b0707086a8168e76c17d13d620  gcc/testsuite/gfortran.dg/pr70673.f90
  b476378eb8250b54f4b3b5f63d128940  gcc/testsuite/gfortran.dg/pr70754.f90
! 859e303d3e720c33547f3996d66d7637  gcc/testsuite/gfortran.dg/pr70870_1.f90
  0e424f05f2fdeb786b877ace2617112d  gcc/testsuite/gfortran.dg/pr70931.f90
  768e159c79aa0aa1e1ae6e13122ed1b2  gcc/testsuite/gfortran.dg/pr70937.f90
  a16162b0759105febc1efc1311184688  gcc/testsuite/gfortran.dg/pr71047.f08
--- 53135,53141 ----
  aa6073708fcde459f6b44a5e294fd6b0  gcc/testsuite/gfortran.dg/pr70409.f90
  23dc11b0707086a8168e76c17d13d620  gcc/testsuite/gfortran.dg/pr70673.f90
  b476378eb8250b54f4b3b5f63d128940  gcc/testsuite/gfortran.dg/pr70754.f90
! 386c85829c4e2571e0db7949c25f5113  gcc/testsuite/gfortran.dg/pr70870_1.f90
  0e424f05f2fdeb786b877ace2617112d  gcc/testsuite/gfortran.dg/pr70931.f90
  768e159c79aa0aa1e1ae6e13122ed1b2  gcc/testsuite/gfortran.dg/pr70937.f90
  a16162b0759105febc1efc1311184688  gcc/testsuite/gfortran.dg/pr71047.f08
*************** d085febf0a75173f181533e5b551f555  gcc/te
*** 52850,52855 ****
--- 53175,53181 ----
  b41dce20e2213fb234886325f924905e  gcc/testsuite/gfortran.dg/pr77460.f90
  6762f5900b24ec775d86ad379332cdf0  gcc/testsuite/gfortran.dg/pr77498.f
  7ac13d0d1a6ccb282debcd0ac4bf69fd  gcc/testsuite/gfortran.dg/pr77506.f90
+ ad1a51ce4bd4b4e49f9cb40f0178b2ad  gcc/testsuite/gfortran.dg/pr77583.f90
  a99d6d5592ea6b962b6a45223a22a17f  gcc/testsuite/gfortran.dg/pr77612.f90
  a0e0cbaff470d13a9247b4f6f66572d6  gcc/testsuite/gfortran.dg/pr77694.f90
  f55a4e8f8a1e79f11c9cd9ad6d9eca57  gcc/testsuite/gfortran.dg/pr77719.f90
*************** a997ec96c9e5b5703664c90f0b844fe1  gcc/te
*** 52862,52868 ****
  8a24e4a427745cf896bba391a3e4cc60  gcc/testsuite/gfortran.dg/pr78033.f90
  e54adfde54f7051d2c213313e32967ac  gcc/testsuite/gfortran.dg/pr78061.f
  6701f92b9541522f589f8caf4f94fe71  gcc/testsuite/gfortran.dg/pr78092.f90
! 46b05b28d9c2a5643e5c9999f913781a  gcc/testsuite/gfortran.dg/pr78259.f90
  fadb08b8fc33159559b83dbbbb0cff19  gcc/testsuite/gfortran.dg/pr78278.f90
  38417bf1cb92bb7d70724f9be2c325ca  gcc/testsuite/gfortran.dg/pr78279.f90
  c8893a59741e05d503a560b19c9684a9  gcc/testsuite/gfortran.dg/pr78297.f90
--- 53188,53194 ----
  8a24e4a427745cf896bba391a3e4cc60  gcc/testsuite/gfortran.dg/pr78033.f90
  e54adfde54f7051d2c213313e32967ac  gcc/testsuite/gfortran.dg/pr78061.f
  6701f92b9541522f589f8caf4f94fe71  gcc/testsuite/gfortran.dg/pr78092.f90
! 442fc2f549bd7836f1a873a0e879aee2  gcc/testsuite/gfortran.dg/pr78259.f90
  fadb08b8fc33159559b83dbbbb0cff19  gcc/testsuite/gfortran.dg/pr78278.f90
  38417bf1cb92bb7d70724f9be2c325ca  gcc/testsuite/gfortran.dg/pr78279.f90
  c8893a59741e05d503a560b19c9684a9  gcc/testsuite/gfortran.dg/pr78297.f90
*************** ee35970003b8954b57c5ce45c7fd506c  gcc/te
*** 52877,52887 ****
--- 53203,53215 ----
  d6ba5de6e97cfb946328be25aba5d7db  gcc/testsuite/gfortran.dg/pr81175.f
  ff48bac9fecdd1e7a7054b92e1959192  gcc/testsuite/gfortran.dg/pr81723.f
  d1aef01880835db4a541fe2fb5d9b4b4  gcc/testsuite/gfortran.dg/pr81735.f90
+ 3d04193562d7393f12434c7773605d75  gcc/testsuite/gfortran.dg/pr81849.f90
  b6ff04901e3aee18765a74bf65804e38  gcc/testsuite/gfortran.dg/pr82253.f90
  3efdf6eef62b5bb55c7bd5d6342e1943  gcc/testsuite/gfortran.dg/pr83149.f90
  b7e5bb91d4ee23a891d1d4b6fb4ad916  gcc/testsuite/gfortran.dg/pr83149_1.f90
  a0d91b3e4bc44943398d32213588392c  gcc/testsuite/gfortran.dg/pr83149_a.f90
  b7a2ebc3f20996032962acc5e26b8851  gcc/testsuite/gfortran.dg/pr83149_b.f90
+ fd7937a762c5733d3533bba0d9b05a6e  gcc/testsuite/gfortran.dg/pr83246.f90
  3e5e2dd987641b643ea03f228e33bc00  gcc/testsuite/gfortran.dg/pr83864.f90
  34ffb26eca5fadb11dd891f51b3e475e  gcc/testsuite/gfortran.dg/pr83874.f90
  3d847069ff4f87a831062ece033f3bf1  gcc/testsuite/gfortran.dg/pr83939.f90
*************** b0eb41d6d5e0aa8384db509e9ccf6109  gcc/te
*** 52899,52909 ****
--- 53227,53255 ----
  cf956ba7ea568a1ec1e49d5d32949c70  gcc/testsuite/gfortran.dg/pr85779_2.f90
  bc3e0be49dbdfdfc634c8f0f2c908763  gcc/testsuite/gfortran.dg/pr85779_3.f90
  e09a0ecad84cbee49613c16f8e8538ce  gcc/testsuite/gfortran.dg/pr85780.f90
+ 725e595013765639d219c2012948cd9d  gcc/testsuite/gfortran.dg/pr85797.f90
+ e85019fafc2465365ffe52752040d464  gcc/testsuite/gfortran.dg/pr85798.f90
  052b31eec86fd95fce096fa3b0045dd3  gcc/testsuite/gfortran.dg/pr85895.f90
  38e09a1ffde1bb73657e9c54235df44e  gcc/testsuite/gfortran.dg/pr85996.f90
  47fbecd6ce7dba0a6b21dadaec06da18  gcc/testsuite/gfortran.dg/pr86045.f90
  a1e635c44207be5bef0583d4e95b9b59  gcc/testsuite/gfortran.dg/pr86059.f90
  2546ce0ab701ca0a37f0ee8ef6e3ef0e  gcc/testsuite/gfortran.dg/pr86110.f90
+ be7a22a80bb839c5c9daab757b152b75  gcc/testsuite/gfortran.dg/pr88138.f90
+ a554e5d57f7bc7a8d1b99acfd01fdaa9  gcc/testsuite/gfortran.dg/pr88155.f90
+ 86722bed377c20abe3aeeff940fd433d  gcc/testsuite/gfortran.dg/pr88169_1.f90
+ 539c0b69ccf536a06ed2d47fa7cb4290  gcc/testsuite/gfortran.dg/pr88169_2.f90
+ 9d4321ee93a0450d7c863fa8a1ef7a78  gcc/testsuite/gfortran.dg/pr88169_3.f90
+ f869901e299fbf4e6f33c18ce815c592  gcc/testsuite/gfortran.dg/pr88205.f90
+ 9d3ee3388f9a6f3475d3ca6ecb957595  gcc/testsuite/gfortran.dg/pr88206.f90
+ d146cb10030ff5567e3df552e1bd60a4  gcc/testsuite/gfortran.dg/pr88228.f90
+ ffb8d9ff34082ead6726f89479443062  gcc/testsuite/gfortran.dg/pr88249.f90
+ 4dd42b9875f04e7bc7994da3c131e6f7  gcc/testsuite/gfortran.dg/pr88269.f90
+ ed9d93ecae79fa041852ef045ccc680f  gcc/testsuite/gfortran.dg/pr88902.f90
+ d0e021239a321dbde0c39d7f370068c8  gcc/testsuite/gfortran.dg/pr89077.f90
+ a2461a16a54c67eb1031deda70d3c512  gcc/testsuite/gfortran.dg/pr89084.f90
+ be4f5532cbaa58d083d822b627ffe5de  gcc/testsuite/gfortran.dg/pr89253.f
+ 2c2748104acadb0d86e6d05dfa5960d1  gcc/testsuite/gfortran.dg/pr90344.f90
+ 1fa961354220c898ac6a00ceef4152de  gcc/testsuite/gfortran.dg/pr91686.f90
  6ff99f4b0021f30bee039a61db7cba9d  gcc/testsuite/gfortran.dg/predcom-1.f
  20a411a7e5a57891297c4c6a96d92009  gcc/testsuite/gfortran.dg/predcom-2.f
  93166017899716f4c3742eda5aaf4087  gcc/testsuite/gfortran.dg/predict-1.f90
*************** fbfcfdd0751320bb90e2488052dfe7de  gcc/te
*** 53009,53014 ****
--- 53355,53361 ----
  a50ed014f3fd628f8e8e8e09f44f8c0f  gcc/testsuite/gfortran.dg/proc_ptr_49.f90
  8315cc72db332168e57edf018a4b8f1f  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
  2e1358865c3ec02c3c45568f5eebb128  gcc/testsuite/gfortran.dg/proc_ptr_6.f90
  3648c097522ae5858550c7d7776afd28  gcc/testsuite/gfortran.dg/proc_ptr_7.c
  03be7ba134a9b19dcfa3ec09f4064fc4  gcc/testsuite/gfortran.dg/proc_ptr_7.f90
*************** b1af3996950def8fd6459e855d42bd47  gcc/te
*** 53105,53111 ****
--- 53452,53460 ----
  bece3bdd29dea9f82fad8f5e6162aa5d  gcc/testsuite/gfortran.dg/ptr_func_assign_2.f08
  3ba73ea19eff54d63f7d39eed191abc3  gcc/testsuite/gfortran.dg/ptr_func_assign_3.f08
  389e953b7230302dc01a242926959fa7  gcc/testsuite/gfortran.dg/ptr_func_assign_4.f08
+ 8610f62acf79505ce9c955532780ae20  gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08
  1bdd54ec3c3cda30429d4442e8a439e5  gcc/testsuite/gfortran.dg/public_private_module.f90
+ 23cd71f83283e2da0ce59ea093161e45  gcc/testsuite/gfortran.dg/public_private_module_10.f90
  53bfb4bd5468c34fc1b1a819ebc75855  gcc/testsuite/gfortran.dg/public_private_module_2.f90
  d103e889cb7d81b0f6805dbfc1c68c26  gcc/testsuite/gfortran.dg/public_private_module_3.f90
  84ea34192deaf0c1463e5796a16847a2  gcc/testsuite/gfortran.dg/public_private_module_4.f90
*************** ec40f6628038f9f6e9ba16e588a9b8c2  gcc/te
*** 53381,53386 ****
--- 53730,53737 ----
  e89fd7896cb639b6f282d37cefd8c3be  gcc/testsuite/gfortran.dg/select_type_40.f90
  3040c1e84327028f026493d2815ce052  gcc/testsuite/gfortran.dg/select_type_41.f90
  c3b4456f67768c5c49eeccb9868aae56  gcc/testsuite/gfortran.dg/select_type_42.f90
+ 037694f7a50336b18699b176fea4d569  gcc/testsuite/gfortran.dg/select_type_45.f90
+ cd8c016f6ead596119f334940e6d58e4  gcc/testsuite/gfortran.dg/select_type_46.f90
  3ab901522e5a6c2930daa42a08c5a4c3  gcc/testsuite/gfortran.dg/select_type_5.f03
  08871f191c3a23bf7de4d00e2c1959a3  gcc/testsuite/gfortran.dg/select_type_6.f03
  2ba60576db34ceefab51c78da10da0b6  gcc/testsuite/gfortran.dg/select_type_7.f03
*************** e1ecc346f86103555c66ea6afae29102  gcc/te
*** 53555,53560 ****
--- 53906,53912 ----
  d1663fd4e1368341812629ea5580dde9  gcc/testsuite/gfortran.dg/submodule_28.f08
  147400141f6bbfa5c2a66612b85d0557  gcc/testsuite/gfortran.dg/submodule_29.f08
  aa943f2bec85bb461999d2cb2adfc73a  gcc/testsuite/gfortran.dg/submodule_3.f08
+ 1150b8f6fefdb0cd92bc1b1145ca90bd  gcc/testsuite/gfortran.dg/submodule_30.f08
  701cab3628ee98dbcccc1d64e72d4ed6  gcc/testsuite/gfortran.dg/submodule_31.f08
  68f9f70d888318a31160ba732171726f  gcc/testsuite/gfortran.dg/submodule_4.f08
  1fbed56af4313e533e45631365afe8d6  gcc/testsuite/gfortran.dg/submodule_5.f08
*************** fe3aeafe60d9d200fe6d6bde4f1ddd73  gcc/te
*** 54022,54027 ****
--- 54374,54380 ----
  4b2cb0b83786fd0b9880b55165c7abd6  gcc/testsuite/gfortran.dg/warn_align_commons.f90
  91b6dafb4a727778bd7d500662b812df  gcc/testsuite/gfortran.dg/warn_argument_mismatch_1.f90
  660f5862b298d573d0321c73779e592e  gcc/testsuite/gfortran.dg/warn_conversion.f90
+ 00a4641c6351986a62b8f159ce6f9439  gcc/testsuite/gfortran.dg/warn_conversion_10.f90
  f0b0e40083e166f0ec356c0f059cdb13  gcc/testsuite/gfortran.dg/warn_conversion_2.f90
  fb059aee8dd3ce08978867270c115969  gcc/testsuite/gfortran.dg/warn_conversion_3.f90
  a6384af219923cae21fd5bb664966ed6  gcc/testsuite/gfortran.dg/warn_conversion_4.f90
*************** c3ddd813e72b606d44cdfd47616fff95  gcc/te
*** 54041,54050 ****
--- 54394,54405 ----
  10c0140b52dfb08b0d4c05279aec231b  gcc/testsuite/gfortran.dg/warn_target_lifetime_2.f90
  be7f18f8b43ef70b7585a74284446e57  gcc/testsuite/gfortran.dg/warn_target_lifetime_3.f90
  2ece2210488f4ed099be674644f83ed0  gcc/testsuite/gfortran.dg/warn_target_lifetime_4.f90
+ e9308a20aa0e1201f3b57212461b01a3  gcc/testsuite/gfortran.dg/warn_undefined_1.f90
  faef1baec47674d096569b4803422d64  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_1.f90
  9cdfca84c19b8b4bfd5f9be4a921f068  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_2.f90
  62c8995bb923620e3509b9bd179b618c  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_3.f90
  fa2d697a6cf010eb6e082b1cf14cfb0a  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_4.f90
+ 1d37c013db4796b65d121229b6e04f40  gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_5.f90
  5ed4aed6865b1e3f49698db244b646ef  gcc/testsuite/gfortran.dg/warn_unused_function.f90
  1b3805c8c508498bff44d111ee962eb7  gcc/testsuite/gfortran.dg/warn_unused_function_2.f90
  ae95981491a9741922c27b078d9a628c  gcc/testsuite/gfortran.dg/warn_unused_function_3.f90
*************** bf1a2c9b961f9dff5a53f9a8809384a9  gcc/te
*** 54638,54643 ****
--- 54993,54999 ----
  6381cf13892c66012106a3857a1718e7  gcc/testsuite/gnat.dg/array29.adb
  3a2c1f6c7601fe3e7eaeb46c064bfb44  gcc/testsuite/gnat.dg/array29.ads
  ce95a40ed45efc9a52f92f6d4700acb5  gcc/testsuite/gnat.dg/array3.adb
+ 3a714231941c40b5b190f2c2ef886e94  gcc/testsuite/gnat.dg/array34.adb
  b1368ee1737ab5c2b00482e137e1a378  gcc/testsuite/gnat.dg/array4.adb
  3d29182d58b83e2662df3d9534b80184  gcc/testsuite/gnat.dg/array5.adb
  a9a0725729c4b56fd51ac830fd3cdc3a  gcc/testsuite/gnat.dg/array6.adb
*************** fa4c27f02bb3b9657f76e2ed18da2f02  gcc/te
*** 55397,55405 ****
--- 55753,55768 ----
  ecc4c6c9f42f03d3d6a69b2ab6a2f13c  gcc/testsuite/gnat.dg/opt69.adb
  a441d166cc0d4b34342468308b350060  gcc/testsuite/gnat.dg/opt7.adb
  8ea613067c21d3bbf860fb8bb4013c79  gcc/testsuite/gnat.dg/opt7.ads
+ d16b401f2569252322b029a9d9d46660  gcc/testsuite/gnat.dg/opt73.adb
  7b50ee2703cb5b6f1cc1351cf5ac13ca  gcc/testsuite/gnat.dg/opt74.adb
  28261fe08e53f03084939ac1513087d2  gcc/testsuite/gnat.dg/opt74_pkg.adb
  806487ea35207410d066e54a00127ca2  gcc/testsuite/gnat.dg/opt74_pkg.ads
+ 4d5f2af64d07513479ba9eff37085e56  gcc/testsuite/gnat.dg/opt75.adb
+ 171652ff2445bf77470aad3b1813c128  gcc/testsuite/gnat.dg/opt75_pkg.adb
+ 9e51efca60984c35df4c64350a47bff5  gcc/testsuite/gnat.dg/opt75_pkg.ads
+ 90baaf4f1b57f6747f43b4610fe3607e  gcc/testsuite/gnat.dg/opt76.adb
+ 28f8a31ef39e342b6fe77d5ca75e672a  gcc/testsuite/gnat.dg/opt79.adb
+ fe74354507a5e664cd6533def9371a61  gcc/testsuite/gnat.dg/opt79.ads
  81951fc84d3d36131be8aca4f80c113b  gcc/testsuite/gnat.dg/opt7_pkg.ads
  9df643a09a85f1f88656c303fed9ef56  gcc/testsuite/gnat.dg/opt8.adb
  328d673eb1b44dc8fd4fcd430ebc2ddf  gcc/testsuite/gnat.dg/opt8.ads
*************** d6a9ca756a1aa49d715b8cddbb455bc9  gcc/te
*** 57372,57378 ****
  3b3f36e96e89e5aaa2ffc3b3e75eea8a  gcc/testsuite/lib/scantree.exp
  b1df537fb91fd69120df252f52b27873  gcc/testsuite/lib/target-libpath.exp
  e079de022f07dc380fbd4e8490136cd1  gcc/testsuite/lib/target-supports-dg.exp
! f408569441cc19674385448bcc094cba  gcc/testsuite/lib/target-supports.exp
  d064f4e641d32cc8ccbe1f2853cc502c  gcc/testsuite/lib/target-utils.exp
  b96a73aab1d3f546b8911126a60bec69  gcc/testsuite/lib/timeout-dg.exp
  31892baa0052b423e00975b658dcfd9f  gcc/testsuite/lib/timeout.exp
--- 57735,57741 ----
  3b3f36e96e89e5aaa2ffc3b3e75eea8a  gcc/testsuite/lib/scantree.exp
  b1df537fb91fd69120df252f52b27873  gcc/testsuite/lib/target-libpath.exp
  e079de022f07dc380fbd4e8490136cd1  gcc/testsuite/lib/target-supports-dg.exp
! 2735278af161ea6022b65a9333f6c884  gcc/testsuite/lib/target-supports.exp
  d064f4e641d32cc8ccbe1f2853cc502c  gcc/testsuite/lib/target-utils.exp
  b96a73aab1d3f546b8911126a60bec69  gcc/testsuite/lib/timeout-dg.exp
  31892baa0052b423e00975b658dcfd9f  gcc/testsuite/lib/timeout.exp
*************** ac0b35dcfcf72480c040349b2b8a874b  gcc/te
*** 57435,57441 ****
  f6a135d669303e10360f4a9e17664aa7  gcc/testsuite/obj-c++.dg/cxx-class-1.mm
  7a5a474af4c3ae26683ee29295314d7b  gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
  2dd2f7dd6f655732fc606d8c85af825b  gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
! cca9a4ce8eba1acccfd6ad6cb92b40e7  gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
  0f4f03268c6b5629c2c23fe7fbc06966  gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
  74ea4974ad0f897a229d4bd99f47da95  gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
  4d63d224c8c642188a58882a0609e394  gcc/testsuite/obj-c++.dg/defs.mm
--- 57798,57804 ----
  f6a135d669303e10360f4a9e17664aa7  gcc/testsuite/obj-c++.dg/cxx-class-1.mm
  7a5a474af4c3ae26683ee29295314d7b  gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
  2dd2f7dd6f655732fc606d8c85af825b  gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
! 4e97c54d7299a5d421e1a64c670f075c  gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
  0f4f03268c6b5629c2c23fe7fbc06966  gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
  74ea4974ad0f897a229d4bd99f47da95  gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
  4d63d224c8c642188a58882a0609e394  gcc/testsuite/obj-c++.dg/defs.mm
*************** b93884370065d3c94f7fc005e43f7756  gcc/te
*** 57492,57498 ****
  000a9198807c2e4ce1ba284e1a6e79ed  gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm
  a19c2dad4a197a57d5e1bd9cd0135705  gcc/testsuite/obj-c++.dg/invalid-method-2.mm
  310ccda91f187af52d2e650cf1e5222f  gcc/testsuite/obj-c++.dg/invalid-type-1.mm
! f8e8a6e463c96943e1055a954a109c82  gcc/testsuite/obj-c++.dg/isa-field-1.mm
  de4ec57b2d55fc5567fd5f9b20445ea0  gcc/testsuite/obj-c++.dg/ivar-invalid-type-1.mm
  e9e1c689bbfe17a7c0ca833caf159485  gcc/testsuite/obj-c++.dg/ivar-list-semi.mm
  866b783936346966eabc68e8d5f4e78f  gcc/testsuite/obj-c++.dg/ivar-problem-1.mm
--- 57855,57861 ----
  000a9198807c2e4ce1ba284e1a6e79ed  gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm
  a19c2dad4a197a57d5e1bd9cd0135705  gcc/testsuite/obj-c++.dg/invalid-method-2.mm
  310ccda91f187af52d2e650cf1e5222f  gcc/testsuite/obj-c++.dg/invalid-type-1.mm
! 9aa795d86a9b5053208440819dc1082c  gcc/testsuite/obj-c++.dg/isa-field-1.mm
  de4ec57b2d55fc5567fd5f9b20445ea0  gcc/testsuite/obj-c++.dg/ivar-invalid-type-1.mm
  e9e1c689bbfe17a7c0ca833caf159485  gcc/testsuite/obj-c++.dg/ivar-list-semi.mm
  866b783936346966eabc68e8d5f4e78f  gcc/testsuite/obj-c++.dg/ivar-problem-1.mm
*************** b6a4bff612a08ec461838ac1b3bd23f1  gcc/te
*** 57542,57548 ****
  ae0cb1e1f2ed9485ab1abd0d8669c498  gcc/testsuite/obj-c++.dg/naming-3.mm
  dcb5ecceff49837d638a19ab2eabd0ad  gcc/testsuite/obj-c++.dg/naming-4.mm
  bb8ccf448c201adbf05356ac551899fb  gcc/testsuite/obj-c++.dg/no-extra-load.mm
! e415aeb15f15e2eedb7356be8f6a959e  gcc/testsuite/obj-c++.dg/objc-gc-3.mm
  bd3b42583db47ebcc7fac037f85f00ed  gcc/testsuite/obj-c++.dg/overload-1.mm
  1cfb07f2eb35f604a99dcbe63a567416  gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm
  3745702e02a6aac99619afba6111b2d7  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
--- 57905,57911 ----
  ae0cb1e1f2ed9485ab1abd0d8669c498  gcc/testsuite/obj-c++.dg/naming-3.mm
  dcb5ecceff49837d638a19ab2eabd0ad  gcc/testsuite/obj-c++.dg/naming-4.mm
  bb8ccf448c201adbf05356ac551899fb  gcc/testsuite/obj-c++.dg/no-extra-load.mm
! 89a8d8bbc4cfd9231f6b6ff845399672  gcc/testsuite/obj-c++.dg/objc-gc-3.mm
  bd3b42583db47ebcc7fac037f85f00ed  gcc/testsuite/obj-c++.dg/overload-1.mm
  1cfb07f2eb35f604a99dcbe63a567416  gcc/testsuite/obj-c++.dg/plugin/diagnostic-test-expressions-1.mm
  3745702e02a6aac99619afba6111b2d7  gcc/testsuite/obj-c++.dg/plugin/plugin.exp
*************** e9acacfeddf9f5b3fcc7bd49ae2063e8  gcc/te
*** 57649,57655 ****
  1dc4342beadfe6f7bc0c6e08dd15ce24  gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
  40b981421154ac96e17299bce5569949  gcc/testsuite/obj-c++.dg/proto-lossage-5.mm
  fd29bc4e26ebfbde2219d16bcd57ff44  gcc/testsuite/obj-c++.dg/proto-lossage-6.mm
! 6975286133171cd693b6f659097de913  gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
  4cd57b67eb48bda4d17d7be6cbbf3651  gcc/testsuite/obj-c++.dg/proto-qual-1.mm
  cf4aa34add213bab910de4918a4bb01d  gcc/testsuite/obj-c++.dg/protocol-forward-1.mm
  30d24d440a6063d356f6a53af5141ba5  gcc/testsuite/obj-c++.dg/protocol-forward-2.mm
--- 58012,58018 ----
  1dc4342beadfe6f7bc0c6e08dd15ce24  gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
  40b981421154ac96e17299bce5569949  gcc/testsuite/obj-c++.dg/proto-lossage-5.mm
  fd29bc4e26ebfbde2219d16bcd57ff44  gcc/testsuite/obj-c++.dg/proto-lossage-6.mm
! eae4cc9bd17a2b79453bdeeec666557b  gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
  4cd57b67eb48bda4d17d7be6cbbf3651  gcc/testsuite/obj-c++.dg/proto-qual-1.mm
  cf4aa34add213bab910de4918a4bb01d  gcc/testsuite/obj-c++.dg/protocol-forward-1.mm
  30d24d440a6063d356f6a53af5141ba5  gcc/testsuite/obj-c++.dg/protocol-forward-2.mm
*************** c195a9190c5975a66c572dbe3742474d  gcc/te
*** 57658,57664 ****
  5e94c540e8c80f67f410219fbbb8290c  gcc/testsuite/obj-c++.dg/protocol-optional-1.mm
  92402d5d0ed140a870d7d3438040c1fa  gcc/testsuite/obj-c++.dg/protocol-qualifier-1.mm
  3acfbf9e5283f39582515ae6ee0f8bcc  gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm
! b9c660822a38aa2cdfe0b52e7d3afeca  gcc/testsuite/obj-c++.dg/qual-types-1.mm
  1a1c40979049410f20a8586a0ba7d7bd  gcc/testsuite/obj-c++.dg/selector-1.mm
  9279cef4a3631f9e5ab0c052ea83de89  gcc/testsuite/obj-c++.dg/selector-2.mm
  daf831313c6bd7f1fd5054f723b79a65  gcc/testsuite/obj-c++.dg/selector-3.mm
--- 58021,58027 ----
  5e94c540e8c80f67f410219fbbb8290c  gcc/testsuite/obj-c++.dg/protocol-optional-1.mm
  92402d5d0ed140a870d7d3438040c1fa  gcc/testsuite/obj-c++.dg/protocol-qualifier-1.mm
  3acfbf9e5283f39582515ae6ee0f8bcc  gcc/testsuite/obj-c++.dg/protocol-qualifier-2.mm
! 6e84ef17eb796596422af8c47eab548d  gcc/testsuite/obj-c++.dg/qual-types-1.mm
  1a1c40979049410f20a8586a0ba7d7bd  gcc/testsuite/obj-c++.dg/selector-1.mm
  9279cef4a3631f9e5ab0c052ea83de89  gcc/testsuite/obj-c++.dg/selector-2.mm
  daf831313c6bd7f1fd5054f723b79a65  gcc/testsuite/obj-c++.dg/selector-3.mm
*************** c7256230d1e3f8e9c93d3614935b69bc  gcc/te
*** 57668,57692 ****
  9359d93417f401fddd8bdbb1bd3bae20  gcc/testsuite/obj-c++.dg/selector-warn-1.mm
  d2caa0c9e2ed2954ba9e33d87f726293  gcc/testsuite/obj-c++.dg/set-not-used-1.mm
  f0ce3863165308c6c7b05b1e48b6231d  gcc/testsuite/obj-c++.dg/standard-headers.mm
! 4c5901302ebb869ad2843e5bd9b59f85  gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm
! 944b45f8bae04534787888f64340973c  gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
  21b76d31bad8ab2bce32ce3f5fceff78  gcc/testsuite/obj-c++.dg/strings/const-str-1.mm
! 88a204f313d69410fede9a1fadead584  gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
  71d1ca70f87be11f4325a5b06987bb9b  gcc/testsuite/obj-c++.dg/strings/const-str-2.mm
  c2f326ebd57afc69cfee9d8f6b441323  gcc/testsuite/obj-c++.dg/strings/const-str-5.mm
  a9aabe53382bdf1de0612f8bcf7ef0eb  gcc/testsuite/obj-c++.dg/strings/const-str-6.mm
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/obj-c++.dg/strings/strings-1.mm
  acda44b06216ac119f6bf3a2e4b8cb98  gcc/testsuite/obj-c++.dg/strings/strings-2.mm
  94fde91caef514d313cb940969a79838  gcc/testsuite/obj-c++.dg/strings/strings.exp
! 581ec601f0a03f162804a727e94271f1  gcc/testsuite/obj-c++.dg/stubify-1.mm
! 7158cf8b003c2491d8aaa20750064528  gcc/testsuite/obj-c++.dg/stubify-2.mm
  ce13a192bc01f6b2a54070a80cd8622d  gcc/testsuite/obj-c++.dg/super-class-1.mm
  348dead166b98af1745eea549652a4e0  gcc/testsuite/obj-c++.dg/super-class-2.mm
  5f7cf7eb1290cd0ac7cc810aca461fcb  gcc/testsuite/obj-c++.dg/super-dealloc-1.mm
  43c780cbecdb5565a2bda8b0795d5cf8  gcc/testsuite/obj-c++.dg/super-dealloc-2.mm
  6d77d7810e6a1711e9c3e10911fdf7f5  gcc/testsuite/obj-c++.dg/sync-2.mm
  c1db611d2e6bb0f9226c7b773e41bec6  gcc/testsuite/obj-c++.dg/sync-3.mm
! 748c7566fb8449a9c4cf464bde2a00c3  gcc/testsuite/obj-c++.dg/syntax-error-1.mm
  76c552ffde73821d35ce37029bf52fb7  gcc/testsuite/obj-c++.dg/syntax-error-10.mm
  fcc3247af976d648bb2eb1348d0828a8  gcc/testsuite/obj-c++.dg/syntax-error-2.mm
  6090398b844ba0e695f8af2946ade6c8  gcc/testsuite/obj-c++.dg/syntax-error-3.mm
--- 58031,58055 ----
  9359d93417f401fddd8bdbb1bd3bae20  gcc/testsuite/obj-c++.dg/selector-warn-1.mm
  d2caa0c9e2ed2954ba9e33d87f726293  gcc/testsuite/obj-c++.dg/set-not-used-1.mm
  f0ce3863165308c6c7b05b1e48b6231d  gcc/testsuite/obj-c++.dg/standard-headers.mm
! 7e38b7f41e74e8e27b3445e6b2742b38  gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm
! 0c2da165989aa0dcb159a4c853f22f0c  gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
  21b76d31bad8ab2bce32ce3f5fceff78  gcc/testsuite/obj-c++.dg/strings/const-str-1.mm
! 9219f4c10d317f25c9ea0169dd8103d3  gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
  71d1ca70f87be11f4325a5b06987bb9b  gcc/testsuite/obj-c++.dg/strings/const-str-2.mm
  c2f326ebd57afc69cfee9d8f6b441323  gcc/testsuite/obj-c++.dg/strings/const-str-5.mm
  a9aabe53382bdf1de0612f8bcf7ef0eb  gcc/testsuite/obj-c++.dg/strings/const-str-6.mm
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/obj-c++.dg/strings/strings-1.mm
  acda44b06216ac119f6bf3a2e4b8cb98  gcc/testsuite/obj-c++.dg/strings/strings-2.mm
  94fde91caef514d313cb940969a79838  gcc/testsuite/obj-c++.dg/strings/strings.exp
! 77426326d413411fe15686e04c58b88c  gcc/testsuite/obj-c++.dg/stubify-1.mm
! d9ea7be373ad2e19f1f7e7abad8598f0  gcc/testsuite/obj-c++.dg/stubify-2.mm
  ce13a192bc01f6b2a54070a80cd8622d  gcc/testsuite/obj-c++.dg/super-class-1.mm
  348dead166b98af1745eea549652a4e0  gcc/testsuite/obj-c++.dg/super-class-2.mm
  5f7cf7eb1290cd0ac7cc810aca461fcb  gcc/testsuite/obj-c++.dg/super-dealloc-1.mm
  43c780cbecdb5565a2bda8b0795d5cf8  gcc/testsuite/obj-c++.dg/super-dealloc-2.mm
  6d77d7810e6a1711e9c3e10911fdf7f5  gcc/testsuite/obj-c++.dg/sync-2.mm
  c1db611d2e6bb0f9226c7b773e41bec6  gcc/testsuite/obj-c++.dg/sync-3.mm
! 4f9421ade77fc4ad7e98a4ea67a185cb  gcc/testsuite/obj-c++.dg/syntax-error-1.mm
  76c552ffde73821d35ce37029bf52fb7  gcc/testsuite/obj-c++.dg/syntax-error-10.mm
  fcc3247af976d648bb2eb1348d0828a8  gcc/testsuite/obj-c++.dg/syntax-error-2.mm
  6090398b844ba0e695f8af2946ade6c8  gcc/testsuite/obj-c++.dg/syntax-error-3.mm
*************** d951d115e8add5e2e78e8e2e56aebc7f  gcc/te
*** 57718,57733 ****
  7212556766805451a098e554a8ab648e  gcc/testsuite/obj-c++.dg/tls/trivial.m
  1131c9137e46b5311c2d803288f2e4d0  gcc/testsuite/obj-c++.dg/too-many-args.mm
  f597ed597da282f891b8ffceb585991a  gcc/testsuite/obj-c++.dg/torture/dg-torture.exp
! 1f7b520d7df4159bcf567388c99dd690  gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm
  e42495f1f3ad6ec8f920137751c3f8f7  gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-3.mm
  d2c0463e1e05d168d9d004c74cec0610  gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
! 3f540974a4f92e1b3375aa8bcbca7e8c  gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
! bc7815bb9a08dccb57fe4e22b74eb729  gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
  78b70f1aad125fecbbe161087e6dbc54  gcc/testsuite/obj-c++.dg/torture/strings/const-str-3.mm
  3b2c597aefd84853b16f8cd8438ff907  gcc/testsuite/obj-c++.dg/torture/strings/const-str-4.mm
  71862e2dfd32f32cc37bc2b6300c0cab  gcc/testsuite/obj-c++.dg/torture/strings/const-str-7.mm
  69c47926ef31db0bb79c5cd3cea4fa0b  gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm
! 019ec55674cd5d821fa8a7357a379cfc  gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
  38bba22e495d1876db60c1ae29146fbe  gcc/testsuite/obj-c++.dg/torture/strings/string1.mm
  2216d810b119e15f12b654334284f817  gcc/testsuite/obj-c++.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm
--- 58081,58096 ----
  7212556766805451a098e554a8ab648e  gcc/testsuite/obj-c++.dg/tls/trivial.m
  1131c9137e46b5311c2d803288f2e4d0  gcc/testsuite/obj-c++.dg/too-many-args.mm
  f597ed597da282f891b8ffceb585991a  gcc/testsuite/obj-c++.dg/torture/dg-torture.exp
! 18512c71e6c59489aec1ea811d7b29ca  gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm
  e42495f1f3ad6ec8f920137751c3f8f7  gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-3.mm
  d2c0463e1e05d168d9d004c74cec0610  gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
! 541efcfce4c4c1d5e4fd413e651be954  gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
! 6bbd83dc19102b02dff97c3c7b8e0b1f  gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
  78b70f1aad125fecbbe161087e6dbc54  gcc/testsuite/obj-c++.dg/torture/strings/const-str-3.mm
  3b2c597aefd84853b16f8cd8438ff907  gcc/testsuite/obj-c++.dg/torture/strings/const-str-4.mm
  71862e2dfd32f32cc37bc2b6300c0cab  gcc/testsuite/obj-c++.dg/torture/strings/const-str-7.mm
  69c47926ef31db0bb79c5cd3cea4fa0b  gcc/testsuite/obj-c++.dg/torture/strings/const-str-8.mm
! a826eb6d88698556688b1008a86574a6  gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
  38bba22e495d1876db60c1ae29146fbe  gcc/testsuite/obj-c++.dg/torture/strings/string1.mm
  2216d810b119e15f12b654334284f817  gcc/testsuite/obj-c++.dg/torture/strings/strings.exp
  6f6356dbcb53d22602416e8919a2b428  gcc/testsuite/obj-c++.dg/torture/tls/diag-1.mm
*************** f1f7032c657f1d2102a3760375786139  gcc/te
*** 57737,57743 ****
  15c44338c7d7fb6b44ce86f191a67e0b  gcc/testsuite/obj-c++.dg/torture/tls/tls.exp
  7212556766805451a098e554a8ab648e  gcc/testsuite/obj-c++.dg/torture/tls/trivial.mm
  94ba53b983b1168f471db7bb452a1c0f  gcc/testsuite/obj-c++.dg/torture/trivial.mm
! 0ee0a10f43d74ab7a6dd476560668484  gcc/testsuite/obj-c++.dg/try-catch-1.mm
  49889360a17310a94a0d85c87ca03271  gcc/testsuite/obj-c++.dg/try-catch-10.mm
  65b30ce3fa7e707247f859f7235dcc28  gcc/testsuite/obj-c++.dg/try-catch-11.mm
  0547cf34f9cf4f3a578623b4ceb22a99  gcc/testsuite/obj-c++.dg/try-catch-12.mm
--- 58100,58106 ----
  15c44338c7d7fb6b44ce86f191a67e0b  gcc/testsuite/obj-c++.dg/torture/tls/tls.exp
  7212556766805451a098e554a8ab648e  gcc/testsuite/obj-c++.dg/torture/tls/trivial.mm
  94ba53b983b1168f471db7bb452a1c0f  gcc/testsuite/obj-c++.dg/torture/trivial.mm
! d12d35759dcf7e68cf1f2f74be5f250e  gcc/testsuite/obj-c++.dg/try-catch-1.mm
  49889360a17310a94a0d85c87ca03271  gcc/testsuite/obj-c++.dg/try-catch-10.mm
  65b30ce3fa7e707247f859f7235dcc28  gcc/testsuite/obj-c++.dg/try-catch-11.mm
  0547cf34f9cf4f3a578623b4ceb22a99  gcc/testsuite/obj-c++.dg/try-catch-12.mm
*************** a594dfeb4c4795ca2b4b60c69a953dbb  gcc/te
*** 57747,57753 ****
  749123fd933ccbf7d2de0ef981fa5ab2  gcc/testsuite/obj-c++.dg/try-catch-16.mm
  58a893072e046f31600a1fb4411b6288  gcc/testsuite/obj-c++.dg/try-catch-17.mm
  59ff3d087e1f9cb2e8a2e8509e556580  gcc/testsuite/obj-c++.dg/try-catch-2.mm
! 43b5b40eade6043d78005dfce2cdc085  gcc/testsuite/obj-c++.dg/try-catch-3.mm
  ab26c644da07ff6820be7567e0d98660  gcc/testsuite/obj-c++.dg/try-catch-4.mm
  f80dc47b629cb94d0cd311a6a7f315f1  gcc/testsuite/obj-c++.dg/try-catch-5.mm
  f4f1fe6c960ffa81d0cccc1460f1b58a  gcc/testsuite/obj-c++.dg/try-catch-6.mm
--- 58110,58116 ----
  749123fd933ccbf7d2de0ef981fa5ab2  gcc/testsuite/obj-c++.dg/try-catch-16.mm
  58a893072e046f31600a1fb4411b6288  gcc/testsuite/obj-c++.dg/try-catch-17.mm
  59ff3d087e1f9cb2e8a2e8509e556580  gcc/testsuite/obj-c++.dg/try-catch-2.mm
! eef49412ec0a3bd9b5061e48b0699ddc  gcc/testsuite/obj-c++.dg/try-catch-3.mm
  ab26c644da07ff6820be7567e0d98660  gcc/testsuite/obj-c++.dg/try-catch-4.mm
  f80dc47b629cb94d0cd311a6a7f315f1  gcc/testsuite/obj-c++.dg/try-catch-5.mm
  f4f1fe6c960ffa81d0cccc1460f1b58a  gcc/testsuite/obj-c++.dg/try-catch-6.mm
*************** cbd8c5394b3188c8a0b698fffb29e761  gcc/te
*** 57759,57764 ****
--- 58122,58162 ----
  5748db698f0b8ee6bafe285e6df3dc32  gcc/testsuite/obj-c++.dg/warn5.mm
  677e021d0f4c6a2c24627bc9093ea7d6  gcc/testsuite/obj-c++.dg/warn6.mm
  cf1e5660ee1cd060f1bf1da012306d6b  gcc/testsuite/obj-c++.dg/warn7.mm
+ acc13fee5a886f5ea6ca2841da59effe  gcc/testsuite/objc-obj-c++-shared/CF-CFString.h
+ 11d92670c2906d6a6ff898a559b8b9fc  gcc/testsuite/objc-obj-c++-shared/F-NSArray.h
+ d7fcf22c3ed31b17539b9acb07183a26  gcc/testsuite/objc-obj-c++-shared/F-NSAutoreleasePool.h
+ 8f45c73e7c5775b1214ade32c069ffb4  gcc/testsuite/objc-obj-c++-shared/F-NSObject.h
+ 6fe1b4da0d636ea9e7ff339f5d788f5c  gcc/testsuite/objc-obj-c++-shared/F-NSString.h
+ 81d7286975fc4f7945939a6f5f27727f  gcc/testsuite/objc-obj-c++-shared/F-NSValue.h
+ f5cd47052262fe168dc6074f5baa871d  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h
+ df22b832fd1cc14252d6af54be4e2abb  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h
+ f6312f509cfa047b5f10bffa0664b5f8  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h
+ ff366f1b6f27a24776e1b04ef8575c79  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h
+ b93796d43374fb75c98817ab2d070c2a  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h
+ bb366f8c5324fa271b2faf2780fc3d89  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h
+ d99c4c5f8d9ddf7f2c9f6ab6e25a2a9b  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h
+ 1edd852f3dddf0434acf9cba8ded4136  gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h
+ 6f8cd6c02cece30d49c0e12ff9cfa0a9  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSArray.h
+ e16387e01018d3d54a2f32822682dac1  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h
+ 4f3dd54a0c640d2b15ee1f79a8f18369  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h
+ 54ffd1bfa79cf5dc99b3df101a7cd2e6  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h
+ 68c1d47ef6919edabb48b6f50f1a237d  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h
+ dc1b5416df768725686ab6df95dc7a40  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h
+ 5696d61d4f4781658d55b84d5095e034  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h
+ 6b38d99bc66484db832fe9f58f7b8c5b  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h
+ b029cb9e81a51e8cdb7b9fbfdd1644a8  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h
+ 2ced4f29467fa9b3b9c6fbcd7bba5d7d  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSValue.h
+ d8cf0532b45f771bf4dad006de162370  gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSZone.h
+ fc876a83da2209b2d6ac280c346f3b68  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h
+ 441214db918256e063a2835c335a0c7d  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h
+ e27796bdadfcc590ea14bdfd2593ce1b  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h
+ 705b21cf4d531ccad6b716a5c3de0c38  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h
+ dc8c5ec7b9abe64c54eabc2d60a81066  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h
+ 3dbb9411c2d6b397d1b9f1da3c06eb09  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h
+ 5932e7455edfc6960112ad2ac6d02b71  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h
+ 4ab4e247b27f5d3d833cd13973c34222  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h
+ a08e081524ab6799e394768da76968d3  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h
+ ce8c053d2554352e55b35ae330cd5126  gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h
  1aca10b408347876905ccdeb2ec47665  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.h
  76c24a679d6d0f7e05fe9008a647d03c  gcc/testsuite/objc-obj-c++-shared/TestsuiteObject.m
  ac76ddcf9ed6ab3c92c31559244da096  gcc/testsuite/objc-obj-c++-shared/next-abi.h
*************** d41bdbf8fd720cd2fb1c999d1e580ba5  gcc/te
*** 57847,57853 ****
  e8f3db69a8847b70c8bc969edd78dbb2  gcc/testsuite/objc.dg/encode-5.m
  1296445554abff012ff56b38392805d1  gcc/testsuite/objc.dg/encode-6-next.m
  e53ead1c08985bdb0849e450194e9b99  gcc/testsuite/objc.dg/encode-6.m
! 6080da2594c39158f3f4b1344700903b  gcc/testsuite/objc.dg/encode-7-next-64bit.m
  ec0c203eb500e86f1c38d60a10728024  gcc/testsuite/objc.dg/encode-7-next.m
  9ab782c949f890c6873d2669830a2e31  gcc/testsuite/objc.dg/encode-7.m
  429d40f99aa6566cade774190e6fc983  gcc/testsuite/objc.dg/encode-8.m
--- 58245,58251 ----
  e8f3db69a8847b70c8bc969edd78dbb2  gcc/testsuite/objc.dg/encode-5.m
  1296445554abff012ff56b38392805d1  gcc/testsuite/objc.dg/encode-6-next.m
  e53ead1c08985bdb0849e450194e9b99  gcc/testsuite/objc.dg/encode-6.m
! ef255acbd6a15fb634d112de0566ec86  gcc/testsuite/objc.dg/encode-7-next-64bit.m
  ec0c203eb500e86f1c38d60a10728024  gcc/testsuite/objc.dg/encode-7-next.m
  9ab782c949f890c6873d2669830a2e31  gcc/testsuite/objc.dg/encode-7.m
  429d40f99aa6566cade774190e6fc983  gcc/testsuite/objc.dg/encode-8.m
*************** fa1ab496151791f4ef05043e7c0b673c  gcc/te
*** 57906,57919 ****
  75cc55de841b4de6d06a46e13f5f7bfe  gcc/testsuite/objc.dg/gnu-runtime-1.m
  a10c57561f5023d1bc5813fb62b15e8f  gcc/testsuite/objc.dg/gnu-runtime-2.m
  cf495a272fe911f953544354d7af49e2  gcc/testsuite/objc.dg/gnu-runtime-3.m
! 5af5796e26fc687bf55b3d9f3ed9238f  gcc/testsuite/objc.dg/headers.m
  f1920dcb3d447ac1425163a2d1e6c0d2  gcc/testsuite/objc.dg/id-1.m
! c6f4519ae7cdde25ce603a24cab9f418  gcc/testsuite/objc.dg/image-info.m
  f642d96cba4255caca5622eae71014c4  gcc/testsuite/objc.dg/incomplete-type-1.m
  7965f2dab76d401f8398a30bcae85653  gcc/testsuite/objc.dg/invalid-method-1.m
  172bebf6092a27228381556a110f96cb  gcc/testsuite/objc.dg/invalid-method-2.m
  cfd869df9840f625e801db2e67f1e182  gcc/testsuite/objc.dg/invalid-type-1.m
! f8e8a6e463c96943e1055a954a109c82  gcc/testsuite/objc.dg/isa-field-1.m
  55075563ae55f61bfee5e587702549a9  gcc/testsuite/objc.dg/ivar-extra-semicolon.m
  27b57b11e7787adb45c687e6d7a063bc  gcc/testsuite/objc.dg/ivar-invalid-type-1.m
  642cb67d94deb494988c902d20ef41d6  gcc/testsuite/objc.dg/ivar-problem-1.m
--- 58304,58318 ----
  75cc55de841b4de6d06a46e13f5f7bfe  gcc/testsuite/objc.dg/gnu-runtime-1.m
  a10c57561f5023d1bc5813fb62b15e8f  gcc/testsuite/objc.dg/gnu-runtime-2.m
  cf495a272fe911f953544354d7af49e2  gcc/testsuite/objc.dg/gnu-runtime-3.m
! 6610c198e68db214bca9de5a0f6cfdec  gcc/testsuite/objc.dg/headers.m
  f1920dcb3d447ac1425163a2d1e6c0d2  gcc/testsuite/objc.dg/id-1.m
! 697c9889104dbd42200e3eaeb739692d  gcc/testsuite/objc.dg/image-info.m
  f642d96cba4255caca5622eae71014c4  gcc/testsuite/objc.dg/incomplete-type-1.m
+ aa8ef11d7fa1e8fe899b665ebe7a4f23  gcc/testsuite/objc.dg/instancetype-0.m
  7965f2dab76d401f8398a30bcae85653  gcc/testsuite/objc.dg/invalid-method-1.m
  172bebf6092a27228381556a110f96cb  gcc/testsuite/objc.dg/invalid-method-2.m
  cfd869df9840f625e801db2e67f1e182  gcc/testsuite/objc.dg/invalid-type-1.m
! 9ad91bf3e53fa36e2556a5ddd4eb378e  gcc/testsuite/objc.dg/isa-field-1.m
  55075563ae55f61bfee5e587702549a9  gcc/testsuite/objc.dg/ivar-extra-semicolon.m
  27b57b11e7787adb45c687e6d7a063bc  gcc/testsuite/objc.dg/ivar-invalid-type-1.m
  642cb67d94deb494988c902d20ef41d6  gcc/testsuite/objc.dg/ivar-problem-1.m
*************** a0a34ff20eea5cde5cc34cb5d51d4e4f  gcc/te
*** 57954,57960 ****
  9153d82237cc99af905bfcb58426980b  gcc/testsuite/objc.dg/method-3.m
  1857e378233cbdb0ef09315d0ee04fc9  gcc/testsuite/objc.dg/method-4.m
  8f76938d87b469c207104bcf02c7f39b  gcc/testsuite/objc.dg/method-5.m
! 67e16adf190ff1faf7208cf4868c0501  gcc/testsuite/objc.dg/method-6.m
  18a0c6f46fc24f7061fe0cf1144950f3  gcc/testsuite/objc.dg/method-7.m
  172164daa5b2292983d23e0e5d5a94eb  gcc/testsuite/objc.dg/method-8.m
  a0e99708ed21408889158b47d71b2a1c  gcc/testsuite/objc.dg/method-9.m
--- 58353,58359 ----
  9153d82237cc99af905bfcb58426980b  gcc/testsuite/objc.dg/method-3.m
  1857e378233cbdb0ef09315d0ee04fc9  gcc/testsuite/objc.dg/method-4.m
  8f76938d87b469c207104bcf02c7f39b  gcc/testsuite/objc.dg/method-5.m
! ee426a4031bb00b898368cc9770d7dcf  gcc/testsuite/objc.dg/method-6.m
  18a0c6f46fc24f7061fe0cf1144950f3  gcc/testsuite/objc.dg/method-7.m
  172164daa5b2292983d23e0e5d5a94eb  gcc/testsuite/objc.dg/method-8.m
  a0e99708ed21408889158b47d71b2a1c  gcc/testsuite/objc.dg/method-9.m
*************** ba9c85f123a269332f97289544f0c272  gcc/te
*** 57975,57988 ****
  1e68654789c238dc1eaf9e923fe49822  gcc/testsuite/objc.dg/naming-6.m
  ab539e16480243bccd13cb0ab5c05a26  gcc/testsuite/objc.dg/naming-7.m
  dab2c64c5d57ebdc0ca4b496b1db48a2  gcc/testsuite/objc.dg/next-runtime-1.m
! 7bdacce2d25fc27ed41077ddc1cb6a7e  gcc/testsuite/objc.dg/no-extra-load.m
  5aa0d8665f3838cd2d663fc71be4933d  gcc/testsuite/objc.dg/objc-fast-4.m
  6e3afeaf5baf2e68de83a0896e550b27  gcc/testsuite/objc.dg/objc-foreach-1.m
  d7940785b72ab02856b58bf8b4c3d710  gcc/testsuite/objc.dg/objc-foreach-2.m
  b0a4bc88be3fcbba334ad86617c9724e  gcc/testsuite/objc.dg/objc-foreach-3.m
! 12235d0aec67d729a9f040e360810e9c  gcc/testsuite/objc.dg/objc-foreach-4.m
! 3b7013081c6c015d989ef0bde95be007  gcc/testsuite/objc.dg/objc-foreach-5.m
! f531c9a9d8f9e24e5d1b5e0d059e3392  gcc/testsuite/objc.dg/objc-gc-4.m
  e2b871afc37f1772b337d989244b97c6  gcc/testsuite/objc.dg/objc-nofilename-1.m
  6eed5537eae24ed6634c3706c12f2114  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
--- 58374,58387 ----
  1e68654789c238dc1eaf9e923fe49822  gcc/testsuite/objc.dg/naming-6.m
  ab539e16480243bccd13cb0ab5c05a26  gcc/testsuite/objc.dg/naming-7.m
  dab2c64c5d57ebdc0ca4b496b1db48a2  gcc/testsuite/objc.dg/next-runtime-1.m
! 46857bb9920377daaab90747aabd7ff3  gcc/testsuite/objc.dg/no-extra-load.m
  5aa0d8665f3838cd2d663fc71be4933d  gcc/testsuite/objc.dg/objc-fast-4.m
  6e3afeaf5baf2e68de83a0896e550b27  gcc/testsuite/objc.dg/objc-foreach-1.m
  d7940785b72ab02856b58bf8b4c3d710  gcc/testsuite/objc.dg/objc-foreach-2.m
  b0a4bc88be3fcbba334ad86617c9724e  gcc/testsuite/objc.dg/objc-foreach-3.m
! d6bb76e151385d5dcc0bccac5e79fa6e  gcc/testsuite/objc.dg/objc-foreach-4.m
! 7aa5deeefbee0740247f45a83aea37f4  gcc/testsuite/objc.dg/objc-foreach-5.m
! b4dd9e0cb9ae65f4f31c256f03bc08df  gcc/testsuite/objc.dg/objc-gc-4.m
  e2b871afc37f1772b337d989244b97c6  gcc/testsuite/objc.dg/objc-nofilename-1.m
  6eed5537eae24ed6634c3706c12f2114  gcc/testsuite/objc.dg/param-1.m
  8c15bc469e56fdb17a7b24540bf21491  gcc/testsuite/objc.dg/pch/interface-1.hs
*************** d165610dbbfad82f6af91eab9b66d300  gcc/te
*** 58098,58104 ****
  613e0d9387f50f78866c315391b5550b  gcc/testsuite/objc.dg/proto-lossage-4.m
  40b981421154ac96e17299bce5569949  gcc/testsuite/objc.dg/proto-lossage-5.m
  d26b84bd4fece35e5ae1ec9a7c6d4f15  gcc/testsuite/objc.dg/proto-lossage-6.m
! 6975286133171cd693b6f659097de913  gcc/testsuite/objc.dg/proto-lossage-7.m
  604faba6fd06b505d44d4837836124fa  gcc/testsuite/objc.dg/proto-qual-1.m
  4afd2785a0050e517e5c3818d2d5ea46  gcc/testsuite/objc.dg/protocol-forward-1.m
  30d24d440a6063d356f6a53af5141ba5  gcc/testsuite/objc.dg/protocol-forward-2.m
--- 58497,58503 ----
  613e0d9387f50f78866c315391b5550b  gcc/testsuite/objc.dg/proto-lossage-4.m
  40b981421154ac96e17299bce5569949  gcc/testsuite/objc.dg/proto-lossage-5.m
  d26b84bd4fece35e5ae1ec9a7c6d4f15  gcc/testsuite/objc.dg/proto-lossage-6.m
! 43743498fb7683ea796ffd482ace42c9  gcc/testsuite/objc.dg/proto-lossage-7.m
  604faba6fd06b505d44d4837836124fa  gcc/testsuite/objc.dg/proto-qual-1.m
  4afd2785a0050e517e5c3818d2d5ea46  gcc/testsuite/objc.dg/protocol-forward-1.m
  30d24d440a6063d356f6a53af5141ba5  gcc/testsuite/objc.dg/protocol-forward-2.m
*************** e435b5f971ceb7adfd4ad4a826e98257  gcc/te
*** 58133,58158 ****
  44c850eb724ab694c1eea579910821bd  gcc/testsuite/objc.dg/static-1.m
  911d824641cc5460f0bb8428edcd155b  gcc/testsuite/objc.dg/stret-1.m
  581f8e860f7f1e705a6b0235823fa173  gcc/testsuite/objc.dg/stret-2.m
! 48dbd5e4f3a80cc5653bb873d59cd3b4  gcc/testsuite/objc.dg/strings/const-cfstring-2.m
! 944b45f8bae04534787888f64340973c  gcc/testsuite/objc.dg/strings/const-cfstring-5.m
  21b76d31bad8ab2bce32ce3f5fceff78  gcc/testsuite/objc.dg/strings/const-str-1.m
  24ad853ec86d75ab828e6fc36156ce31  gcc/testsuite/objc.dg/strings/const-str-12.m
! 88a204f313d69410fede9a1fadead584  gcc/testsuite/objc.dg/strings/const-str-12b.m
  11e6b8b6d3e9f318be035ef31f291e33  gcc/testsuite/objc.dg/strings/const-str-2.m
  2ea7be2c8319bbf91f203eb9e01c5520  gcc/testsuite/objc.dg/strings/const-str-5.m
  1b52a4aa3cd0d5062e03b48964ddcb0b  gcc/testsuite/objc.dg/strings/const-str-6.m
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/objc.dg/strings/strings-1.m
  5406714e0710bd54d86b2186d1cb98fa  gcc/testsuite/objc.dg/strings/strings-2.m
  026e018ea0fbcf9b695d9c38992b48a4  gcc/testsuite/objc.dg/strings/strings.exp
! e725bc4ca7d60a0fa96e088c77b44ba3  gcc/testsuite/objc.dg/stubify-1.m
! b9a053b6534bf53cd94aa5a5ae0b528c  gcc/testsuite/objc.dg/stubify-2.m
  7e68d7fe39ddc6065769f26089764fd6  gcc/testsuite/objc.dg/super-class-1.m
  ba3105737585d465268d9bf41481fa06  gcc/testsuite/objc.dg/super-class-2.m
  a1b0dd9c9fb200a066255256ef572225  gcc/testsuite/objc.dg/super-class-3.m
  c71fc5d6430c26f90154d279a0e4420e  gcc/testsuite/objc.dg/super-class-4.m
  5f7cf7eb1290cd0ac7cc810aca461fcb  gcc/testsuite/objc.dg/super-dealloc-1.m
  43c780cbecdb5565a2bda8b0795d5cf8  gcc/testsuite/objc.dg/super-dealloc-2.m
! e806ea4ccd7ce77b9958611b5c803146  gcc/testsuite/objc.dg/symtab-1.m
  2a986a873850ef622badcc1eb9048d4a  gcc/testsuite/objc.dg/sync-1.m
  6d77d7810e6a1711e9c3e10911fdf7f5  gcc/testsuite/objc.dg/sync-2.m
  a7c71308c349df3308ea10cfd5c4cfc2  gcc/testsuite/objc.dg/sync-3.m
--- 58532,58557 ----
  44c850eb724ab694c1eea579910821bd  gcc/testsuite/objc.dg/static-1.m
  911d824641cc5460f0bb8428edcd155b  gcc/testsuite/objc.dg/stret-1.m
  581f8e860f7f1e705a6b0235823fa173  gcc/testsuite/objc.dg/stret-2.m
! d14e2bc0e149efd8ad9b13c9f1e48081  gcc/testsuite/objc.dg/strings/const-cfstring-2.m
! 0c2da165989aa0dcb159a4c853f22f0c  gcc/testsuite/objc.dg/strings/const-cfstring-5.m
  21b76d31bad8ab2bce32ce3f5fceff78  gcc/testsuite/objc.dg/strings/const-str-1.m
  24ad853ec86d75ab828e6fc36156ce31  gcc/testsuite/objc.dg/strings/const-str-12.m
! 3cb4e420b65ce84056d2b8bd0ebe50d5  gcc/testsuite/objc.dg/strings/const-str-12b.m
  11e6b8b6d3e9f318be035ef31f291e33  gcc/testsuite/objc.dg/strings/const-str-2.m
  2ea7be2c8319bbf91f203eb9e01c5520  gcc/testsuite/objc.dg/strings/const-str-5.m
  1b52a4aa3cd0d5062e03b48964ddcb0b  gcc/testsuite/objc.dg/strings/const-str-6.m
  4a89061dc402adc311f94d3659a6eaa2  gcc/testsuite/objc.dg/strings/strings-1.m
  5406714e0710bd54d86b2186d1cb98fa  gcc/testsuite/objc.dg/strings/strings-2.m
  026e018ea0fbcf9b695d9c38992b48a4  gcc/testsuite/objc.dg/strings/strings.exp
! 9a0e770521f8272a8a946079a7e291bf  gcc/testsuite/objc.dg/stubify-1.m
! ab5fcd53b75a1af232218857721ebdf1  gcc/testsuite/objc.dg/stubify-2.m
  7e68d7fe39ddc6065769f26089764fd6  gcc/testsuite/objc.dg/super-class-1.m
  ba3105737585d465268d9bf41481fa06  gcc/testsuite/objc.dg/super-class-2.m
  a1b0dd9c9fb200a066255256ef572225  gcc/testsuite/objc.dg/super-class-3.m
  c71fc5d6430c26f90154d279a0e4420e  gcc/testsuite/objc.dg/super-class-4.m
  5f7cf7eb1290cd0ac7cc810aca461fcb  gcc/testsuite/objc.dg/super-dealloc-1.m
  43c780cbecdb5565a2bda8b0795d5cf8  gcc/testsuite/objc.dg/super-dealloc-2.m
! 0005d93b4fc8f12225545818fc4dfcec  gcc/testsuite/objc.dg/symtab-1.m
  2a986a873850ef622badcc1eb9048d4a  gcc/testsuite/objc.dg/sync-1.m
  6d77d7810e6a1711e9c3e10911fdf7f5  gcc/testsuite/objc.dg/sync-2.m
  a7c71308c349df3308ea10cfd5c4cfc2  gcc/testsuite/objc.dg/sync-3.m
*************** d91e4283788de5085566af47d25f5008  gcc/te
*** 58167,58182 ****
  1131c9137e46b5311c2d803288f2e4d0  gcc/testsuite/objc.dg/too-many-args.m
  83b83c80f3982d5e93c47bed6dd2a88a  gcc/testsuite/objc.dg/torture/dg-torture.exp
  be65f96db9eb7870d002772ea73b79da  gcc/testsuite/objc.dg/torture/forward-1.m
! eb414f8a7531ed8a420a1a6ee919602f  gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m
  e42495f1f3ad6ec8f920137751c3f8f7  gcc/testsuite/objc.dg/torture/strings/const-cfstring-3.m
  d2c0463e1e05d168d9d004c74cec0610  gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
! c00db2a33ee79619d0d18ec1bec143d2  gcc/testsuite/objc.dg/torture/strings/const-str-10.m
! 870aba766852dd810f3d097bf57286e0  gcc/testsuite/objc.dg/torture/strings/const-str-11.m
  11f5cd130f549cf602c1bb2004fba283  gcc/testsuite/objc.dg/torture/strings/const-str-3.m
  95175d9f569f2455a67d3a042a9b49e5  gcc/testsuite/objc.dg/torture/strings/const-str-4.m
  38dc4c1d8bffabc69a852320760c79a3  gcc/testsuite/objc.dg/torture/strings/const-str-7.m
  3e0b925a0c58f41da0dff25baae98066  gcc/testsuite/objc.dg/torture/strings/const-str-8.m
! c240b028053e462ac058c3f830ba0503  gcc/testsuite/objc.dg/torture/strings/const-str-9.m
  a8a9f4264b042cb130bb43f35157c620  gcc/testsuite/objc.dg/torture/strings/string1.m
  f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
  8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
--- 58566,58581 ----
  1131c9137e46b5311c2d803288f2e4d0  gcc/testsuite/objc.dg/too-many-args.m
  83b83c80f3982d5e93c47bed6dd2a88a  gcc/testsuite/objc.dg/torture/dg-torture.exp
  be65f96db9eb7870d002772ea73b79da  gcc/testsuite/objc.dg/torture/forward-1.m
! 4f20d39a7f1dfacf39a8a1b732ad2c1c  gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m
  e42495f1f3ad6ec8f920137751c3f8f7  gcc/testsuite/objc.dg/torture/strings/const-cfstring-3.m
  d2c0463e1e05d168d9d004c74cec0610  gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
! c59ca8cb9643a4bd47ad25eacc428bee  gcc/testsuite/objc.dg/torture/strings/const-str-10.m
! 3931c6df3b0f09e852f74dc856992284  gcc/testsuite/objc.dg/torture/strings/const-str-11.m
  11f5cd130f549cf602c1bb2004fba283  gcc/testsuite/objc.dg/torture/strings/const-str-3.m
  95175d9f569f2455a67d3a042a9b49e5  gcc/testsuite/objc.dg/torture/strings/const-str-4.m
  38dc4c1d8bffabc69a852320760c79a3  gcc/testsuite/objc.dg/torture/strings/const-str-7.m
  3e0b925a0c58f41da0dff25baae98066  gcc/testsuite/objc.dg/torture/strings/const-str-8.m
! d1d93c13e62106809a456f06ea348f2d  gcc/testsuite/objc.dg/torture/strings/const-str-9.m
  a8a9f4264b042cb130bb43f35157c620  gcc/testsuite/objc.dg/torture/strings/string1.m
  f559fec747b34a07335a33efaef1d635  gcc/testsuite/objc.dg/torture/strings/string2.m
  8d3378c509e4ec126b88298049f5b787  gcc/testsuite/objc.dg/torture/strings/string3.m
*************** d2d07c2ebcb90350a34d2a0a2a215530  gcc/te
*** 58210,58218 ****
  8c73a8da87197ef7c9627087e4a0abdc  gcc/testsuite/objc.dg/va-meth-1.m
  ad588be086756c7bce570ed5a28030b0  gcc/testsuite/objc.dg/volatile-1.m
  5b030d8bcb22dedd984e8d8dae17cfb6  gcc/testsuite/objc.dg/weak-1.m
! c6f92ed8e0845d4f49274791f11f8632  gcc/testsuite/objc.dg/zero-link-1.m
! 665cb537ffd18b494c34ac2bd13e3f52  gcc/testsuite/objc.dg/zero-link-2.m
! a86dde4579f2a917b3ba4488f0c82a58  gcc/testsuite/objc.dg/zero-link-3.m
  0d71c48c831bf5882b80c4cd6ca9d9d8  gcc/testsuite/objc/compile/20011211-1.m
  9b70591be7f91f15d0a53c89bdc94bf4  gcc/testsuite/objc/compile/20060406-1.m
  f9121cfae0f96307949de6b1503ddeac  gcc/testsuite/objc/compile/compile.exp
--- 58609,58617 ----
  8c73a8da87197ef7c9627087e4a0abdc  gcc/testsuite/objc.dg/va-meth-1.m
  ad588be086756c7bce570ed5a28030b0  gcc/testsuite/objc.dg/volatile-1.m
  5b030d8bcb22dedd984e8d8dae17cfb6  gcc/testsuite/objc.dg/weak-1.m
! f0a85fb06bc40a59b3b67e37b68bf8a9  gcc/testsuite/objc.dg/zero-link-1.m
! 19e680c142e29f8a7a584e91ac7b7056  gcc/testsuite/objc.dg/zero-link-2.m
! af0fd8f33da4a0b997aa6096000deff3  gcc/testsuite/objc.dg/zero-link-3.m
  0d71c48c831bf5882b80c4cd6ca9d9d8  gcc/testsuite/objc/compile/20011211-1.m
  9b70591be7f91f15d0a53c89bdc94bf4  gcc/testsuite/objc/compile/20060406-1.m
  f9121cfae0f96307949de6b1503ddeac  gcc/testsuite/objc/compile/compile.exp
*************** e42076aeff1c5ac155a88db5b1993d38  gcc/te
*** 58348,58354 ****
  a6e36faf2adc39e4bd4947d8fb693069  gcc/timevar.def
  5cf8f98404e08ab29130ca1a202ef8e8  gcc/timevar.h
  f6b27d32bbcd5170a02e9787e6f5484e  gcc/tlink.c
! 3044cf6e2d7286f0f1bb0676ef1675c3  gcc/toplev.c
  60ecb3eee8840237e7cbeee4f717acee  gcc/toplev.h
  3ed6e4b64889eeac8078f80defb280e4  gcc/tracer.c
  536d5f5c3a36295b251cd838717dd68f  gcc/tracer.h
--- 58747,58753 ----
  a6e36faf2adc39e4bd4947d8fb693069  gcc/timevar.def
  5cf8f98404e08ab29130ca1a202ef8e8  gcc/timevar.h
  f6b27d32bbcd5170a02e9787e6f5484e  gcc/tlink.c
! a6da97f9d61e069b685875daa7a9ab56  gcc/toplev.c
  60ecb3eee8840237e7cbeee4f717acee  gcc/toplev.h
  3ed6e4b64889eeac8078f80defb280e4  gcc/tracer.c
  536d5f5c3a36295b251cd838717dd68f  gcc/tracer.h
*************** f6b27d32bbcd5170a02e9787e6f5484e  gcc/tl
*** 58357,58363 ****
  bf1ca0c8d6f7aa3ec077ca07f81fb48d  gcc/tree-affine.c
  284126de2a59b6236d8ac9c724fb0fc1  gcc/tree-affine.h
  3603e3d075155f4470364e64801460b9  gcc/tree-call-cdce.c
! 7acc81add1062e825901c4e7a66c51bd  gcc/tree-cfg.c
  44a714fe5a2bb4ca8dd0f32aa310c7f7  gcc/tree-cfg.h
  907aeb3baac97f2aff5fcaf76bccac85  gcc/tree-cfgcleanup.c
  8158974f8a5252ada87cd6fa950cb1bf  gcc/tree-cfgcleanup.h
--- 58756,58762 ----
  bf1ca0c8d6f7aa3ec077ca07f81fb48d  gcc/tree-affine.c
  284126de2a59b6236d8ac9c724fb0fc1  gcc/tree-affine.h
  3603e3d075155f4470364e64801460b9  gcc/tree-call-cdce.c
! 1943295fcde62d498fe148aace425ea2  gcc/tree-cfg.c
  44a714fe5a2bb4ca8dd0f32aa310c7f7  gcc/tree-cfg.h
  907aeb3baac97f2aff5fcaf76bccac85  gcc/tree-cfgcleanup.c
  8158974f8a5252ada87cd6fa950cb1bf  gcc/tree-cfgcleanup.h
*************** bf1ca0c8d6f7aa3ec077ca07f81fb48d  gcc/tr
*** 58366,58375 ****
  e30b9695c5cc0f195e5fc0ae04029306  gcc/tree-chkp.h
  d3b531c744233e39c8d1680d100db262  gcc/tree-chrec.c
  561ccb6dc10b34beacb8dbc925d6c08e  gcc/tree-chrec.h
! 58c34bac40cd180f4f67c63c55f83339  gcc/tree-complex.c
! 8474bb7c121b2597050f38a2eb42c634  gcc/tree-core.h
! 7d78717aa6a0f789a43aa1ba33be3da9  gcc/tree-data-ref.c
! 0e39400878554545caaf195808c5126a  gcc/tree-data-ref.h
  9f44b98bc5691e316c5d5455663bdf99  gcc/tree-dfa.c
  67a9e2efaa9690ae165df4c23ebef3fa  gcc/tree-dfa.h
  051fa8613d33abf3756316de9fa9f30f  gcc/tree-diagnostic.c
--- 58765,58774 ----
  e30b9695c5cc0f195e5fc0ae04029306  gcc/tree-chkp.h
  d3b531c744233e39c8d1680d100db262  gcc/tree-chrec.c
  561ccb6dc10b34beacb8dbc925d6c08e  gcc/tree-chrec.h
! cf80e5e0cd61474451faa4bc32667cc6  gcc/tree-complex.c
! e4ca66616534a8d03c4cdc0906d34437  gcc/tree-core.h
! daab1158a6443e2f7e233ce45e513c24  gcc/tree-data-ref.c
! 9655373cce32a7987b22e40a74991f8d  gcc/tree-data-ref.h
  9f44b98bc5691e316c5d5455663bdf99  gcc/tree-dfa.c
  67a9e2efaa9690ae165df4c23ebef3fa  gcc/tree-dfa.h
  051fa8613d33abf3756316de9fa9f30f  gcc/tree-diagnostic.c
*************** c6c6e56ccc550a7826b1cdb5ca62f4e8  gcc/tr
*** 58383,58401 ****
  fbd4781af8861fb55dcdcdd79809a1ed  gcc/tree-hasher.h
  000bfe93e33763e5b1b3ba7b5c079abb  gcc/tree-if-conv.c
  26f079f6fb72717b74fd761099b24329  gcc/tree-if-conv.h
! 945f23f96b4aa570c2fee6b960ac210a  gcc/tree-inline.c
! 5b5c7e160316ca96ead85364ab90c2fc  gcc/tree-inline.h
  bc9d14687fd8689e05b55f0db6b61b64  gcc/tree-into-ssa.c
  514b25ed7303f88e6212e1467ef200c7  gcc/tree-into-ssa.h
  5db9595a7abc4022f5d19147cd5062f4  gcc/tree-iterator.c
  ab133fc7fbc83e7d29268492f52749b6  gcc/tree-iterator.h
! 0756bf9990a411f1afa9f11ff88ece95  gcc/tree-loop-distribution.c
  a5e0b9750390cf52a6a7ecbb3471065e  gcc/tree-nested.c
  72ca8dc800ffbbff1e54e359ddfe785e  gcc/tree-nested.h
  cab3ca8e14ee509fb6e8147d9944cd6e  gcc/tree-nrv.c
  2d79e7d9f9e55daf22483cb05e161335  gcc/tree-object-size.c
  679a50dd021eb9ba20205cb9c70b9af5  gcc/tree-object-size.h
! d24150d4f8760056afd561808434af7c  gcc/tree-outof-ssa.c
  d146d6b43c7f778dbf6a630a055a1e43  gcc/tree-outof-ssa.h
  a73b531cee0ddd9dd1f93d8dbe97139b  gcc/tree-parloops.c
  de93f2c155c4a1e3b4e95604993815fb  gcc/tree-parloops.h
--- 58782,58800 ----
  fbd4781af8861fb55dcdcdd79809a1ed  gcc/tree-hasher.h
  000bfe93e33763e5b1b3ba7b5c079abb  gcc/tree-if-conv.c
  26f079f6fb72717b74fd761099b24329  gcc/tree-if-conv.h
! 4500887cab3b34f914c0c92b04f6aae9  gcc/tree-inline.c
! e3bee68d143f7764f8293c30befe571d  gcc/tree-inline.h
  bc9d14687fd8689e05b55f0db6b61b64  gcc/tree-into-ssa.c
  514b25ed7303f88e6212e1467ef200c7  gcc/tree-into-ssa.h
  5db9595a7abc4022f5d19147cd5062f4  gcc/tree-iterator.c
  ab133fc7fbc83e7d29268492f52749b6  gcc/tree-iterator.h
! e34d3165c385b96c69bd8dc712476f51  gcc/tree-loop-distribution.c
  a5e0b9750390cf52a6a7ecbb3471065e  gcc/tree-nested.c
  72ca8dc800ffbbff1e54e359ddfe785e  gcc/tree-nested.h
  cab3ca8e14ee509fb6e8147d9944cd6e  gcc/tree-nrv.c
  2d79e7d9f9e55daf22483cb05e161335  gcc/tree-object-size.c
  679a50dd021eb9ba20205cb9c70b9af5  gcc/tree-object-size.h
! 8777bbdd91ffae96da69edb5a6182ab7  gcc/tree-outof-ssa.c
  d146d6b43c7f778dbf6a630a055a1e43  gcc/tree-outof-ssa.h
  a73b531cee0ddd9dd1f93d8dbe97139b  gcc/tree-parloops.c
  de93f2c155c4a1e3b4e95604993815fb  gcc/tree-parloops.h
*************** ec29076445192fd88ec553290cde1704  gcc/tr
*** 58406,58414 ****
  62586f938f5cd2aa42d284277760013f  gcc/tree-pretty-print.c
  8edf9c8f71a9679705eefd4273eb3c6e  gcc/tree-pretty-print.h
  ad8ba88c167af34a585819fe74d00c8b  gcc/tree-profile.c
! 473621df97cbf00e502a5e815d90636a  gcc/tree-scalar-evolution.c
  1b02e05670920c8792f7c76edbe076c4  gcc/tree-scalar-evolution.h
! 2b2454b4960b00caf6fcd817050f19f5  gcc/tree-sra.c
  68e463ff24e74c8bb36fc91cf7ea35d1  gcc/tree-ssa-address.c
  4f144c99892514a4414ffeb8afcf8113  gcc/tree-ssa-address.h
  668322898a2a53ae391a2f4ea217a384  gcc/tree-ssa-alias.c
--- 58805,58813 ----
  62586f938f5cd2aa42d284277760013f  gcc/tree-pretty-print.c
  8edf9c8f71a9679705eefd4273eb3c6e  gcc/tree-pretty-print.h
  ad8ba88c167af34a585819fe74d00c8b  gcc/tree-profile.c
! f30437da13778825e45f51bc90aa29ff  gcc/tree-scalar-evolution.c
  1b02e05670920c8792f7c76edbe076c4  gcc/tree-scalar-evolution.h
! 665eca90db9f3b72e96ed7da485e2021  gcc/tree-sra.c
  68e463ff24e74c8bb36fc91cf7ea35d1  gcc/tree-ssa-address.c
  4f144c99892514a4414ffeb8afcf8113  gcc/tree-ssa-address.h
  668322898a2a53ae391a2f4ea217a384  gcc/tree-ssa-alias.c
*************** e9658082cc9e989af0d0b066205bff03  gcc/tr
*** 58417,58462 ****
  ca3aa63e717a70af149945d4ee9d8b7f  gcc/tree-ssa-ccp.h
  faab3dc9502edbab7409dd8797fd94af  gcc/tree-ssa-coalesce.c
  317ddaf9aa0104dddd20233e702e01ab  gcc/tree-ssa-coalesce.h
! 3252dc3a1fadf7ca3634cbe87932e24f  gcc/tree-ssa-copy.c
  582a150658a512e1f066b33ea03d6c91  gcc/tree-ssa-dce.c
! b7109254a84860974b0d55d580b68626  gcc/tree-ssa-dom.c
  9c38d0bc9dbb2e6e2a080d94ffbb3730  gcc/tree-ssa-dom.h
  55e322cd8dc0b29e6e44dd929e7ded51  gcc/tree-ssa-dse.c
! 29bf730fe691bd967a0837089bd59a07  gcc/tree-ssa-forwprop.c
  389cb071722144f72ebf78289ec82965  gcc/tree-ssa-ifcombine.c
  2747af87035e55b411af1a2dfd1982ed  gcc/tree-ssa-live.c
  27f182c46da4e0babeb83f0dc3a6fe44  gcc/tree-ssa-live.h
! 90b99cc4468369588273c4caa0978199  gcc/tree-ssa-loop-ch.c
  f56c3e2b82fb07bf466feff827a22669  gcc/tree-ssa-loop-im.c
! 40a1e1211106ff6d7c6147330a4f2277  gcc/tree-ssa-loop-ivcanon.c
! f198a805f2cdb8b1498286e1269fb2bf  gcc/tree-ssa-loop-ivopts.c
  8e29657be03c1b4a6b31bb0f3c04532d  gcc/tree-ssa-loop-ivopts.h
  9235efdadb6242e3ec1be0a1f77a8bd2  gcc/tree-ssa-loop-manip.c
  bd52a938042a3d9ee70f78865379c60c  gcc/tree-ssa-loop-manip.h
  e4139d58162c526de253f2ea8977df22  gcc/tree-ssa-loop-niter.c
  a53387a05fd56f1c0a7b258041d09524  gcc/tree-ssa-loop-niter.h
  4dbfc3b9f8f9c989a279e20ebed7411c  gcc/tree-ssa-loop-prefetch.c
! 7bb19ef1c822c0df63d1d066943cf499  gcc/tree-ssa-loop-split.c
  01b379e1106a6dfd62ccf26fa40e1207  gcc/tree-ssa-loop-unswitch.c
  134e4686a91b6b14309cd423625de906  gcc/tree-ssa-loop.c
  7c883977ae5ca8f99c7baef499ec819d  gcc/tree-ssa-loop.h
! 4773e8d0e06dc739c64840ae3ff866d9  gcc/tree-ssa-math-opts.c
  f3a1ba8cdac9b155fe4b3d2bfd7c0e04  gcc/tree-ssa-operands.c
  faf546a32913cc858b6e35a17288bf4a  gcc/tree-ssa-operands.h
  8886d357d83d57390c1f023dfd8d3d04  gcc/tree-ssa-phionlycprop.c
! 3111ecbd2dc501cbece38863c5588190  gcc/tree-ssa-phiopt.c
! 9d7306e718598b3e9d0fae302523f99d  gcc/tree-ssa-phiprop.c
! 2abc4316e81a84b7e2a8469af9882876  gcc/tree-ssa-pre.c
  236253ad5db25fc718d0c974ebca50f6  gcc/tree-ssa-propagate.c
  3e37daab7057d09f238f1b5a1107d339  gcc/tree-ssa-propagate.h
! 20a322b9080487295afc3c1629d1685a  gcc/tree-ssa-reassoc.c
! ef3951621d58993778d3716e963946e2  gcc/tree-ssa-sccvn.c
! 855a6a94016da8307d4a7f81ac586a02  gcc/tree-ssa-sccvn.h
  52aad650c67052f4d0fb05119b5b33d2  gcc/tree-ssa-scopedtables.c
  f7c97819a8d6cd14e1ba52ff42f9519b  gcc/tree-ssa-scopedtables.h
! 26212a5bd2bf0ebc8b5eb1d44ffedfbd  gcc/tree-ssa-sink.c
! e9fbcbbd081eef6ddecc218bb001fa4e  gcc/tree-ssa-strlen.c
! f3c5e79d1904eecb1143e768ecca2cdf  gcc/tree-ssa-structalias.c
  22b107f85a2b67e04443d79b0000ff67  gcc/tree-ssa-tail-merge.c
  983e049bd2b8555cefd79a1857036f27  gcc/tree-ssa-ter.c
  629b1346e41d0eaf7999d9273d12343b  gcc/tree-ssa-ter.h
--- 58816,58861 ----
  ca3aa63e717a70af149945d4ee9d8b7f  gcc/tree-ssa-ccp.h
  faab3dc9502edbab7409dd8797fd94af  gcc/tree-ssa-coalesce.c
  317ddaf9aa0104dddd20233e702e01ab  gcc/tree-ssa-coalesce.h
! 4c3fe225d8aa9a45e58ec8834892c2dc  gcc/tree-ssa-copy.c
  582a150658a512e1f066b33ea03d6c91  gcc/tree-ssa-dce.c
! 87b40122401d41dfefc2e633446e42e8  gcc/tree-ssa-dom.c
  9c38d0bc9dbb2e6e2a080d94ffbb3730  gcc/tree-ssa-dom.h
  55e322cd8dc0b29e6e44dd929e7ded51  gcc/tree-ssa-dse.c
! b9e850ea52829f825270cd2655fd9ff9  gcc/tree-ssa-forwprop.c
  389cb071722144f72ebf78289ec82965  gcc/tree-ssa-ifcombine.c
  2747af87035e55b411af1a2dfd1982ed  gcc/tree-ssa-live.c
  27f182c46da4e0babeb83f0dc3a6fe44  gcc/tree-ssa-live.h
! dc6dd90577862358c2ff4cca55b31f37  gcc/tree-ssa-loop-ch.c
  f56c3e2b82fb07bf466feff827a22669  gcc/tree-ssa-loop-im.c
! 388a7e79bf1ae8baf861659cc9d75078  gcc/tree-ssa-loop-ivcanon.c
! 5da66fbfcf7e6e05b2829678c1824e4f  gcc/tree-ssa-loop-ivopts.c
  8e29657be03c1b4a6b31bb0f3c04532d  gcc/tree-ssa-loop-ivopts.h
  9235efdadb6242e3ec1be0a1f77a8bd2  gcc/tree-ssa-loop-manip.c
  bd52a938042a3d9ee70f78865379c60c  gcc/tree-ssa-loop-manip.h
  e4139d58162c526de253f2ea8977df22  gcc/tree-ssa-loop-niter.c
  a53387a05fd56f1c0a7b258041d09524  gcc/tree-ssa-loop-niter.h
  4dbfc3b9f8f9c989a279e20ebed7411c  gcc/tree-ssa-loop-prefetch.c
! 222b64b0249c33b5d0cea9972bacef4d  gcc/tree-ssa-loop-split.c
  01b379e1106a6dfd62ccf26fa40e1207  gcc/tree-ssa-loop-unswitch.c
  134e4686a91b6b14309cd423625de906  gcc/tree-ssa-loop.c
  7c883977ae5ca8f99c7baef499ec819d  gcc/tree-ssa-loop.h
! 789ab81dbaadc9629510953c6bed0391  gcc/tree-ssa-math-opts.c
  f3a1ba8cdac9b155fe4b3d2bfd7c0e04  gcc/tree-ssa-operands.c
  faf546a32913cc858b6e35a17288bf4a  gcc/tree-ssa-operands.h
  8886d357d83d57390c1f023dfd8d3d04  gcc/tree-ssa-phionlycprop.c
! 4c7d974eaba6a899a3e6f8a6db050b15  gcc/tree-ssa-phiopt.c
! 17e1b566c8d14453a2157b5abe7aaa3d  gcc/tree-ssa-phiprop.c
! 0b24aa8cfe2d3e3ea998e3ce25f4e51b  gcc/tree-ssa-pre.c
  236253ad5db25fc718d0c974ebca50f6  gcc/tree-ssa-propagate.c
  3e37daab7057d09f238f1b5a1107d339  gcc/tree-ssa-propagate.h
! 1b85b2777449fcf547efe9072d53c388  gcc/tree-ssa-reassoc.c
! b8a1d6bbf15ab9d53828539d3b98f534  gcc/tree-ssa-sccvn.c
! 12ee39ca4f138560aea18f6ccad221f0  gcc/tree-ssa-sccvn.h
  52aad650c67052f4d0fb05119b5b33d2  gcc/tree-ssa-scopedtables.c
  f7c97819a8d6cd14e1ba52ff42f9519b  gcc/tree-ssa-scopedtables.h
! 94f8e997450f455ff998838f3d63f4ff  gcc/tree-ssa-sink.c
! 3967d70bf4eabb5a483024484f5d5546  gcc/tree-ssa-strlen.c
! 2c75f0397243af822024136c897defd4  gcc/tree-ssa-structalias.c
  22b107f85a2b67e04443d79b0000ff67  gcc/tree-ssa-tail-merge.c
  983e049bd2b8555cefd79a1857036f27  gcc/tree-ssa-ter.c
  629b1346e41d0eaf7999d9273d12343b  gcc/tree-ssa-ter.h
*************** a1c75828ecf8fd1c6eaf74c6ec6ff367  gcc/tr
*** 58470,58499 ****
  8352e9f09efc638da2e95e7caedde2df  gcc/tree-ssa-uninit.c
  72099748fefd16515175796f4b856ff7  gcc/tree-ssa.c
  40537e4def470af52fd09e8f581a87a4  gcc/tree-ssa.h
! a4ec23ea5dc99ee2c0f433cc4380cf71  gcc/tree-ssanames.c
  7b878704c463f54f6e5169fc3e4e0e11  gcc/tree-ssanames.h
  7532580926e6ea62c157bfde93eabc3e  gcc/tree-stdarg.c
  f074a5b3661311f44cd97298ce2721c8  gcc/tree-stdarg.h
! 2d7ba2551388b812856087b1b11a9636  gcc/tree-streamer-in.c
! 43dd2170e9247f738b555038efc4a743  gcc/tree-streamer-out.c
  258742a6a20e3226f6a1bb968e470187  gcc/tree-streamer.c
  ddb2dd33dea05630b1bcaf17cf1e6fe6  gcc/tree-streamer.h
  1dae91fc5487d137906e2984f737b2fc  gcc/tree-switch-conversion.c
  1890ec2660cfa4e8fafa1d34129ff83b  gcc/tree-tailcall.c
! 18fecfbd93d600e754a1060cfe7e58aa  gcc/tree-vect-data-refs.c
  c64e840e80fd120d32993735457bf2d6  gcc/tree-vect-generic.c
  de2a4509a3f3fdf59c0e96c1fb5d368c  gcc/tree-vect-loop-manip.c
  2c358fa9d8bc50f0913bbad67796ad24  gcc/tree-vect-loop.c
  13b9ab9878d38fbb5b9ab9e2a3b9fc3e  gcc/tree-vect-patterns.c
! f197c7c8e99de5214d384509ebb6944f  gcc/tree-vect-slp.c
! e9f2fa40a822f816a451abbb7f6cfc9e  gcc/tree-vect-stmts.c
  6491d8028906ba909a4fd71f061f338f  gcc/tree-vectorizer.c
  ad5f7e1f1671334e24e59845598f4d8d  gcc/tree-vectorizer.h
! 7a7fb7be9e501636d61df18b9187b09b  gcc/tree-vrp.c
  d0b07570d4815d6988ff91b7d96f35c1  gcc/tree-vrp.h
! aa21e8039f824750ba20ae6087f30496  gcc/tree.c
  c54cff3017739446f22655474c5be4d4  gcc/tree.def
! 223a81503038013bef7ce9d880566d21  gcc/tree.h
  f8aeb637e24e2147a52ec643e9c28aef  gcc/treestruct.def
  920500c599697836ec34d26fcdc64054  gcc/tsan.c
  4a8b8b62b3cda63b7ce4273fb84b74fa  gcc/tsan.h
--- 58869,58898 ----
  8352e9f09efc638da2e95e7caedde2df  gcc/tree-ssa-uninit.c
  72099748fefd16515175796f4b856ff7  gcc/tree-ssa.c
  40537e4def470af52fd09e8f581a87a4  gcc/tree-ssa.h
! 2b0c2c868d164d388ba750ba93e22375  gcc/tree-ssanames.c
  7b878704c463f54f6e5169fc3e4e0e11  gcc/tree-ssanames.h
  7532580926e6ea62c157bfde93eabc3e  gcc/tree-stdarg.c
  f074a5b3661311f44cd97298ce2721c8  gcc/tree-stdarg.h
! 62a303ca15ceca09cd63d85bd88dd0e7  gcc/tree-streamer-in.c
! fcabe1e7caffd67c85e6d728b3b35112  gcc/tree-streamer-out.c
  258742a6a20e3226f6a1bb968e470187  gcc/tree-streamer.c
  ddb2dd33dea05630b1bcaf17cf1e6fe6  gcc/tree-streamer.h
  1dae91fc5487d137906e2984f737b2fc  gcc/tree-switch-conversion.c
  1890ec2660cfa4e8fafa1d34129ff83b  gcc/tree-tailcall.c
! a87a6e2bca817244bca0fce4d1b747a9  gcc/tree-vect-data-refs.c
  c64e840e80fd120d32993735457bf2d6  gcc/tree-vect-generic.c
  de2a4509a3f3fdf59c0e96c1fb5d368c  gcc/tree-vect-loop-manip.c
  2c358fa9d8bc50f0913bbad67796ad24  gcc/tree-vect-loop.c
  13b9ab9878d38fbb5b9ab9e2a3b9fc3e  gcc/tree-vect-patterns.c
! c69ac13b77d5f865c30b838e50d44568  gcc/tree-vect-slp.c
! b3cb1b55a71f71f9e8acaf8dcd3374b3  gcc/tree-vect-stmts.c
  6491d8028906ba909a4fd71f061f338f  gcc/tree-vectorizer.c
  ad5f7e1f1671334e24e59845598f4d8d  gcc/tree-vectorizer.h
! 09d56026fed80064d36269f6fe676de4  gcc/tree-vrp.c
  d0b07570d4815d6988ff91b7d96f35c1  gcc/tree-vrp.h
! 5e906e9f4eab121c2eccddf776ca2c20  gcc/tree.c
  c54cff3017739446f22655474c5be4d4  gcc/tree.def
! 73ba18c80551740216f8d5171cce2377  gcc/tree.h
  f8aeb637e24e2147a52ec643e9c28aef  gcc/treestruct.def
  920500c599697836ec34d26fcdc64054  gcc/tsan.c
  4a8b8b62b3cda63b7ce4273fb84b74fa  gcc/tsan.h
*************** aab19944e5d4ede282dca320f8ad2758  gcc/ty
*** 58503,58514 ****
  8546cfccd93736ce37e8356167a8c8d3  gcc/typed-splay-tree.h
  37dab9d9536027628de494391d84137a  gcc/ubsan.c
  abd69325eb08fa62d523a28ffb55a64c  gcc/ubsan.h
! c8b43ae28a594feb1a7832ffcf1ff166  gcc/valtrack.c
  fe46b58c2d968098a9ae6e7a7445cae3  gcc/valtrack.h
  98fdc9a291306955c55665ff6b44c42b  gcc/value-prof.c
  ac107bcf2a6f3e451007922fe6c8da2a  gcc/value-prof.h
  08bf2c7378d10540c4ebbbdf57a90827  gcc/var-tracking.c
! e5e07d507d78369a67a61e6f57822bdf  gcc/varasm.c
  3075dcabae19eef70790c35d5576a237  gcc/varasm.h
  a1e741d53ddf1d949ec51b34ae13e6d5  gcc/varpool.c
  c77ffc837d830d397f3be14b28431037  gcc/vec.c
--- 58902,58913 ----
  8546cfccd93736ce37e8356167a8c8d3  gcc/typed-splay-tree.h
  37dab9d9536027628de494391d84137a  gcc/ubsan.c
  abd69325eb08fa62d523a28ffb55a64c  gcc/ubsan.h
! a1b38624cdd9376c9140f56deacde28e  gcc/valtrack.c
  fe46b58c2d968098a9ae6e7a7445cae3  gcc/valtrack.h
  98fdc9a291306955c55665ff6b44c42b  gcc/value-prof.c
  ac107bcf2a6f3e451007922fe6c8da2a  gcc/value-prof.h
  08bf2c7378d10540c4ebbbdf57a90827  gcc/var-tracking.c
! 715171fecb882a8a6fb7f7442fc0b344  gcc/varasm.c
  3075dcabae19eef70790c35d5576a237  gcc/varasm.h
  a1e741d53ddf1d949ec51b34ae13e6d5  gcc/varpool.c
  c77ffc837d830d397f3be14b28431037  gcc/vec.c
*************** ae2494df80e1f4593b6b693054302d08  gcc/wi
*** 58525,58537 ****
  af685becb5c1a01e42a76fc820bdeb91  gcc/wide-int.cc
  e48b954d508e3167f06f4a8d82ea5cd8  gcc/wide-int.h
  4610af587f4dc950fe9a6ef2235dfff9  gcc/xcoff.h
! d7feb10b49afbc551ef8ef0e7c8b382a  gcc/xcoffout.c
! 8ac0a7cac3c2354f43d17230a00549ee  gcc/xcoffout.h
! 1f928523b785c5846d658a95331a6ef9  gnattools/ChangeLog
  aaa671ca98fa9f94bfedd0ab395c5505  gnattools/Makefile.in
  c59f18e88cbf4b04095185094daf9a84  gnattools/configure
  eb3f980bf11ec11e25ddc6f29983830a  gnattools/configure.ac
! f59a86e836317441e4eb489d359c7667  gotools/ChangeLog
  240cdfac222bad04b3c6c59b6e33224f  gotools/Makefile.am
  b135327a9b19851bf704c9bdac3735cf  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
--- 58924,58936 ----
  af685becb5c1a01e42a76fc820bdeb91  gcc/wide-int.cc
  e48b954d508e3167f06f4a8d82ea5cd8  gcc/wide-int.h
  4610af587f4dc950fe9a6ef2235dfff9  gcc/xcoff.h
! 2667b1c781ca46d17823626c18f96e64  gcc/xcoffout.c
! 8fde3b3adcd57fbf1ef961ef567999e0  gcc/xcoffout.h
! 265106a289b5562973de81a9a9bb83c6  gnattools/ChangeLog
  aaa671ca98fa9f94bfedd0ab395c5505  gnattools/Makefile.in
  c59f18e88cbf4b04095185094daf9a84  gnattools/configure
  eb3f980bf11ec11e25ddc6f29983830a  gnattools/configure.ac
! 1168a31521697d691a2f1457cd5ae17f  gotools/ChangeLog
  240cdfac222bad04b3c6c59b6e33224f  gotools/Makefile.am
  b135327a9b19851bf704c9bdac3735cf  gotools/Makefile.in
  7e23031e2e274aaa07b61c1e8f18dc99  gotools/README
*************** c4e8176c1964a5ebe0a55900f2141299  gotool
*** 58543,58549 ****
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! 683918215667178552bf5822bf46a40e  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
  f5224d917e0ec7656fa5c368c93b1c13  include/ansidecl.h
--- 58942,58948 ----
  eb2aeb3a6cffe7b26a8f1c8a2da23dcd  gotools/gofmt.1
  59530bdf33659b29e73d4adb9f9f6552  include/COPYING
  d32239bcb673463ab874e80d47fae504  include/COPYING3
! 37c5d753c42903f94943a3a2f3be6b45  include/ChangeLog
  4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
  a43d76108493b20da790f953f829c6a5  include/ChangeLog.jit
  f5224d917e0ec7656fa5c368c93b1c13  include/ansidecl.h
*************** a2c2be56ed85992d72e0a1e16388ce83  includ
*** 58587,58593 ****
  a3809e336de193fa8866271870dd0443  include/xregex2.h
  323e072fba874802e42a3a1a6468b335  include/xtensa-config.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! 143cd1d06179ecca146e618e89e286f7  intl/ChangeLog
  cad1d6fab2274517783de7433c0faa74  intl/Makefile.in
  6ec998bb4716c744bf8185e607f69301  intl/README
  76ca170a525d5b84d90f0478fe788931  intl/VERSION
--- 58986,58992 ----
  a3809e336de193fa8866271870dd0443  include/xregex2.h
  323e072fba874802e42a3a1a6468b335  include/xtensa-config.h
  361482dd6b5b5eb7090fff3986fba68a  install-sh
! 7745f224cc7b044c2f02bcd8cfc50494  intl/ChangeLog
  cad1d6fab2274517783de7433c0faa74  intl/Makefile.in
  6ec998bb4716c744bf8185e607f69301  intl/README
  76ca170a525d5b84d90f0478fe788931  intl/VERSION
*************** d50a8c6c5b41089930accbdce767d3c0  intl/p
*** 58629,58640 ****
  b4758a0194e3e41362b939911472ce62  intl/relocatable.c
  bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
  43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
! 4bc4920d212a4212b4197fa90b1fc83d  libada/ChangeLog
  85a2c02d6be7c7bbef19b47329e3f001  libada/Makefile.in
  554be3385e4af61bda0453b864b0bd82  libada/configure
  e29be9defcc56c307519b82f9be9bf6b  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! 61aed21b6250191b571f2b74dd609091  libatomic/ChangeLog
  0e2617e8dd9c8750a069dec0be5238aa  libatomic/Makefile.am
  a4b4277b02f2c77ee920b5da5684fc9f  libatomic/Makefile.in
  361fca640a8f8ae0534948c6464cd031  libatomic/acinclude.m4
--- 59028,59039 ----
  b4758a0194e3e41362b939911472ce62  intl/relocatable.c
  bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
  43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
! 8795a0c629836b34b811fdb453dcc52d  libada/ChangeLog
  85a2c02d6be7c7bbef19b47329e3f001  libada/Makefile.in
  554be3385e4af61bda0453b864b0bd82  libada/configure
  e29be9defcc56c307519b82f9be9bf6b  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! f044b436548355815e4c16d1785c43c6  libatomic/ChangeLog
  0e2617e8dd9c8750a069dec0be5238aa  libatomic/Makefile.am
  a4b4277b02f2c77ee920b5da5684fc9f  libatomic/Makefile.in
  361fca640a8f8ae0534948c6464cd031  libatomic/acinclude.m4
*************** c03a072efac9b30f8f8429ac52fd246b  libato
*** 58719,58725 ****
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 95f93b85242f7475a4547170a17abd61  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
  be5cf12569500d943e2cb547bdf7a602  libbacktrace/Makefile.am
  d470ca14200db6955e2aa4b9e0bdb4ad  libbacktrace/Makefile.in
--- 59118,59124 ----
  8a7308fda7ed1543cb9e3be0f8e47bce  libatomic/testsuite/libatomic.c/atomic-store-5.c
  40618200985a15bcba64f871863da498  libatomic/testsuite/libatomic.c/c.exp
  97b0c9cdfcb733664bdf4efe0f5dc449  libatomic/testsuite/libatomic.c/generic-2.c
! 15242a27de23627c248ae9855d87a69f  libbacktrace/ChangeLog
  eb3a88b53140eb234a99a4b3a55e56bf  libbacktrace/ChangeLog.jit
  be5cf12569500d943e2cb547bdf7a602  libbacktrace/Makefile.am
  d470ca14200db6955e2aa4b9e0bdb4ad  libbacktrace/Makefile.in
*************** ba2412bc59c92c67dbc379a84dd9f9e8  libbac
*** 58751,58757 ****
  2fbbbd9fd16e0d40ff744a53d93672f4  libbacktrace/state.c
  2659132b1c1fb664296bed58947a1327  libbacktrace/stest.c
  0c34f70856e684a5a2d88cef4d26a433  libbacktrace/unknown.c
! 11f1fb164dc58b7e4a79af3180c0ea03  libcc1/ChangeLog
  a046123da46f45ef05c23464bda5ea4c  libcc1/Makefile.am
  3b8fea7df7b2debbea080163365ba6ae  libcc1/Makefile.in
  5f253fc15bb29a40419f12ce42f92147  libcc1/aclocal.m4
--- 59150,59156 ----
  2fbbbd9fd16e0d40ff744a53d93672f4  libbacktrace/state.c
  2659132b1c1fb664296bed58947a1327  libbacktrace/stest.c
  0c34f70856e684a5a2d88cef4d26a433  libbacktrace/unknown.c
! bf981185785f957300247343596cb953  libcc1/ChangeLog
  a046123da46f45ef05c23464bda5ea4c  libcc1/Makefile.am
  3b8fea7df7b2debbea080163365ba6ae  libcc1/Makefile.in
  5f253fc15bb29a40419f12ce42f92147  libcc1/aclocal.m4
*************** adf6e179394cf6ed80e1c2c7fcf92d1f  libcc1
*** 58779,58785 ****
  c66f2f1d1887d636535fd09532a98f2f  libcc1/names.hh
  4e2e588c20bbaefa4ce3a333e0ba9a98  libcc1/rpc.hh
  e0b03ce59463dc7215bdec25060a78fe  libcc1/status.hh
! b2b874a17c2f91ecf96671c010473823  libcilkrts/ChangeLog
  c60cb24ed9572dea78562531f0136e1d  libcilkrts/Makefile.am
  6e9956a8b6e5fc457cc5ddb53701d8ca  libcilkrts/Makefile.in
  ec72a9778565ec08ebbe13cb95aa7245  libcilkrts/README
--- 59178,59184 ----
  c66f2f1d1887d636535fd09532a98f2f  libcc1/names.hh
  4e2e588c20bbaefa4ce3a333e0ba9a98  libcc1/rpc.hh
  e0b03ce59463dc7215bdec25060a78fe  libcc1/status.hh
! db03f3c8ed11063623a8bf2c303f6ca5  libcilkrts/ChangeLog
  c60cb24ed9572dea78562531f0136e1d  libcilkrts/Makefile.am
  6e9956a8b6e5fc457cc5ddb53701d8ca  libcilkrts/Makefile.in
  ec72a9778565ec08ebbe13cb95aa7245  libcilkrts/README
*************** ed7c4b18a37a9956d38cc2de890d5c0f  libcil
*** 58908,58914 ****
  0c426f98ab2644f7789533e26a81622e  libcilkrts/runtime/sysdep.h
  2c3a3b2209bf4b41ad77b803856dc02a  libcilkrts/runtime/worker_mutex.c
  ef828695a2adb12b2c20e35ffae8e0c8  libcilkrts/runtime/worker_mutex.h
! 8fbe8ad50a227c9edd8ff75f2e27d02c  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  09398b05cc9619875b188b5b9b5fb8a0  libcpp/Makefile.in
  efb9decde4743620252ededfe7310a3d  libcpp/aclocal.m4
--- 59307,59313 ----
  0c426f98ab2644f7789533e26a81622e  libcilkrts/runtime/sysdep.h
  2c3a3b2209bf4b41ad77b803856dc02a  libcilkrts/runtime/worker_mutex.c
  ef828695a2adb12b2c20e35ffae8e0c8  libcilkrts/runtime/worker_mutex.h
! 0332dab85c7c9826dc116485a38f6218  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  09398b05cc9619875b188b5b9b5fb8a0  libcpp/Makefile.in
  efb9decde4743620252ededfe7310a3d  libcpp/aclocal.m4
*************** ed5ae555e8b77d54908f99c283c3c9e3  libcpp
*** 58930,58942 ****
  97ee7d4a3afe6532296b07ebbb2b15f9  libcpp/init.c
  b618c6ecc923dab6711dc34f8ed6881f  libcpp/internal.h
  6f3c6af04c81b64e118e3a181133c25b  libcpp/lex.c
! f74674c346dfa1c3fbd08fa9869f6a48  libcpp/line-map.c
  eba197e195fb1c007bf0724c8bed75ea  libcpp/location-example.txt
  c5c375af513d7883fd2eb47dfc975855  libcpp/macro.c
  5bd25c7374dce6b4204276b21cdfa31d  libcpp/makeucnid.c
  e70c5326d8d9cbbf9ca5ae4ca2dc1370  libcpp/mkdeps.c
  9f76d47dc04496af0317d5a8d0a1bcbd  libcpp/pch.c
! 40e031924505cb4372e1850ac59ad034  libcpp/po/ChangeLog
  17a463bdc4264f83ff6f5deb2fc0b3a6  libcpp/po/be.gmo
  674a2819e662ae2d8bfbb6285a7ad2c4  libcpp/po/be.po
  c4f0b21d10c51c5c842d92f8c6bd1e2b  libcpp/po/ca.gmo
--- 59329,59341 ----
  97ee7d4a3afe6532296b07ebbb2b15f9  libcpp/init.c
  b618c6ecc923dab6711dc34f8ed6881f  libcpp/internal.h
  6f3c6af04c81b64e118e3a181133c25b  libcpp/lex.c
! c2024363e2b83654e6db8cbd8c9645e6  libcpp/line-map.c
  eba197e195fb1c007bf0724c8bed75ea  libcpp/location-example.txt
  c5c375af513d7883fd2eb47dfc975855  libcpp/macro.c
  5bd25c7374dce6b4204276b21cdfa31d  libcpp/makeucnid.c
  e70c5326d8d9cbbf9ca5ae4ca2dc1370  libcpp/mkdeps.c
  9f76d47dc04496af0317d5a8d0a1bcbd  libcpp/pch.c
! 4e81fc49b69f06c83e09e4cfa681dcda  libcpp/po/ChangeLog
  17a463bdc4264f83ff6f5deb2fc0b3a6  libcpp/po/be.gmo
  674a2819e662ae2d8bfbb6285a7ad2c4  libcpp/po/be.po
  c4f0b21d10c51c5c842d92f8c6bd1e2b  libcpp/po/ca.gmo
*************** e21ce279a54dc038acab0eb2424f760b  libcpp
*** 58986,58992 ****
  a62eb585eca6fd68a7bbe8b9294972d4  libcpp/ucnid.h
  29a3c2eb1562ff70daad7253fabaeffb  libcpp/ucnid.tab
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! 8c0e97f067efaca06804994d875a0117  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
  1a6bde55e34f3c983baa5211a6400cba  libdecnumber/Makefile.in
  b9ab907f769f0664ed31991a9c9bf3bb  libdecnumber/aclocal.m4
--- 59385,59391 ----
  a62eb585eca6fd68a7bbe8b9294972d4  libcpp/ucnid.h
  29a3c2eb1562ff70daad7253fabaeffb  libcpp/ucnid.tab
  a6c2b3de06c7424706b16f4c206396a1  libdecnumber/.gitignore
! 4154ca305821a922c20efa023c7d1ece  libdecnumber/ChangeLog
  2bd831b17997584e38305782cebe6948  libdecnumber/ChangeLog.jit
  1a6bde55e34f3c983baa5211a6400cba  libdecnumber/Makefile.in
  b9ab907f769f0664ed31991a9c9bf3bb  libdecnumber/aclocal.m4
*************** a97c47969dfc92a7666dfe3c2e1e1448  libdec
*** 59049,59055 ****
  f8f385e8ac437b3cec6d5d257a8ca92b  libdecnumber/dpd/decimal64.c
  c44ad1b41c2725fb70917c5f60b033d2  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
! 82e5c5024e6874b49d775117d9a6a0af  libffi/ChangeLog
  ba66fc19311348d373ec271be939a659  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
--- 59448,59454 ----
  f8f385e8ac437b3cec6d5d257a8ca92b  libdecnumber/dpd/decimal64.c
  c44ad1b41c2725fb70917c5f60b033d2  libdecnumber/dpd/decimal64.h
  0f6db29710e7075c2fd62bc4478b3b8d  libdecnumber/dpd/decimal64Symbols.h
! 8c1a80c9ed102a438005b2b1351c97f4  libffi/ChangeLog
  ba66fc19311348d373ec271be939a659  libffi/ChangeLog.libffi
  fbbc216bc25d759a72ea3e6d734af56b  libffi/ChangeLog.libgcj
  d946d2b97454ad50a1dbfbf48923c5be  libffi/ChangeLog.v1
*************** d47c79b281339983862a8e52d8c73f0f  libffi
*** 59406,59414 ****
  291be426192f460f6a07dfe1c96ab094  libffi/testsuite/libffi.special/special.exp
  93fc3ea311b79f64004992807ce75d1e  libffi/testsuite/libffi.special/unwindtest.cc
  185d0795017fbbe253a13db8e34085f9  libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
! 3bdbfba25943e3697535aacfe13f6987  libgcc/ChangeLog
  14791b3aecdd572b8a4ecb3ea32778db  libgcc/Makefile.in
! 186f54217a4d7fe1af46a0228b0997b4  libgcc/config.host
  d379c1b8013b8714e8c9b01110f0ceb9  libgcc/config.in
  0ec94edef92736a572f23163aecddb69  libgcc/config/aarch64/aarch64-unwind.h
  0f24438599446b7705f90a715e825b26  libgcc/config/aarch64/crtfastmath.c
--- 59805,59813 ----
  291be426192f460f6a07dfe1c96ab094  libffi/testsuite/libffi.special/special.exp
  93fc3ea311b79f64004992807ce75d1e  libffi/testsuite/libffi.special/unwindtest.cc
  185d0795017fbbe253a13db8e34085f9  libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
! 80954b3bdcda77d41ea6614422a8b0ec  libgcc/ChangeLog
  14791b3aecdd572b8a4ecb3ea32778db  libgcc/Makefile.in
! 281d98467cf568c17a2ab8a31de827b0  libgcc/config.host
  d379c1b8013b8714e8c9b01110f0ceb9  libgcc/config.in
  0ec94edef92736a572f23163aecddb69  libgcc/config/aarch64/aarch64-unwind.h
  0f24438599446b7705f90a715e825b26  libgcc/config/aarch64/crtfastmath.c
*************** e8ba4116276e7713f582c7b0193fac3f  libgcc
*** 59752,59758 ****
  19e293667c8b673f1c0e2284b85f9b99  libgcc/config/ia64/vms-unwind.h
  57c6f8e50666a31bd88fbbebfbd77725  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! 38d3b79d795a63b678bf69587f30c0fd  libgcc/config/libbid/ChangeLog
  bf92e3d9d8c85d16491b46e9b705e9d6  libgcc/config/libbid/_addsub_dd.c
  07fb00a8e3903086b062319087bfd206  libgcc/config/libbid/_addsub_sd.c
  7ae95dbcf6a647ed194b9156e261646f  libgcc/config/libbid/_addsub_td.c
--- 60151,60157 ----
  19e293667c8b673f1c0e2284b85f9b99  libgcc/config/ia64/vms-unwind.h
  57c6f8e50666a31bd88fbbebfbd77725  libgcc/config/iq2000/lib2funcs.c
  102f7dad8ad6b54434a1b8313d1e42c4  libgcc/config/iq2000/t-iq2000
! 582fe749d6adc08cc4e65c459b99114d  libgcc/config/libbid/ChangeLog
  bf92e3d9d8c85d16491b46e9b705e9d6  libgcc/config/libbid/_addsub_dd.c
  07fb00a8e3903086b062319087bfd206  libgcc/config/libbid/_addsub_sd.c
  7ae95dbcf6a647ed194b9156e261646f  libgcc/config/libbid/_addsub_td.c
*************** d705890648b8556099f61b657262240c  libgcc
*** 60357,60363 ****
  50c2a76718166ba7ec3f398a328ebc67  libgcc/config/rs6000/darwin-gpsave.S
  b6d19f8ec7cf590254ef0dbaba05760e  libgcc/config/rs6000/darwin-tramp.S
  c15911bafd756a989c9ffe27b9ca9d2d  libgcc/config/rs6000/darwin-unwind.h
! 9d46f8b1e68f378ac4032f9ad5056b5a  libgcc/config/rs6000/darwin-vecsave.S
  165bf1ad817dd1aee3a1300247c4be5e  libgcc/config/rs6000/darwin-world.S
  3c56874b1d495be6a4d8492de83b0fa5  libgcc/config/rs6000/e500crtres32gpr.S
  1c94e8b00dbee9251b657132125ae2cf  libgcc/config/rs6000/e500crtres64gpr.S
--- 60756,60762 ----
  50c2a76718166ba7ec3f398a328ebc67  libgcc/config/rs6000/darwin-gpsave.S
  b6d19f8ec7cf590254ef0dbaba05760e  libgcc/config/rs6000/darwin-tramp.S
  c15911bafd756a989c9ffe27b9ca9d2d  libgcc/config/rs6000/darwin-unwind.h
! a58ce1f1841a9292a8edb0655b67ad20  libgcc/config/rs6000/darwin-vecsave.S
  165bf1ad817dd1aee3a1300247c4be5e  libgcc/config/rs6000/darwin-world.S
  3c56874b1d495be6a4d8492de83b0fa5  libgcc/config/rs6000/e500crtres32gpr.S
  1c94e8b00dbee9251b657132125ae2cf  libgcc/config/rs6000/e500crtres64gpr.S
*************** a9b9d96b82d427f3ff98d6e29cd30bdd  libgcc
*** 60405,60412 ****
  17dbf83b86e21f858dc18d7aaed5d66e  libgcc/config/rs6000/sol-cn.S
  8e65197842ba39fd658038728475e572  libgcc/config/rs6000/t-aix-cxa
  3c3fc29e8ce89e9bbebf4cfbd71a6b54  libgcc/config/rs6000/t-crtstuff
! fbf232aa523ca2f4bcf139e827eba2da  libgcc/config/rs6000/t-darwin
! d7cdc73d7a8e658f872ea07474837bc2  libgcc/config/rs6000/t-darwin64
  46fe69a2a0410b862f850e0f02b9cfe0  libgcc/config/rs6000/t-e500v1-fp
  a8a0ffa08b5571d31c438e772a671c39  libgcc/config/rs6000/t-e500v2-fp
  b9b0914220774c0a3a5958018b9adf0d  libgcc/config/rs6000/t-float128
--- 60804,60811 ----
  17dbf83b86e21f858dc18d7aaed5d66e  libgcc/config/rs6000/sol-cn.S
  8e65197842ba39fd658038728475e572  libgcc/config/rs6000/t-aix-cxa
  3c3fc29e8ce89e9bbebf4cfbd71a6b54  libgcc/config/rs6000/t-crtstuff
! bc91baf0523c8475334ca80d6ff265c4  libgcc/config/rs6000/t-darwin
! a0014912b4b08cfbe887d9945460e370  libgcc/config/rs6000/t-darwin64
  46fe69a2a0410b862f850e0f02b9cfe0  libgcc/config/rs6000/t-e500v1-fp
  a8a0ffa08b5571d31c438e772a671c39  libgcc/config/rs6000/t-e500v2-fp
  b9b0914220774c0a3a5958018b9adf0d  libgcc/config/rs6000/t-float128
*************** ada9a39786da3b2e999f7440a17a1ed7  libgcc
*** 60513,60519 ****
  7f567bcd22705a965e07f79e8f68ebaa  libgcc/config/stormy16/umodsi3.c
  f199b38114ce849b77b38bd475d72cff  libgcc/config/t-crtfm
  060a49bb5c4a53a2125123d4cbd571de  libgcc/config/t-crtstuff-pic
! d642b4a8c7de2f18dad59fd567c521f0  libgcc/config/t-darwin
  ee7ad6460936fc6f3f89ecb711376477  libgcc/config/t-dfprules
  d747115cbcc2bd56b6b4f73c350c2ae3  libgcc/config/t-eh-dw2-dip
  b9d08c1cbead9131f216accd515ec32c  libgcc/config/t-fdpbit
--- 60912,60918 ----
  7f567bcd22705a965e07f79e8f68ebaa  libgcc/config/stormy16/umodsi3.c
  f199b38114ce849b77b38bd475d72cff  libgcc/config/t-crtfm
  060a49bb5c4a53a2125123d4cbd571de  libgcc/config/t-crtstuff-pic
! 4062850a39423731508ce332c6f06273  libgcc/config/t-darwin
  ee7ad6460936fc6f3f89ecb711376477  libgcc/config/t-dfprules
  d747115cbcc2bd56b6b4f73c350c2ae3  libgcc/config/t-eh-dw2-dip
  b9d08c1cbead9131f216accd515ec32c  libgcc/config/t-fdpbit
*************** def8eb8348b4ef12e5f4f6b14c9c79b8  libgcc
*** 60761,60767 ****
  85a736ad90e4160d44daa22a1ee856e0  libgcc/vtv_end_preinit.c
  fc4b471f8466a3e259cd068859f264ed  libgcc/vtv_start.c
  9f844965cec8eed0fa3ddc704bfb5262  libgcc/vtv_start_preinit.c
! b8334c7c78c5793d0fb1dc633fcb444f  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
--- 61160,61166 ----
  85a736ad90e4160d44daa22a1ee856e0  libgcc/vtv_end_preinit.c
  fc4b471f8466a3e259cd068859f264ed  libgcc/vtv_start.c
  9f844965cec8eed0fa3ddc704bfb5262  libgcc/vtv_start_preinit.c
! 340257c2c93b6857825c845e1acfdf05  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
*************** ea0a33a5c0ae0cffffdca91c87f49241  libgfo
*** 60789,60795 ****
  539332e692144a2b2294faa5d63b0dbd  libgfortran/config/fpu-387.h
  67eb396c95f535ced6391995968f036c  libgfortran/config/fpu-aix.h
  5868cacfd4c9ed84c5d0d1fc576e500a  libgfortran/config/fpu-generic.h
! ddc8a754f84f3720f8e6e61fd97a3072  libgfortran/config/fpu-glibc.h
  0a21f9e003e23203ed2bcec2bb3ab547  libgfortran/config/fpu-sysv.h
  52c9f367ef10a9be039a0d9244d763ea  libgfortran/configure
  17fde774fca767004246c3356516a1dd  libgfortran/configure.ac
--- 61188,61194 ----
  539332e692144a2b2294faa5d63b0dbd  libgfortran/config/fpu-387.h
  67eb396c95f535ced6391995968f036c  libgfortran/config/fpu-aix.h
  5868cacfd4c9ed84c5d0d1fc576e500a  libgfortran/config/fpu-generic.h
! 5ccce69694be2c5ac95e876469e2a81f  libgfortran/config/fpu-glibc.h
  0a21f9e003e23203ed2bcec2bb3ab547  libgfortran/config/fpu-sysv.h
  52c9f367ef10a9be039a0d9244d763ea  libgfortran/configure
  17fde774fca767004246c3356516a1dd  libgfortran/configure.ac
*************** e1e47a4933e8cc465c4d32cce0d04e0a  libgfo
*** 61350,61358 ****
  90cec54bd94497b006b00584256aad6f  libgfortran/io/inquire.c
  354cc9a41c9be8fc58337ee054842616  libgfortran/io/intrinsics.c
  45793601b3127f64e8988f7cf1a82ea4  libgfortran/io/io.h
! 3ee5e675423e68221227de63841b3b78  libgfortran/io/list_read.c
  aeb36c8b750c3ab57c7d50774a26e33a  libgfortran/io/lock.c
! b33b5e02e59f46d957995c354c77f4c9  libgfortran/io/open.c
  840308a2421c73db0a7e6ad265f3177e  libgfortran/io/read.c
  622a2a1592ced0d5e333d7d3735be2ee  libgfortran/io/size_from_kind.c
  ebd48bae0d2273e7a8220632073ebf99  libgfortran/io/transfer.c
--- 61749,61757 ----
  90cec54bd94497b006b00584256aad6f  libgfortran/io/inquire.c
  354cc9a41c9be8fc58337ee054842616  libgfortran/io/intrinsics.c
  45793601b3127f64e8988f7cf1a82ea4  libgfortran/io/io.h
! 8d855d6628037f4e8429e8c2fab91a8b  libgfortran/io/list_read.c
  aeb36c8b750c3ab57c7d50774a26e33a  libgfortran/io/lock.c
! 540a8669e212e97d9e6a4975b62792b7  libgfortran/io/open.c
  840308a2421c73db0a7e6ad265f3177e  libgfortran/io/read.c
  622a2a1592ced0d5e333d7d3735be2ee  libgfortran/io/size_from_kind.c
  ebd48bae0d2273e7a8220632073ebf99  libgfortran/io/transfer.c
*************** e4c9061ab7a41f4935f0b0ad09a288ce  libgfo
*** 61361,61367 ****
  3d16c2399a70dc65e4e1fdfcddceeb89  libgfortran/io/unix.c
  3aca9110d24b2377aff7692c40f8d4c0  libgfortran/io/unix.h
  6778a59a605e3d177e1a8442b5f79aaf  libgfortran/io/write.c
! 4d897f58649cf64a5a1e3ee7f6b5d1b5  libgfortran/io/write_float.def
  2d7080a94650ac19727c9b138db44765  libgfortran/kinds-override.h
  92ef6b7697422b2ad083fa00fb93d763  libgfortran/libgfortran.h
  2527bb19b82f08b34038b07b172d029d  libgfortran/libgfortran.spec.in
--- 61760,61766 ----
  3d16c2399a70dc65e4e1fdfcddceeb89  libgfortran/io/unix.c
  3aca9110d24b2377aff7692c40f8d4c0  libgfortran/io/unix.h
  6778a59a605e3d177e1a8442b5f79aaf  libgfortran/io/write.c
! 811c8a5efc373e1fb999194e80991899  libgfortran/io/write_float.def
  2d7080a94650ac19727c9b138db44765  libgfortran/kinds-override.h
  92ef6b7697422b2ad083fa00fb93d763  libgfortran/libgfortran.h
  2527bb19b82f08b34038b07b172d029d  libgfortran/libgfortran.spec.in
*************** f53e7864169abcd13c87797406f8b981  libgfo
*** 61411,61417 ****
  cef25b7bceffde6fc5728a173e842a62  libgfortran/mk-kinds-h.sh
  764579ddc54916182288fc40bdf0e544  libgfortran/mk-sik-inc.sh
  f81db480cbfdc2b1d2291623c6cadb5f  libgfortran/mk-srk-inc.sh
! 199d7d444fc282ef629d26f6d1232a15  libgfortran/runtime/backtrace.c
  c88e7ed76a15e57bb7ed9b8595c50fae  libgfortran/runtime/bounds.c
  64e508edf262ebdb62d2ebccb1c14baa  libgfortran/runtime/compile_options.c
  1a88ad180dd7e38c2ac0a3e9c7abc699  libgfortran/runtime/convert_char.c
--- 61810,61816 ----
  cef25b7bceffde6fc5728a173e842a62  libgfortran/mk-kinds-h.sh
  764579ddc54916182288fc40bdf0e544  libgfortran/mk-sik-inc.sh
  f81db480cbfdc2b1d2291623c6cadb5f  libgfortran/mk-srk-inc.sh
! 122700fc44748c2bd192eb60b596fd83  libgfortran/runtime/backtrace.c
  c88e7ed76a15e57bb7ed9b8595c50fae  libgfortran/runtime/bounds.c
  64e508edf262ebdb62d2ebccb1c14baa  libgfortran/runtime/compile_options.c
  1a88ad180dd7e38c2ac0a3e9c7abc699  libgfortran/runtime/convert_char.c
*************** f1f0917f45d626d15a5f129fef3d81e2  libgo/
*** 64078,64084 ****
  4b7af0d38c597a7b2a6f9cb460b1428c  libgo/testsuite/gotest
  ead4e721beb57b319fcd7da8ddf10705  libgo/testsuite/lib/libgo.exp
  6df485581d2f02246f41b5ca46f5bb5d  libgo/testsuite/libgo.testmain/testmain.exp
! a7b9ae5f0a31dd29fb00721b844449a5  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  55534454ed4bb50459c2c58ed02cad59  libgomp/Makefile.am
  ac2f853393abd4fc51886e45bfd8a4c5  libgomp/Makefile.in
--- 64477,64483 ----
  4b7af0d38c597a7b2a6f9cb460b1428c  libgo/testsuite/gotest
  ead4e721beb57b319fcd7da8ddf10705  libgo/testsuite/lib/libgo.exp
  6df485581d2f02246f41b5ca46f5bb5d  libgo/testsuite/libgo.testmain/testmain.exp
! bbaaf2b29d10c5ca2275ba89104b70c5  libgomp/ChangeLog
  0d55aa862aee66efdc5f8d62c94ff8fb  libgomp/ChangeLog.graphite
  55534454ed4bb50459c2c58ed02cad59  libgomp/Makefile.am
  ac2f853393abd4fc51886e45bfd8a4c5  libgomp/Makefile.in
*************** fd519093dc23e7e1ba374de5c783a5d3  libgom
*** 64189,64195 ****
  baa1c2b75501adfb0908cb243d1945bf  libgomp/libgomp-plugin.c
  c1cee0b720173c688c10b339a6bb8ff2  libgomp/libgomp-plugin.h
  a6f176f84802a193085fe268e0371f27  libgomp/libgomp.h
! 3e295ee24e52e18f097cc6532c91d035  libgomp/libgomp.info
  9a1ab09c02391af1c95e6d63cb8eb499  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
  c2311b843993357e9da9e17fa98bc7dd  libgomp/libgomp.texi
--- 64588,64594 ----
  baa1c2b75501adfb0908cb243d1945bf  libgomp/libgomp-plugin.c
  c1cee0b720173c688c10b339a6bb8ff2  libgomp/libgomp-plugin.h
  a6f176f84802a193085fe268e0371f27  libgomp/libgomp.h
! 585afefcde8db8866e83275b5a325aea  libgomp/libgomp.info
  9a1ab09c02391af1c95e6d63cb8eb499  libgomp/libgomp.map
  8b2aa50aecad82171348a6918309afd6  libgomp/libgomp.spec.in
  c2311b843993357e9da9e17fa98bc7dd  libgomp/libgomp.texi
*************** e866d28412e4eb8408a01327be2efe3f  libgom
*** 64219,64225 ****
  585b8f6e8c5649c47c6df61e68218f14  libgomp/plugin/configfrag.ac
  06d950c946f31440d506d7242c8c2166  libgomp/plugin/cuda/cuda.h
  2e6f32c299188c79ff21617d8251ffec  libgomp/plugin/hsa_ext_finalize.h
! c1ea9583b7bded7b803e2bc09a89a9f1  libgomp/plugin/plugin-hsa.c
  447a1c3df31de266ea9028e832508571  libgomp/plugin/plugin-nvptx.c
  4747da336287d1456993122f81ae7d49  libgomp/priority_queue.c
  7bf260df8b8d17b4787b66d4ea1be588  libgomp/priority_queue.h
--- 64618,64624 ----
  585b8f6e8c5649c47c6df61e68218f14  libgomp/plugin/configfrag.ac
  06d950c946f31440d506d7242c8c2166  libgomp/plugin/cuda/cuda.h
  2e6f32c299188c79ff21617d8251ffec  libgomp/plugin/hsa_ext_finalize.h
! be3f3de8c9228e2bec42c3411f1d94a0  libgomp/plugin/plugin-hsa.c
  447a1c3df31de266ea9028e832508571  libgomp/plugin/plugin-nvptx.c
  4747da336287d1456993122f81ae7d49  libgomp/priority_queue.c
  7bf260df8b8d17b4787b66d4ea1be588  libgomp/priority_queue.h
*************** e768743d2af95f59780e3418077b7e1e  libgom
*** 64728,64733 ****
--- 65127,65134 ----
  5996dc15da52a000b77c153bb70588f6  libgomp/testsuite/libgomp.c/pr81687-2.c
  4066b4a4600721101ac384b659311782  libgomp/testsuite/libgomp.c/pr81875.c
  ed00c0e197dcbbf46f44ea320b473f78  libgomp/testsuite/libgomp.c/pr86660.c
+ 98b922b1cdf2f28ae03ab1ce3c81629a  libgomp/testsuite/libgomp.c/pr89002.c
+ c809670e9df5e9371adcd7582c352fe5  libgomp/testsuite/libgomp.c/pr90811.c
  2a0a447db3ae892c0c62b0136b00360e  libgomp/testsuite/libgomp.c/priority.c
  ea7c9e74bda402b1663a903b26400fab  libgomp/testsuite/libgomp.c/private-1.c
  a594cebdf052900dd0c8792068e14d85  libgomp/testsuite/libgomp.c/reduction-1.c
*************** d2feeae17acfcc522ce8d197f56a5e6c  libgom
*** 65478,65484 ****
  d3f9f8b453576b8a24f3f2db4ad0cbe2  libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90
  97895ee7fdb38ab486cfd464bb975de0  libgomp/testsuite/libgomp.oacc-fortran/update-1.f90
  5e70f54ed74527f5e04379413bff932f  libgomp/work.c
! 6e4d2f59b12b0afc2924796f2114c235  libhsail-rt/ChangeLog
  9147b482b39962a71e580b4a8265285e  libhsail-rt/Makefile.am
  a38674477ad0a784b375b84f710eb630  libhsail-rt/Makefile.in
  de97a355fadb5753d182cbcf06b1b33a  libhsail-rt/README
--- 65879,65885 ----
  d3f9f8b453576b8a24f3f2db4ad0cbe2  libgomp/testsuite/libgomp.oacc-fortran/subarrays-2.f90
  97895ee7fdb38ab486cfd464bb975de0  libgomp/testsuite/libgomp.oacc-fortran/update-1.f90
  5e70f54ed74527f5e04379413bff932f  libgomp/work.c
! 34bbb9ba9b445bc5afa5c8c532a052a8  libhsail-rt/ChangeLog
  9147b482b39962a71e580b4a8265285e  libhsail-rt/Makefile.am
  a38674477ad0a784b375b84f710eb630  libhsail-rt/Makefile.in
  de97a355fadb5753d182cbcf06b1b33a  libhsail-rt/README
*************** b8290f5231ea78d8acee7c12d03f21e2  libhsa
*** 65505,65511 ****
  ef9f05873915c22cae79ef5545355353  libhsail-rt/target-config.h.in
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 7e7083fd345acc00708158f3d4b9cf54  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  989d73ea8d6c7734f2cd7fc2f6a08ee9  libiberty/Makefile.in
  c68dbf7834af4281ebd84caa3fd54680  libiberty/README
--- 65906,65912 ----
  ef9f05873915c22cae79ef5545355353  libhsail-rt/target-config.h.in
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! 421f0938f922c4dcf4983cbac9dfacd3  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  989d73ea8d6c7734f2cd7fc2f6a08ee9  libiberty/Makefile.in
  c68dbf7834af4281ebd84caa3fd54680  libiberty/README
*************** f6765318368cab39cc79c18f62fa33e9  libibe
*** 65610,65616 ****
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
  2763235b9bd9c1668e1e0d33aff2a9ad  libiberty/simple-object-coff.c
  548a3abc3aada0669844c73c5dd81a43  libiberty/simple-object-common.h
! 0546f7eb030a4e020eb090d2654f40d3  libiberty/simple-object-elf.c
  71e5a45dff3b38310e4589e7632e129b  libiberty/simple-object-mach-o.c
  641fa953d98254c3ce582eb2751c02a9  libiberty/simple-object-xcoff.c
  7775c4c6cb8717ea02fe1ff30b592efd  libiberty/simple-object.c
--- 66011,66017 ----
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
  2763235b9bd9c1668e1e0d33aff2a9ad  libiberty/simple-object-coff.c
  548a3abc3aada0669844c73c5dd81a43  libiberty/simple-object-common.h
! 2025014cbd0261595757d948a55e364f  libiberty/simple-object-elf.c
  71e5a45dff3b38310e4589e7632e129b  libiberty/simple-object-mach-o.c
  641fa953d98254c3ce582eb2751c02a9  libiberty/simple-object-xcoff.c
  7775c4c6cb8717ea02fe1ff30b592efd  libiberty/simple-object.c
*************** b2c289eb14e9197dcad172f3acba12b7  libibe
*** 65669,65675 ****
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  1fba1d2c7e578bb603294d1d38b15e6e  libiberty/xstrndup.c
  5b461b93e0d400569656cf150a9458e8  libiberty/xvasprintf.c
! ac65bd69b0d397400c79a60ca6cff1c6  libitm/ChangeLog
  f0841cbe677cca223ebc3864c6840fb3  libitm/Makefile.am
  e134b04c0dc26da6f5a6948763a388a8  libitm/Makefile.in
  02cde8e370b6e6440c462cbdb510ad9c  libitm/aatree.cc
--- 66070,66076 ----
  6f774a92661ca4a067f1691a7925524b  libiberty/xstrerror.c
  1fba1d2c7e578bb603294d1d38b15e6e  libiberty/xstrndup.c
  5b461b93e0d400569656cf150a9458e8  libiberty/xvasprintf.c
! d6e4db17857c0262dc82cccf3f6ee5c3  libitm/ChangeLog
  f0841cbe677cca223ebc3864c6840fb3  libitm/Makefile.am
  e134b04c0dc26da6f5a6948763a388a8  libitm/Makefile.in
  02cde8e370b6e6440c462cbdb510ad9c  libitm/aatree.cc
*************** f67878f396134c91a4c632f1be972ce9  libitm
*** 65709,65718 ****
  efbdb4f85982b32e8e582c7c497e8d76  libitm/config/posix/rwlock.cc
  5cecaaca1be7dc9b55d6ae92bb98cb42  libitm/config/posix/rwlock.h
  8c9c5d864fc9222b47a384c7f5dbf42d  libitm/config/powerpc/sjlj.S
! fe0057e50840b9bd142b6c7c449177d3  libitm/config/powerpc/target.h
  e6dd7887eca324b33ce352a484dcb529  libitm/config/s390/sjlj.S
  febc41fa9e5ca40ebce8f814dea87987  libitm/config/s390/target.h
! 67d6fd1fc2c51312b0d9976cab5a1c5c  libitm/config/sh/sjlj.S
  91a7e4dba153bf2da8cd626b8d7f941e  libitm/config/sh/target.h
  dc45f4a866a45871133f3247e618bc3e  libitm/config/sparc/sjlj.S
  efede9a1ebe50031d7f84845f28058b5  libitm/config/sparc/target.h
--- 66110,66119 ----
  efbdb4f85982b32e8e582c7c497e8d76  libitm/config/posix/rwlock.cc
  5cecaaca1be7dc9b55d6ae92bb98cb42  libitm/config/posix/rwlock.h
  8c9c5d864fc9222b47a384c7f5dbf42d  libitm/config/powerpc/sjlj.S
! 964f1bfb5c11e3334198ac752f5467cf  libitm/config/powerpc/target.h
  e6dd7887eca324b33ce352a484dcb529  libitm/config/s390/sjlj.S
  febc41fa9e5ca40ebce8f814dea87987  libitm/config/s390/target.h
! 3b4b56d089822ad1956b2e7af0529b5e  libitm/config/sh/sjlj.S
  91a7e4dba153bf2da8cd626b8d7f941e  libitm/config/sh/target.h
  dc45f4a866a45871133f3247e618bc3e  libitm/config/sparc/sjlj.S
  efede9a1ebe50031d7f84845f28058b5  libitm/config/sparc/target.h
*************** cdbde62e85c45821e7d0e7542ea9e4b5  libitm
*** 65727,65733 ****
  92c8aa2e676e6aad3b45ee3c79ce4f48  libitm/dispatch.h
  ce09bec8584efd1948a6896224aaff53  libitm/eh_cpp.cc
  ced7d40fe3094446e51c1b8cf40d0f0a  libitm/libitm.h
! 12701d0a1ec002ae98c30c688e2ae201  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
  dc401c868192cd583b6851a8f33879d8  libitm/libitm.texi
--- 66128,66134 ----
  92c8aa2e676e6aad3b45ee3c79ce4f48  libitm/dispatch.h
  ce09bec8584efd1948a6896224aaff53  libitm/eh_cpp.cc
  ced7d40fe3094446e51c1b8cf40d0f0a  libitm/libitm.h
! 0ff24b6df5a5e60f482a159d1c564714  libitm/libitm.info
  0c43820b921ecdbe9d98f068100e716a  libitm/libitm.map
  ea467d7117853d139bb288ab75261139  libitm/libitm.spec.in
  dc401c868192cd583b6851a8f33879d8  libitm/libitm.texi
*************** b4e503ecfdccc9f13da8f73eeb6f23a9  libitm
*** 65772,65778 ****
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
  2fde3d4b9799cb5c947aa18d56b45a58  libitm/useraction.cc
  800898e382995b27db1e8e5415e383d5  libitm/util.cc
! deab9acfa7782ee31714ba4273fa4c36  libmpx/ChangeLog
  08c39b0de69ded1b0ec0d079e8ffa278  libmpx/Makefile.am
  d0a1d026cd869756809cfc7e163653fb  libmpx/Makefile.in
  9883ed42b491d8aea83fdde90561cf2a  libmpx/acinclude.m4
--- 66173,66179 ----
  ef24198422c19f99b0c41be6a16f7081  libitm/testsuite/libitm.c/txrelease.c
  2fde3d4b9799cb5c947aa18d56b45a58  libitm/useraction.cc
  800898e382995b27db1e8e5415e383d5  libitm/util.cc
! 179c2b3e6112aabd2cc9d8424ea6c31f  libmpx/ChangeLog
  08c39b0de69ded1b0ec0d079e8ffa278  libmpx/Makefile.am
  d0a1d026cd869756809cfc7e163653fb  libmpx/Makefile.in
  9883ed42b491d8aea83fdde90561cf2a  libmpx/acinclude.m4
*************** abb9c0882fb921e70c77607151719c9d  libmpx
*** 65795,65801 ****
  e7c62aca341ea472234d7cb0bc4af328  libmpx/mpxwrap/libmpxwrappers.map
  240daa7f37ceeb22e331595ac7363fe8  libmpx/mpxwrap/libtool-version
  84b2ae6cc72d1bc6af32bbf75fdf747b  libmpx/mpxwrap/mpx_wrappers.c
! a17f0703ce95c504322bc1c6b553c813  libobjc/ChangeLog
  b2cf3adfbdbae80e35d96ff569e9f93a  libobjc/Makefile.in
  ca9308f2e96106ba49c888b75644c31a  libobjc/NXConstStr.m
  8b730dbe3083b0ce8de23dba63e4345d  libobjc/Object.m
--- 66196,66202 ----
  e7c62aca341ea472234d7cb0bc4af328  libmpx/mpxwrap/libmpxwrappers.map
  240daa7f37ceeb22e331595ac7363fe8  libmpx/mpxwrap/libtool-version
  84b2ae6cc72d1bc6af32bbf75fdf747b  libmpx/mpxwrap/mpx_wrappers.c
! bbb0baa907f4386d5933d635072584ea  libobjc/ChangeLog
  b2cf3adfbdbae80e35d96ff569e9f93a  libobjc/Makefile.in
  ca9308f2e96106ba49c888b75644c31a  libobjc/NXConstStr.m
  8b730dbe3083b0ce8de23dba63e4345d  libobjc/Object.m
*************** ed8e260d84d74bdae710d754280f305d  libobj
*** 65852,65858 ****
  b5a7e82ec7b4fc9af8de51779c12430b  libobjc/selector.c
  031774b1d0af62af9c73b941c33256c5  libobjc/sendmsg.c
  471a0873da510e7cdaf8924b3babf10c  libobjc/thr.c
! 94f5babdcc766274127622166c72c65c  liboffloadmic/ChangeLog
  04abd6719c66f08c91fbd9f04b69d3f5  liboffloadmic/Makefile.am
  30b43aa8aba9a4769f58028e2f0424f7  liboffloadmic/Makefile.in
  49cb389d7dff64b95e25b4d7e85c7ecf  liboffloadmic/aclocal.m4
--- 66253,66259 ----
  b5a7e82ec7b4fc9af8de51779c12430b  libobjc/selector.c
  031774b1d0af62af9c73b941c33256c5  libobjc/sendmsg.c
  471a0873da510e7cdaf8924b3babf10c  libobjc/thr.c
! 0ce26b1e042656df20c6b6f26938ec20  liboffloadmic/ChangeLog
  04abd6719c66f08c91fbd9f04b69d3f5  liboffloadmic/Makefile.am
  30b43aa8aba9a4769f58028e2f0424f7  liboffloadmic/Makefile.in
  49cb389d7dff64b95e25b4d7e85c7ecf  liboffloadmic/aclocal.m4
*************** b1def68202639bd452fb59aea3371fe4  liboff
*** 65941,65947 ****
  cc603cdf253cc686bfcee192bb7630df  liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
  dff5c8575c49d6aa71e549b0fa021479  liboffloadmic/runtime/orsl-lite/version.txt
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 26f5ac4572b0a31003c8855fa9e897f6  libquadmath/ChangeLog
  e1106736861aae37a68244254f00f3fd  libquadmath/Makefile.am
  089aca42b8f31c3920925f611462bc81  libquadmath/Makefile.in
  4c8b4478a1031d129e7cc6b341876b99  libquadmath/acinclude.m4
--- 66342,66348 ----
  cc603cdf253cc686bfcee192bb7630df  liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
  dff5c8575c49d6aa71e549b0fa021479  liboffloadmic/runtime/orsl-lite/version.txt
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! cf3b26e58bf5bb8f0235543172bab769  libquadmath/ChangeLog
  e1106736861aae37a68244254f00f3fd  libquadmath/Makefile.am
  089aca42b8f31c3920925f611462bc81  libquadmath/Makefile.in
  4c8b4478a1031d129e7cc6b341876b99  libquadmath/acinclude.m4
*************** b575232932aeb139e780664720bc8695  libqua
*** 65949,65955 ****
  bf09ede5c6d78e3d132bde0f933590d8  libquadmath/config.h.in
  a9e3bede07e3cdcf6cfc1898f3da490d  libquadmath/configure
  84f1e84be7df00cfbeab19204eaf8dd5  libquadmath/configure.ac
! 47b4fc073416da02541f6a7ea96820bd  libquadmath/libquadmath.info
  2cb034bf3212dff9fd07056661589189  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  f44065462735b4699d44588271a5f09a  libquadmath/math/acoshq.c
--- 66350,66356 ----
  bf09ede5c6d78e3d132bde0f933590d8  libquadmath/config.h.in
  a9e3bede07e3cdcf6cfc1898f3da490d  libquadmath/configure
  84f1e84be7df00cfbeab19204eaf8dd5  libquadmath/configure.ac
! 1e6225b75c519fcdfb898f7fb38bf14d  libquadmath/libquadmath.info
  2cb034bf3212dff9fd07056661589189  libquadmath/libquadmath.texi
  77280bb7ee423875e03d9c0d34527df6  libquadmath/libtool-version
  f44065462735b4699d44588271a5f09a  libquadmath/math/acoshq.c
*************** e766022f8615b72cbc38335d262e9d3d  libqua
*** 66073,66079 ****
  a81cc82679e80c86cfbd5575867450d0  libquadmath/strtod/strtod_l.c
  da808e110fc09ebd41ebd405790a70df  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
! c0619b5cd664726a4af7facbfc639c49  libsanitizer/ChangeLog
  c5b0b63dd90ad073654139697e69d009  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  f11d8e68ccf5dbd2281333342f0cea86  libsanitizer/LOCAL_PATCHES
--- 66474,66480 ----
  a81cc82679e80c86cfbd5575867450d0  libquadmath/strtod/strtod_l.c
  da808e110fc09ebd41ebd405790a70df  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
! 5b207b765e2d166459a3ebecde945573  libsanitizer/ChangeLog
  c5b0b63dd90ad073654139697e69d009  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  f11d8e68ccf5dbd2281333342f0cea86  libsanitizer/LOCAL_PATCHES
*************** f07ab1da60e7fd7f3d27a1960d25e06c  libsan
*** 66392,66398 ****
  0f33fad437a0fa30b1527f8f957011d6  libsanitizer/ubsan/ubsan_type_hash_win.cc
  8b063f15d2aa59cd7d3a2c835729e42d  libsanitizer/ubsan/ubsan_value.cc
  735246869fac0a1e63b5d9c72143e63a  libsanitizer/ubsan/ubsan_value.h
! c8d1e6752587c62775e6e19686b63ede  libssp/ChangeLog
  776e0645b365526b37a8934f921f91b6  libssp/Makefile.am
  4ca3c95d4bc6b9edac706fca73c37993  libssp/Makefile.in
  b0548e1d34696c0fb30573ffde20c761  libssp/aclocal.m4
--- 66793,66799 ----
  0f33fad437a0fa30b1527f8f957011d6  libsanitizer/ubsan/ubsan_type_hash_win.cc
  8b063f15d2aa59cd7d3a2c835729e42d  libsanitizer/ubsan/ubsan_value.cc
  735246869fac0a1e63b5d9c72143e63a  libsanitizer/ubsan/ubsan_value.h
! 602260d75553d47a2590df0f9ccfac6c  libssp/ChangeLog
  776e0645b365526b37a8934f921f91b6  libssp/Makefile.am
  4ca3c95d4bc6b9edac706fca73c37993  libssp/Makefile.in
  b0548e1d34696c0fb30573ffde20c761  libssp/aclocal.m4
*************** b1831173424b3bacbedae40d56213c53  libssp
*** 66421,66427 ****
  4849bcc282291903a5ab2633972a6f59  libssp/strncpy-chk.c
  8f39faa199e6457e41dd4673ab8fa2b5  libssp/vsnprintf-chk.c
  b432716a66578ff7c5e7f9c92bc30e25  libssp/vsprintf-chk.c
! 1370feea2f2bd78c85c899607b484a4e  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 66822,66828 ----
  4849bcc282291903a5ab2633972a6f59  libssp/strncpy-chk.c
  8f39faa199e6457e41dd4673ab8fa2b5  libssp/vsnprintf-chk.c
  b432716a66578ff7c5e7f9c92bc30e25  libssp/vsprintf-chk.c
! 241f532a2780f964ed16c2cbcef0f646  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** b331fae97e334afde1bd5fa125610458  libstd
*** 66442,66450 ****
  8a8f082302e2eb659ac02e5036cccc4a  libstdc++-v3/ChangeLog-2015
  7bafaec51877b01c0fa5a1c20b004559  libstdc++-v3/ChangeLog-2016
  d2f55cdfcfc41eedd57e16a617c4775f  libstdc++-v3/Makefile.am
! 9a8bbe5f81bba136c3ff5f5aedfb43a4  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! 38c293579652d3f2db3c58ff6cada591  libstdc++-v3/acinclude.m4
  2a88f1fcc47abc6e54fb44954da2919a  libstdc++-v3/aclocal.m4
  5274c5690532e1702c242c0788829b35  libstdc++-v3/config.h.in
  1c93b343ca452ad7c87f5c1352794032  libstdc++-v3/config/abi/compatibility.h
--- 66843,66851 ----
  8a8f082302e2eb659ac02e5036cccc4a  libstdc++-v3/ChangeLog-2015
  7bafaec51877b01c0fa5a1c20b004559  libstdc++-v3/ChangeLog-2016
  d2f55cdfcfc41eedd57e16a617c4775f  libstdc++-v3/Makefile.am
! 5c69abb94b9cb34786e65a1c591ea650  libstdc++-v3/Makefile.in
  f372af73db4ac0ad88e43199e1f29e08  libstdc++-v3/README
! 5f19a70f16abc54057bc514426d73a70  libstdc++-v3/acinclude.m4
  2a88f1fcc47abc6e54fb44954da2919a  libstdc++-v3/aclocal.m4
  5274c5690532e1702c242c0788829b35  libstdc++-v3/config.h.in
  1c93b343ca452ad7c87f5c1352794032  libstdc++-v3/config/abi/compatibility.h
*************** c7c82b7fdf11e423ccdc173143db93aa  libstd
*** 66634,66645 ****
  7edc1c806579bdda295225b37ff9482c  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  276389a68a2b7b1262605789e5edfa63  libstdc++-v3/config/os/vxworks/ctype_inline.h
  70166bc357cec0c671f1d0fb63e68735  libstdc++-v3/config/os/vxworks/os_defines.h
! e10d6b6f24c57de7dd53d5f192f365a0  libstdc++-v3/configure
! 071c824e5b111bdbcec7810c1f50b3e9  libstdc++-v3/configure.ac
! e711fd9f625040036e12e7ec93b06781  libstdc++-v3/configure.host
  4ec68ff92a9155b87ed9001a405eead5  libstdc++-v3/crossconfig.m4
! 4cc1da5a760f3aa03a2af01fa56d6d80  libstdc++-v3/doc/Makefile.am
! 74b2c2379a63ef007e3b81ca6e5ef284  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  e221bfb1fc340e034b28617e561f131d  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
--- 67035,67046 ----
  7edc1c806579bdda295225b37ff9482c  libstdc++-v3/config/os/vxworks/ctype_configure_char.cc
  276389a68a2b7b1262605789e5edfa63  libstdc++-v3/config/os/vxworks/ctype_inline.h
  70166bc357cec0c671f1d0fb63e68735  libstdc++-v3/config/os/vxworks/os_defines.h
! a13dc3a205682f6994b50afdf5db3b26  libstdc++-v3/configure
! 70747dca8d89bb5b249304ae14c38bc1  libstdc++-v3/configure.ac
! 011a5e201f8d9c1d58f79a6e76f94900  libstdc++-v3/configure.host
  4ec68ff92a9155b87ed9001a405eead5  libstdc++-v3/crossconfig.m4
! 15c08275d1c3cec487c853edcc66536d  libstdc++-v3/doc/Makefile.am
! 44b4485e1ecae56a115ad99652001ee6  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  e221bfb1fc340e034b28617e561f131d  libstdc++-v3/doc/doxygen/doxygroups.cc
  520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
*************** c7e40c1085e414b3b4d5896db4013205  libstd
*** 66757,66763 ****
  fc2f4ac9d9c05ca8c4dce6b46e259f97  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  33325138d9fa5d5628cdb1dd11cdef77  libstdc++-v3/doc/html/manual/debug_mode_using.html
  7bcc35e818f9360d10ecfe70e4dedcc0  libstdc++-v3/doc/html/manual/diagnostics.html
! a9912c2e6de072fc1b2f1794a1b8cd00  libstdc++-v3/doc/html/manual/documentation_hacking.html
  c472d3d333cea10a613a5177af5b053a  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  f5df2458b52ebaa400811787cbf348fa  libstdc++-v3/doc/html/manual/ext_algorithms.html
--- 67158,67164 ----
  fc2f4ac9d9c05ca8c4dce6b46e259f97  libstdc++-v3/doc/html/manual/debug_mode_semantics.html
  33325138d9fa5d5628cdb1dd11cdef77  libstdc++-v3/doc/html/manual/debug_mode_using.html
  7bcc35e818f9360d10ecfe70e4dedcc0  libstdc++-v3/doc/html/manual/diagnostics.html
! 3ac228300d0a7aab327d6bc17b623c9c  libstdc++-v3/doc/html/manual/documentation_hacking.html
  c472d3d333cea10a613a5177af5b053a  libstdc++-v3/doc/html/manual/dynamic_memory.html
  55666dfa05ec7aae2596d6968f6fdb38  libstdc++-v3/doc/html/manual/errno.html
  f5df2458b52ebaa400811787cbf348fa  libstdc++-v3/doc/html/manual/ext_algorithms.html
*************** c7ffc4ff6594f9e3dfeec284f8f782bd  libstd
*** 66786,66792 ****
  8ec7c1b7fc36b72f1bb9ddc0e939bb26  libstdc++-v3/doc/html/manual/license.html
  69cfb7ea1d69c38e3d673ba9f4a7c3ba  libstdc++-v3/doc/html/manual/localization.html
  9d7282a3a92209b987a91b15973414af  libstdc++-v3/doc/html/manual/make.html
! 5130ed24a3f0230b3b8300ed3de960cc  libstdc++-v3/doc/html/manual/memory.html
  4970f8a0270bd70ee4f48d19c4782afc  libstdc++-v3/doc/html/manual/mt_allocator.html
  0ade9da6c1a80afa0f9e498caea2faf9  libstdc++-v3/doc/html/manual/mt_allocator_design.html
  6cedc0933aa9ffe31dbea517db997b9e  libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
--- 67187,67193 ----
  8ec7c1b7fc36b72f1bb9ddc0e939bb26  libstdc++-v3/doc/html/manual/license.html
  69cfb7ea1d69c38e3d673ba9f4a7c3ba  libstdc++-v3/doc/html/manual/localization.html
  9d7282a3a92209b987a91b15973414af  libstdc++-v3/doc/html/manual/make.html
! c3177ad892394c3c73d9031f9dfdf2de  libstdc++-v3/doc/html/manual/memory.html
  4970f8a0270bd70ee4f48d19c4782afc  libstdc++-v3/doc/html/manual/mt_allocator.html
  0ade9da6c1a80afa0f9e498caea2faf9  libstdc++-v3/doc/html/manual/mt_allocator_design.html
  6cedc0933aa9ffe31dbea517db997b9e  libstdc++-v3/doc/html/manual/mt_allocator_ex_multi.html
*************** dc012f6bbeb24332ca023dc15d6da9cf  libstd
*** 66816,66822 ****
  94a606d009c84c4160e2b0557563c305  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  f87298c8974ee33f2519348430b786ae  libstdc++-v3/doc/html/manual/source_organization.html
! 9d77bbb369aed37360de00b460c173f0  libstdc++-v3/doc/html/manual/status.html
  9e6cce6bed38f62648e12eb77363d1fc  libstdc++-v3/doc/html/manual/std_contents.html
  dbb5f81a9e8864374fbb835eaa4e8b0d  libstdc++-v3/doc/html/manual/streambufs.html
  2eddc447009e3c845b6489be7dc2a11a  libstdc++-v3/doc/html/manual/strings.html
--- 67217,67223 ----
  94a606d009c84c4160e2b0557563c305  libstdc++-v3/doc/html/manual/source_code_style.html
  f875f3f4cddfe4fee6aff2308ccb4563  libstdc++-v3/doc/html/manual/source_design_notes.html
  f87298c8974ee33f2519348430b786ae  libstdc++-v3/doc/html/manual/source_organization.html
! 5cfe5301b165e9e2062264cbf661475a  libstdc++-v3/doc/html/manual/status.html
  9e6cce6bed38f62648e12eb77363d1fc  libstdc++-v3/doc/html/manual/std_contents.html
  dbb5f81a9e8864374fbb835eaa4e8b0d  libstdc++-v3/doc/html/manual/streambufs.html
  2eddc447009e3c845b6489be7dc2a11a  libstdc++-v3/doc/html/manual/strings.html
*************** f63bfdc03ba2b82c74864f02206d7c52  libstd
*** 67022,67028 ****
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
  59673c4ec83a73f635bf37dd02ad3ae1  libstdc++-v3/doc/xml/manual/abi.xml
  6a68f07a8b8abd9e65846432ed52d646  libstdc++-v3/doc/xml/manual/algorithms.xml
! 832fb85e9dd8e40662f3abe5b0f7b070  libstdc++-v3/doc/xml/manual/allocator.xml
  b06c7d4934846623f43ca218d68492c7  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  074e722c08588c6474b7eb1dc527bd89  libstdc++-v3/doc/xml/manual/appendix_free.xml
  fddfbac311009ebd3056c4edd7ee522a  libstdc++-v3/doc/xml/manual/appendix_porting.xml
--- 67423,67429 ----
  df705f3839120dcb896e9839cf3404d0  libstdc++-v3/doc/xml/images/pbds_update_seq_diagram.png
  59673c4ec83a73f635bf37dd02ad3ae1  libstdc++-v3/doc/xml/manual/abi.xml
  6a68f07a8b8abd9e65846432ed52d646  libstdc++-v3/doc/xml/manual/algorithms.xml
! 982605b324ce3fea88249425bd91cb27  libstdc++-v3/doc/xml/manual/allocator.xml
  b06c7d4934846623f43ca218d68492c7  libstdc++-v3/doc/xml/manual/appendix_contributing.xml
  074e722c08588c6474b7eb1dc527bd89  libstdc++-v3/doc/xml/manual/appendix_free.xml
  fddfbac311009ebd3056c4edd7ee522a  libstdc++-v3/doc/xml/manual/appendix_porting.xml
*************** f13297d479322bdb5fffc34f5fb1c5c8  libstd
*** 67040,67046 ****
  e7a9590bfa29f2842a602c7d9281e8df  libstdc++-v3/doc/xml/manual/debug.xml
  4ed2cb587373d3029a0d949ce37ae1f2  libstdc++-v3/doc/xml/manual/debug_mode.xml
  f0323e43ff8fc1ca28dcdfae61b6cb19  libstdc++-v3/doc/xml/manual/diagnostics.xml
! 099bda8905d39fc07d87152927c32492  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  beaf7f0a49ee4f9a868913839fb3e8b4  libstdc++-v3/doc/xml/manual/evolution.xml
  d700263acf88b675c68d1cbe9dadea6b  libstdc++-v3/doc/xml/manual/extensions.xml
  26083dec441281888a23365de5567180  libstdc++-v3/doc/xml/manual/internals.xml
--- 67441,67447 ----
  e7a9590bfa29f2842a602c7d9281e8df  libstdc++-v3/doc/xml/manual/debug.xml
  4ed2cb587373d3029a0d949ce37ae1f2  libstdc++-v3/doc/xml/manual/debug_mode.xml
  f0323e43ff8fc1ca28dcdfae61b6cb19  libstdc++-v3/doc/xml/manual/diagnostics.xml
! f7808f72b29cb498dbea75728cfb394f  libstdc++-v3/doc/xml/manual/documentation_hacking.xml
  beaf7f0a49ee4f9a868913839fb3e8b4  libstdc++-v3/doc/xml/manual/evolution.xml
  d700263acf88b675c68d1cbe9dadea6b  libstdc++-v3/doc/xml/manual/extensions.xml
  26083dec441281888a23365de5567180  libstdc++-v3/doc/xml/manual/internals.xml
*************** e2b6426957c60c385c84e7b5143089ce  libstd
*** 67057,67068 ****
  507d70152c09c65d4d3ef641eb13a6cb  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
  4e49a8e041ae187579c7683d4b840fc4  libstdc++-v3/doc/xml/manual/prerequisites.xml
  5cca2fce9e94a0243e546e0c59792f87  libstdc++-v3/doc/xml/manual/profile_mode.xml
! d86ab4ddaebc9752d3a71f23cc8879cb  libstdc++-v3/doc/xml/manual/shared_ptr.xml
  8b2ba528aeefb3571a63fba077b46ee1  libstdc++-v3/doc/xml/manual/spine.xml
  c6484730208a3a65702e6f804f7d9e61  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
  a9d987cf0583e51ad9eb6ac589ca5e8e  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
  72b9bc0f2799920c3d2caf7a550686f5  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
! 7e9469d9ecdca33ba1c50fd701a52a19  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
  3c72998c4574690fac280c058a0db757  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  6edaab9973b0acf56c2b1cd715448e0f  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
  0acb29d13accb1b483e4f108b5a96714  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
--- 67458,67469 ----
  507d70152c09c65d4d3ef641eb13a6cb  libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml
  4e49a8e041ae187579c7683d4b840fc4  libstdc++-v3/doc/xml/manual/prerequisites.xml
  5cca2fce9e94a0243e546e0c59792f87  libstdc++-v3/doc/xml/manual/profile_mode.xml
! d006612b2e21ab181c25bc88697b4543  libstdc++-v3/doc/xml/manual/shared_ptr.xml
  8b2ba528aeefb3571a63fba077b46ee1  libstdc++-v3/doc/xml/manual/spine.xml
  c6484730208a3a65702e6f804f7d9e61  libstdc++-v3/doc/xml/manual/status_cxx1998.xml
  a9d987cf0583e51ad9eb6ac589ca5e8e  libstdc++-v3/doc/xml/manual/status_cxx2011.xml
  72b9bc0f2799920c3d2caf7a550686f5  libstdc++-v3/doc/xml/manual/status_cxx2014.xml
! 7b430ac3d51cee008f9955501098344c  libstdc++-v3/doc/xml/manual/status_cxx2017.xml
  3c72998c4574690fac280c058a0db757  libstdc++-v3/doc/xml/manual/status_cxxis29124.xml
  6edaab9973b0acf56c2b1cd715448e0f  libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
  0acb29d13accb1b483e4f108b5a96714  libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml
*************** a209e7576dd578adf52c10796b53c14d  libstd
*** 67077,67083 ****
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  fa0fbb589f8e3959f474ba45b0758902  libstdc++-v3/fragment.am
  dbe4925d500ce2e2b22b91ff47f2bc26  libstdc++-v3/include/Makefile.am
! eff13182e73257d5f1f1e2c2aa9f9143  libstdc++-v3/include/Makefile.in
  fe6c4f9e05006cf7f39ed3b88343c143  libstdc++-v3/include/backward/auto_ptr.h
  fe61c64d9cd7f5c6403522bb61a6cd7e  libstdc++-v3/include/backward/backward_warning.h
  b6eebaca0721deccbcade8b6a7b3ab28  libstdc++-v3/include/backward/binders.h
--- 67478,67484 ----
  bd966b4a0df6f2a84f9770525581d45c  libstdc++-v3/doc/xsl/customization.xsl.in
  fa0fbb589f8e3959f474ba45b0758902  libstdc++-v3/fragment.am
  dbe4925d500ce2e2b22b91ff47f2bc26  libstdc++-v3/include/Makefile.am
! 2546dc0b25cf3cfb711e36ec18d71bfb  libstdc++-v3/include/Makefile.in
  fe6c4f9e05006cf7f39ed3b88343c143  libstdc++-v3/include/backward/auto_ptr.h
  fe61c64d9cd7f5c6403522bb61a6cd7e  libstdc++-v3/include/backward/backward_warning.h
  b6eebaca0721deccbcade8b6a7b3ab28  libstdc++-v3/include/backward/binders.h
*************** c0ad9c1c2e4c5c9d8d0fc56d18d002e5  libstd
*** 67099,67112 ****
  2f06e59656664c29ba7c61ca91cf1c80  libstdc++-v3/include/bits/boost_concept_check.h
  658da65d0ca3addc0639468aa85028e3  libstdc++-v3/include/bits/c++0x_warning.h
  e5bc0cbeb00714bda8828155b581d299  libstdc++-v3/include/bits/c++config
! b72dad47f655b92d27958e38d076337e  libstdc++-v3/include/bits/char_traits.h
  4c0d0e0c253cebe08e42643de57ee529  libstdc++-v3/include/bits/codecvt.h
  fa1dc211040365ce32fb8072dc02a0a6  libstdc++-v3/include/bits/concept_check.h
  fa188d4b243b1dfce32f81944d80d51d  libstdc++-v3/include/bits/cpp_type_traits.h
  f4addcde213357ae315222fa5aa91686  libstdc++-v3/include/bits/deque.tcc
  dafd3fc465c26d7ac6cd93a13cb74d4b  libstdc++-v3/include/bits/enable_special_members.h
  bb35bb9eec11f014bff80cd9f4892179  libstdc++-v3/include/bits/forward_list.h
! 7ac7985a1cd1f3d550e52ca1152c1c94  libstdc++-v3/include/bits/forward_list.tcc
  b47d9c26945986d4fbda1e63c96e7145  libstdc++-v3/include/bits/fstream.tcc
  f7737ba0b208be376f9d35eb9a375ba5  libstdc++-v3/include/bits/functexcept.h
  d43a4b92ed291afa6650c89ad083189d  libstdc++-v3/include/bits/functional_hash.h
--- 67500,67513 ----
  2f06e59656664c29ba7c61ca91cf1c80  libstdc++-v3/include/bits/boost_concept_check.h
  658da65d0ca3addc0639468aa85028e3  libstdc++-v3/include/bits/c++0x_warning.h
  e5bc0cbeb00714bda8828155b581d299  libstdc++-v3/include/bits/c++config
! ffb56a85bfb66a2b11d071117ba2987a  libstdc++-v3/include/bits/char_traits.h
  4c0d0e0c253cebe08e42643de57ee529  libstdc++-v3/include/bits/codecvt.h
  fa1dc211040365ce32fb8072dc02a0a6  libstdc++-v3/include/bits/concept_check.h
  fa188d4b243b1dfce32f81944d80d51d  libstdc++-v3/include/bits/cpp_type_traits.h
  f4addcde213357ae315222fa5aa91686  libstdc++-v3/include/bits/deque.tcc
  dafd3fc465c26d7ac6cd93a13cb74d4b  libstdc++-v3/include/bits/enable_special_members.h
  bb35bb9eec11f014bff80cd9f4892179  libstdc++-v3/include/bits/forward_list.h
! c091e0bad68dbaf1d25ee2a3ae185ccc  libstdc++-v3/include/bits/forward_list.tcc
  b47d9c26945986d4fbda1e63c96e7145  libstdc++-v3/include/bits/fstream.tcc
  f7737ba0b208be376f9d35eb9a375ba5  libstdc++-v3/include/bits/functexcept.h
  d43a4b92ed291afa6650c89ad083189d  libstdc++-v3/include/bits/functional_hash.h
*************** acbf67f70070c595cc00146e36a0470b  libstd
*** 67138,67144 ****
  5f05adbf6e5443fe09c49513ee53b002  libstdc++-v3/include/bits/predefined_ops.h
  7630ce3c939921f65df86d1f0ec8821b  libstdc++-v3/include/bits/ptr_traits.h
  60e94258f562f81fd5c6853c88584ca3  libstdc++-v3/include/bits/quoted_string.h
! 757d3f223222860e22a69ef508412767  libstdc++-v3/include/bits/random.h
  7084b1b66ae4da40a8a444143f7e34bc  libstdc++-v3/include/bits/random.tcc
  f9d10b7496885a8dc97c4235f55aa1fb  libstdc++-v3/include/bits/range_access.h
  5cce56c9f8def1ffeef357b636554760  libstdc++-v3/include/bits/refwrap.h
--- 67539,67545 ----
  5f05adbf6e5443fe09c49513ee53b002  libstdc++-v3/include/bits/predefined_ops.h
  7630ce3c939921f65df86d1f0ec8821b  libstdc++-v3/include/bits/ptr_traits.h
  60e94258f562f81fd5c6853c88584ca3  libstdc++-v3/include/bits/quoted_string.h
! 66f09cf5fb41848606dc74bf787656bc  libstdc++-v3/include/bits/random.h
  7084b1b66ae4da40a8a444143f7e34bc  libstdc++-v3/include/bits/random.tcc
  f9d10b7496885a8dc97c4235f55aa1fb  libstdc++-v3/include/bits/range_access.h
  5cce56c9f8def1ffeef357b636554760  libstdc++-v3/include/bits/refwrap.h
*************** a2281962b74d61def007f879af3c8f69  libstd
*** 67186,67192 ****
  2152f683e9aeecb07aa00a6caf0b1efc  libstdc++-v3/include/bits/stl_stack.h
  06de465b8a7d35370f41ae1af74fc23e  libstdc++-v3/include/bits/stl_tempbuf.h
  42ec8a81a6cb63b1c0901a86eb7aa05e  libstdc++-v3/include/bits/stl_tree.h
! 94fea59d2dd4a97df7c9e729cee69336  libstdc++-v3/include/bits/stl_uninitialized.h
  6d0eb254a15a019bb9b09fb2184aae47  libstdc++-v3/include/bits/stl_vector.h
  5c8d4f347b1ad81182650cafa36c86a3  libstdc++-v3/include/bits/stream_iterator.h
  713b1e5bdcb6ef6d464c3ea068dd957a  libstdc++-v3/include/bits/streambuf.tcc
--- 67587,67593 ----
  2152f683e9aeecb07aa00a6caf0b1efc  libstdc++-v3/include/bits/stl_stack.h
  06de465b8a7d35370f41ae1af74fc23e  libstdc++-v3/include/bits/stl_tempbuf.h
  42ec8a81a6cb63b1c0901a86eb7aa05e  libstdc++-v3/include/bits/stl_tree.h
! 8e1cc4effc533c7d9eb6b61f25d0b56f  libstdc++-v3/include/bits/stl_uninitialized.h
  6d0eb254a15a019bb9b09fb2184aae47  libstdc++-v3/include/bits/stl_vector.h
  5c8d4f347b1ad81182650cafa36c86a3  libstdc++-v3/include/bits/stream_iterator.h
  713b1e5bdcb6ef6d464c3ea068dd957a  libstdc++-v3/include/bits/streambuf.tcc
*************** a2281962b74d61def007f879af3c8f69  libstd
*** 67194,67200 ****
  cb8a83c5ea9472d09da0e5010086c772  libstdc++-v3/include/bits/string_view.tcc
  5c0c6b845b6e38ab5e22e418aeaee1b0  libstdc++-v3/include/bits/stringfwd.h
  a9fa84f93a12d008d690fb6c49d037ba  libstdc++-v3/include/bits/uniform_int_dist.h
! adba5f5607ae7280594446d19d343436  libstdc++-v3/include/bits/unique_ptr.h
  9fdeefdfb754cee8ddf9f72938e83619  libstdc++-v3/include/bits/unordered_map.h
  251035abb110ee7968c8eb6fcef6c57a  libstdc++-v3/include/bits/unordered_set.h
  06758d4fd4602a6706aecc3087b34290  libstdc++-v3/include/bits/uses_allocator.h
--- 67595,67601 ----
  cb8a83c5ea9472d09da0e5010086c772  libstdc++-v3/include/bits/string_view.tcc
  5c0c6b845b6e38ab5e22e418aeaee1b0  libstdc++-v3/include/bits/stringfwd.h
  a9fa84f93a12d008d690fb6c49d037ba  libstdc++-v3/include/bits/uniform_int_dist.h
! f1e853d23c23d1b85239b4155b60f018  libstdc++-v3/include/bits/unique_ptr.h
  9fdeefdfb754cee8ddf9f72938e83619  libstdc++-v3/include/bits/unordered_map.h
  251035abb110ee7968c8eb6fcef6c57a  libstdc++-v3/include/bits/unordered_set.h
  06758d4fd4602a6706aecc3087b34290  libstdc++-v3/include/bits/uses_allocator.h
*************** ba36c45972020046e49921dfbecb5fcf  libstd
*** 67328,67340 ****
  a0c64ece84833a489daf0599b8c12bde  libstdc++-v3/include/decimal/decimal
  5fee6bc050dadf0c18b268666cda2299  libstdc++-v3/include/decimal/decimal.h
  c6af188ac637ee68342206a20b2ecade  libstdc++-v3/include/experimental/algorithm
! 3e86743b0fd5b23ec322be057ca1977d  libstdc++-v3/include/experimental/any
  97ef87034a82d57ce1e041bda1af44f2  libstdc++-v3/include/experimental/array
  8b92264b24185ec530677d54d3582fef  libstdc++-v3/include/experimental/bits/erase_if.h
  e490c2aee0f90a78bec2ef2aecb879e8  libstdc++-v3/include/experimental/bits/fs_dir.h
  7642f1f8c8f75a4735190cddb44dfd35  libstdc++-v3/include/experimental/bits/fs_fwd.h
  be0ce778892c4b03eb34d95a395c9372  libstdc++-v3/include/experimental/bits/fs_ops.h
! 6d9d6185c37190bf0772ef6d6bbf6fcb  libstdc++-v3/include/experimental/bits/fs_path.h
  1070337cfcaf12abe63b00de20da0953  libstdc++-v3/include/experimental/bits/lfts_config.h
  e56a52fe8ef5573cf7a80cf57c16704e  libstdc++-v3/include/experimental/bits/shared_ptr.h
  e1ced563ee42440edddd51bc80d2c982  libstdc++-v3/include/experimental/bits/string_view.tcc
--- 67729,67741 ----
  a0c64ece84833a489daf0599b8c12bde  libstdc++-v3/include/decimal/decimal
  5fee6bc050dadf0c18b268666cda2299  libstdc++-v3/include/decimal/decimal.h
  c6af188ac637ee68342206a20b2ecade  libstdc++-v3/include/experimental/algorithm
! 3aece68a3f8a150d85a06199e1b19c10  libstdc++-v3/include/experimental/any
  97ef87034a82d57ce1e041bda1af44f2  libstdc++-v3/include/experimental/array
  8b92264b24185ec530677d54d3582fef  libstdc++-v3/include/experimental/bits/erase_if.h
  e490c2aee0f90a78bec2ef2aecb879e8  libstdc++-v3/include/experimental/bits/fs_dir.h
  7642f1f8c8f75a4735190cddb44dfd35  libstdc++-v3/include/experimental/bits/fs_fwd.h
  be0ce778892c4b03eb34d95a395c9372  libstdc++-v3/include/experimental/bits/fs_ops.h
! ad5fd4f58a14f7f63c97796b2f909ae3  libstdc++-v3/include/experimental/bits/fs_path.h
  1070337cfcaf12abe63b00de20da0953  libstdc++-v3/include/experimental/bits/lfts_config.h
  e56a52fe8ef5573cf7a80cf57c16704e  libstdc++-v3/include/experimental/bits/shared_ptr.h
  e1ced563ee42440edddd51bc80d2c982  libstdc++-v3/include/experimental/bits/string_view.tcc
*************** e16db8de38cec244e86c98697b486c67  libstd
*** 67360,67366 ****
  c47b8aab2dedf84e028483489a15bf3f  libstdc++-v3/include/experimental/string_view
  b58431501fd742d4746f706f1f216690  libstdc++-v3/include/experimental/system_error
  2fcf247a9917631383ce599abc9e54c2  libstdc++-v3/include/experimental/tuple
! 4047f7383537106a63265c931c1a9e8f  libstdc++-v3/include/experimental/type_traits
  8fe8262ce24af317300b0a0b7f7eeb19  libstdc++-v3/include/experimental/unordered_map
  a989f67f3e125816d1d1c6c383f7c7eb  libstdc++-v3/include/experimental/unordered_set
  6a5eca317f55b6e477f8f5b0db337890  libstdc++-v3/include/experimental/utility
--- 67761,67767 ----
  c47b8aab2dedf84e028483489a15bf3f  libstdc++-v3/include/experimental/string_view
  b58431501fd742d4746f706f1f216690  libstdc++-v3/include/experimental/system_error
  2fcf247a9917631383ce599abc9e54c2  libstdc++-v3/include/experimental/tuple
! 8c05424c1d13412367547748a6fef7e3  libstdc++-v3/include/experimental/type_traits
  8fe8262ce24af317300b0a0b7f7eeb19  libstdc++-v3/include/experimental/unordered_map
  a989f67f3e125816d1d1c6c383f7c7eb  libstdc++-v3/include/experimental/unordered_set
  6a5eca317f55b6e477f8f5b0db337890  libstdc++-v3/include/experimental/utility
*************** a4dbaed45302898059965a2536fa70f6  libstd
*** 67729,67735 ****
  da95e16cd816137a117a75edcdfa7edb  libstdc++-v3/include/profile/unordered_set
  77784a11757398ad33c59f0b97deb272  libstdc++-v3/include/profile/vector
  6888850646b32f4cf5d7acbcdf814e62  libstdc++-v3/include/std/algorithm
! 29899d90d2ab2ab031ca73de4f61f1a9  libstdc++-v3/include/std/any
  2fd954e55939b25cd70cd8e2ba3bcb61  libstdc++-v3/include/std/array
  3b19e6f709a310e8cb3fb34a67cb2564  libstdc++-v3/include/std/atomic
  6b7c7fb7392b2a53b55c6c59aea6e9a1  libstdc++-v3/include/std/bitset
--- 68130,68136 ----
  da95e16cd816137a117a75edcdfa7edb  libstdc++-v3/include/profile/unordered_set
  77784a11757398ad33c59f0b97deb272  libstdc++-v3/include/profile/vector
  6888850646b32f4cf5d7acbcdf814e62  libstdc++-v3/include/std/algorithm
! 368c115ae6c38c55b58db2d722f8d1d6  libstdc++-v3/include/std/any
  2fd954e55939b25cd70cd8e2ba3bcb61  libstdc++-v3/include/std/array
  3b19e6f709a310e8cb3fb34a67cb2564  libstdc++-v3/include/std/atomic
  6b7c7fb7392b2a53b55c6c59aea6e9a1  libstdc++-v3/include/std/bitset
*************** f5721edd39e212a96236797133280047  libstd
*** 67755,67761 ****
  f008669ae0b0683f54f6fb3135dfffde  libstdc++-v3/include/std/memory
  492670925934aa0869810da0ba3f5a59  libstdc++-v3/include/std/mutex
  ddc3090928c84bc8608da7a8498d1384  libstdc++-v3/include/std/numeric
! 06067ab3ead834bc5749d0a9c59ba770  libstdc++-v3/include/std/optional
  3e01bf72cb649a8b3219a4c1bf2abbc5  libstdc++-v3/include/std/ostream
  8b030f58e9dc4ecea8b2eb241b8d36cc  libstdc++-v3/include/std/queue
  aea8e691c1eda6992a5759bda4f88948  libstdc++-v3/include/std/random
--- 68156,68162 ----
  f008669ae0b0683f54f6fb3135dfffde  libstdc++-v3/include/std/memory
  492670925934aa0869810da0ba3f5a59  libstdc++-v3/include/std/mutex
  ddc3090928c84bc8608da7a8498d1384  libstdc++-v3/include/std/numeric
! 59d8fe05fa6ea813a41acc1da762c915  libstdc++-v3/include/std/optional
  3e01bf72cb649a8b3219a4c1bf2abbc5  libstdc++-v3/include/std/ostream
  8b030f58e9dc4ecea8b2eb241b8d36cc  libstdc++-v3/include/std/queue
  aea8e691c1eda6992a5759bda4f88948  libstdc++-v3/include/std/random
*************** f6db2f6c313ce30896ebd0ef7fdcd816  libstd
*** 67779,67785 ****
  40af560d2f7d91fbc5ddfe9099e959ec  libstdc++-v3/include/std/unordered_set
  f6e088d93d066b0d8fdee3e9b7fa8850  libstdc++-v3/include/std/utility
  9dc6c211c3503697170d85aec9d3ef37  libstdc++-v3/include/std/valarray
! 46bb1595e23d34bd14d4e22e6fe39c00  libstdc++-v3/include/std/variant
  524416117d96559514029824ea8182fc  libstdc++-v3/include/std/vector
  98a03c40ae073a2c2bdc2b7b42c65bc4  libstdc++-v3/include/tr1/array
  ac8f2f0647f302709bfae97d9408d6fe  libstdc++-v3/include/tr1/bessel_function.tcc
--- 68180,68186 ----
  40af560d2f7d91fbc5ddfe9099e959ec  libstdc++-v3/include/std/unordered_set
  f6e088d93d066b0d8fdee3e9b7fa8850  libstdc++-v3/include/std/utility
  9dc6c211c3503697170d85aec9d3ef37  libstdc++-v3/include/std/valarray
! 14f0eaa48fa7ef086e669f0d7cc2990b  libstdc++-v3/include/std/variant
  524416117d96559514029824ea8182fc  libstdc++-v3/include/std/vector
  98a03c40ae073a2c2bdc2b7b42c65bc4  libstdc++-v3/include/tr1/array
  ac8f2f0647f302709bfae97d9408d6fe  libstdc++-v3/include/tr1/bessel_function.tcc
*************** b97ac31049b18ccb4b749148328f6f78  libstd
*** 67850,67856 ****
  de52ff045b1be2a0dab2527cce246ee8  libstdc++-v3/include/tr2/ratio
  fcf46daf9cbfb79e56df4b39b512ad2d  libstdc++-v3/include/tr2/type_traits
  9cab2eebc32de8a4e098ece111da25b0  libstdc++-v3/libsupc++/Makefile.am
! cd9f4b8c02c86260ddcdfe8ef2de11a8  libstdc++-v3/libsupc++/Makefile.in
  0bff5f9241a348b4e5102023300123eb  libstdc++-v3/libsupc++/array_type_info.cc
  f7910c2b2e8b7712760dd0d9a9c35279  libstdc++-v3/libsupc++/atexit_arm.cc
  8985ce1d0236496e19acd04d27b2ae5d  libstdc++-v3/libsupc++/atexit_thread.cc
--- 68251,68257 ----
  de52ff045b1be2a0dab2527cce246ee8  libstdc++-v3/include/tr2/ratio
  fcf46daf9cbfb79e56df4b39b512ad2d  libstdc++-v3/include/tr2/type_traits
  9cab2eebc32de8a4e098ece111da25b0  libstdc++-v3/libsupc++/Makefile.am
! e6b3cf90b7bbcb5d85d66bc867aabab1  libstdc++-v3/libsupc++/Makefile.in
  0bff5f9241a348b4e5102023300123eb  libstdc++-v3/libsupc++/array_type_info.cc
  f7910c2b2e8b7712760dd0d9a9c35279  libstdc++-v3/libsupc++/atexit_arm.cc
  8985ce1d0236496e19acd04d27b2ae5d  libstdc++-v3/libsupc++/atexit_thread.cc
*************** cf6842fa4dcad6fe5f6ae75491a85408  libstd
*** 67861,67867 ****
  2f3f9d1d57869c7aa4896d0a48fcdee1  libstdc++-v3/libsupc++/bad_cast.cc
  1e2fa9b2a26073271a74ccf5ef349dfc  libstdc++-v3/libsupc++/bad_typeid.cc
  41dcf2edb2b119ee834ae1e65ce5277a  libstdc++-v3/libsupc++/class_type_info.cc
! ef8f8200f041873163ec35e6e49757af  libstdc++-v3/libsupc++/cxxabi.h
  014e0058e7fc59771a9024655b0f7c2e  libstdc++-v3/libsupc++/cxxabi_forced.h
  48db33ce6880f2e94bfb19f6968005ea  libstdc++-v3/libsupc++/cxxabi_init_exception.h
  157788849745463dfb2ae186c33de61f  libstdc++-v3/libsupc++/del_op.cc
--- 68262,68268 ----
  2f3f9d1d57869c7aa4896d0a48fcdee1  libstdc++-v3/libsupc++/bad_cast.cc
  1e2fa9b2a26073271a74ccf5ef349dfc  libstdc++-v3/libsupc++/bad_typeid.cc
  41dcf2edb2b119ee834ae1e65ce5277a  libstdc++-v3/libsupc++/class_type_info.cc
! 0b0f21d43ffd1ddceefe31ca0905ed2f  libstdc++-v3/libsupc++/cxxabi.h
  014e0058e7fc59771a9024655b0f7c2e  libstdc++-v3/libsupc++/cxxabi_forced.h
  48db33ce6880f2e94bfb19f6968005ea  libstdc++-v3/libsupc++/cxxabi_init_exception.h
  157788849745463dfb2ae186c33de61f  libstdc++-v3/libsupc++/del_op.cc
*************** bde4f68c170f4beff56dc31f7decb918  libstd
*** 67901,67908 ****
  58090c5d9b0e17a29e8fa979d4541c9e  libstdc++-v3/libsupc++/function_type_info.cc
  8c3bfbd6c3190f6837dfd1deda603ca5  libstdc++-v3/libsupc++/fundamental_type_info.cc
  83d3dba8df558bf22d43525906846ec3  libstdc++-v3/libsupc++/guard.cc
! 5007de2ca089f5ae9039ebe2642029b2  libstdc++-v3/libsupc++/guard_error.cc
! 604d5d4ca6a7235ffd00e86cc980f7aa  libstdc++-v3/libsupc++/hash_bytes.cc
  722619e46e2f37590d20dd631d23e496  libstdc++-v3/libsupc++/hash_bytes.h
  09bcac0edee877df1e87c7ac046f5813  libstdc++-v3/libsupc++/initializer_list
  d81ddfb1e28692d8ef2c2135dae7fa78  libstdc++-v3/libsupc++/nested_exception.cc
--- 68302,68309 ----
  58090c5d9b0e17a29e8fa979d4541c9e  libstdc++-v3/libsupc++/function_type_info.cc
  8c3bfbd6c3190f6837dfd1deda603ca5  libstdc++-v3/libsupc++/fundamental_type_info.cc
  83d3dba8df558bf22d43525906846ec3  libstdc++-v3/libsupc++/guard.cc
! f4a4540342b8d86e21c1630ca015fd2b  libstdc++-v3/libsupc++/guard_error.cc
! 3482c04b98ac443dc2b171c54ec6a1cf  libstdc++-v3/libsupc++/hash_bytes.cc
  722619e46e2f37590d20dd631d23e496  libstdc++-v3/libsupc++/hash_bytes.h
  09bcac0edee877df1e87c7ac046f5813  libstdc++-v3/libsupc++/initializer_list
  d81ddfb1e28692d8ef2c2135dae7fa78  libstdc++-v3/libsupc++/nested_exception.cc
*************** d81ddfb1e28692d8ef2c2135dae7fa78  libstd
*** 67910,67916 ****
  bd99c0d8a06d268e563134d529a2c45e  libstdc++-v3/libsupc++/new
  283037887fc60ebb7ddfa5e91d9a7d87  libstdc++-v3/libsupc++/new_handler.cc
  1a4b29528e2f169a99c67aaf0f88270d  libstdc++-v3/libsupc++/new_op.cc
! 4a8d35bd946bd8492b475709ba25a0ca  libstdc++-v3/libsupc++/new_opa.cc
  fc2a500a9e1465fc1cf3f4f9a12ac866  libstdc++-v3/libsupc++/new_opant.cc
  364346ae155d03bc02a25397b28c37f2  libstdc++-v3/libsupc++/new_opnt.cc
  eaa47a7a65f377d212527d243afa4bab  libstdc++-v3/libsupc++/new_opv.cc
--- 68311,68317 ----
  bd99c0d8a06d268e563134d529a2c45e  libstdc++-v3/libsupc++/new
  283037887fc60ebb7ddfa5e91d9a7d87  libstdc++-v3/libsupc++/new_handler.cc
  1a4b29528e2f169a99c67aaf0f88270d  libstdc++-v3/libsupc++/new_op.cc
! 1e4ab43ff34ccd776c6d81c3dc5151b6  libstdc++-v3/libsupc++/new_opa.cc
  fc2a500a9e1465fc1cf3f4f9a12ac866  libstdc++-v3/libsupc++/new_opant.cc
  364346ae155d03bc02a25397b28c37f2  libstdc++-v3/libsupc++/new_opnt.cc
  eaa47a7a65f377d212527d243afa4bab  libstdc++-v3/libsupc++/new_opv.cc
*************** fb15e2e2a2b7ed98cd6094027fc92773  libstd
*** 67933,67951 ****
  256478324744e0bad0b30aa6f3220d7c  libstdc++-v3/libsupc++/vtv_stubs.cc
  6e1809e9ac8f237378ab1ebc1b99fb6a  libstdc++-v3/linkage.m4
  b21c98545e0cb8ef6921957a89bdd5d1  libstdc++-v3/po/Makefile.am
! edcf1b2d9366e1af609192745421de9a  libstdc++-v3/po/Makefile.in
  62813ea213f423fcbab32768df955789  libstdc++-v3/po/POTFILES.in
  c0f612fd0ae5fc91df3c3f7dfb03180c  libstdc++-v3/po/de.po
  9be3fcc3afce9703367890d09fc6f0e5  libstdc++-v3/po/fr.po
  c96dc8fff746211523e74f1e605fb697  libstdc++-v3/po/libstdc++.pot
  f32955df5c4047bbde966cf582b0f9f9  libstdc++-v3/po/string_literals.cc
  7bbd960e3eaf3704f4a4955c9f06d83f  libstdc++-v3/python/Makefile.am
! e74a6fa1d9d5837ff23ea763eeed7bee  libstdc++-v3/python/Makefile.in
  f539df133567379ad0f1f9c3cb9a7981  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  42eba6becf26fb9be17456c725ee075c  libstdc++-v3/python/libstdcxx/v6/__init__.py
  badb8b9f16784b299ed63c3a595877c1  libstdc++-v3/python/libstdcxx/v6/printers.py
! b890a88bda6bbf1918279d8fa2e0dc31  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  b1441422cec6381d9285b7681b666124  libstdc++-v3/scripts/check_compile
  533e594add6e79910b0e557ba690fac6  libstdc++-v3/scripts/check_performance
  f480e111db2d50194a3e1f7014c9f422  libstdc++-v3/scripts/create_testsuite_files
--- 68334,68352 ----
  256478324744e0bad0b30aa6f3220d7c  libstdc++-v3/libsupc++/vtv_stubs.cc
  6e1809e9ac8f237378ab1ebc1b99fb6a  libstdc++-v3/linkage.m4
  b21c98545e0cb8ef6921957a89bdd5d1  libstdc++-v3/po/Makefile.am
! 0c708fad82e020110c4baaa5126a5c12  libstdc++-v3/po/Makefile.in
  62813ea213f423fcbab32768df955789  libstdc++-v3/po/POTFILES.in
  c0f612fd0ae5fc91df3c3f7dfb03180c  libstdc++-v3/po/de.po
  9be3fcc3afce9703367890d09fc6f0e5  libstdc++-v3/po/fr.po
  c96dc8fff746211523e74f1e605fb697  libstdc++-v3/po/libstdc++.pot
  f32955df5c4047bbde966cf582b0f9f9  libstdc++-v3/po/string_literals.cc
  7bbd960e3eaf3704f4a4955c9f06d83f  libstdc++-v3/python/Makefile.am
! cf6dd6cdd59390750cc921bb9679ab5f  libstdc++-v3/python/Makefile.in
  f539df133567379ad0f1f9c3cb9a7981  libstdc++-v3/python/hook.in
  68b329da9893e34099c7d8ad5cb9c940  libstdc++-v3/python/libstdcxx/__init__.py
  42eba6becf26fb9be17456c725ee075c  libstdc++-v3/python/libstdcxx/v6/__init__.py
  badb8b9f16784b299ed63c3a595877c1  libstdc++-v3/python/libstdcxx/v6/printers.py
! 8d7b5cb1d89dc6ce7c857f3a23ae0c90  libstdc++-v3/python/libstdcxx/v6/xmethods.py
  b1441422cec6381d9285b7681b666124  libstdc++-v3/scripts/check_compile
  533e594add6e79910b0e557ba690fac6  libstdc++-v3/scripts/check_performance
  f480e111db2d50194a3e1f7014c9f422  libstdc++-v3/scripts/create_testsuite_files
*************** f480e111db2d50194a3e1f7014c9f422  libstd
*** 67954,67967 ****
  755b77f929d926f07f3257df2e802f2e  libstdc++-v3/scripts/gen_bind_includers.pl
  85378fa65bc3dc46ffe255374b304560  libstdc++-v3/scripts/gen_includers.pl
  f1a84a17158780aaa37927191db4463a  libstdc++-v3/scripts/gen_includers2.pl
! 12339b6ead78d7ddd0044dfd0f9f4f92  libstdc++-v3/scripts/make_exports.pl
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
  85cf38645711b5fc8a857a7868dd2990  libstdc++-v3/scripts/run_doxygen
  7579350b0ac0412cb42e9c354485ebd9  libstdc++-v3/scripts/testsuite_flags.in
! 9e9f0243554b1721cc068bb43de27f4d  libstdc++-v3/src/Makefile.am
! 17ee027fa28e0fbb74e9d7a61c9f8c79  libstdc++-v3/src/Makefile.in
  7ce761e22fdebc3f0a63df3233308d6a  libstdc++-v3/src/c++11/Makefile.am
! 5042f0104c422e5fd31dadc37530fa72  libstdc++-v3/src/c++11/Makefile.in
  be1262939a9149c8d5b9884c8d64150f  libstdc++-v3/src/c++11/chrono.cc
  ddb91a0a0bd166376ac31a87bca529b6  libstdc++-v3/src/c++11/codecvt.cc
  5d79a0dca046349bb089967f46eaa4de  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
--- 68355,68368 ----
  755b77f929d926f07f3257df2e802f2e  libstdc++-v3/scripts/gen_bind_includers.pl
  85378fa65bc3dc46ffe255374b304560  libstdc++-v3/scripts/gen_includers.pl
  f1a84a17158780aaa37927191db4463a  libstdc++-v3/scripts/gen_includers2.pl
! e8e7773bc629a008b2813ee507a0dab6  libstdc++-v3/scripts/make_exports.pl
  80b6ff44b325c6b6d113435d8eea4b76  libstdc++-v3/scripts/make_graph.py
  85cf38645711b5fc8a857a7868dd2990  libstdc++-v3/scripts/run_doxygen
  7579350b0ac0412cb42e9c354485ebd9  libstdc++-v3/scripts/testsuite_flags.in
! e0115e34b4ea3ebe6e287632149d6f6c  libstdc++-v3/src/Makefile.am
! 0a2a06de6150e2000dfa0d3bc57b1e02  libstdc++-v3/src/Makefile.in
  7ce761e22fdebc3f0a63df3233308d6a  libstdc++-v3/src/c++11/Makefile.am
! 989318073d7e57b510fc98972fb5adc2  libstdc++-v3/src/c++11/Makefile.in
  be1262939a9149c8d5b9884c8d64150f  libstdc++-v3/src/c++11/chrono.cc
  ddb91a0a0bd166376ac31a87bca529b6  libstdc++-v3/src/c++11/codecvt.cc
  5d79a0dca046349bb089967f46eaa4de  libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc
*************** d416f4f2c3cbb648bcb5ce3002f009fe  libstd
*** 68019,68026 ****
  30ae62296480af830508a84e779c9d1a  libstdc++-v3/src/c++11/wlocale-inst.cc
  d769f7cbde4ecb0c32864dab96056b93  libstdc++-v3/src/c++11/wstring-inst.cc
  47bbd968170f15f4f14fbdcfd6c26005  libstdc++-v3/src/c++11/wstring-io-inst.cc
  984c694c83939f9eecfc9bbe4d20bf96  libstdc++-v3/src/c++98/Makefile.am
! 9d081b01192db532401baddc9c24efb5  libstdc++-v3/src/c++98/Makefile.in
  077c5bc24ea732944e61a543e6abfcbc  libstdc++-v3/src/c++98/allocator-inst.cc
  200dd019c9eb07a842fe667b5b40a87e  libstdc++-v3/src/c++98/bitmap_allocator.cc
  985a839cfbbe62d9f69de9ef2b064bcd  libstdc++-v3/src/c++98/codecvt.cc
--- 68420,68428 ----
  30ae62296480af830508a84e779c9d1a  libstdc++-v3/src/c++11/wlocale-inst.cc
  d769f7cbde4ecb0c32864dab96056b93  libstdc++-v3/src/c++11/wstring-inst.cc
  47bbd968170f15f4f14fbdcfd6c26005  libstdc++-v3/src/c++11/wstring-io-inst.cc
+ 9cca3cfd93f43b9ff610bb85aa008108  libstdc++-v3/src/c++17/Makefile.in
  984c694c83939f9eecfc9bbe4d20bf96  libstdc++-v3/src/c++98/Makefile.am
! 418b9e9d64364fbe012f017898481088  libstdc++-v3/src/c++98/Makefile.in
  077c5bc24ea732944e61a543e6abfcbc  libstdc++-v3/src/c++98/allocator-inst.cc
  200dd019c9eb07a842fe667b5b40a87e  libstdc++-v3/src/c++98/bitmap_allocator.cc
  985a839cfbbe62d9f69de9ef2b064bcd  libstdc++-v3/src/c++98/codecvt.cc
*************** c76551b9096322431a61d83b32e293aa  libstd
*** 68062,68079 ****
  8be7815a7497aafffd91fe32b172522b  libstdc++-v3/src/c++98/tree.cc
  dd649fc13e846dc2adaab14214405ea3  libstdc++-v3/src/c++98/valarray.cc
  cfd4e11cf722301804fd27e2cc10e50e  libstdc++-v3/src/filesystem/Makefile.am
! 55e84e2e1dcf499a3a634389991fc497  libstdc++-v3/src/filesystem/Makefile.in
  f73fdf94a017dc421c3bdb1ca09ef1a1  libstdc++-v3/src/filesystem/cow-dir.cc
  5aecc6c41de6a04ff2cd492babba1f04  libstdc++-v3/src/filesystem/cow-ops.cc
  ce1d40dd59bfb48cea6af1fdc01e7ab6  libstdc++-v3/src/filesystem/cow-path.cc
  1933a4a539101653c6295fd6d8161483  libstdc++-v3/src/filesystem/dir.cc
  22ee86ac2744265d7b3b466c85a3d348  libstdc++-v3/src/filesystem/ops.cc
! 1ea70560cb4013b899fb1b527be35030  libstdc++-v3/src/filesystem/path.cc
  3ab250976eb86f0ac1edc8b3f35b3449  libstdc++-v3/src/shared/hashtable-aux.cc
  eff68d13ec5ad1d4a63320b78a36a8b2  libstdc++-v3/testsuite/17_intro/freestanding.cc
  ecc1a8271661151328b926fdfb899424  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
  9875dd58d5e4d9e16ee0b834a989b6ea  libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
! 78f616b0408f72ad73c80fac5970bfa5  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
  d6d61376a0c20515d1db17516f2750b1  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc
  45c40a65b1950cc85e051d2bdeac1d8e  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_exceptions.cc
  79ffebfc8bc1dcbda2905ab7e2fe6efc  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_rtti.cc
--- 68464,68481 ----
  8be7815a7497aafffd91fe32b172522b  libstdc++-v3/src/c++98/tree.cc
  dd649fc13e846dc2adaab14214405ea3  libstdc++-v3/src/c++98/valarray.cc
  cfd4e11cf722301804fd27e2cc10e50e  libstdc++-v3/src/filesystem/Makefile.am
! 7ba7a0a0304fc3719d0902ea498d2ee4  libstdc++-v3/src/filesystem/Makefile.in
  f73fdf94a017dc421c3bdb1ca09ef1a1  libstdc++-v3/src/filesystem/cow-dir.cc
  5aecc6c41de6a04ff2cd492babba1f04  libstdc++-v3/src/filesystem/cow-ops.cc
  ce1d40dd59bfb48cea6af1fdc01e7ab6  libstdc++-v3/src/filesystem/cow-path.cc
  1933a4a539101653c6295fd6d8161483  libstdc++-v3/src/filesystem/dir.cc
  22ee86ac2744265d7b3b466c85a3d348  libstdc++-v3/src/filesystem/ops.cc
! f0a5be3b74559ac219367c2a6b29c937  libstdc++-v3/src/filesystem/path.cc
  3ab250976eb86f0ac1edc8b3f35b3449  libstdc++-v3/src/shared/hashtable-aux.cc
  eff68d13ec5ad1d4a63320b78a36a8b2  libstdc++-v3/testsuite/17_intro/freestanding.cc
  ecc1a8271661151328b926fdfb899424  libstdc++-v3/testsuite/17_intro/headers/c++1998/49745.cc
  9875dd58d5e4d9e16ee0b834a989b6ea  libstdc++-v3/testsuite/17_intro/headers/c++1998/all.cc
! 02a5fb14b5e2571cee10356768df703b  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
  d6d61376a0c20515d1db17516f2750b1  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_c++200x_compatibility.cc
  45c40a65b1950cc85e051d2bdeac1d8e  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_exceptions.cc
  79ffebfc8bc1dcbda2905ab7e2fe6efc  libstdc++-v3/testsuite/17_intro/headers/c++1998/all_no_rtti.cc
*************** c6f0514dd3114d6852e1ac10ac317cea  libstd
*** 68085,68091 ****
  d50c23af9d1145cddd8294f81f54ebf1  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc
  aff0f9d4ddff6ead1b66cf632e3a0421  libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
  b183ab1d45bac0d208de456104de20bc  libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
! 8d61df8a910aebfe70e13a1f7cab83ba  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
  7622be2c36c715bc1e47a5d3a6ab27ed  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc
  1d1536ef2352318473f6d77a141df41d  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc
  ce41f9daba4aa55e17c599b27e534a14  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc
--- 68487,68493 ----
  d50c23af9d1145cddd8294f81f54ebf1  libstdc++-v3/testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc
  aff0f9d4ddff6ead1b66cf632e3a0421  libstdc++-v3/testsuite/17_intro/headers/c++2011/42319.cc
  b183ab1d45bac0d208de456104de20bc  libstdc++-v3/testsuite/17_intro/headers/c++2011/67309.cc
! f71ed9c149f97709bc776c3d26b5adbf  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
  7622be2c36c715bc1e47a5d3a6ab27ed  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_exceptions.cc
  1d1536ef2352318473f6d77a141df41d  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_no_rtti.cc
  ce41f9daba4aa55e17c599b27e534a14  libstdc++-v3/testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc
*************** ce41f9daba4aa55e17c599b27e534a14  libstd
*** 68093,68106 ****
  764420d7acebf8df71e878516a302eb5  libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc
  89bfd85d26dca171d11829da624a73fc  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
  e901dfd8fa31dfb18f801d52a32af56a  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
! 5b2bd539bc31493221422f354d5368fe  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
  cec11c27a08be8f68c3f189cff87ff26  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc
  a05741b50f736591adc069c7244a103e  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc
  592e29c5ad8a96a8dbd4e8e22e9de080  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc
  05d1bb38b57c5303ede5a827deb320b5  libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc
  918303f7d111e8bee6afecfb607bc488  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc
  01aee116ab8b6ebe7ff6358cf8bf2394  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc
! 11e813bd6abc664901d439a6e0bfe10a  libstdc++-v3/testsuite/17_intro/names.cc
  69376f9eebb6b3e66f3bbe5501e56017  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
  4a79b3b2a6b5d7a3e4c35ee9ab270376  libstdc++-v3/testsuite/17_intro/static.cc
  8c893a06f3284d0f487c3b47ff0aa9ff  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
--- 68495,68508 ----
  764420d7acebf8df71e878516a302eb5  libstdc++-v3/testsuite/17_intro/headers/c++2011/operator_names.cc
  89bfd85d26dca171d11829da624a73fc  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++.cc
  e901dfd8fa31dfb18f801d52a32af56a  libstdc++-v3/testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc
! c3f836bfffbfba2e5765b720b08e7a61  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
  cec11c27a08be8f68c3f189cff87ff26  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_exceptions.cc
  a05741b50f736591adc069c7244a103e  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_no_rtti.cc
  592e29c5ad8a96a8dbd4e8e22e9de080  libstdc++-v3/testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc
  05d1bb38b57c5303ede5a827deb320b5  libstdc++-v3/testsuite/17_intro/headers/c++2014/operator_names.cc
  918303f7d111e8bee6afecfb607bc488  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++.cc
  01aee116ab8b6ebe7ff6358cf8bf2394  libstdc++-v3/testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc
! 2cf9d0082430a8109b4c0efb917ba310  libstdc++-v3/testsuite/17_intro/names.cc
  69376f9eebb6b3e66f3bbe5501e56017  libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc
  4a79b3b2a6b5d7a3e4c35ee9ab270376  libstdc++-v3/testsuite/17_intro/static.cc
  8c893a06f3284d0f487c3b47ff0aa9ff  libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc
*************** a05741b50f736591adc069c7244a103e  libstd
*** 68108,68113 ****
--- 68510,68516 ----
  8f2b580803b18ee679e34ee888753f21  libstdc++-v3/testsuite/17_intro/using_namespace_std_exp_neg.cc
  d68387ff0847a1819d716f6f13e011cf  libstdc++-v3/testsuite/17_intro/using_namespace_std_tr1_neg.cc
  81ae9cc366ec1e08e14922ae6ed58093  libstdc++-v3/testsuite/18_support/50594.cc
+ 2f87c47ecadaa7e8377f15d2db944354  libstdc++-v3/testsuite/18_support/51333.cc
  e7b627512e533ba71656029c1be3f386  libstdc++-v3/testsuite/18_support/aligned_alloc/aligned_alloc.cc
  a0aa80ca698f9e46814ff0429ec44921  libstdc++-v3/testsuite/18_support/bad_alloc/cons_virtual_derivation.cc
  4bbd46b813c0fc3fb2b370345304c9ac  libstdc++-v3/testsuite/18_support/bad_alloc/what.cc
*************** df4fa8ef010d4fca972064a6e83e4db8  libstd
*** 68335,68341 ****
  410ec35828c3a71425f54b223b3bb51c  libstdc++-v3/testsuite/20_util/any/cons/in_place.cc
  6eb14dec3ecc152f576979da6c084904  libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc
  136c33cb00218360857886d5e07f386f  libstdc++-v3/testsuite/20_util/any/make_any.cc
! 8d87e9a40ff5af1f9bde5a93888f33f1  libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
  767380f2ed0fed356e05bd83627f2451  libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc
  f47538cfe0f5fe3ca0c9b220558925d3  libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc
  7ad55da7bbd6a46d3c6202b3051bba6c  libstdc++-v3/testsuite/20_util/any/misc/swap.cc
--- 68738,68744 ----
  410ec35828c3a71425f54b223b3bb51c  libstdc++-v3/testsuite/20_util/any/cons/in_place.cc
  6eb14dec3ecc152f576979da6c084904  libstdc++-v3/testsuite/20_util/any/cons/nontrivial.cc
  136c33cb00218360857886d5e07f386f  libstdc++-v3/testsuite/20_util/any/make_any.cc
! fb618368f6349ea57e9f7470fbda974d  libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
  767380f2ed0fed356e05bd83627f2451  libstdc++-v3/testsuite/20_util/any/misc/any_cast_neg.cc
  f47538cfe0f5fe3ca0c9b220558925d3  libstdc++-v3/testsuite/20_util/any/misc/any_cast_no_rtti.cc
  7ad55da7bbd6a46d3c6202b3051bba6c  libstdc++-v3/testsuite/20_util/any/misc/swap.cc
*************** b25437bf4feabc355d0f15d75780d8a9  libstd
*** 68441,68446 ****
--- 68844,68850 ----
  468a2d0c445aa90983491aa38c340a8c  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs.cc
  6b25fa5aa8feb22cc33639556537c21a  libstdc++-v3/testsuite/20_util/enable_if/requirements/typedefs_neg.cc
  a0b2cd382a67269f6784e9a92775ed89  libstdc++-v3/testsuite/20_util/enable_shared_from_this/56383.cc
+ ee1c332aa27e594d135fb4984431eb3f  libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
  094c11c1ade6b8e8b3b4348e36e34535  libstdc++-v3/testsuite/20_util/enable_shared_from_this/cons/constexpr.cc
  5f329f1bff01d939f0cfe727b9714186  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/assign.cc
  d38906336cd181e8af40647671dcbbf0  libstdc++-v3/testsuite/20_util/enable_shared_from_this/members/const.cc
*************** c4c0928af94c8d4861358027300ed38c  libstd
*** 68523,68528 ****
--- 68927,68933 ----
  40e88b2214cb93945c3eb42786f3803c  libstdc++-v3/testsuite/20_util/has_virtual_destructor/value.cc
  1ae2c9530ba77b9255c45abe5c4dd946  libstdc++-v3/testsuite/20_util/hash/52931.cc
  f9c0219be474f886caae6dbb3050d23a  libstdc++-v3/testsuite/20_util/hash/60970.cc
+ 4eaefc7af2963267cf693a946b55afe9  libstdc++-v3/testsuite/20_util/hash/89629.cc
  ce939b5d121728a1244f095cc02d56b5  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_flip_set.cc
  1a69b1da2430454e96314879314f0edd  libstdc++-v3/testsuite/20_util/hash/chi2_q_bit_string_set.cc
  c862e5af9d439a006f45873e3e423404  libstdc++-v3/testsuite/20_util/hash/chi2_q_document_words.cc
*************** e29a8e3020c1e7a384893232edb5d9ea  libstd
*** 69174,69180 ****
  d3078ae84c4c4a660d43973332f9ee23  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc
  6f18ca36ef8b4e04b4dd114d83863ca0  libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc
  695aac41a2e8bfbb93a4fd36c007b250  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
! ae6395d133479f5abddb8ddf0db9d136  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
  e16018c88229234f4bde9f910d616673  libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
  a9dca44591fcc31b467607bd0d7effd6  libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
  7287e1bd9d25ac220b05c0be8065197e  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc
--- 69579,69586 ----
  d3078ae84c4c4a660d43973332f9ee23  libstdc++-v3/testsuite/20_util/underlying_type/requirements/typedefs-2.cc
  6f18ca36ef8b4e04b4dd114d83863ca0  libstdc++-v3/testsuite/20_util/unique_ptr/54351.cc
  695aac41a2e8bfbb93a4fd36c007b250  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635.cc
! ef2648652b9d68ecb726965e28aeee1c  libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
! 8fb0f2007f9a8170e29b505990a47cf0  libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
  e16018c88229234f4bde9f910d616673  libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
  a9dca44591fcc31b467607bd0d7effd6  libstdc++-v3/testsuite/20_util/unique_ptr/assign/cv_qual.cc
  7287e1bd9d25ac220b05c0be8065197e  libstdc++-v3/testsuite/20_util/unique_ptr/assign/move.cc
*************** eac937d427af84501c9ea72cddc3c29e  libstd
*** 69189,69195 ****
  5dc436dc2fffd2cab284aa79eee70732  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
  bbeb0262e8fc3021525962c586df84ba  libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc
  778a4da95002a92aeaef688b44e5b664  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
! 82633c3d74050bc4fb78de5159e0aae6  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
  80c4859db1f103d32ee165bcf3efd68d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc
  625a84ce4b90079054b81c60886122df  libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc
  bee7be33cdf693573fffc08c157838b9  libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc
--- 69595,69601 ----
  5dc436dc2fffd2cab284aa79eee70732  libstdc++-v3/testsuite/20_util/unique_ptr/cons/constexpr.cc
  bbeb0262e8fc3021525962c586df84ba  libstdc++-v3/testsuite/20_util/unique_ptr/cons/convertible_neg.cc
  778a4da95002a92aeaef688b44e5b664  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual.cc
! a3cc018fafaa5fa847f1ac52fe9d16c6  libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
  80c4859db1f103d32ee165bcf3efd68d  libstdc++-v3/testsuite/20_util/unique_ptr/cons/deduction_neg.cc
  625a84ce4b90079054b81c60886122df  libstdc++-v3/testsuite/20_util/unique_ptr/cons/default.cc
  bee7be33cdf693573fffc08c157838b9  libstdc++-v3/testsuite/20_util/unique_ptr/cons/incomplete.cc
*************** ca81a48619b78d25db0d67d261cded7f  libstd
*** 69537,69542 ****
--- 69943,69949 ----
  43fe83b5a96bda0bc9df150f3c47e0ba  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/char/1.cc
  71638fb4ac0f80b78387519750158eb9  libstdc++-v3/testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc
  7104cca52c6c6a9076122af255b6f67f  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/2.cc
+ f309f190d4d1b8faf95f31a4714a7fd4  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
  2ab97edf19c09c17314ae78467413026  libstdc++-v3/testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc
  c55e12bad78c344a1ca62c49d297153d  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/char/1.cc
  a6f49ca62b781914f628c01bf48fccf7  libstdc++-v3/testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc
*************** c6b20dad7dab04356b2ccff38941f054  libstd
*** 70370,70376 ****
  8ebcd9150bb64bea5bef314db97b9a20  libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc
  d5801af7ff547530aff50b573299edca  libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc
  6f1606d773fe7422060929eac6a57c7a  libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc
! 3be81132822bf133a94852ad1b8f18f7  libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
  7099d4baa79d45b330d0916ade555ad9  libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc
  c7ded4abef28f6c038b50dd3b12a40ef  libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc
  ea7076e9e1a48e649d718092d4b92ff3  libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc
--- 70777,70783 ----
  8ebcd9150bb64bea5bef314db97b9a20  libstdc++-v3/testsuite/23_containers/forward_list/allocator/swap.cc
  d5801af7ff547530aff50b573299edca  libstdc++-v3/testsuite/23_containers/forward_list/capacity/1.cc
  6f1606d773fe7422060929eac6a57c7a  libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc
! 5118ce558aff33c609fc1683597fae0e  libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
  7099d4baa79d45b330d0916ade555ad9  libstdc++-v3/testsuite/23_containers/forward_list/cons/1.cc
  c7ded4abef28f6c038b50dd3b12a40ef  libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc
  ea7076e9e1a48e649d718092d4b92ff3  libstdc++-v3/testsuite/23_containers/forward_list/cons/11.cc
*************** ce2869bd9b6d50f8b27e7e41fc3201d1  libstd
*** 70436,70441 ****
--- 70843,70849 ----
  380d09852cdcf5b1be797f3621185d04  libstdc++-v3/testsuite/23_containers/forward_list/operations/5.cc
  1c900f4a094eca035562fe65f550f5ac  libstdc++-v3/testsuite/23_containers/forward_list/operations/6.cc
  9c5e1f39ff6d5d76d2891b7e6f5690d6  libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc
+ 2582009bfec0cfdae2cbb12d5e9d1425  libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
  aa7d45fa0aea8f2bc702c21364164db8  libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc
  4142604b961afb1cfd399981d981a620  libstdc++-v3/testsuite/23_containers/forward_list/range_access.cc
  503d59839ca02e30fceb412b9a7b22e2  libstdc++-v3/testsuite/23_containers/forward_list/requirements/citerators.cc
*************** c562377ead8438d94903a9f791af2973  libstd
*** 73768,73774 ****
  01924deb38d26b5572b9d6606eddb865  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
  ba180fc82cdb01fbcfa75128486ba936  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
  c2e593cd92bdba8b5a20b351f7387410  libstdc++-v3/testsuite/Makefile.am
! 865af2aa0b305bd39ca62071775d2bbf  libstdc++-v3/testsuite/Makefile.in
  197f1c6ac1cc489647cc12c718778a3c  libstdc++-v3/testsuite/abi/30586.cc
  1162bb8775b2aa998db7c40ce2a7e110  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
  8435c67d31b35c215c59464d225c7f12  libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
--- 74176,74182 ----
  01924deb38d26b5572b9d6606eddb865  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/explicit_instantiation.cc
  ba180fc82cdb01fbcfa75128486ba936  libstdc++-v3/testsuite/30_threads/unique_lock/requirements/typedefs.cc
  c2e593cd92bdba8b5a20b351f7387410  libstdc++-v3/testsuite/Makefile.am
! d3997e9c2527bf5c19e108ff9c16a2ad  libstdc++-v3/testsuite/Makefile.in
  197f1c6ac1cc489647cc12c718778a3c  libstdc++-v3/testsuite/abi/30586.cc
  1162bb8775b2aa998db7c40ce2a7e110  libstdc++-v3/testsuite/abi/cxx_runtime_only_linkage.cc
  8435c67d31b35c215c59464d225c7f12  libstdc++-v3/testsuite/abi/demangle/abi_examples/01.cc
*************** aebeef13fe0ded6e91305cc09ad8d48a  libstd
*** 73943,73950 ****
  7285e8a7d97e92f5251d32b46c4b5762  libstdc++-v3/testsuite/experimental/any/cons/2.cc
  25b556ebfd34357f964ab02de11f8fc3  libstdc++-v3/testsuite/experimental/any/cons/aligned.cc
  bc2267c79c7db5cae0d9450e338e714a  libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
! f07604fccc570f95ea130f8889734d92  libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
! d1ce452221433cce9f78ad729189beb9  libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
  7581ece498e2323f89f69a9ebf7b7b6b  libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc
  fb7d818e3689f68fbc8be4dbd38e3b25  libstdc++-v3/testsuite/experimental/any/misc/swap.cc
  e5cac4e9683d2796e2423d7c962c52d0  libstdc++-v3/testsuite/experimental/any/modifiers/1.cc
--- 74351,74358 ----
  7285e8a7d97e92f5251d32b46c4b5762  libstdc++-v3/testsuite/experimental/any/cons/2.cc
  25b556ebfd34357f964ab02de11f8fc3  libstdc++-v3/testsuite/experimental/any/cons/aligned.cc
  bc2267c79c7db5cae0d9450e338e714a  libstdc++-v3/testsuite/experimental/any/cons/nontrivial.cc
! cc7a330af5dce1a44091f54137ccb03b  libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
! 3ac7daa05ce7281b6d2662f259dbe2c0  libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
  7581ece498e2323f89f69a9ebf7b7b6b  libstdc++-v3/testsuite/experimental/any/misc/any_cast_no_rtti.cc
  fb7d818e3689f68fbc8be4dbd38e3b25  libstdc++-v3/testsuite/experimental/any/misc/swap.cc
  e5cac4e9683d2796e2423d7c962c52d0  libstdc++-v3/testsuite/experimental/any/modifiers/1.cc
*************** d1d1d7ad18f3ef72922ea190a4564f64  libstd
*** 73987,73992 ****
--- 74395,74401 ----
  2040d682b44f8756e7a9210d46f6069b  libstdc++-v3/testsuite/experimental/filesystem/path/compare/strings.cc
  80bafbf13f8c3f2b6c4ca7e88b732a50  libstdc++-v3/testsuite/experimental/filesystem/path/concat/path.cc
  df1aee485cfaa2a0d9c3979b4e5759df  libstdc++-v3/testsuite/experimental/filesystem/path/concat/strings.cc
+ 4415abf9e4df4ee3452d0b32f2b7b994  libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc
  6fbfa14708154012468c7335af563b41  libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc
  41ad19ed6c563d982f835a7ca14274a1  libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc
  fafe4b2c3a422ff8b58a9e1593c63ed5  libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc
*************** d29cd708aa7a3631c5609769981ea24c  libstd
*** 74065,74070 ****
--- 74474,74480 ----
  53d343d6ffb01123f090bc970ed1488c  libstdc++-v3/testsuite/experimental/memory_resource/70966.cc
  6411e7e2eb5d28ea505b455ec075c5db  libstdc++-v3/testsuite/experimental/memory_resource/null_memory_resource.cc
  e5c68086b3dfcc81fd40b2fd47087b85  libstdc++-v3/testsuite/experimental/memory_resource/resource_adaptor.cc
+ fe61dde57dd62aeded86017a49baf89b  libstdc++-v3/testsuite/experimental/names.cc
  6ffb7a2ced2a3c8b93406e76ab761edc  libstdc++-v3/testsuite/experimental/numeric/77801.cc
  b10dadd0aaf21af8fc2424241f710e00  libstdc++-v3/testsuite/experimental/numeric/gcd.cc
  af50993803ab949c47cea2c641c55919  libstdc++-v3/testsuite/experimental/numeric/lcm.cc
*************** cd6c8f1130990a2ad276c58a9e75d692  libstd
*** 75484,75490 ****
  ff05985e45aaa715c0e56af56bc93b72  libstdc++-v3/testsuite/util/testsuite_fs.h
  3c1d334e524777a594413f9c47af37f5  libstdc++-v3/testsuite/util/testsuite_greedy_ops.h
  897056d3840a4c98b7f3a54fec263601  libstdc++-v3/testsuite/util/testsuite_hooks.cc
! 61a4eb6f425486a4eab62b43f6a09930  libstdc++-v3/testsuite/util/testsuite_hooks.h
  3de4adc73cde73a76dcad47a2a8d6103  libstdc++-v3/testsuite/util/testsuite_io.h
  ae4f6b785cfba28c4bd3f25020e2e3fc  libstdc++-v3/testsuite/util/testsuite_iterators.h
  070dce43e6c025fd8a05dcab8d49d5ad  libstdc++-v3/testsuite/util/testsuite_new_operators.h
--- 75894,75900 ----
  ff05985e45aaa715c0e56af56bc93b72  libstdc++-v3/testsuite/util/testsuite_fs.h
  3c1d334e524777a594413f9c47af37f5  libstdc++-v3/testsuite/util/testsuite_greedy_ops.h
  897056d3840a4c98b7f3a54fec263601  libstdc++-v3/testsuite/util/testsuite_hooks.cc
! d941482fff1b22424902f824006ca7c0  libstdc++-v3/testsuite/util/testsuite_hooks.h
  3de4adc73cde73a76dcad47a2a8d6103  libstdc++-v3/testsuite/util/testsuite_io.h
  ae4f6b785cfba28c4bd3f25020e2e3fc  libstdc++-v3/testsuite/util/testsuite_iterators.h
  070dce43e6c025fd8a05dcab8d49d5ad  libstdc++-v3/testsuite/util/testsuite_new_operators.h
*************** ead7378c068848783ee20a8f22dfa62b  libstd
*** 75498,75504 ****
  534d202f4467aac0499eab3ddb5a842a  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
  7a2b83d2d625a4022b9213ceb75f5897  libtool.m4
! 54812e37c1a7dc1c3d11c80cc562052e  libvtv/ChangeLog
  2e04be12600367e07451f404a7fc1fa3  libvtv/Makefile.am
  b025f16ebe06ec16aa2957e5003533a0  libvtv/Makefile.in
  4ce86f8604e6c86211a4cb2025ffc53e  libvtv/acinclude.m4
--- 75908,75914 ----
  534d202f4467aac0499eab3ddb5a842a  libstdc++-v3/testsuite/util/thread/all.h
  b950d655469c477755252b1e18009596  libtool-ldflags
  7a2b83d2d625a4022b9213ceb75f5897  libtool.m4
! d60890b2c5f7a91d51ebaacebc830777  libvtv/ChangeLog
  2e04be12600367e07451f404a7fc1fa3  libvtv/Makefile.am
  b025f16ebe06ec16aa2957e5003533a0  libvtv/Makefile.in
  4ce86f8604e6c86211a4cb2025ffc53e  libvtv/acinclude.m4
*************** cd997674ad70ed883d545f2687b35af2  libvtv
*** 75581,75587 ****
  8f1b5ecc552ea50355dedd9334c68ffb  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  4e65f2f6a05f5eca82ba79c6363aa3db  ltmain.sh
! 66d7cc36273b19c0436f528560659379  lto-plugin/ChangeLog
  1d51b0f01f4db0f88d302ab0d691514e  lto-plugin/Makefile.am
  3bd8be597a6d5934a69399816aec878a  lto-plugin/Makefile.in
  b8a21afb1f79664ea28d8892b4907746  lto-plugin/aclocal.m4
--- 75991,75997 ----
  8f1b5ecc552ea50355dedd9334c68ffb  libvtv/vtv_utils.h
  247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
  4e65f2f6a05f5eca82ba79c6363aa3db  ltmain.sh
! 2b05b388010c43e76781ee377eb43ec6  lto-plugin/ChangeLog
  1d51b0f01f4db0f88d302ab0d691514e  lto-plugin/Makefile.am
  3bd8be597a6d5934a69399816aec878a  lto-plugin/Makefile.in
  b8a21afb1f79664ea28d8892b4907746  lto-plugin/aclocal.m4
*************** dee72a6a60e99528b0d17bf3ff9a1e15  ltopti
*** 75594,75600 ****
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 7a98102cec1c886ca1316585d17457ce  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  e70ffb6559f8817db41ee1e69bc60287  maintainer-scripts/branch_changer.py
  36a1c429023c0a0c2f90889e6cf87125  maintainer-scripts/crontab
--- 76004,76010 ----
  bc2f6032c98896249eadb56177c7d357  ltsugar.m4
  c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
  293853a13b7e218e3a4342cf85fbbf25  lt~obsolete.m4
! 802652283f8a7cee67f2ce55916d2c76  maintainer-scripts/ChangeLog
  33c7bc2d2c55956dfac85a05d8a80eff  maintainer-scripts/README
  e70ffb6559f8817db41ee1e69bc60287  maintainer-scripts/branch_changer.py
  36a1c429023c0a0c2f90889e6cf87125  maintainer-scripts/crontab
*************** fbe2467afef81c41c166173adeb0ee20  mkdep
*** 75611,75617 ****
  cf2baa0854f564a7785307e79f155efc  symlink-tree
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! 4bce06b51c5b0b5d0974a04869e2a515  zlib/ChangeLog
  2effeeacadeab8edd2c3c4ae856f019d  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
--- 76021,76027 ----
  cf2baa0854f564a7785307e79f155efc  symlink-tree
  cb06c1be6a41d68b0a65e0c1a91752bc  ylwrap
  03bf3ba8089f4bf475ef4035cf316a47  zlib/CMakeLists.txt
! ce9974c2de8d2ee92ee4b5880c26a107  zlib/ChangeLog
  2effeeacadeab8edd2c3c4ae856f019d  zlib/ChangeLog.gcj
  0e9a37be8e3b85cc0ccf60504064c297  zlib/ChangeLog.jit
  b7a1991f01daea3efe108a215c5514a5  zlib/FAQ
diff -Nrcpad gcc-7.4.0/NEWS gcc-7.5.0/NEWS
*** gcc-7.4.0/NEWS	Thu Dec  6 09:59:16 2018
--- gcc-7.5.0/NEWS	Thu Nov 14 07:35:46 2019
*************** http://gcc.gnu.org/gcc-7/index.html
*** 9,35 ****
  
                                GCC 7 Release Series
  
!    Dec 6, 2018
  
     The [1]GNU project and the GCC developers are pleased to announce the
!    release of GCC 7.4.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 7.3 relative to previous releases of GCC.
  
  Release History
  
     GCC 7.4
!           Dec 6, 2018 ([2]changes, [3]documentation)
  
     GCC 7.3
!           Jan 25, 2018 ([4]changes, [5]documentation)
  
     GCC 7.2
!           Aug 14, 2017 ([6]changes, [7]documentation)
  
     GCC 7.1
!           May 2, 2017 ([8]changes, [9]documentation)
  
  References and Acknowledgements
  
--- 9,38 ----
  
                                GCC 7 Release Series
  
!    Nov 14, 2019
  
     The [1]GNU project and the GCC developers are pleased to announce the
!    release of GCC 7.5.
  
     This release is a bug-fix release, containing fixes for regressions in
!    GCC 7.4 relative to previous releases of GCC.
  
  Release History
  
+    GCC 7.5
+           Nov 14, 2019 ([2]changes, [3]documentation)
+ 
     GCC 7.4
!           Dec 6, 2018 ([4]changes, [5]documentation)
  
     GCC 7.3
!           Jan 25, 2018 ([6]changes, [7]documentation)
  
     GCC 7.2
!           Aug 14, 2017 ([8]changes, [9]documentation)
  
     GCC 7.1
!           May 2, 2017 ([10]changes, [11]documentation)
  
  References and Acknowledgements
  
*************** References and Acknowledgements
*** 37,94 ****
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
  
!    A list of [10]successful builds is updated as new information becomes
     available.
  
     The GCC developers would like to thank the numerous people that have
     contributed new features, improvements, bug fixes, and other changes as
!    well as test results to GCC. This [11]amazing group of volunteers is
     what makes GCC successful.
  
!    For additional information about GCC please refer to the [12]GCC
!    project web site or contact the [13]GCC development mailing list.
  
!    To obtain GCC please use [14]our mirror sites or [15]our SVN server.
  
  
      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
!    2018-12-06[22].
  
  References
  
     1. http://www.gnu.org/
     2. http://gcc.gnu.org/gcc-7/changes.html
!    3. http://gcc.gnu.org/onlinedocs/7.4.0/
     4. http://gcc.gnu.org/gcc-7/changes.html
!    5. http://gcc.gnu.org/onlinedocs/7.3.0/
     6. http://gcc.gnu.org/gcc-7/changes.html
!    7. http://gcc.gnu.org/onlinedocs/7.2.0/
     8. http://gcc.gnu.org/gcc-7/changes.html
!    9. http://gcc.gnu.org/onlinedocs/7.1.0/
!   10. http://gcc.gnu.org/gcc-7/buildstat.html
!   11. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   12. http://gcc.gnu.org/index.html
!   13. mailto:gcc@gcc.gnu.org
!   14. http://gcc.gnu.org/mirrors.html
!   15. http://gcc.gnu.org/svn.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-7/changes.html
  
--- 40,99 ----
     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 SVN server.
  
  
      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
!    2019-11-14[24].
  
  References
  
     1. http://www.gnu.org/
     2. http://gcc.gnu.org/gcc-7/changes.html
!    3. http://gcc.gnu.org/onlinedocs/7.5.0/
     4. http://gcc.gnu.org/gcc-7/changes.html
!    5. http://gcc.gnu.org/onlinedocs/7.4.0/
     6. http://gcc.gnu.org/gcc-7/changes.html
!    7. http://gcc.gnu.org/onlinedocs/7.3.0/
     8. http://gcc.gnu.org/gcc-7/changes.html
!    9. http://gcc.gnu.org/onlinedocs/7.2.0/
!   10. http://gcc.gnu.org/gcc-7/changes.html
!   11. http://gcc.gnu.org/onlinedocs/7.1.0/
!   12. http://gcc.gnu.org/gcc-7/buildstat.html
!   13. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
!   14. http://gcc.gnu.org/index.html
!   15. mailto:gcc@gcc.gnu.org
!   16. http://gcc.gnu.org/mirrors.html
!   17. http://gcc.gnu.org/svn.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-7/changes.html
  
*************** GCC 7.4
*** 1139,1158 ****
     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
!    2018-12-06[34].
  
  References
  
--- 1144,1170 ----
     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
!    2019-11-14[35].
  
  References
  
*************** References
*** 1183,1200 ****
    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/onlinedocs/
!   29. mailto:gcc-help@gcc.gnu.org
!   30. mailto:gcc@gcc.gnu.org
!   31. https://gcc.gnu.org/lists.html
!   32. https://www.fsf.org/
!   33. https://gcc.gnu.org/about.html
!   34. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-6/index.html
  
                                GCC 6 Release Series
  
     October 26, 2018
  
     The [1]GNU project and the GCC developers are pleased to announce the
--- 1195,1215 ----
    25. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.3
    26. https://www.gaisler.com/index.php/information/app-tech-notes
    27. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.4
!   28. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=7.5
!   29. https://gcc.gnu.org/onlinedocs/
!   30. mailto:gcc-help@gcc.gnu.org
!   31. mailto:gcc@gcc.gnu.org
!   32. https://gcc.gnu.org/lists.html
!   33. https://www.fsf.org/
!   34. https://gcc.gnu.org/about.html
!   35. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-6/index.html
  
                                GCC 6 Release Series
  
+    (This release series is no longer supported.)
+ 
     October 26, 2018
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** References and Acknowledgements
*** 1252,1258 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2018-10-26[24].
  
  References
  
--- 1267,1273 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2019-06-09[24].
  
  References
  
*************** http://gcc.gnu.org/gcc-5/index.html
*** 2033,2038 ****
--- 2048,2055 ----
  
                                GCC 5 Release Series
  
+    (This release series is no longer supported.)
+ 
     October 10, 2017
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** References and Acknowledgements
*** 2090,2096 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2018-09-30[24].
  
  References
  
--- 2107,2113 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2019-06-09[24].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.9/index.html
*** 3062,3067 ****
--- 3079,3086 ----
  
                               GCC 4.9 Release Series
  
+    (This release series is no longer supported.)
+ 
     Aug 3, 2016
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.9/index.html
*** 3070,3077 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.9.3 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.9.4
--- 3089,3094 ----
*************** References and Acknowledgements
*** 3121,3127 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2018-09-30[24].
  
  References
  
--- 3138,3144 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2019-06-09[24].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.8/index.html
*** 3805,3810 ****
--- 3822,3829 ----
  
                               GCC 4.8 Release Series
  
+    (This release series is no longer supported.)
+ 
     June 23, 2015
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.8/index.html
*** 3813,3820 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.8.4 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.8.5
--- 3832,3837 ----
*************** References and Acknowledgements
*** 3867,3873 ****
     provided this notice is preserved.
  
     These pages are [25]maintained by the GCC team. Last modified
!    2018-09-30[26].
  
  References
  
--- 3884,3890 ----
     provided this notice is preserved.
  
     These pages are [25]maintained by the GCC team. Last modified
!    2019-06-09[26].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.7/index.html
*** 4676,4681 ****
--- 4693,4700 ----
  
                               GCC 4.7 Release Series
  
+    (This release series is no longer supported.)
+ 
     June 12, 2014
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.7/index.html
*** 4684,4691 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.7.3 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.7.4
--- 4703,4708 ----
*************** References and Acknowledgements
*** 4735,4741 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2018-09-30[24].
  
  References
  
--- 4752,4758 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2019-06-09[24].
  
  References
  
*************** void foo (char *a, const char *b, const
*** 4977,4984 ****
  
  New Languages and Language specific improvements
  
!      * Version 3.1 of the [5]OpenMP specification is now supported for the
!        C, C++, and Fortran compilers.
  
    Ada
  
--- 4994,5001 ----
  
  New Languages and Language specific improvements
  
!      * Version 3.1 of the OpenMP specification is now supported for the C,
!        C++, and Fortran compilers.
  
    Ada
  
*************** New Languages and Language specific impr
*** 5005,5011 ****
         constructs, use the -fgnu-tm option.
         Support is currently available for Alpha, ARM, PowerPC, SH, SPARC,
         and 32-bit/64-bit x86 platforms.
!        For more details on transactional memory see [6]the GCC WiKi.
       * Support for atomic operations specifying the C++11/C11 memory model
         has been added. These new __atomic routines replace the existing
         __sync built-in routines.
--- 5022,5028 ----
         constructs, use the -fgnu-tm option.
         Support is currently available for Alpha, ARM, PowerPC, SH, SPARC,
         and 32-bit/64-bit x86 platforms.
!        For more details on transactional memory see [5]the GCC WiKi.
       * Support for atomic operations specifying the C++11/C11 memory model
         has been added. These new __atomic routines replace the existing
         __sync built-in routines.
*************** New Languages and Language specific impr
*** 5016,5022 ****
         library functions is available on the GCC atomic wiki in the
         "External Atomics Library" section.
         For more details on the memory models and features, see the
!        [7]atomic wiki.
       * When a binary operation is performed on vector types and one of the
         operands is a uniform vector, it is possible to replace the vector
         with the generating element. For example:
--- 5033,5039 ----
         library functions is available on the GCC atomic wiki in the
         "External Atomics Library" section.
         For more details on the memory models and features, see the
!        [6]atomic wiki.
       * When a binary operation is performed on vector types and one of the
         operands is a uniform vector, it is possible to replace the vector
         with the generating element. For example:
*************** res = a - x;  /* means a - {x,x,x,x}  */
*** 5046,5052 ****
       * G++ now accepts the -std=c++11, -std=gnu++11, and -Wc++11-compat
         options, which are equivalent to -std=c++0x, -std=gnu++0x, and
         -Wc++0x-compat, respectively.
!      * G++ now implements [8]C++11 extended friend syntax:
  
  template<class W>
  class Q
--- 5063,5069 ----
       * G++ now accepts the -std=c++11, -std=gnu++11, and -Wc++11-compat
         options, which are equivalent to -std=c++0x, -std=gnu++0x, and
         -Wc++0x-compat, respectively.
!      * G++ now implements [7]C++11 extended friend syntax:
  
  template<class W>
  class Q
*************** struct B
*** 5061,5067 ****
    int ar[Q<B>::I];
  };
  
!      * Thanks to Ville Voutilainen, G++ now implements [9]C++11 explicit
         override control.
  
  struct B {
--- 5078,5084 ----
    int ar[Q<B>::I];
  };
  
!      * Thanks to Ville Voutilainen, G++ now implements [8]C++11 explicit
         override control.
  
  struct B {
*************** struct D : B {
*** 5078,5103 ****
  struct E final { };
  struct F: E { }; // error: deriving from final class
  
!      * G++ now implements [10]C++11 non-static data member initializers.
  
  struct A {
    int i = 42;
  } a; // initializes a.i to 42
  
!      * Thanks to Ed Smith-Rowland, G++ now implements [11]C++11
         user-defined literals.
  
  // Not actually a good approximation.  :)
  constexpr long double operator"" _degrees (long double d) { return d * 0.0175; }
  long double pi = 180.0_degrees;
  
!      * G++ now implements [12]C++11 alias-declarations.
  
  template <class T> using Ptr = T*;
  Ptr<int> ip;  // decltype(ip) is int*
  
       * Thanks to Ville Voutilainen and Pedro Lamarao, G++ now implements
!        [13]C++11 delegating constructors.
  
  struct A {
    A(int);
--- 5095,5120 ----
  struct E final { };
  struct F: E { }; // error: deriving from final class
  
!      * G++ now implements [9]C++11 non-static data member initializers.
  
  struct A {
    int i = 42;
  } a; // initializes a.i to 42
  
!      * Thanks to Ed Smith-Rowland, G++ now implements [10]C++11
         user-defined literals.
  
  // Not actually a good approximation.  :)
  constexpr long double operator"" _degrees (long double d) { return d * 0.0175; }
  long double pi = 180.0_degrees;
  
!      * G++ now implements [11]C++11 alias-declarations.
  
  template <class T> using Ptr = T*;
  Ptr<int> ip;  // decltype(ip) is int*
  
       * Thanks to Ville Voutilainen and Pedro Lamarao, G++ now implements
!        [12]C++11 delegating constructors.
  
  struct A {
    A(int);
*************** const int &y = f(2);
*** 5176,5189 ****
         Using-declarations are to be used instead. Furthermore, some
         efforts have been made to improve the support of class scope
         using-declarations. In particular, using-declarations referring to
!        a dependent type now work as expected ([14]bug c++/14258).
       * The ELF symbol visibility of a template instantiation is now
         properly constrained by the visibility of its template arguments
!        ([15]bug c++/35688).
  
      Runtime Library (libstdc++)
  
!      * [16]Improved experimental support for the new ISO C++ standard,
         C++11, including:
            + using noexcept in most of the library;
            + implementations of pointer_traits, allocator_traits and
--- 5193,5206 ----
         Using-declarations are to be used instead. Furthermore, some
         efforts have been made to improve the support of class scope
         using-declarations. In particular, using-declarations referring to
!        a dependent type now work as expected ([13]bug c++/14258).
       * The ELF symbol visibility of a template instantiation is now
         properly constrained by the visibility of its template arguments
!        ([14]bug c++/35688).
  
      Runtime Library (libstdc++)
  
!      * [15]Improved experimental support for the new ISO C++ standard,
         C++11, including:
            + using noexcept in most of the library;
            + implementations of pointer_traits, allocator_traits and
*************** const int &y = f(2);
*** 5199,5225 ****
  
    Fortran
  
!      * The compile flag [17]-fstack-arrays has been added, which causes
         all local arrays to be put on stack memory. For some programs this
         will improve the performance significantly. If your program uses
         very large local arrays, it is possible that you will have to
         extend your runtime limits for stack memory.
!      * The [18]-Ofast flag now also implies [19]-fno-protect-parens and
!        [20]-fstack-arrays.
       * Front-end optimizations can now be selected by the
!        [21]-ffrontend-optimize option and deselected by the
         -fno-frontend-optimize option.
       * When front-end optimization removes a function call,
!        [22]-Wfunction-elimination warns about that.
       * When performing front-end-optimization, the
!        [23]-faggressive-function-elimination option allows the removal of
         duplicate function calls even for impure functions.
!      * The flag [24]-Wreal-q-constant has been added, which warns if
         floating-point literals have been specified using q (such as
         1.0q0); the q marker is now supported as a vendor extension to
         denote quad precision (REAL(16) or, if not available, REAL(10)).
         Consider using a kind parameter (such as in 1.0_qp) instead, which
!        can be obtained via [25]SELECTED_REAL_KIND.
       * The GFORTRAN_USE_STDERR environment variable has been removed. GNU
         Fortran now always prints error messages to standard error. If you
         wish to redirect standard error, please consult the manual for your
--- 5216,5242 ----
  
    Fortran
  
!      * The compile flag [16]-fstack-arrays has been added, which causes
         all local arrays to be put on stack memory. For some programs this
         will improve the performance significantly. If your program uses
         very large local arrays, it is possible that you will have to
         extend your runtime limits for stack memory.
!      * The [17]-Ofast flag now also implies [18]-fno-protect-parens and
!        [19]-fstack-arrays.
       * Front-end optimizations can now be selected by the
!        [20]-ffrontend-optimize option and deselected by the
         -fno-frontend-optimize option.
       * When front-end optimization removes a function call,
!        [21]-Wfunction-elimination warns about that.
       * When performing front-end-optimization, the
!        [22]-faggressive-function-elimination option allows the removal of
         duplicate function calls even for impure functions.
!      * The flag [23]-Wreal-q-constant has been added, which warns if
         floating-point literals have been specified using q (such as
         1.0q0); the q marker is now supported as a vendor extension to
         denote quad precision (REAL(16) or, if not available, REAL(10)).
         Consider using a kind parameter (such as in 1.0_qp) instead, which
!        can be obtained via [24]SELECTED_REAL_KIND.
       * The GFORTRAN_USE_STDERR environment variable has been removed. GNU
         Fortran now always prints error messages to standard error. If you
         wish to redirect standard error, please consult the manual for your
*************** const int &y = f(2);
*** 5229,5260 ****
         gfortran will now always abort the program. Whether a core dump is
         generated depends on the user environment settings; see the ulimit
         -c setting for POSIX shells, limit coredumpsize for C shells, and
!        the [26]WER user-mode dumps settings on Windows.
!      * The [27]-fbacktrace option is now enabled by default. When
         encountering a fatal error, gfortran will attempt to print a
         backtrace to standard error before aborting. It can be disabled
         with -fno-backtrace. Note: On POSIX targets with the addr2line
         utility from GNU binutils, GNU Fortran can print a backtrace with
         function name, file name, line number information in addition to
         the addresses; otherwise only the addresses are printed.
!      * [28]Fortran 2003:
            + Generic interface names which have the same name as derived
              types are now supported, which allows to write constructor
              functions. Note that Fortran does not support static
              constructor functions; only default initialization or an
              explicit structure-constructor initialization are available.
!           + [29]Polymorphic (class) arrays are now supported.
!      * [30]Fortran 2008:
            + Support for the DO CONCURRENT construct has been added, which
              allows the user to specify that individual loop iterations
              have no interdependencies.
!           + [31]Coarrays: Full single-image support except for polymorphic
              coarrays. Additionally, preliminary support for multiple
!             images via an MPI-based [32]coarray communication library has
              been added. Note: The library version is not yet usable as
              remote coarray access is not yet possible.
!      * [33]TS 29113:
!           + New flag [34]-std=f2008ts permits programs that are expected
              to conform to the Fortran 2008 standard and the draft
              Technical Specification (TS) 29113 on Further Interoperability
              of Fortran with C.
--- 5246,5277 ----
         gfortran will now always abort the program. Whether a core dump is
         generated depends on the user environment settings; see the ulimit
         -c setting for POSIX shells, limit coredumpsize for C shells, and
!        the [25]WER user-mode dumps settings on Windows.
!      * The [26]-fbacktrace option is now enabled by default. When
         encountering a fatal error, gfortran will attempt to print a
         backtrace to standard error before aborting. It can be disabled
         with -fno-backtrace. Note: On POSIX targets with the addr2line
         utility from GNU binutils, GNU Fortran can print a backtrace with
         function name, file name, line number information in addition to
         the addresses; otherwise only the addresses are printed.
!      * [27]Fortran 2003:
            + Generic interface names which have the same name as derived
              types are now supported, which allows to write constructor
              functions. Note that Fortran does not support static
              constructor functions; only default initialization or an
              explicit structure-constructor initialization are available.
!           + [28]Polymorphic (class) arrays are now supported.
!      * [29]Fortran 2008:
            + Support for the DO CONCURRENT construct has been added, which
              allows the user to specify that individual loop iterations
              have no interdependencies.
!           + [30]Coarrays: Full single-image support except for polymorphic
              coarrays. Additionally, preliminary support for multiple
!             images via an MPI-based [31]coarray communication library has
              been added. Note: The library version is not yet usable as
              remote coarray access is not yet possible.
!      * [32]TS 29113:
!           + New flag [33]-std=f2008ts permits programs that are expected
              to conform to the Fortran 2008 standard and the draft
              Technical Specification (TS) 29113 on Further Interoperability
              of Fortran with C.
*************** const int &y = f(2);
*** 5267,5273 ****
  
    Go
  
!      * GCC 4.7 implements the [35]Go 1 language standard. The library
         support in 4.7.0 is not quite complete, due to release timing.
         Release 4.7.1 includes complete support for Go 1. The Go library is
         from the Go 1.0.1 release.
--- 5284,5290 ----
  
    Go
  
!      * GCC 4.7 implements the [34]Go 1 language standard. The library
         support in 4.7.0 is not quite complete, due to release timing.
         Release 4.7.1 includes complete support for Go 1. The Go library is
         from the Go 1.0.1 release.
*************** New Targets and Target Specific Improvem
*** 5290,5296 ****
  
       * GCC now supports the XMEGA architecture. This requires GNU binutils
         2.22 or later.
!      * Support for the [36]named address spaces __flash, __flash1, ...,
         __flash5 and __memx has been added. These address spaces locate
         read-only data in flash memory and allow reading from flash memory
         by means of ordinary C code, i.e. without the need of (inline)
--- 5307,5313 ----
  
       * GCC now supports the XMEGA architecture. This requires GNU binutils
         2.22 or later.
!      * Support for the [35]named address spaces __flash, __flash1, ...,
         __flash5 and __memx has been added. These address spaces locate
         read-only data in flash memory and allow reading from flash memory
         by means of ordinary C code, i.e. without the need of (inline)
*************** int add_values (const __flash int *p, in
*** 5305,5316 ****
  
       * Support has been added for the AVR-specific configure option
         --with-avrlibc=yes in order to arrange for better integration of
!        [37]AVR-Libc. This configure option is supported in avr-gcc 4.7.2
         and newer and will only take effect in non-RTEMS configurations. If
         avr-gcc is configured for RTEMS, the option will be ignored which
!        is the same as specifying --with-avrlibc=no. See [38]PR54461 for
         more technical details.
!      * Support for AVR-specific [39]built-in functions has been added.
       * Support has been added for the signed and unsigned 24-bit scalar
         integer types __int24 and __uint24.
       * New command-line options -maccumulate-args, -mbranch-cost=cost and
--- 5322,5333 ----
  
       * Support has been added for the AVR-specific configure option
         --with-avrlibc=yes in order to arrange for better integration of
!        [36]AVR-Libc. This configure option is supported in avr-gcc 4.7.2
         and newer and will only take effect in non-RTEMS configurations. If
         avr-gcc is configured for RTEMS, the option will be ignored which
!        is the same as specifying --with-avrlibc=no. See [37]PR54461 for
         more technical details.
!      * Support for AVR-specific [38]built-in functions has been added.
       * Support has been added for the signed and unsigned 24-bit scalar
         integer types __int24 and __uint24.
       * New command-line options -maccumulate-args, -mbranch-cost=cost and
*************** void set_portb (uint8_t value)
*** 5392,5398 ****
         FMA, BMI, BMI2, LZCNT is available through -march=core-avx2.
       * Support for new AMD family 15h processors (Piledriver core) is now
         available through -march=bdver2 and -mtune=bdver2 options.
!      * Support for [40]the x32 psABI is now available through the -mx32
         option.
       * Windows mingw targets are using the -mms-bitfields option by
         default.
--- 5409,5415 ----
         FMA, BMI, BMI2, LZCNT is available through -march=core-avx2.
       * Support for new AMD family 15h processors (Piledriver core) is now
         available through -march=bdver2 and -mtune=bdver2 options.
!      * Support for [39]the x32 psABI is now available through the -mx32
         option.
       * Windows mingw targets are using the -mms-bitfields option by
         default.
*************** Other significant improvements
*** 5507,5563 ****
         the DW_AT_producer attribute string in the DWARF debugging
         information.
       * GCC now supports various new GNU extensions to the DWARF debugging
!        information format, like [41]entry value and [42]call site
!        information, [43]typed DWARF stack or [44]a more compact macro
         representation. Support for these extensions has been added to GDB
         7.4. They can be disabled through the -gstrict-dwarf command-line
         option.
  
  GCC 4.7.1
  
!    This is the [45]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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).
  
!    The Go front end in the 4.7.1 release fully supports the [46]Go 1
     language standard.
  
  GCC 4.7.2
  
!    This is the [47]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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 4.7.3
  
!    This is the [48]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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 4.7.4
  
!    This is the [49]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [50]GCC manuals. If that fails, the
!     [51]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 [52]gcc@gcc.gnu.org. All of [53]our lists have public
      archives.
  
!    Copyright (C) [54]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 [55]maintained by the GCC team. Last modified
!    2018-09-30[56].
  
  References
  
--- 5524,5580 ----
         the DW_AT_producer attribute string in the DWARF debugging
         information.
       * GCC now supports various new GNU extensions to the DWARF debugging
!        information format, like [40]entry value and [41]call site
!        information, [42]typed DWARF stack or [43]a more compact macro
         representation. Support for these extensions has been added to GDB
         7.4. They can be disabled through the -gstrict-dwarf command-line
         option.
  
  GCC 4.7.1
  
!    This is the [44]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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).
  
!    The Go front end in the 4.7.1 release fully supports the [45]Go 1
     language standard.
  
  GCC 4.7.2
  
!    This is the [46]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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 4.7.3
  
!    This is the [47]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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 4.7.4
  
!    This is the [48]list of problem reports (PRs) from GCC's bug tracking
     system that are known to be fixed in the 4.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).
  
  
      For questions related to the use of GCC, please consult these web
!     pages and the [49]GCC manuals. If that fails, the
!     [50]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 [51]gcc@gcc.gnu.org. All of [52]our lists have public
      archives.
  
!    Copyright (C) [53]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 [54]maintained by the GCC team. Last modified
!    2019-07-10[55].
  
  References
  
*************** References
*** 5565,5627 ****
     2. http://savannah.nongnu.org/bugs/?35407
     3. https://gcc.gnu.org/PR18145
     4. https://gcc.gnu.org/gcc-4.7/porting_to.html
!    5. http://www.openmp.org/specifications/
!    6. https://gcc.gnu.org/wiki/TransactionalMemory
!    7. https://gcc.gnu.org/wiki/Atomic/GCCMM
     8. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     9. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    10. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    11. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    12. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   13. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   14. https://gcc.gnu.org/PR14258
!   15. https://gcc.gnu.org/PR35688
!   16. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011
!   17. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
!   18. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689
!   19. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270
!   20. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
!   21. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfrontend-optimize_007d-275
!   22. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWfunction-elimination_007d-170
!   23. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270
!   24. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149
!   25. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html
!   26. https://docs.microsoft.com/en-us/windows/desktop/wer/collecting-user-mode-dumps
!   27. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183
!   28. https://gcc.gnu.org/wiki/Fortran2003Status
!   29. https://gcc.gnu.org/wiki/OOP
!   30. https://gcc.gnu.org/wiki/Fortran2008Status
!   31. https://gcc.gnu.org/wiki/Coarray
!   32. https://gcc.gnu.org/wiki/CoarrayLib
!   33. https://gcc.gnu.org/wiki/TS29113Status
!   34. 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
!   35. https://golang.org/doc/go1
!   36. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html
!   37. http://nongnu.org/avr-libc/
!   38. https://gcc.gnu.org/PR54461
!   39. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html
!   40. https://sites.google.com/site/x32abi/
!   41. http://www.dwarfstd.org/ShowIssue.php?issue=100909.1
!   42. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2
!   43. http://www.dwarfstd.org/ShowIssue.php?issue=140425.1
!   44. http://www.dwarfstd.org/ShowIssue.php?issue=110722.1
!   45. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1
!   46. https://golang.org/doc/go1
!   47. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2
!   48. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.3
!   49. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.4
!   50. https://gcc.gnu.org/onlinedocs/
!   51. mailto:gcc-help@gcc.gnu.org
!   52. mailto:gcc@gcc.gnu.org
!   53. https://gcc.gnu.org/lists.html
!   54. https://www.fsf.org/
!   55. https://gcc.gnu.org/about.html
!   56. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/index.html
  
                               GCC 4.6 Release Series
  
     April 12, 2013
  
     The [1]GNU project and the GCC developers are pleased to announce the
--- 5582,5645 ----
     2. http://savannah.nongnu.org/bugs/?35407
     3. https://gcc.gnu.org/PR18145
     4. https://gcc.gnu.org/gcc-4.7/porting_to.html
!    5. https://gcc.gnu.org/wiki/TransactionalMemory
!    6. https://gcc.gnu.org/wiki/Atomic/GCCMM
!    7. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     8. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
     9. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    10. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    11. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
    12. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html
!   13. https://gcc.gnu.org/PR14258
!   14. https://gcc.gnu.org/PR35688
!   15. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011
!   16. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
!   17. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#index-Ofast-689
!   18. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfno-protect-parens_007d-270
!   19. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfstack-arrays_007d-254
!   20. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfrontend-optimize_007d-275
!   21. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWfunction-elimination_007d-170
!   22. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270
!   23. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149
!   24. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html
!   25. https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps
!   26. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183
!   27. https://gcc.gnu.org/wiki/Fortran2003Status
!   28. https://gcc.gnu.org/wiki/OOP
!   29. https://gcc.gnu.org/wiki/Fortran2008Status
!   30. https://gcc.gnu.org/wiki/Coarray
!   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
!   49. https://gcc.gnu.org/onlinedocs/
!   50. mailto:gcc-help@gcc.gnu.org
!   51. mailto:gcc@gcc.gnu.org
!   52. https://gcc.gnu.org/lists.html
!   53. https://www.fsf.org/
!   54. https://gcc.gnu.org/about.html
!   55. http://validator.w3.org/check/referer
  ======================================================================
  http://gcc.gnu.org/gcc-4.6/index.html
  
                               GCC 4.6 Release Series
  
+    (This release series is no longer supported.)
+ 
     April 12, 2013
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.6/index.html
*** 5630,5637 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.6.3 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.6.4
--- 5648,5653 ----
*************** References and Acknowledgements
*** 5681,5687 ****
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2018-09-30[24].
  
  References
  
--- 5697,5703 ----
     provided this notice is preserved.
  
     These pages are [23]maintained by the GCC team. Last modified
!    2019-06-09[24].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.5/index.html
*** 6645,6650 ****
--- 6661,6668 ----
  
                               GCC 4.5 Release Series
  
+    (This release series is no longer supported.)
+ 
     Jul 2, 2012
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.5/index.html
*** 6653,6660 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.5.3 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.5.4
--- 6671,6676 ----
*************** References and Acknowledgements
*** 6704,6710 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2018-09-30[19].
  
  References
  
--- 6720,6726 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2019-06-09[19].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.4/index.html
*** 7419,7424 ****
--- 7435,7442 ----
  
                               GCC 4.4 Release Series
  
+    This release series is no longer maintained.
+ 
     March 13, 2012
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.4/index.html
*** 7427,7434 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.4.6 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.4.7
--- 7445,7450 ----
*************** References and Acknowledgements
*** 7487,7493 ****
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2018-09-30[22].
  
  References
  
--- 7503,7509 ----
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2019-06-09[22].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.3/index.html
*** 8151,8156 ****
--- 8167,8174 ----
  
                               GCC 4.3 Release Series
  
+    (This release series is no longer supported.)
+ 
     Jun 27, 2011
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.3/index.html
*** 8159,8166 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.3.5 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.3.6
--- 8177,8182 ----
*************** References and Acknowledgements
*** 8216,8222 ****
     provided this notice is preserved.
  
     These pages are [20]maintained by the GCC team. Last modified
!    2018-09-30[21].
  
  References
  
--- 8232,8238 ----
     provided this notice is preserved.
  
     These pages are [20]maintained by the GCC team. Last modified
!    2019-06-09[21].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.2/index.html
*** 9062,9067 ****
--- 9078,9085 ----
  
                               GCC 4.2 Release Series
  
+    (This release series is no longer supported.)
+ 
     May 19, 2008
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.2/index.html
*** 9070,9077 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.2.3 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.2.4
--- 9088,9093 ----
*************** References and Acknowledgements
*** 9121,9127 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2018-09-30[19].
  
  References
  
--- 9137,9143 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2019-06-09[19].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.1/index.html
*** 9471,9476 ****
--- 9487,9494 ----
  
                               GCC 4.1 Release Series
  
+    (This release series is no longer supported.)
+ 
     February 13, 2007
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.1/index.html
*** 9479,9486 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.1.1 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.1.2
--- 9497,9502 ----
*************** References and Acknowledgements
*** 9524,9530 ****
     provided this notice is preserved.
  
     These pages are [16]maintained by the GCC team. Last modified
!    2018-09-30[17].
  
  References
  
--- 9540,9546 ----
     provided this notice is preserved.
  
     These pages are [16]maintained by the GCC team. Last modified
!    2019-06-09[17].
  
  References
  
*************** http://gcc.gnu.org/gcc-4.0/index.html
*** 10110,10115 ****
--- 10126,10133 ----
  
                               GCC 4.0 Release Series
  
+    (This release series is no longer supported.)
+ 
     January 31, 2007
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-4.0/index.html
*** 10118,10125 ****
     This release is a bug-fix release, containing fixes for regressions in
     GCC 4.0.3 relative to previous releases of GCC.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 4.0.4
--- 10136,10141 ----
*************** References and Acknowledgements
*** 10169,10175 ****
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2018-09-30[19].
  
  References
  
--- 10185,10191 ----
     provided this notice is preserved.
  
     These pages are [18]maintained by the GCC team. Last modified
!    2019-06-09[19].
  
  References
  
*************** http://gcc.gnu.org/gcc-3.4/index.html
*** 10727,10732 ****
--- 10743,10750 ----
  
                               GCC 3.4 Release Series
  
+    (This release series is no longer supported.)
+ 
     May 26, 2006
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-3.4/index.html
*** 10740,10747 ****
     improvements, bug fixes, and other changes, thanks to an [3]amazing
     group of volunteers.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 3.4.6
--- 10758,10763 ----
*************** References and Acknowledgements
*** 10797,10803 ****
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2018-09-30[23].
  
  References
  
--- 10813,10819 ----
     provided this notice is preserved.
  
     These pages are [22]maintained by the GCC team. Last modified
!    2019-06-09[23].
  
  References
  
*************** http://gcc.gnu.org/gcc-3.3/index.html
*** 13012,13017 ****
--- 13028,13035 ----
  
                               GCC 3.3 Release Series
  
+    (This release series is no longer supported.)
+ 
     May 03, 2005
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-3.3/index.html
*** 13026,13033 ****
     improvements, bug fixes, and other changes, thanks to an [3]amazing
     group of volunteers.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 3.3.6
--- 13044,13049 ----
*************** References and Acknowledgements
*** 13083,13089 ****
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2018-09-30[22].
  
  References
  
--- 13099,13105 ----
     provided this notice is preserved.
  
     These pages are [21]maintained by the GCC team. Last modified
!    2019-06-09[22].
  
  References
  
*************** http://gcc.gnu.org/gcc-3.2/index.html
*** 15025,15030 ****
--- 15041,15048 ----
  
                               GCC 3.2 Release Series
  
+    (This release series is no longer supported.)
+ 
     April 25, 2003
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-3.2/index.html
*** 15042,15049 ****
     Please refer to our [2]detailed list of news, caveats, and bug-fixes
     for further information.
  
-    This release series is no longer maintained.
- 
  Release History
  
     GCC 3.2.3
--- 15060,15065 ----
*************** References and Acknowledgements
*** 15090,15096 ****
     provided this notice is preserved.
  
     These pages are [17]maintained by the GCC team. Last modified
!    2018-09-30[18].
  
  References
  
--- 15106,15112 ----
     provided this notice is preserved.
  
     These pages are [17]maintained by the GCC team. Last modified
!    2019-06-09[18].
  
  References
  
*************** http://gcc.gnu.org/gcc-3.1/index.html
*** 15975,15980 ****
--- 15991,15998 ----
  
                                      GCC 3.1
  
+    (This release series is no longer supported.)
+ 
     July 27, 2002
  
     The [1]GNU project and the GCC developers are pleased to announce the
*************** http://gcc.gnu.org/gcc-3.1/index.html
*** 15982,15989 ****
  
     The links below still apply to GCC 3.1.1.
  
-    This release series is no longer maintained.
- 
     May 15, 2002
  
     The [2]GNU project and the GCC developers are pleased to announce the
--- 16000,16005 ----
*************** http://gcc.gnu.org/gcc-3.1/index.html
*** 16020,16026 ****
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2018-09-30[15].
  
  References
  
--- 16036,16042 ----
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2019-06-09[15].
  
  References
  
*************** http://gcc.gnu.org/gcc-3.0/index.html
*** 16398,16411 ****
  
                                     GCC 3.0.4
  
     February 20, 2002
  
     The [1]GNU project and the GCC developers are pleased to announce the
     release of GCC 3.0.4, which is a bug-fix release for the GCC 3.0
     series.
  
-    This release series is no longer maintained.
- 
     GCC used to stand for the GNU C Compiler, but since the compiler
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
--- 16414,16427 ----
  
                                     GCC 3.0.4
  
+    (This release series is no longer supported.)
+ 
     February 20, 2002
  
     The [1]GNU project and the GCC developers are pleased to announce the
     release of GCC 3.0.4, which is a bug-fix release for the GCC 3.0
     series.
  
     GCC used to stand for the GNU C Compiler, but since the compiler
     supports several other languages aside from C, it now stands for the
     GNU Compiler Collection.
*************** Previous 3.0.x Releases
*** 16450,16456 ****
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2018-09-30[15].
  
  References
  
--- 16466,16472 ----
     provided this notice is preserved.
  
     These pages are [14]maintained by the GCC team. Last modified
!    2019-06-09[15].
  
  References
  
*************** http://gcc.gnu.org/gcc-2.95/index.html
*** 16731,16741 ****
  
                                      GCC 2.95
  
     March 16, 2001: The GNU project and the GCC developers are pleased to
     announce the release of GCC version 2.95.3.
  
-    This release is no longer maintained.
- 
  Release History
  
     GCC 2.95.3
--- 16747,16757 ----
  
                                      GCC 2.95
  
+    (This release series is no longer supported.)
+ 
     March 16, 2001: The GNU project and the GCC developers are pleased to
     announce the release of GCC version 2.95.3.
  
  Release History
  
     GCC 2.95.3
*************** References and Acknowledgements
*** 16797,16803 ****
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2018-09-30[16].
  
  References
  
--- 16813,16819 ----
     provided this notice is preserved.
  
     These pages are [15]maintained by the GCC team. Last modified
!    2019-06-09[16].
  
  References
  
diff -Nrcpad gcc-7.4.0/config/ChangeLog gcc-7.5.0/config/ChangeLog
*** gcc-7.4.0/config/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/config/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/contrib/ChangeLog gcc-7.5.0/contrib/ChangeLog
*** gcc-7.4.0/contrib/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/contrib/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,11 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-08-16  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	* test_summary: Do not escape "=".
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/contrib/header-tools/ChangeLog gcc-7.5.0/contrib/header-tools/ChangeLog
*** gcc-7.4.0/contrib/header-tools/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/contrib/header-tools/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/contrib/reghunt/ChangeLog gcc-7.5.0/contrib/reghunt/ChangeLog
*** gcc-7.4.0/contrib/reghunt/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/contrib/reghunt/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/contrib/regression/ChangeLog gcc-7.5.0/contrib/regression/ChangeLog
*** gcc-7.4.0/contrib/regression/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/contrib/regression/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/contrib/test_summary gcc-7.5.0/contrib/test_summary
*** gcc-7.4.0/contrib/test_summary	Fri Jun  4 14:01:22 2010
--- gcc-7.5.0/contrib/test_summary	Fri Aug 16 12:08:27 2019
*************** NR == 1 {
*** 126,132 ****
    if (lang == "") lang = " "$2" "; else lang = " ";
  }
  $2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", version); gsub(/\r$/, "", version); $0 = save; }
! /\===.*Summary/ { print ""; print; blanks=1; }
  /tests ===/ || /^(Target|Host|Native)/ || $2 == "version" { print; blanks=1; }
  /^(XPASS|FAIL|UNRESOLVED|WARNING|ERROR|# of )/ { sub ("\r", ""); print; }
  /^using:/ { print ""; print; print ""; }
--- 126,132 ----
    if (lang == "") lang = " "$2" "; else lang = " ";
  }
  $2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", version); gsub(/\r$/, "", version); $0 = save; }
! /===.*Summary/ { print ""; print; blanks=1; }
  /tests ===/ || /^(Target|Host|Native)/ || $2 == "version" { print; blanks=1; }
  /^(XPASS|FAIL|UNRESOLVED|WARNING|ERROR|# of )/ { sub ("\r", ""); print; }
  /^using:/ { print ""; print; print ""; }
diff -Nrcpad gcc-7.4.0/fixincludes/ChangeLog gcc-7.5.0/fixincludes/ChangeLog
*** gcc-7.4.0/fixincludes/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/fixincludes/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,64 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-08-18  C.G. Dogan  <gcc+cgdogan.00@gmail.com>
+ 		    Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/83531
+ 	* inclhack.def (darwin_api_availability): New; strip leading
+ 	underscores from API_XXXX defines.
+ 	* fixincl.x: Regenerate.
+ 	* tests/base/os/availability.h: New file.
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* inclhack.def: Replace the complex test using __STRICT_ANSI__ and
+ 	__STDC_VERSION__ with a test using __DARWIN_NO_LONG_LONG.
+ 	Ensure that the top level math.h uses <> to wrap included headers
+ 	rather than "".
+ 	* fixincl.x: Regenerated.
+ 	* tests/base/architecture/ppc/math.h: Update test to include the
+ 	__DARWIN_NO_LONG_LONG case.
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* inclhack.def: Guard __has_attribute and __has_extension in
+ 	os/base.h.
+ 	Guard Apple blocks syntax in dispatch/object.h.
+ 	* fixincl.x: Regenerate.
+ 	* tests/base/dispatch/object.h: New file.
+ 	* tests/base/os/base.h: New file.
+ 
+ 2019-06-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-11  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR bootstrap/89864
+ 	* inclhack.def (darwin_ucred__Atomic): Do not supply test_text
+ 	for wrap fixes.
+ 	* fixincl.x: Regenerated.
+ 
+ 	Backport from mainline.
+ 	2019-04-18  Erik Schnetter  <schnetter@gmail.com>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 		    Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR bootstrap/89864
+ 	* inclhack.def (darwin_ucred__Atomic): New, work around _Atomic keyword
+ 	use in headers included by C++.
+ 	* fixincl.x: Regenerated.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/fixincludes/fixincl.x gcc-7.5.0/fixincludes/fixincl.x
*** gcc-7.4.0/fixincludes/fixincl.x	Sat Feb 25 20:29:39 2017
--- gcc-7.5.0/fixincludes/fixincl.x	Wed Sep  4 19:11:08 2019
***************
*** 1,12 ****
  /*  -*- buffer-read-only: t -*- vi: set ro:
!  * 
   * DO NOT EDIT THIS FILE   (fixincl.x)
!  * 
!  * It has been AutoGen-ed  Saturday February 25, 2017 at 03:25:44 PM EST
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Sat 25 Feb 2017 15:25:44 EST
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
--- 1,12 ----
  /*  -*- buffer-read-only: t -*- vi: set ro:
!  *
   * DO NOT EDIT THIS FILE   (fixincl.x)
!  *
!  * It has been AutoGen-ed  August 29, 2019 at 12:25:44 AM by AutoGen 5.17.4
   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
! /* DO NOT SVN-MERGE THIS FILE, EITHER Thu Aug 29 00:25:44 BST 2019
   *
   * You must regenerate it.  Use the ./genfixes script.
   *
***************
*** 15,21 ****
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 248 fixup descriptions.
   *
   * See README for more information.
   *
--- 15,21 ----
   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
!  * This file contains 253 fixup descriptions.
   *
   * See README for more information.
   *
*************** static const char* apzAab_Darwin7_9_Long
*** 269,274 ****
--- 269,324 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
+  *  Description of Darwin_Api_Availability fix
+  */
+ tSCC zDarwin_Api_AvailabilityName[] =
+      "darwin_api_availability";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zDarwin_Api_AvailabilityList[] =
+   "os/availability.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzDarwin_Api_AvailabilityMachs[] = {
+         "*-*-darwin*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zDarwin_Api_AvailabilitySelect0[] =
+        " *#define __API_AVAILABLE.*\n\
+  *#define __API_DEPRECATED.*\n\
+  *#define __API_DEPRECATED_WITH_REPLACEMENT.*\n\
+  *#define __API_UNAVAILABLE.*\n";
+ 
+ /*
+  *  content bypass pattern - skip fix if pattern found
+  */
+ tSCC zDarwin_Api_AvailabilityBypass0[] =
+        "__IPHONE_OS_VERSION_MIN_REQUIRED";
+ 
+ #define    DARWIN_API_AVAILABILITY_TEST_CT  2
+ static tTestDesc aDarwin_Api_AvailabilityTests[] = {
+   { TT_NEGREP,   zDarwin_Api_AvailabilityBypass0, (regex_t*)NULL },
+   { TT_EGREP,    zDarwin_Api_AvailabilitySelect0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Darwin_Api_Availability
+  */
+ static const char* apzDarwin_Api_AvailabilityPatch[] = {
+     "format",
+     "    #define API_AVAILABLE(...)\n\
+     #define API_DEPRECATED(...)\n\
+     #define API_DEPRECATED_WITH_REPLACEMENT(...)\n\
+     #define API_UNAVAILABLE(...)\n",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
   *  Description of Aab_Fd_Zero_Asm_Posix_Types_H fix
   */
  tSCC zAab_Fd_Zero_Asm_Posix_Types_HName[] =
*************** tSCC zDarwin_9_Long_Double_Funcs_2List[]
*** 2638,2644 ****
   *  Machine/OS name selection pattern
   */
  tSCC* apzDarwin_9_Long_Double_Funcs_2Machs[] = {
!         "*-*-darwin7.9*",
          (const char*)NULL };
  
  /*
--- 2688,2694 ----
   *  Machine/OS name selection pattern
   */
  tSCC* apzDarwin_9_Long_Double_Funcs_2Machs[] = {
!         "*-*-darwin*",
          (const char*)NULL };
  
  /*
*************** static const char* apzDarwin_Gcc4_Breaka
*** 2744,2749 ****
--- 2794,2835 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
+  *  Description of Darwin_Ll_Funcs_Avail fix
+  */
+ tSCC zDarwin_Ll_Funcs_AvailName[] =
+      "darwin_ll_funcs_avail";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zDarwin_Ll_Funcs_AvailList[] =
+   "architecture/ppc/math.h\0architecture/i386/math.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzDarwin_Ll_Funcs_AvailMachs[] = {
+         "*-*-darwin*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zDarwin_Ll_Funcs_AvailSelect0[] =
+        "#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^1]*199901L[^_]*__STRICT_ANSI__[^_]*__GNUC__[^)]*";
+ 
+ #define    DARWIN_LL_FUNCS_AVAIL_TEST_CT  1
+ static tTestDesc aDarwin_Ll_Funcs_AvailTests[] = {
+   { TT_EGREP,    zDarwin_Ll_Funcs_AvailSelect0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Darwin_Ll_Funcs_Avail
+  */
+ static const char* apzDarwin_Ll_Funcs_AvailPatch[] = { sed_cmd_z,
+     "-e", "s/#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^_]*199901L[^_]*__STRICT_ANSI__[^_]*__GNUC__[^\\)]*)/#if !(__DARWIN_NO_LONG_LONG)/",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
   *  Description of Darwin_Longjmp_Noreturn fix
   */
  tSCC zDarwin_Longjmp_NoreturnName[] =
*************** static const char* apzDarwin_Os_Trace_3P
*** 2906,2911 ****
--- 2992,3077 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
+  *  Description of Darwin_Os_Base_1 fix
+  */
+ tSCC zDarwin_Os_Base_1Name[] =
+      "darwin_os_base_1";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zDarwin_Os_Base_1List[] =
+   "os/base.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzDarwin_Os_Base_1Machs[] = {
+         "*-*-darwin*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zDarwin_Os_Base_1Select0[] =
+        "#define __has_attribute.*\n\
+ #endif";
+ 
+ #define    DARWIN_OS_BASE_1_TEST_CT  1
+ static tTestDesc aDarwin_Os_Base_1Tests[] = {
+   { TT_EGREP,    zDarwin_Os_Base_1Select0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Darwin_Os_Base_1
+  */
+ static const char* apzDarwin_Os_Base_1Patch[] = {
+     "format",
+     "%0\n\
+ #ifndef __has_extension\n\
+ #define __has_extension(x) 0\n\
+ #endif",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
+  *  Description of Darwin_Dispatch_Object_1 fix
+  */
+ tSCC zDarwin_Dispatch_Object_1Name[] =
+      "darwin_dispatch_object_1";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zDarwin_Dispatch_Object_1List[] =
+   "dispatch/object.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzDarwin_Dispatch_Object_1Machs[] = {
+         "*-*-darwin*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zDarwin_Dispatch_Object_1Select0[] =
+        "typedef void.*\\^dispatch_block_t.*";
+ 
+ #define    DARWIN_DISPATCH_OBJECT_1_TEST_CT  1
+ static tTestDesc aDarwin_Dispatch_Object_1Tests[] = {
+   { TT_EGREP,    zDarwin_Dispatch_Object_1Select0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Darwin_Dispatch_Object_1
+  */
+ static const char* apzDarwin_Dispatch_Object_1Patch[] = {
+     "format",
+     "#if __BLOCKS__\n\
+ %0\n\
+ #endif",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
   *  Description of Darwin_Private_Extern fix
   */
  tSCC zDarwin_Private_ExternName[] =
*************** static const char* apzDarwin_Stdint_7Pat
*** 3262,3267 ****
--- 3428,3475 ----
  
  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
+  *  Description of Darwin_Ucred__Atomic fix
+  */
+ tSCC zDarwin_Ucred__AtomicName[] =
+      "darwin_ucred__Atomic";
+ 
+ /*
+  *  File name selection pattern
+  */
+ tSCC zDarwin_Ucred__AtomicList[] =
+   "sys/ucred.h\0";
+ /*
+  *  Machine/OS name selection pattern
+  */
+ tSCC* apzDarwin_Ucred__AtomicMachs[] = {
+         "*-*-darwin*",
+         (const char*)NULL };
+ 
+ /*
+  *  content selection pattern - do fix if pattern found
+  */
+ tSCC zDarwin_Ucred__AtomicSelect0[] =
+        "_Atomic";
+ 
+ #define    DARWIN_UCRED__ATOMIC_TEST_CT  1
+ static tTestDesc aDarwin_Ucred__AtomicTests[] = {
+   { TT_EGREP,    zDarwin_Ucred__AtomicSelect0, (regex_t*)NULL }, };
+ 
+ /*
+  *  Fix Command Arguments for Darwin_Ucred__Atomic
+  */
+ static const char* apzDarwin_Ucred__AtomicPatch[] = {
+     "wrap",
+     "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n\
+ # define _Atomic volatile\n\
+ #endif\n",
+     "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n\
+ # undef _Atomic\n\
+ #endif\n",
+     (char*)NULL };
+ 
+ /* * * * * * * * * * * * * * * * * * * * * * * * * *
+  *
   *  Description of Dec_Intern_Asm fix
   */
  tSCC zDec_Intern_AsmName[] =
*************** static const char* apzX11_SprintfPatch[]
*** 10139,10147 ****
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          285
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            248
  
  /*
   *  Enumerate the fixes
--- 10347,10355 ----
   *
   *  List of all fixes
   */
! #define REGEX_COUNT          291
  #define MACH_LIST_SIZE_LIMIT 187
! #define FIX_COUNT            253
  
  /*
   *  Enumerate the fixes
*************** typedef enum {
*** 10150,10155 ****
--- 10358,10364 ----
      AAB_AIX_STDIO_FIXIDX,
      AAB_AIX_FCNTL_FIXIDX,
      AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
+     DARWIN_API_AVAILABILITY_FIXIDX,
      AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
      AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
      AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
*************** typedef enum {
*** 10210,10219 ****
--- 10419,10431 ----
      DARWIN_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
      DARWIN_EXTERNC_FIXIDX,
      DARWIN_GCC4_BREAKAGE_FIXIDX,
+     DARWIN_LL_FUNCS_AVAIL_FIXIDX,
      DARWIN_LONGJMP_NORETURN_FIXIDX,
      DARWIN_OS_TRACE_1_FIXIDX,
      DARWIN_OS_TRACE_2_FIXIDX,
      DARWIN_OS_TRACE_3_FIXIDX,
+     DARWIN_OS_BASE_1_FIXIDX,
+     DARWIN_DISPATCH_OBJECT_1_FIXIDX,
      DARWIN_PRIVATE_EXTERN_FIXIDX,
      DARWIN_STDINT_1_FIXIDX,
      DARWIN_STDINT_2_FIXIDX,
*************** typedef enum {
*** 10222,10227 ****
--- 10434,10440 ----
      DARWIN_STDINT_5_FIXIDX,
      DARWIN_STDINT_6_FIXIDX,
      DARWIN_STDINT_7_FIXIDX,
+     DARWIN_UCRED__ATOMIC_FIXIDX,
      DEC_INTERN_ASM_FIXIDX,
      DJGPP_WCHAR_H_FIXIDX,
      ECD_CURSOR_FIXIDX,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 10413,10418 ****
--- 10626,10636 ----
       AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
       aAab_Darwin7_9_Long_Double_FuncsTests,   apzAab_Darwin7_9_Long_Double_FuncsPatch, 0 },
  
+   {  zDarwin_Api_AvailabilityName,    zDarwin_Api_AvailabilityList,
+      apzDarwin_Api_AvailabilityMachs,
+      DARWIN_API_AVAILABILITY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+      aDarwin_Api_AvailabilityTests,   apzDarwin_Api_AvailabilityPatch, 0 },
+ 
    {  zAab_Fd_Zero_Asm_Posix_Types_HName,    zAab_Fd_Zero_Asm_Posix_Types_HList,
       apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
       AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 10713,10718 ****
--- 10931,10941 ----
       DARWIN_GCC4_BREAKAGE_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aDarwin_Gcc4_BreakageTests,   apzDarwin_Gcc4_BreakagePatch, 0 },
  
+   {  zDarwin_Ll_Funcs_AvailName,    zDarwin_Ll_Funcs_AvailList,
+      apzDarwin_Ll_Funcs_AvailMachs,
+      DARWIN_LL_FUNCS_AVAIL_TEST_CT, FD_MACH_ONLY,
+      aDarwin_Ll_Funcs_AvailTests,   apzDarwin_Ll_Funcs_AvailPatch, 0 },
+ 
    {  zDarwin_Longjmp_NoreturnName,    zDarwin_Longjmp_NoreturnList,
       apzDarwin_Longjmp_NoreturnMachs,
       DARWIN_LONGJMP_NORETURN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 10733,10738 ****
--- 10956,10971 ----
       DARWIN_OS_TRACE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aDarwin_Os_Trace_3Tests,   apzDarwin_Os_Trace_3Patch, 0 },
  
+   {  zDarwin_Os_Base_1Name,    zDarwin_Os_Base_1List,
+      apzDarwin_Os_Base_1Machs,
+      DARWIN_OS_BASE_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+      aDarwin_Os_Base_1Tests,   apzDarwin_Os_Base_1Patch, 0 },
+ 
+   {  zDarwin_Dispatch_Object_1Name,    zDarwin_Dispatch_Object_1List,
+      apzDarwin_Dispatch_Object_1Machs,
+      DARWIN_DISPATCH_OBJECT_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+      aDarwin_Dispatch_Object_1Tests,   apzDarwin_Dispatch_Object_1Patch, 0 },
+ 
    {  zDarwin_Private_ExternName,    zDarwin_Private_ExternList,
       apzDarwin_Private_ExternMachs,
       DARWIN_PRIVATE_EXTERN_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
*************** tFixDesc fixDescList[ FIX_COUNT ] = {
*** 10773,10778 ****
--- 11006,11016 ----
       DARWIN_STDINT_7_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
       aDarwin_Stdint_7Tests,   apzDarwin_Stdint_7Patch, 0 },
  
+   {  zDarwin_Ucred__AtomicName,    zDarwin_Ucred__AtomicList,
+      apzDarwin_Ucred__AtomicMachs,
+      DARWIN_UCRED__ATOMIC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
+      aDarwin_Ucred__AtomicTests,   apzDarwin_Ucred__AtomicPatch, 0 },
+ 
    {  zDec_Intern_AsmName,    zDec_Intern_AsmList,
       apzDec_Intern_AsmMachs,
       DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY,
diff -Nrcpad gcc-7.4.0/fixincludes/inclhack.def gcc-7.5.0/fixincludes/inclhack.def
*** gcc-7.4.0/fixincludes/inclhack.def	Sat Feb 25 20:29:39 2017
--- gcc-7.5.0/fixincludes/inclhack.def	Wed Sep  4 19:11:08 2019
*************** fix = {
*** 195,200 ****
--- 195,227 ----
  };
  
  /*
+  *  SDKs for 10.13 and 10.14 omit the definitions for API_AVAILABLE where
+  *  __attribute__((availability)) is not supported.
+  */
+ fix = {
+     hackname  = darwin_api_availability;
+     mach      = "*-*-darwin*";
+     files     = os/availability.h;
+     bypass    = "__IPHONE_OS_VERSION_MIN_REQUIRED";
+     select    =
+     " *#define __API_AVAILABLE.*\n"
+     " *#define __API_DEPRECATED.*\n"
+     " *#define __API_DEPRECATED_WITH_REPLACEMENT.*\n"
+     " *#define __API_UNAVAILABLE.*\n";
+     c_fix     = format;
+     c_fix_arg =
+     "    #define API_AVAILABLE(...)\n"
+     "    #define API_DEPRECATED(...)\n"
+     "    #define API_DEPRECATED_WITH_REPLACEMENT(...)\n"
+     "    #define API_UNAVAILABLE(...)\n";
+     test_text =
+     "#define __API_AVAILABLE(...)\n"
+     "#define __API_DEPRECATED(...)\n"
+     "#define __API_DEPRECATED_WITH_REPLACEMENT(...)\n"
+     "#define __API_UNAVAILABLE(...)\n";
+ };
+ 
+ /*
   *  This fixes __FD_ZERO bug for linux 2.x.y (x <= 2 && y <= some n)
   */
  fix = {
*************** fix = {
*** 1364,1375 ****
  };
  
  /*
!  *  For the AAB_darwin7_9_long_double_funcs fix to be useful,
!  *  you have to not use "" includes.
   */
  fix = {
      hackname  = darwin_9_long_double_funcs_2;
!     mach      = "*-*-darwin7.9*";
      files     = math.h;
      select    = '#include[ \t]+\"';
      c_fix     = format;
--- 1391,1402 ----
  };
  
  /*
!  *  For the AAB_darwin7_9_long_double_funcs fix (and later fixes for long long)
!  *  to be useful, the main math.h must use <> and not "" includes.
   */
  fix = {
      hackname  = darwin_9_long_double_funcs_2;
!     mach      = "*-*-darwin*";
      files     = math.h;
      select    = '#include[ \t]+\"';
      c_fix     = format;
*************** fix = {
*** 1377,1383 ****
    
      c_fix_arg = '([ \t]*#[ \t]*include[ \t]+)"([a-z0-9/]+)\.h"';
    
!     test_text = '#include "architecture/ppc/math.h"';
  };
  
  /*
--- 1404,1410 ----
    
      c_fix_arg = '([ \t]*#[ \t]*include[ \t]+)"([a-z0-9/]+)\.h"';
    
!     test_text = '#include <architecture/ppc/math.h>';
  };
  
  /*
*************** fix = {
*** 1421,1426 ****
--- 1448,1469 ----
  };
  
  /*
+  * math.h hides the long long functions that are available on the system for
+  * 10.5 and 10.6 SDKs, we expect to use them in G++ without specifying a value
+  * for __STDC_VERSION__, or switching __STRICT_ANSI__ off.
+  */
+ fix = {
+   hackname  = darwin_ll_funcs_avail;
+   mach      = "*-*-darwin*";
+   files     = architecture/ppc/math.h, architecture/i386/math.h;
+   select    = "#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^1]*199901L[^_]*"
+ 	      "__STRICT_ANSI__[^_]*__GNUC__[^\)]*";
+   sed       = "s/#if[^_]*__STDC_VERSION__[^_]*__STDC_VERSION__[^_]*199901L[^_]*"
+ 	      "__STRICT_ANSI__[^_]*__GNUC__[^\\)]*\)/#if\ !\(__DARWIN_NO_LONG_LONG\)/";
+   test_text = "#if\ !(__DARWIN_NO_LONG_LONG)";
+ };
+ 
+ /*
   *  Before Mac OS X 10.8 <i386/setjmp.h> doesn't mark longjump noreturn.
   */
  fix = {
*************** fix = {
*** 1492,1497 ****
--- 1535,1583 ----
  };
  
  /*
+  *  In macOS 10.10 <os/base.h>, doesn't have __has_extension guarded.
+  */
+ fix = {
+   hackname  = darwin_os_base_1;
+   mach      = "*-*-darwin*";
+   files     = os/base.h;
+   select    = <<- OS_BASE_1_SEL
+ #define __has_attribute.*
+ #endif
+ OS_BASE_1_SEL;
+   c_fix     = format;
+   c_fix_arg = <<- OS_BASE_1_FIX
+ %0
+ #ifndef __has_extension
+ #define __has_extension(x) 0
+ #endif
+ OS_BASE_1_FIX;
+   test_text = <<- OS_BASE_1_TEST
+ #define __has_attribute(x) 0
+ #endif
+ 
+ #if __GNUC__
+ OS_BASE_1_TEST;
+ };
+ 
+ /*
+  *  In macOS 10.10 <dispatch/object.h>, has unguarded block syntax.
+  */
+ fix = {
+   hackname  = darwin_dispatch_object_1;
+   mach      = "*-*-darwin*";
+   files     = dispatch/object.h;
+   select    = "typedef void.*\\^dispatch_block_t.*";
+   c_fix     = format;
+   c_fix_arg = "#if __BLOCKS__\n%0\n#endif";
+   test_text = <<- DISPATCH_OBJECT_1_TEST
+ typedef void (^dispatch_block_t)(void);
+ 
+ __BEGIN_DECLS
+ DISPATCH_OBJECT_1_TEST;
+ };
+ 
+ /*
   *  __private_extern__ doesn't exist in FSF GCC.  Even if it did,
   *  why would you ever put it in a system header file?
   */
*************** fix = {
*** 1688,1693 ****
--- 1774,1798 ----
  		"#define UINTMAX_C(v) (v ## ULL)";
  };
  
+ /*  The SDK included with XCode 10.2 has the file <sys/ucred.h> that uses the
+     C11 _Atomic keyword (exposing it to C++ code).  The work-around here follows
+     the header in declaring the entity volatile when _Atomic is not available.
+ */
+ fix = {
+     hackname  = darwin_ucred__Atomic;
+     mach      = "*-*-darwin*";
+     files     = sys/ucred.h;
+     select    = "_Atomic";
+     c_fix     = wrap;
+     c_fix_arg = "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n"
+ 		"# define _Atomic volatile\n"
+ 		"#endif\n";
+     c_fix_arg = "#if (__STDC_VERSION__ < 201112L) || defined(__cplusplus)\n"
+ 		"# undef _Atomic\n"
+ 		"#endif\n";
+     test_text = ""; /* Don't provide this for wrap fixes.  */
+ };
+ 
  /*
   *  Fix <c_asm.h> on Digital UNIX V4.0:
   *  It contains a prototype for a DEC C internal asm() function,
diff -Nrcpad gcc-7.4.0/fixincludes/tests/base/architecture/ppc/math.h gcc-7.5.0/fixincludes/tests/base/architecture/ppc/math.h
*** gcc-7.4.0/fixincludes/tests/base/architecture/ppc/math.h	Mon Oct 29 16:44:34 2012
--- gcc-7.5.0/fixincludes/tests/base/architecture/ppc/math.h	Wed Sep  4 19:06:36 2019
***************
*** 12,14 ****
--- 12,19 ----
  #if defined( BROKEN_NAN_CHECK )
  #if 1
  #endif  /* BROKEN_NAN_CHECK */
+ 
+ 
+ #if defined( DARWIN_LL_FUNCS_AVAIL_CHECK )
+ #if !(__DARWIN_NO_LONG_LONG)
+ #endif  /* DARWIN_LL_FUNCS_AVAIL_CHECK */
diff -Nrcpad gcc-7.4.0/fixincludes/tests/base/dispatch/object.h gcc-7.5.0/fixincludes/tests/base/dispatch/object.h
*** gcc-7.4.0/fixincludes/tests/base/dispatch/object.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/fixincludes/tests/base/dispatch/object.h	Wed Sep  4 19:01:49 2019
***************
*** 0 ****
--- 1,18 ----
+ /*  DO NOT EDIT THIS FILE.
+ 
+     It has been auto-edited by fixincludes from:
+ 
+ 	"fixinc/tests/inc/dispatch/object.h"
+ 
+     This had to be done to correct non-standard usages in the
+     original, manufacturer supplied header file.  */
+ 
+ 
+ 
+ #if defined( DARWIN_DISPATCH_OBJECT_1_CHECK )
+ #if __BLOCKS__
+ typedef void (^dispatch_block_t)(void);
+ #endif
+ 
+ __BEGIN_DECLS
+ #endif  /* DARWIN_DISPATCH_OBJECT_1_CHECK */
diff -Nrcpad gcc-7.4.0/fixincludes/tests/base/os/availability.h gcc-7.5.0/fixincludes/tests/base/os/availability.h
*** gcc-7.4.0/fixincludes/tests/base/os/availability.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/fixincludes/tests/base/os/availability.h	Wed Sep  4 19:11:08 2019
***************
*** 0 ****
--- 1,18 ----
+ /*  DO NOT EDIT THIS FILE.
+ 
+     It has been auto-edited by fixincludes from:
+ 
+ 	"fixinc/tests/inc/os/availability.h"
+ 
+     This had to be done to correct non-standard usages in the
+     original, manufacturer supplied header file.  */
+ 
+ 
+ 
+ #if defined( DARWIN_API_AVAILABILITY_CHECK )
+     #define API_AVAILABLE(...)
+     #define API_DEPRECATED(...)
+     #define API_DEPRECATED_WITH_REPLACEMENT(...)
+     #define API_UNAVAILABLE(...)
+ 
+ #endif  /* DARWIN_API_AVAILABILITY_CHECK */
diff -Nrcpad gcc-7.4.0/fixincludes/tests/base/os/base.h gcc-7.5.0/fixincludes/tests/base/os/base.h
*** gcc-7.4.0/fixincludes/tests/base/os/base.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/fixincludes/tests/base/os/base.h	Wed Sep  4 19:01:49 2019
***************
*** 0 ****
--- 1,20 ----
+ /*  DO NOT EDIT THIS FILE.
+ 
+     It has been auto-edited by fixincludes from:
+ 
+ 	"fixinc/tests/inc/os/base.h"
+ 
+     This had to be done to correct non-standard usages in the
+     original, manufacturer supplied header file.  */
+ 
+ 
+ 
+ #if defined( DARWIN_OS_BASE_1_CHECK )
+ #define __has_attribute(x) 0
+ #endif
+ #ifndef __has_extension
+ #define __has_extension(x) 0
+ #endif
+ 
+ #if __GNUC__
+ #endif  /* DARWIN_OS_BASE_1_CHECK */
diff -Nrcpad gcc-7.4.0/gcc/BASE-VER gcc-7.5.0/gcc/BASE-VER
*** gcc-7.4.0/gcc/BASE-VER	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/BASE-VER	Thu Nov 14 07:40:39 2019
***************
*** 1 ****
! 7.4.0
--- 1 ----
! 7.5.0
diff -Nrcpad gcc-7.4.0/gcc/ChangeLog gcc-7.5.0/gcc/ChangeLog
*** gcc-7.4.0/gcc/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,2276 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_indirection_name): Rework the
+ 	function to emit linker-visible symbols only for indirections
+ 	in the data section.  Clean up the code and update comments.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (darwin_override_options): Make the check for
+ 	Objective-C ABI version more specific for 64bit code.
+ 
+ 	Backport from mainline
+ 	2019-10-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (darwin_override_options): Adjust objective-c
+ 	ABI version error messages to avoid punctuation and contracted
+ 	negations.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
+ 	(STARTFILE_SPEC): Split crt3 into a separate spec.
+ 	(DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
+ 	(DARWIN_CRT2_SPEC): New.
+ 	(DARWIN_CRT3_SPEC): New.
+ 	(MIN_LD64_OMIT_STUBS): Revise to 62.1.
+ 	* config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
+ 	(DARWIN_CRT3_SPEC): New.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
+ 	spec.
+ 
+ 	Backport from mainline
+ 	2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin.h (ENDFILE_SPEC): New.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (darwin_emit_unwind_label): New default to false.
+ 	(darwin_override_options): Set darwin_emit_unwind_label as needed.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_indirect_call_target): Rename symbol stub
+ 	flag.
+ 	(darwin_override_options): Likewise.
+ 	* config/darwin.h: Likewise.
+ 	* config/darwin.opt: Likewise.
+ 	* config/i386/i386.c (output_pic_addr_const): Likewise.
+ 	* config/rs6000/darwin.h: Likewise.
+ 	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
+ 	* config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
+ 	... this TARGET_MACHO_SYMBOL_STUBS.
+ 	(FUNCTION_PROFILER):Likewise.
+ 	* config/i386/i386.h: Likewise.
+ 
+ 	Backport from mainline
+ 	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_indirect_call_target): Use renamed
+ 	darwin_picsymbol_stubs to decide on output.
+ 	(darwin_override_options): Handle darwin_picsymbol_stubs.
+ 	* config/darwin.h (MIN_LD64_OMIT_STUBS): New.
+ 	(LD64_VERSION): Revise default.
+ 	* config/darwin.opt: (mpic-symbol-stubs): New option.
+ 	(darwin_picsymbol_stubs): New variable.
+ 	* config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
+ 	rename to TARGET_MACHO_PICSYM_STUBS.
+ 	* config/i386/i386.c (output_pic_addr_const): Likewise.
+ 	* config/i386/i386.h Likewise.
+ 	* config/rs6000/darwin.h: Likewise.
+ 	* config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
+ 	darwin_picsymbol_stubs.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
+ 	override on extra_headers.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
+ 	user-specified float mode choice for kernel mode code.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin.h: Handle GCC target pragma.
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-10-17  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/65342
+ 	* config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
+ 	(movdi_low_st): Delete.
+ 	* config/rs6000/rs6000.c
+ 	(darwin_rs6000_legitimate_lo_sum_const_p): New.
+ 	(mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
+ 	* config/rs6000/rs6000.md (movsi_low): Delete.
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/67183
+ 	* config/darwin.c (machopic_indirection): New field to flag
+ 	non-lazy-symbol-pointers in the data section.
+ 	(machopic_indirection_name): Compute if an indirection should
+ 	appear in the data section.
+ 	(machopic_output_data_section_indirection): New callback split
+ 	from machopic_output_indirection.
+ 	(machopic_output_stub_indirection): Likewise.
+ 	(machopic_output_indirection): Retain the code for non-lazy
+ 	symbol pointers in their regular section.
+ 	(machopic_finish): Use the new callbacks to order the indirection
+ 	output.
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-10-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-protos.h (machopic_finish): Delete.
+ 	* config/darwin.c (machopic_finish): Make static.
+ 
+ 	Backport from mainline
+ 	2019-10-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_indirect_data_reference): Set flag to
+ 	indicate that the new symbol is an indirection.
+ 	(machopic_indirect_call_target): Likewise.
+ 	* config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
+ 	(MACHO_SYMBOL_INDIRECTION_P): New.
+ 	(MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
+ 
+ 	Backport from mainline
+ 	2019-10-08  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_indirect_data_reference): Check for
+ 	required indirections before making direct access to defined
+ 	values.
+ 	(machopic_output_indirection): Place the indirected pointes for
+ 	required indirections into the non-lazy symbol pointers section.
+ 	(darwin_encode_section_info):
+ 	* config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
+ 	(MACHO_SYMBOL_MUST_INDIRECT_P): New.
+ 
+ 	Backport from mainline
+ 	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_output_indirection): Don't put
+ 	hidden symbol indirections into the .data section, use the
+ 	non-lazy symbol pointers section as normal.
+ 	(darwin_encode_section_info): Record if a symbol is hidden.
+ 	* config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
+ 	(MACHO_SYMBOL_HIDDEN_VIS_P): New.
+ 
+ 	Backport from mainline
+ 	2019-10-07  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_symbol_defined_p): Use symbol flag
+ 	predicates instead of accessing bits directly.
+ 	(machopic_indirect_call_target): Likewise.
+ 	(machopic_output_indirection): Likewise.
+ 	(darwin_encode_section_info): Improve description.  Use renamed
+ 	symbol flags.  Use predicate macros for variables and functions.
+ 	* config/darwin.h:
+ 	Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
+ 	Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
+ 	Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
+ 	(MACHO_SYMBOL_VARIABLE_P): New.
+ 	(MACHO_SYMBOL_DEFINED_P):New.
+ 	(MACHO_SYMBOL_STATIC_P): New.
+ 	* config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
+ 	(SYMBOL_FLAG_SUBT_DEP): New.
+ 	* config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-10-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/59888
+ 	* config/darwin.c (darwin_rodata_section): Add relocation flag,
+ 	choose const_data section for constants with relocations.
+ 	(machopic_select_section): Pass relocation flag to
+ 	darwin_rodata_section ().
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-09-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (machopic_legitimize_pic_address): Check
+ 	for lra, rather than reload.
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-10-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/87243
+ 	* config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
+ 	(darwin_driver_init): Use the sysroot provided by SDKROOT when that
+ 	is available and the user has not set one on the command line.
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
+ 	(RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
+ 	(DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
+ 	clauses.
+ 	(LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
+ 	DARWIN_NOPIE_SPEC.
+ 
+ 	Backport from mainline
+ 	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
+ 	and DARWIN_NOPIE_SPEC.
+ 	(RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
+ 	(DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
+ 	(DARWIN_NOPIE_SPEC): Collate from darwin10.h.
+ 	(DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
+ 	(DARWIN_EXPORT_DYNAMIC): Delete.
+ 	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
+ 	and pie options processing to  darwin.h.
+ 	* config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
+ 
+ 2019-10-25  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backport from mainline
+ 	2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
+ 	    Richard Earnshaw  <rearnsha@arm.com>
+ 	PR target/88167
+ 	* config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
+ 	function.
+ 	(thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
+ 	(thumb1_compute_save_core_reg_mask): Don't force a spare work
+ 	register if both the epilogue and prologue can use call-clobbered
+ 	regs.
+ 	(thumb1_unexpanded_epilogue): Use
+ 	thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
+ 	picking temporaries for restoring high regs to match that of the
+ 	prologue where possible.
+ 	(thumb1_expand_prologue): Add any usable call-clobbered low registers to
+ 	the list of work registers.  Detect if the return address is still live
+ 	at the end of the prologue and avoid using it for a work register if so.
+ 	If the return address is not live, add LR to the list of pushable regs
+ 	after the first pass.
+ 
+ 2019-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/91887
+ 	* dwarf2out.c (gen_formal_parameter_die): Also try to match
+ 	context_die against a DW_TAG_GNU_formal_parameter_pack parent.
+ 
+ 	2019-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91812
+ 	* tree-ssa-phiprop.c (propagate_with_phi): Do not replace
+ 	volatile loads.
+ 
+ 2019-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR tree-optimization/92131
+ 	* tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
+ 	range would be symbolic, drop to varying for any explicit overflow
+ 	in the constant part or if neither range is a singleton.
+ 
+ 2019-10-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backport from trunk
+ 	2019-10-18  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/86040
+ 	* config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
+ 
+ 2019-10-17  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR rtl-optimization/89721
+ 	* lra-constraints (invariant_p): Return false if side_effects_p holds.
+ 
+ 2019-10-17  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backport from mainline
+ 	2019-05-03  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/89400
+ 	* config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
+ 	Restrict 'all' variant to 32-bit configurations.
+ 	(unaligned_loadhiu): Likewise.
+ 	(unaligned_storehi): Likewise.
+ 	(unaligned_storesi): Likewise.
+ 	(unaligned_loadhis): Disable when compiling for thumb1.
+ 
+ 2019-10-16  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-10-08  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>
+ 
+ 	* config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
+ 	LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
+ 	MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
+ 
+ 2019-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2019-10-10  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/88630
+ 	* config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
+ 	* config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
+ 	also for TARGET_FPU_SH4_300.
+ 	(sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
+ 	TARGET_SH4_300.
+ 	* config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
+ 	(negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
+ 	(*negsf2_i): Split into ...
+ 	(negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
+ 	(abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
+ 	(**abssf2_i): Split into ...
+ 	(abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
+ 	(negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
+ 	(*negdf2_i): Split into ...
+ 	(negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
+ 	(absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
+ 	(**abssf2_i): Split into ...
+ 	(absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
+ 
+ 2019-10-07  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-10-01  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	PR target/91275
+ 	* config/rs6000/rs6000.c (rtx_is_swappable_p): Don't swap
+ 	vpmsumd.
+ 
+ 2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 
+ 	2019-10-01  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/88562
+ 	* config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
+ 	sh_check_add_incdec_notes to preserve REG_INC notes when replacing
+ 	a memory access insn.
+ 
+ 2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/82920
+ 	* config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
+ 	Darwin.
+ 
+ 2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/82920
+ 	* config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
+ 	(ix86_output_indirect_branch_via_reg): Use output mechanism
+ 	accounting for __USER_LABEL_PREFIX__.
+ 	(ix86_output_indirect_branch_via_push): Likewise.
+ 	(ix86_output_function_return): Likewise.
+ 	(ix86_output_indirect_function_return): Likewise.
+ 
+ 2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	PR target/80672
+ 	* config/sh/sh.c (parse_validate_atomic_model_option): Use
+ 	std::string::compare instead of std::string::find.
+ 
+ 2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2018-07-15  Jeff Law  <law@redhat.com>
+ 
+ 	PR target/85993
+ 	* config/sh/sh.c (output_mi_thunk): Remove dead conditional
+ 	block.
+ 
+ 2019-09-27  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.opt (prebind, noprebind, seglinkedit,
+ 	noseglinkedit): Add RejectNegative.
+ 
+ 	Backport from mainline
+ 	2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.opt: Add RejectNegative where needed, reorder
+ 	and add minimal functional descriptions.
+ 
+ 2019-09-23  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	Backport from mainline
+ 	2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>
+ 
+ 	* config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
+ 	pointer adjustment for the case of no callee-saved registers and
+ 	stack frame bigger than 128 bytes.
+ 
+ 2019-09-20  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	* config/pa/pa.c (pa_trampoline_init): Remove spurious extended
+ 	characters.
+ 
+ 2019-09-20  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	PR rtl-optimization/88751
+ 	* ira.c (ira): Use the number of the actually referenced registers
+ 	when calculating the threshold.
+ 
+ 2019-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/89795
+ 	* rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
+ 	inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
+ 
+ 2019-09-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/87853
+ 	* config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
+ 	instead of __v16qs.
+ 
+ 	PR target/91704
+ 	* config/i386/avxintrin.h (__v32qs): New typedef.
+ 	* config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
+ 	instead of __v32qi.
+ 
+ 2019-09-08  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-12-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New.
+ 
+ 2019-08-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-08-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
+ 	for cpu and machine.  Factor 64/32b builtins.
+ 
+ 	Backport from mainline
+ 	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR pch/61250
+ 	* ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
+ 	and issue any diagnostics needed before collecting the pre-PCH
+ 	state.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-07-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR bootstrap/87030
+ 	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
+ 
+ 	PR bootstrap/87030
+ 	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
+ 	* config/i386/darwin32-biarch.h .. to here.
+ 	* config/i386/darwin64-biarch.h: Adjust comments.
+ 	* config/rs6000/darwin32-biarch.h: Likewise.
+ 	* config/rs6000/darwin64-biarch.h: Likewise.
+ 	* config.gcc: Missed commit from r273746
+ 	(*-*-darwin*): Don't include CPU t-darwin here.
+ 	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
+ 	an error message if i686-darwin configuration is attempted for
+ 	Darwin >= 18.
+ 
+ 	Backport from mainline
+ 	2019-07-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR bootstrap/87030
+ 	* config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
+ 	(i[34567]86-*-darwin*): Adjust to use biarch files. Produce
+ 	an error message if i686-darwin configuration is attempted for
+ 	Darwin >= 18.
+ 	(x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
+ 	(powerpc-*-darwin*): Use biarch files where needed.
+ 	(powerpc64-*-darwin*): Likewise.
+ 	* config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
+ 	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
+ 	arch case.
+ 	* config/i386/darwin32-biarch.h: New.
+ 	* config/i386/darwin64.h: Rename.
+ 	* gcc/config/i386/darwin64-biarch.h: To this.
+ 	* config/i386/t-darwin: Rename.
+ 	* gcc/config/i386/t-darwin32-biarch: To this.
+ 	* config/i386/t-darwin64: Rename.
+ 	* gcc/config/i386/t-darwin64-biarch: To this.
+ 	* config/rs6000/darwin32-biarch.h: New.
+ 	* config/rs6000/darwin64.h: Rename.
+ 	* config/rs6000/darwin64-biarch.h: To this.
+ 	(DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
+ 	arch case.
+ 	* config/rs6000/t-darwin8: Rename.
+ 	* config/rs6000/t-darwin32-biarch: To this.
+ 	* config/rs6000/t-darwin64 Rename.
+ 	* config/rs6000/t-darwin64-biarch: To this.
+ 
+ 2019-09-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	* lto-streamer.h (LTO_minor_version): Bump.
+ 
+ 	Backport from mainline
+ 	2019-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90328
+ 	* tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
+ 	* tree-data-ref.c (dr_may_alias_p): Check whether the clique
+ 	is valid in the loop nest before using it.
+ 	(initialize_data_dependence_relation): Adjust.
+ 	* graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
+ 	loop as loop-nest to dr_may_alias_p.
+ 
+ 	2019-03-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89578
+ 	* cfgloop.h (struct loop): Add owned_clique field.
+ 	* cfgloopmanip.c (copy_loop_info): Copy it.
+ 	* tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
+ 	cliques.
+ 	* tree-inline.c (copy_loops): Remap owned_clique.
+ 	* lto-streamer-in.c (input_cfg): Stream owned_clique.
+ 	* lto-streamer-out.c (output_cfg): Likewise.
+ 
+ 	2019-02-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/87609
+ 	* tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
+ 
+ 	2019-02-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/87609
+ 	* cfghooks.h (dependence_hash): New typedef.
+ 	(struct copy_bb_data): New type.
+ 	(cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
+ 	(duplicate_block): Likewise.
+ 	* cfghooks.c (duplicate_block): Pass down copy_bb_data.
+ 	(copy_bbs): Create and pass down copy_bb_data.
+ 	* cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
+ 	(rtl_duplicate_bb): Likewise.
+ 	* tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
+ 	remap dependence info.
+ 
+ 	2019-02-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/87609
+ 	* tree-core.h (tree_base): Document special clique values.
+ 	* tree-inline.c (remap_dependence_clique): Do not use the
+ 	special clique value of one.
+ 	(maybe_set_dependence_info): Use clique one.
+ 	(clear_dependence_clique): New callback.
+ 	(compute_dependence_clique): Clear clique one from all refs
+ 	before assigning it (again).
+ 
+ 2019-08-27  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (darwin_override_options): Make a final check on PIC
+ 	options.
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-07-07  Iain Sandoe  <iain@sandoe.co.uk>
+ 	* config/darwin.c (darwin_override_options): Don't jam symbol stubs
+ 	on for kernel code.
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
+ 	use longcall for 64b code.
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
+ 	in computing the number of options to be moved.
+ 
+ 	Backport from mainline
+ 	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-driver.c (validate_macosx_version_min): New.
+ 	(darwin_default_min_version): Cleanup and validate supplied version.
+ 	(darwin_driver_init): Likewise and push cleaned version into opts.
+ 
+ 2019-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
+ 
+ 	PR tree-optimization/81740
+ 	* tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
+ 	In case of outer loop vectorization, check for backward dependence
+ 	at the inner loop if outer loop dependence is reversed.
+ 
+ 2019-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2018-11-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88149
+ 	* tree-vect-slp.c (vect_slp_analyze_node_operations): Detect
+ 	the case where there are two different def types for the
+ 	same operand at different operand position in the same stmt.
+ 
+ 2019-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
+ 	use gimple_expr_type for load and store calls.  Skip over the
+ 	condition argument in a conditional internal function.
+ 	Protect use of TREE_INT_CST_LOW.
+ 
+ 	2019-04-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90006
+ 	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
+ 	calls like lrint.
+ 
+ 	2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89698
+ 	* fold-const.c (operand_equal_p): For INDIRECT_REF check
+ 	that the access types are similar.
+ 
+ 	2019-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88903
+ 	* tree-vect-stmts.c (vectorizable_shift): Verify we see all
+ 	scalar stmts a SLP shift amount is composed of when detecting
+ 	shifts by scalars.
+ 
+ 	2018-12-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/88448
+ 	PR middle-end/88415
+ 	* tree-complex.c (update_complex_assignment): Properly transfer
+ 	or clean EH info around gimple_assign_set_rhs_with_ops.
+ 
+ 	2018-11-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88030
+ 	* tree-complex.c (need_eh_cleanup): New global.
+ 	(update_complex_assignment): Mark blocks that need EH update.
+ 	(expand_complex_comparison): Likewise.
+ 	(tree_lower_complex): Allocate and deallocate need_eh_cleanup,
+ 	perform EH cleanup and schedule CFG cleanup if that did anything.
+ 
+ 	2018-11-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/87929
+ 	* tree-complex.c (expand_complex_comparison): Clean EH.
+ 
+ 	2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
+ 	to update EH info here.
+ 
+ 2019-09-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin-c.c (darwin_register_objc_includes): Do not
+ 	prepend the sysroot when building gnu-runtime header search
+ 	paths.
+ 
+ 2019-09-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.c (darwin_file_end): Use switch_to_section ()
+ 	instead of direct output of the asm.
+ 
+ 2019-09-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-08-22 Iain Sandoe <iain@sandoe.co.uk>
+ 
+ 	* config/darwin.h (LINK_COMMAND_SPEC_A): Update lto options
+ 	to match gcc/gcc.c.
+ 
+ 2019-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89710
+ 	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
+ 	safe_dyn_cast.
+ 
+ 	2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89572
+ 	* tree-scalar-evolution.c (get_loop_exit_condition): Use
+ 	safe_dyn_cast.
+ 	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
+ 	Use gimple_location_safe.
+ 
+ 	2019-02-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89296
+ 	* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
+ 	of no-warning flag to cases that might emit the bogus warning.
+ 
+ 	2019-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89135
+ 	* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
+ 	with abnormal preds.
+ 
+ 2019-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-07-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91200
+ 	* tree-ssa-phiopt.c (cond_store_replacement): Check we have
+ 	no PHI nodes in middle-bb.
+ 
+ 	2019-07-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/91162
+ 	* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
+ 	node make sure to replace all uses with something valid.
+ 
+ 	2019-07-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/91131
+ 	* gimplify.c (gimplify_compound_literal_expr): Force a temporary
+ 	when the object is volatile and we have not cleared it even though
+ 	there are no nonzero elements.
+ 
+ 	2019-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91126
+ 	* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
+ 	native encoding offset for BYTES_BIG_ENDIAN.
+ 	(vn_reference_lookup_3): Likewise.
+ 
+ 	2019-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91126
+ 	* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
+ 	native encoding offset for BYTES_BIG_ENDIAN.
+ 
+ 	2019-04-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90278
+ 	* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
+ 	EH on comparison simplification.
+ 
+ 	2019-04-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90020
+ 	* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
+ 	* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
+ 	* tree-ssa-pre.c (compute_avail): Use it to not put
+ 	possibly trapping references after a call that might not
+ 	return into EXP_GEN.
+ 	* gcse.c (compute_hash_table_work): Do not elide
+ 	marking a block containing a call if the call might not
+ 	return.
+ 
+ 2019-09-02  Bin Cheng  <bin.linux@linux.alibaba.com>
+ 
+ 	Backport from mainline
+ 	2019-07-18  Bin Cheng  <bin.linux@linux.alibaba.com>
+ 
+ 	PR tree-optimization/91137
+ 	* tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
+ 	(tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
+ 	Init, use and fini the above new field.
+ 	(determine_base_object_1): New function.
+ 	(determine_base_object): Reimplement using walk_tree.
+ 
+ 2019-08-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-05-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90637
+ 	* tree-ssa-sink.c (statement_sink_location): Honor the
+ 	computed sink location for single-uses.
+ 
+ 	* gcc.dg/gomp/pr90637.c: New testcase.
+ 
+ 	2019-06-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90930
+ 	* tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
+ 	flag on new stmts to avoid re-processing them.
+ 
+ 	2019-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/90194
+ 	* match.pd: Add pattern to simplify view-conversion of an
+ 	empty constructor.
+ 
+ 	2019-04-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/90213
+ 	* gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
+ 	by size and BITS_PER_UNIT on poly-wide-ints.
+ 
+ 	2019-04-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90071
+ 	* tree-ssa-reassoc.c (init_range_entry): Do not pick up
+ 	abnormal operands from def stmts.
+ 
+ 	2019-03-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89677
+ 	* tree-scalar-evolution.c (simplify_peeled_chrec): Do not
+ 	throw FP expressions at tree-affine.
+ 
+ 2019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/91481
+ 	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
+ 	and UNSPEC_DARN_RAW.
+ 	(unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
+ 	UNSPECV_DARN_RAW.
+ 	(darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
+ 	(darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
+ 	(darn): Use an unspec_volatile, and UNSPECV_DARN.
+ 
+ 2019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2019-08-22  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
+ 	UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
+ 	* config/rs6000/rs6000.md (unspec): ... here.
+ 	* config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
+ 	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
+ 	cmpeqb, *cmpeqb_internal): Delete, move to...
+ 	* config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
+ 	*cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
+ 	cmpeqb, *cmpeqb_internal): ... here.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-07-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/91150
+ 	* config/i386/i386.c (expand_vec_perm_blend): Change mask type
+ 	from unsigned to unsigned HOST_WIDE_INT.  For E_V64QImode cast
+ 	comparison to unsigned HOST_WIDE_INT before shifting it left.
+ 
+ 	2019-07-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/78884
+ 	* gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
+ 	(gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
+ 	loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
+ 	(gimplify_adjust_omp_clauses): Add safelen (1) clause if
+ 	ctx->add_safelen1 is set.
+ 
+ 	PR rtl-optimization/90756
+ 	* explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
+ 	for VECTOR_TYPE_P.
+ 
+ 	2019-06-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/90760
+ 	* symtab.c (symtab_node::set_section): Allow being called on aliases
+ 	as long as they aren't analyzed yet.
+ 
+ 	2019-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/90139
+ 	* tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
+ 	assign_temp instead of gen_reg_rtx.
+ 
+ 	2019-06-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/90811
+ 	* config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
+ 	instead of and.u%d.
+ 
+ 	2019-05-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/90329
+ 	* lto-streamer.h (LTO_minor_version): Bump to 1.
+ 
+ 	2019-05-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/90329
+ 	* tree-core.h (struct tree_decl_common): Document
+ 	decl_nonshareable_flag for PARM_DECLs.
+ 	* tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
+ 	* calls.c (expand_call): Don't try tail call if caller
+ 	has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
+ 	passed on the stack and callee needs to pass any arguments on the
+ 	stack.
+ 	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
+ 	else if instead of series of mutually exclusive ifs.  Handle
+ 	DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
+ 	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
+ 
+ 	2019-04-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/90187
+ 	* config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
+ 	a register if both if_true and if_false are MEMs.
+ 
+ 	PR tree-optimization/90208
+ 	* tree-cfg.c (remove_bb): Move forced labels from removed bbs
+ 	after labels of new_bb, not before them.
+ 
+ 	2019-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/90082
+ 	* dce.c (can_delete_call): New function.
+ 	(deletable_insn_p, mark_insn): Use it.
+ 
+ 	PR tree-optimization/90090
+ 	* tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
+ 	throw internally.
+ 
+ 	2019-04-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/89998
+ 	* gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
+ 	instead of integer_type_node if possible, don't add ranges if return
+ 	type is not compatible with int.
+ 	* gimple-fold.c (gimple_fold_builtin_sprintf,
+ 	gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
+ 	integer_type_node.
+ 
+ 	2019-03-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/89872
+ 	* gimplify.c (gimplify_compound_literal_expr): Don't optimize a
+ 	non-addressable complit into its initializer if it is volatile.
+ 
+ 	2019-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89621
+ 	* tree-inline.h (struct copy_body_data): Add
+ 	dont_remap_vla_if_no_change flag.
+ 	* tree-inline.c (remap_type_3, remap_type_2): New functions.
+ 	(remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
+ 	and remap_type_2 returns false.
+ 	* omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
+ 
+ 	2019-03-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/89752
+ 	* lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
+ 	update this_alternative nor this_alternative_set.
+ 
+ 	2019-03-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/89768
+ 	* loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
+ 	instead of GEN_INT.
+ 	(unroll_loop_runtime_iterations): Likewise.
+ 
+ 	PR target/89752
+ 	* gimplify.c (gimplify_asm_expr): For output argument with
+ 	TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
+ 	diagnose error.
+ 
+ 	PR target/89726
+ 	* config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
+ 	compensation use x2 += 1 instead of x2 -= -1 and when honoring
+ 	signed zeros, do another copysign after the compensation.
+ 
+ 	2019-03-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/89704
+ 	* dwarf2out.c (add_const_value_attribute): Return false for MINUS,
+ 	SIGN_EXTEND and ZERO_EXTEND.
+ 
+ 	2019-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/89679
+ 	* expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
+ 	would contain a paradoxical SUBREG.
+ 
+ 	PR tree-optimization/89703
+ 	* tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
+ 	aren't compatible also with builtin_decl_explicit.  Check pure
+ 	or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
+ 	and BUILT_IN_STPNCPY{,_CHK}.
+ 
+ 	2019-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/88588
+ 	* omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
+ 	(ipa_simd_modify_function_body): Handle PHIs.
+ 
+ 	2019-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89663
+ 	* builtins.c (expand_builtin_int_roundingfn,
+ 	expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
+ 	gcc_unreachable if validate_arglist fails.
+ 
+ 	2019-03-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/88568
+ 	* tree.c (handle_dll_attribute): Don't clear TREE_STATIC for
+ 	dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
+ 
+ 	2019-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/89587
+ 	* config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
+ 	if_multiarch.
+ 
+ 	PR middle-end/89590
+ 	* builtins.c (maybe_emit_free_warning): Punt if free doesn't have
+ 	exactly one argument.
+ 
+ 	2019-02-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/89520
+ 	* convert.c (convert_to_real_1, convert_to_integer_1): Punt for
+ 	builtins if they don't have a single scalar floating point argument.
+ 	Formatting fixes.
+ 
+ 	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89412
+ 	* expr.c (expand_assignment): If result is a MEM, use change_address
+ 	instead of simplify_gen_subreg.
+ 
+ 	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
+ 		    David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR middle-end/89091
+ 	* fold-const.c (decode_field_reference): Return NULL_TREE if
+ 	lang_hooks.types.type_for_size returns NULL.  Check it before
+ 	overwriting *exp_.  Use return NULL_TREE instead of return 0.
+ 
+ 	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/88074
+ 	PR middle-end/89415
+ 	* toplev.c (do_compile): Double the emin/emax exponents to workaround
+ 	buggy mpc_norm.
+ 
+ 	2019-02-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/88074
+ 	* toplev.c (do_compile): Initialize mpfr's exponent range
+ 	based on available float modes.
+ 
+ 	2019-02-18  Jakub Jelinek  <jakub@redhat.com>
+  
+ 	PR target/89361
+ 	* config/s390/s390.c (s390_indirect_branch_attrvalue,
+ 	s390_indirect_branch_settings): Define unconditionally.
+ 	(s390_set_current_function): Likewise, but guard the whole body except
+ 	the s390_indirect_branch_settings call with
+ 	#if S390_USE_TARGET_ATTRIBUTE.
+ 	(TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
+ 
+ 	2019-02-15  Richard Biener  <rguenther@suse.de>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/89278
+ 	* tree-loop-distribution.c: Include tree-eh.h.
+ 	(generate_memset_builtin, generate_memcpy_builtin): Call
+ 	rewrite_to_non_trapping_overflow on builtin->size before passing it
+ 	to force_gimple_operand_gsi.
+ 
+ 	2019-02-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/89342
+ 	* optc-save-gen.awk: Handle optimize_fast like optimize_size or
+ 	optimize_debug.
+ 	* opth-gen.awk: Likewise.
+ 
+ 	2019-02-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/89354
+ 	* combine.c (make_extraction): Punt if extraction_mode is narrower
+ 	than len bits.
+ 
+ 	PR tree-optimization/89314
+ 	* fold-const.c (fold_binary_loc): Cast strlen argument to
+ 	const char * before dereferencing it.  Formatting fixes.
+ 
+ 	2019-02-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89303
+ 	* tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
+ 	into pt->vars_contains_escaped_heap instead of setting
+ 	pt->vars_contains_escaped_heap to it.
+ 
+ 	PR middle-end/89281
+ 	* optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
+ 	INTVAL (size), compare it to GET_MODE_MASK instead of
+ 	1 << GET_MODE_BITSIZE.
+ 
+ 	2019-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89246
+ 	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
+ 	If !node->definition and TYPE_ARG_TYPES is non-NULL, use
+ 	TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
+ 
+ 	2019-01-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR target/88861
+ 	* combine.c (delete_noop_moves): Convert to "bool" return,
+ 	returning true if any edges are eliminated.
+ 	(combine_instructions): Also return true if delete_noop_moves
+ 	returns true.
+ 
+ 	2019-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/89234
+ 	* except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
+ 	is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
+ 	(copy_reg_eh_region_note_backward): Likewise.
+ 
+ 	2019-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/89188
+ 	* dce.c (delete_unmarked_insns): Don't remove no-op moves if they
+ 	can throw, non-call exceptions are enabled and we can't delete
+ 	dead exceptions or alter cfg.  Set must_clean if
+ 	delete_insn_and_edges returns true, don't set it blindly for calls.
+ 
+ 	PR rtl-optimization/89195
+ 	* combine.c (make_extraction): For MEMs, don't extract bytes outside
+ 	of the original MEM.
+ 
+ 	PR target/89186
+ 	* optabs.c (prepare_cmp_insn): Pass x and y to
+ 	emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
+ 
+ 	2019-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/87887
+ 	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
+ 	Punt with warning on aggregate return or argument types.  Ignore
+ 	type/mode checking for uniform arguments.
+ 
+ 	2019-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/88107
+ 	* tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
+ 	instead of assertion that eh_region_outermost is non-NULL, if it
+ 	is NULL, set *ALL to true and return NULL.
+ 	(move_sese_region_to_fn): Adjust caller, if all is set, call
+ 	duplicate_eh_regions with NULL region.
+ 
+ 	2019-01-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/66676
+ 	PR ipa/89104
+ 	* omp-simd-clone.c (simd_clone_clauses_extract)
+ 	<case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
+ 	OMP_CLAUSE_ALIGNED_ALIGNMENT.
+ 
+ 	2019-01-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89002
+ 	* gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
+ 	for lastprivate/linear IV, push gimplify context around gimplify_assign
+ 	and, if it needed any temporaries, pop it into a gimple bind around the
+ 	sequence.
+ 
+ 	2019-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/87214
+ 	* config/i386/sse.md
+ 	(<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
+ 	avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
+ 	first constants in pairs are multiples of 2.  Formatting fixes.
+ 	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
+ 	avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
+ 	first constants in each quadruple are multiples of 4.  Formatting fixes.
+ 
+ 	2019-01-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/49429
+ 	PR target/49454
+ 	PR rtl-optimization/86334
+ 	PR target/88906
+ 	* expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
+ 	addressable from here...
+ 	(emit_block_op_via_libcall): ... to here.
+ 
+ 	2019-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/88870
+ 	* dce.c (deletable_insn_p): Never delete const/pure calls that can
+ 	throw if we can't alter the cfg or delete dead exceptions.
+ 	(mark_insn): Don't call find_call_stack_args for such calls.
+ 
+ 	2019-01-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/88568
+ 	* tree.c (handle_dll_attribute): Clear TREE_STATIC after setting
+ 	DECL_EXTERNAL.
+ 
+ 	2019-01-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/82564
+ 	PR target/88620
+ 	* expr.c (expand_assignment): For calls returning VLA structures
+ 	if to_rtx is not a MEM, force it into a stack temporary.
+ 
+ 	2019-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/88594
+ 	* config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
+ 	of GET_MODE (opN) as modes of the libcall arguments.
+ 
+ 	2019-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/88644
+ 	* dwarf2out.c (modified_type_die): If type is equal to sizetype,
+ 	change it to qualified_type.
+ 
+ 	2018-12-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/85594
+ 	PR middle-end/88553
+ 	* omp-expand.c (extract_omp_for_update_vars): Regimplify the condition
+ 	if needed.
+ 	(expand_omp_for_generic): Don't clobber t temporary for ordered loops.
+ 
+ 	PR rtl-optimization/88563
+ 	* expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode
+ 	and mode arguments to convert_modes.  Likewise swap mode and word_mode
+ 	arguments.  Handle both arguments with VOIDmode before convert_modes
+ 	of one of them.  Formatting fixes.
+ 
+ 	2018-12-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/88470
+ 	* cfgcleanup.c (outgoing_edges_match): If the function is
+ 	shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
+ 	edge to EXIT, return false.
+ 
+ 	PR rtl-optimization/88416
+ 	* valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
+ 	even if !AUTO_INC_DEC.
+ 
+ 	2018-12-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/85593
+ 	* final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage
+ 	for functions with naked attribute.
+ 
+ 	2018-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/87895
+ 	* omp-simd-clone.c (ipa_simd_modify_function_body): When removing
+ 	or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT.
+ 	(simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that
+ 	redirects edges to EXIT to edges to incr_bb, iterate while EXIT
+ 	has any preds and always use EDGE_PRED (, 0).
+ 
+ 	2018-10-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/87647
+ 	* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.
+ 
+ 	2018-10-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/85488
+ 	PR middle-end/87649
+ 	* omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without
+ 	depend closely nested inside of loop with ordered clause with
+ 	a parameter.
+ 
+ 2019-08-25  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/91533
+ 	Backport from mainline
+ 	2019-06-30  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
+ 	* config/i386/i386-builtin.def (__builtin_ia32_pabsb):
+ 	Use CODE_FOR_ssse3_absv8qi2.
+ 	(__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
+ 	(__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
+ 
+ 2019-08-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91510
+ 	Backport from mainline
+ 	2017-09-26  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	* tree-sra.c (compare_access_positions): Put integral types first,
+ 	stabilize sorting of integral types, remove conditions putting
+ 	non-full-precision integers last.
+ 	(sort_and_splice_var_accesses): Disable scalarization if a
+ 	non-integert would be represented by a non-full-precision integer.
+ 
+ 2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/91347
+ 	* dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
+ 	before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
+ 
+ 2019-07-22  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-07-22  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR driver/91172
+ 	* opts-common.c (decode_cmdline_option): Decode
+ 	argument of -Werror and check it for a wrong language.
+ 	* opts-global.c (complain_wrong_lang): Remove such case.
+ 
+ 2019-07-16  Wilco Dijkstra  <wdijkstr@arm.com>
+ 
+ 	Backport from mainline
+ 	2019-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
+ 
+ 	PR target/89222
+ 	* config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
+ 	to decide when to split off a non-zero offset from a symbol.
+ 	* config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
+ 	in function symbols.
+ 
+ 2019-07-15  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/vector.md: Fix shift count operand printing.
+ 
+ 2019-07-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR rtl-optimization/91136
+ 	* df-core.c (ACCESSING REFS): Fix typos in comment.
+ 	* resource.c (mark_target_live_reg): Add artificial defs that occur at
+ 	the beginning of the block to the initial set of live registers.
+ 
+ 2019-06-28  Jeff Law  <law@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-06-21  Jeff Law  <law@redhat.com>
+ 
+ 	PR tree-optimization/90949
+ 	* tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
+ 	* tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
+ 
+ 2019-06-27  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-06-25  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/90939
+ 	* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
+ 
+ 2019-06-16  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR middle-end/64242
+ 	* config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
+ 	frame clobbers and schedule block.
+ 	(builtin_longjmp): Likewise.
+ 
+ 2019-05-24  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR target/90530
+ 	* config/pa/pa.c (pa_cannot_change_mode_class): Accept mode changes
+ 	from DImode to SImode in floating-point registers on 64-bit target.
+ 	* config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
+ 	register_operand in xmpyu patterns.
+ 
+ 2019-05-23  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backported from mainline
+ 	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/i386/cpuid.h (__cpuid): For 32bit targets, zero
+ 	%ebx and %ecx bafore calling cpuid with leaf 1 or
+ 	non-constant leaf argument.
+ 
+ 	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/90547
+ 	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
+ 	Avoid calling gen_lowpart with CONST operand.
+ 
+ 2019-05-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	Backport from mainline.
+ 	2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/89765
+ 	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
+ 	In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
+ 	to compute vector element selector for both constant and variable
+ 	operands.
+ 
+ 2019-01-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/86215
+ 	Backport from mainline
+ 	2017-09-25  Iain Sandoe  <iain@codesourcery.com>
+ 
+ 	PR target/80556
+ 	* config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
+ 	of libgcc_eh for m64.
+ 	* config/i386/darwin64.h: Likewise.
+ 
+ 2019-05-15  David Edelsohn  <dje.gcc@gmail.com>
+ 
+ 	Backport from mainline
+ 	2019-04-11  David Edelsohn  <dje.gcc@gmail.com>
+ 	* xcoffout.h (xcoff_private_rodata_section_name): Declare.
+ 	* xcoffout.c (xcoff_private_rodata_section_name): Define.
+ 	* config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
+ 	read_only_private_data_section using coff_private_rodata_section_name.
+ 	(rs6000_xcoff_file_start): Generate coff_private_rodata_section_name.
+ 
+ 	2018-12-04  David Edelsohn  <dje.gcc@gmail.com>
+ 	2018-12-13  David Edelsohn  <dje.gcc@gmail.com>
+ 	PR target/61976
+ 	* config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates
+ 	in FPRs on AIX. Ensure type is non-NULL.
+ 	(rs6000_arg_partial_bytes): Same.
+ 
+ 2019-05-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+ 
+ 	* config/arm/t-rtems: Replace -march=armv7-m multilibs with
+ 	-mcpu=cortex-m3 and -mcpu=cortex-m4 multilibs.
+ 
+ 2019-05-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	Backport from mainline.
+ 	2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/89424
+ 	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
+ 	handling of V1TImode.
+ 
+ 2019-05-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backport from mainline:
+ 	2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/89037
+ 	* varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
+ 	instead of accessing TREE_INT_CST_ELT directly.
+ 
+ 2019-05-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+ 
+ 	Backport from mainline.
+ 	2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+ 	PR target/86538
+ 	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
+ 	Define __ARM_FEATURE_ATOMICS
+ 
+ 2019-04-30  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	PR target/90075
+ 	* config/aarch64/iterators.md (V_INT_EQUIV): Add mode for
+ 	integer equivalent of floating point values.
+ 
+ 	Backport from mainline
+ 	2018-12-11  Richard Earnshaw  <Richard.Earnshaw@arm.com>
+ 	PR target/37369
+ 	* config/aarch64/iterators.md (sizem1): Add sizes for
+ 	SFmode and DFmode.
+ 	(Vbtype): Add SFmode mapping.
+ 	* config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete.
+ 	(copysign<GPF:mode>3): New expand pattern.
+ 	(copysign<GPF:mode>3_insn): New insn pattern.
+ 
+ 2019-04-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/87532
+ 	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
+ 	When handling vec_extract, use modular arithmetic to allow
+ 	constant selectors greater than vector length.
+ 	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
+ 	V1TImode vectors to have constant selector values greater than 0.
+ 	Use modular arithmetic to compute vector index.
+ 	(rs6000_split_vec_extract_var): Use modular arithmetic to compute
+ 	index for in-memory vectors.  Correct code generation for
+ 	in-register vectors.  Use inner mode of vector rather than mode of
+ 	destination for move instruction.
+ 	(altivec_expand_vec_ext_builtin): Use modular arithmetic to
+ 	compute index.
+ 
+ 	2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/87532
+ 	* config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
+ 	Use QI inner mode with V16QI vector mode.
+ 
+ 2019-04-19  Xiong Hu Luo  <luoxhu@linux.ibm.com>
+ 
+ 	Backport from trunk
+ 	2018-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* doc/sourcebuild.texi (Endianness): New subsubsection.
+ 
+ 2019-04-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-03-08  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR target/86952
+ 	* config/i386/i386.c (ix86_option_override_internal): Disable
+ 	jump tables when retpolines are used.
+ 
+ 2019-04-10  Matthew Malcomson  <matthew.malcomson@arm.com>
+ 
+ 	PR target/90024
+ 	* config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
+ 	* config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
+ 	into three.
+ 	* config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
+ 	differences directly.
+ 	(*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
+ 
+ 2019-04-07  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/89945
+ 	* config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
+ 	Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
+ 
+ 2019-04-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	Backport from mainline
+ 	2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* rtlanal.c (get_initial_register_offset): Fall back to the estimate
+ 	as long as the epilogue isn't completed.
+ 
+ 2019-04-03  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/89896
+ 	* lto-wrapper.c (run_gcc): Avoid implicit rules making
+ 	the all target phony.
+ 
+ 2019-04-02  Xiong Hu Luo <luoxhu@linux.ibm.com>
+ 
+ 	Backport from trunk r250477.
+ 
+ 	2017-07-24  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/rs6000-c.c: Add support for built-in functions
+ 	vector float vec_extract_fp32_from_shorth (vector unsigned short);
+ 	vector float vec_extract_fp32_from_shortl (vector unsigned short);
+ 	* config/rs6000/altivec.h (vec_extract_fp_from_shorth,
+ 	vec_extract_fp_from_shortl): Add defines for the two builtins.
+ 	* config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
+ 	VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
+ 	new builtins.
+ 	* config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
+ 	(vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
+ 	* doc/extend.texi: Update the built-in documentation file for the
+ 	new built-in function.
+ 
+ 	Backport from trunk r255555.
+ 
+ 	2017-12-11  Carl Love  <cel@us.ibm.com>
+ 
+ 	* config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
+ 	vec_extract_fp32_from_shortl]): Add #defines.
+ 	* config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
+ 	* config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
+ 	ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
+ 	ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
+ 	ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
+ 	ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
+ 	* doc/extend.texi: Add documentation for the added builtins.
+ 
+ 2019-03-28  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2018-11-05  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR web/87829
+ 	* doc/invoke.texi: Remove options that are
+ 	not disabled with -Os.
+ 
+ 2019-02-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-02-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89253
+ 	* tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
+ 	duplicate the loop.
+ 
+ 	2019-02-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89223
+ 	* tree-data-ref.c (initialize_matrix_A): Fail if constant
+ 	doesn't fit in HWI.
+ 	(analyze_subscript_affine_affine): Handle failure from
+ 	initialize_matrix_A.
+ 
+ 	2019-01-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88739
+ 	* tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
+ 	BIT_FIELD_REFs of non-mode-precision integral operands.
+ 
+ 2019-03-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-01-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/86554
+ 	* tree-ssa-sccvn.c (visit_nary_op): When value-numbering to
+ 	expressions with different overflow behavior make sure there's an
+ 	available expression on the path.
+ 
+ 	2018-11-20  Richard Biener  <rguenther@suse.de>
+  
+ 	PR tree-optimization/88105
+ 	* tree-ssa-dom.c (pass_dominator::execute): Do not walk
+ 	backedges.
+ 
+ 	2018-03-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/84552
+ 	* tree-scalar-evolution.c: Include tree-into-ssa.h.
+ 	(follow_copies_to_constant): Do not follow SSA names registered
+ 	for update.
+ 
+ 2019-03-21  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000.c (rs6000_analyze_swaps): Rebuild
+ 	ud- and du-chains between phases.
+ 
+ 2019-03-21  Matthias Klose  <doko@ubuntu.com>
+ 
+ 	Backport from mainline
+ 	2019-02-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89505
+ 	* tree-ssa-structalias.c (compute_dependence_clique): Make sure
+ 	to handle restrict pointed-to vars with multiple subvars
+ 	correctly.
+ 
+ 2019-03-17  H.J. Lu  <hongjiu.lu@intel.com>
+ 
+ 	Backport from mainline
+ 	2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
+ 
+ 	PR target/89523
+ 	* config/i386/i386.c (ix86_print_operand): Handle 'M' to add
+ 	addr32 prefix to VSIB address for X32.
+ 	* config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
+ 	"%M2" to opcode.
+ 	(*avx512pf_gatherpf<mode>df_mask): Likewise.
+ 	(*avx512pf_scatterpf<mode>sf_mask): Likewise.
+ 	(*avx512pf_scatterpf<mode>df_mask): Likewise.
+ 	(*avx2_gathersi<mode>): Prepend "%M3" to opcode.
+ 	(*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
+ 	(*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
+ 	(*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
+ 	(*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
+ 	(*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
+ 	(*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
+ 	(*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
+ 	(*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
+ 	(*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
+ 	(*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
+ 	(*avx512f_scatterdi<mode>): Likewise.
+ 
+ 2019-03-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-03-07  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR lto/87525
+ 	* ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
+ 	for extern inline functions.
+ 
+ 2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2018-02-16  Jakub Jelinek  <jakub@redhat.com>
+  
+ 	PR target/84272
+ 	* config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest):
+ 	Use ++iter rather than iter++ for std::list iterators.
+ 	(func_fma_steering::dfs): Likewise.  Don't delete nodes right away,
+ 	defer deleting them until all nodes in the forest are processed.  Do
+ 	free even leaf nodes.  Change to_process into auto_vec.
+ 
+ 2019-03-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backport from mainline
+ 	2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
+ 	requirement.
+ 
+ 2019-03-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-11  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR lto/88147
+ 	* input.c (selftest::test_line_offset_overflow): New selftest.
+ 	(selftest::input_c_tests): Call it.
+ 
+ 2019-03-07  Xiong Hu Luo  <luoxhu@linux.ibm.com>
+ 
+ 	Backport of r268834 from mainline to gcc-7-branch.
+ 	2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
+ 
+ 	* config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
+ 	vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
+ 	* config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
+ 	(crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
+ 	* config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
+ 	(VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
+ 	New BU_CRYPTO_2.
+ 	* config/rs6000/rs6000.c (builtin_function_type)
+ 	<CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
+ 	CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
+ 	CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
+ 	* doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
+ 	vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
+ 
+ 2019-02-27  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/89397
+ 	* config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
+ 	TARGET_SSE in addition to TARGET_SSE_MATH.
+ 
+ 	(ix86_excess_precision): Ditto.
+ 	(ix86_float_exceptions_rounding_supported_p): Ditto.
+ 	(use_rsqrt_p): Ditto.
+ 	* config/i386/sse.md (rsqrt<mode>2): Ditto.
+ 
+ 2019-02-15  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-14  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR rtl-optimization/89242
+ 	* dce.c (delete_unmarked_insns): Call free_dominance_info we
+ 	process a transformation.
+ 
+ 2019-02-15  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR ipa/89009
+ 	* ipa-cp.c (build_toporder_info): Remove usage of a param.
+ 	* ipa-inline.c (inline_small_functions): Likewise.
+ 	* ipa-pure-const.c (propagate_pure_const): Likewise.
+ 	(propagate_nothrow): Likewise.
+ 	* ipa-reference.c (propagate): Likewise.
+ 	* ipa-utils.c (struct searchc_env): Remove unused field.
+ 	(searchc): Always search across AVAIL_INTERPOSABLE.
+ 	(ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
+ 	the only called IPA pure const can properly not propagate
+ 	across interposable boundary.
+ 	* ipa-utils.h (ipa_reduced_postorder): Remove param.
+ 
+ 2019-02-11  Stefan Agner  <stefan@agner.ch>
+ 
+ 	Backport from mainline.
+ 	2019-01-10  Stefan Agner  <stefan@agner.ch>
+ 
+ 	PR target/88648
+ 	* config/arm/arm.c (arm_option_override_internal): Force
+ 	opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
+ 
+ 2019-02-09  Alan Modra  <amodra@gmail.com>
+ 
+ 	PR target/88343
+ 	* config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Match
+ 	logic in rs6000_emit_prologue emitting pic_offset_table setup.
+ 
+ 2019-02-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	Backport from mainline
+ 	2018-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/85755
+ 	* config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
+ 	on the correct operand.
+ 	(*movdi_internal64): Ditto.
+ 
+ 2019-02-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	Backport from mainline.
+ 	2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 	* config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
+ 	Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
+ 	type of vector element when vec_extract is implemented by direct
+ 	move.
+ 
+ 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
+ 	after restoring registers saved to allocate the frame on Windows.
+ 
+ 2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	PR target/88856
+ 	* config/s390/s390.md: Remove load and test FP splitter.
+ 
+ 2019-02-04  Bill Schmidt  <wshmidt@linux.ibm.com>
+ 
+ 	PR target/87064
+ 	Backport from mainline
+ 
+ 	2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	PR target/87064
+ 	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
+ 	Disable for little-endian.
+ 
+ 	2019-01-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/87064
+ 	* config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
+ 	Disable for little endian.
+ 
+ 2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	PR tree-optimization/89008
+ 	* gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
+ 	process anything of the form X * 0.
+ 
+ 2019-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/89115
+ 	* lra.c (lra_rtx_hash): Properly hash CONST_INT values.
+ 
+ 	2019-01-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/89115
+ 	* opts.c (default_options_optimization): Reduce
+ 	PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
+ 	Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
+ 	to the default.
+ 
+ 2019-01-30  Kewen Lin  <linkw@gcc.gnu.org>
+ 
+ 	Backport from mainline.
+ 	2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
+ 
+ 	* doc/extend.texi: Add four new prototypes for vec_ld and seven new
+ 	prototypes for vec_st.
+ 	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
+ 	for scalar address type variants of altivec_vec_ld/altivec_vec_st,
+ 	mainly on signed/unsigned long long and double.
+ 
+ 2019-01-27  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88948
+ 	* rtl.h (prepare_copy_insn): New prototype.
+ 	* gcse.c (prepare_copy_insn): New function, split out from
+ 	process_insert_insn.
+ 	(process_insert_insn): Use prepare_copy_insn.
+ 	* store-motion.c (replace_store_insn): Use prepare_copy_insn
+ 	instead of gen_move_insn.
+ 
+ 2019-01-24  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88998
+ 	* config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
+ 	Disparage MMX alternative.
+ 	(sse2_cvtpd2pi): Ditto.
+ 	(sse2_cvttpd2pi): Ditto.
+ 
+ 2019-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89008
+ 	* tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
+ 	not leave another stray operand.
+ 
+ 2019-01-22  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88938
+ 	* config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
+ 	case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
+ 
+ 2019-01-18  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	* config/alpha/alpha.c (alpha_gimplify_va_arg):
+ 	Handle split indirect COMPLEX_TYPE arguments.
+ 
+ 2019-01-16  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from mainline
+ 	2018-12-10  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/88214
+ 	* ipa-prop.c (determine_locally_known_aggregate_parts): Make sure
+ 	we check pointers against pointers.
+ 
+ 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    James Clarke  <jrtc27@jrtc27.com>
+ 
+ 	PR target/84010
+ 	* config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
+ 	consistently in TLS address generation and adjust code to the renaming
+ 	of patterns.  Mark calls to __tls_get_addr as const.
+ 	* config/sparc/sparc.md (tgd_hi22): Turn into...
+ 	(tgd_hi22<P:mode>): ...this and use Pmode throughout.
+ 	(tgd_lo10): Turn into...
+ 	(tgd_lo10<P:mode>): ...this and use Pmode throughout.
+ 	(tgd_add32): Merge into...
+ 	(tgd_add64): Likewise.
+ 	(tgd_add<P:mode>): ...this and use Pmode throughout.
+ 	(tldm_hi22): Turn into...
+ 	(tldm_hi22<P:mode>): ...this and use Pmode throughout.
+ 	(tldm_lo10): Turn into...
+ 	(tldm_lo10<P:mode>): ...this and use Pmode throughout.
+ 	(tldm_add32): Merge into...
+ 	(tldm_add64): Likewise.
+ 	(tldm_add<P:mode>): ...this and use Pmode throughout.
+ 	(tldm_call32): Merge into...
+ 	(tldm_call64): Likewise.
+ 	(tldm_call<P:mode>): ...this and use Pmode throughout.
+ 	(tldo_hix22): Turn into...
+ 	(tldo_hix22<P:mode>): ...this and use Pmode throughout.
+ 	(tldo_lox10): Turn into...
+ 	(tldo_lox10<P:mode>): ...this and use Pmode throughout.
+ 	(tldo_add32): Merge into...
+ 	(tldo_add64): Likewise.
+ 	(tldo_add<P:mode>): ...this and use Pmode throughout.
+ 	(tie_hi22): Turn into...
+ 	(tie_hi22<P:mode>): ...this and use Pmode throughout.
+ 	(tie_lo10): Turn into...
+ 	(tie_lo10<P:mode>): ...this and use Pmode throughout.
+ 	(tie_ld64): Use DImode throughout.
+ 	(tie_add32): Merge into...
+ 	(tie_add64): Likewise.
+ 	(tie_add<P:mode>): ...this and use Pmode throughout.
+ 	(tle_hix22_sp32): Merge into...
+ 	(tle_hix22_sp64): Likewise.
+ 	(tle_hix22<P:mode>): ...this and use Pmode throughout.
+ 	(tle_lox22_sp32): Merge into...
+ 	(tle_lox22_sp64): Likewise.
+ 	(tle_lox22<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_ldub_sp32): Merge into...
+ 	(*tldo_ldub_sp64): Likewise.
+ 	(*tldo_ldub<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_ldub1_sp32): Merge into...
+ 	(*tldo_ldub1_sp64): Likewise.
+ 	(*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_ldub2_sp32): Merge into...
+ 	(*tldo_ldub2_sp64): Likewise.
+ 	(*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_ldsb1_sp32): Merge into...
+ 	(*tldo_ldsb1_sp64): Likewise.
+ 	(*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_ldsb2_sp32): Merge into...
+ 	(*tldo_ldsb2_sp64): Likewise.
+ 	(*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_ldub3_sp64): Use DImode throughout.
+ 	(*tldo_ldsb3_sp64): Likewise.
+ 	(*tldo_lduh_sp32): Merge into...
+ 	(*tldo_lduh_sp64): Likewise.
+ 	(*tldo_lduh<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_lduh1_sp32): Merge into...
+ 	(*tldo_lduh1_sp64): Likewise.
+ 	(*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_ldsh1_sp32): Merge into...
+ 	(*tldo_ldsh1_sp64): Likewise.
+ 	(*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_lduh2_sp64): Use DImode throughout.
+ 	(*tldo_ldsh2_sp64): Likewise.
+ 	(*tldo_lduw_sp32): Merge into...
+ 	(*tldo_lduw_sp64): Likewise.
+ 	(*tldo_lduw<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_lduw1_sp64): Use DImode throughout.
+ 	(*tldo_ldsw1_sp64): Likewise.
+ 	(*tldo_ldx_sp64): Likewise.
+ 	(*tldo_stb_sp32): Merge into...
+ 	(*tldo_stb_sp64): Likewise.
+ 	(*tldo_stb<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_sth_sp32): Merge into...
+ 	(*tldo_sth_sp64): Likewise.
+ 	(*tldo_sth<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_stw_sp32): Merge into...
+ 	(*tldo_stw_sp64): Likewise.
+ 	(*tldo_stw<P:mode>): ...this and use Pmode throughout.
+ 	(*tldo_stx_sp64): Use DImode throughout.
+ 
+ 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* doc/invoke.texi (-Os): Add reference to -finline-functions.
+ 	(-finline-small-functions): Add references to -O3 and -Os.
+ 	(-findirect-inlining): Likewise.
+ 	(-finline-functions): Add references to -Os, -fprofile-use and
+ 	-fauto-profile.
+ 
+ 2019-01-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	revert:
+ 	2018-12-30  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	backport from mainline.
+ 	2018-12-12 Segher Boessenkool  <segher@kernel.crashing.org>
+ 		   Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/88343
+ 	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
+ 	unless it has been used.
+ 	(first_reg_to_save): Remove dead code.
+ 
+ 2019-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR inline-asm/55681
+ 	* doc/extend.texi (Basic Asm): Update grammar.
+ 	(Extended Asm): Update grammar.
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* doc/extend.texi (Using Assembly Language with C): Document asm inline.
+ 	(Size of an asm): Fix typo.  Document asm inline.
+ 	* gimple-pretty-print.c (dump_gimple_asm): Handle asm inline.
+ 	* gimple.h (enum gf_mask): Add GF_ASM_INLINE.
+ 	(gimple_asm_set_volatile): Fix typo.
+ 	(gimple_asm_inline_p): New.
+ 	(gimple_asm_set_inline): New.
+ 	* gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from
+ 	tree to gimple.
+ 	* ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the
+ 	gimple_asm_inline_p flag, too.
+ 	* tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P
+ 	in an ASM_EXPR.
+ 	* tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return
+ 	a minimum size for an asm.
+ 	* tree.h (ASM_INLINE_P): New.
+ 
+ 2018-12-30  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	backport from mainline.
+ 	2018-12-12 Segher Boessenkool  <segher@kernel.crashing.org>
+ 		   Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/88343
+ 	* config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
+ 	unless it has been used.
+ 	(first_reg_to_save): Remove dead code.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/87380
+ 	* config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the
+ 	default.
+ 	* config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/78444
+ 	* config/i386/darwin.h (STACK_BOUNDARY): Remove macro.
+ 	* config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b
+ 	stack alignment in non-leaf functions.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/81685
+ 	* config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION,
+ 	DEBUG_RNGLISTS_SECTION) new macros.  (DEBUG_PUBNAMES_SECTION,
+ 	DEBUG_PUBTYPES_SECTION) update to include GNU variant.
+ 
+ 2018-12-21  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backport from mainline
+ 	2018-12-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88418
+ 	* config/i386/i386.c (ix86_expand_sse_cmp): For vector modes,
+ 	check operand 1 with vector_operand predicate.
+ 	(ix86_expand_sse_movcc): For vector modes, check op_true with
+ 	vector_operand, not nonimmediate_operand.
+ 
+ 2018-12-19  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-12-18  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	* doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
+ 	Describe when a typedef name can be used as the type specifier for
+ 	a vector type, and when it cannot.
+ 
+ 2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/88213
+ 	* config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load):
+ 	Require TARGET_POWERPC64.
+ 
+ 2018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
+ 
+ 	Backport from trunk
+ 	2018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
+ 
+ 	PR rtl-optimization/88253
+ 	* combine.c (combine_simplify_rtx): Test for side-effects before
+ 	substituting by zero.
+ 
+ 2018-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2018-12-14  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR rtl-optimization/88001
+ 	* function.c (match_asm_constraints_1): Don't invalidly share RTL.
+ 
+ 2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/s390-builtins.def (s390_vec_double_s64): Map to
+ 	s390_vec_double_s64 instead of s390_vcdgb.
+ 	(s390_vec_double_u64): Map to s390_vec_double_u64 instead of
+ 	s390_vcdlgb.
+ 
+ 2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64")
+ 	("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT.
+ 	("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT.
+ 
+ 2018-12-12  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-12-07  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/87496
+ 	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
+ 	-mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128.
+ 	Do not error for -mabi=ibmlongdouble and no ISA 2.06 support.
+ 	* doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble
+ 	require -mlong-double-128.
+ 
+ 2018-12-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* BASE-VER: Increment to 7.4.1.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
***************
*** 19,31 ****
  	* gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New.
  	(dwarf2out_switch_text_section): Generate a local label for the second
  	function sub-section and apply it as the second FDE start label.
! 	* gcc/final.c (final_scan_insn_1): Emit second FDE label after the second
! 	sub-section start.
  
  2018-11-26  Iain Sandoe  <iain@sandoe.co.uk>
  
  	2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
!  
  	* config/darwin.c
  	(darwin_function_switched_text_sections): Delete.
  	* gcc/config/darwin.h
--- 2292,2304 ----
  	* gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New.
  	(dwarf2out_switch_text_section): Generate a local label for the second
  	function sub-section and apply it as the second FDE start label.
! 	* gcc/final.c (final_scan_insn_1): Emit second FDE label after the
! 	second sub-section start.
  
  2018-11-26  Iain Sandoe  <iain@sandoe.co.uk>
  
  	2018-08-15  Iain Sandoe  <iain@sandoe.co.uk>
! 
  	* config/darwin.c
  	(darwin_function_switched_text_sections): Delete.
  	* gcc/config/darwin.h
diff -Nrcpad gcc-7.4.0/gcc/DATESTAMP gcc-7.5.0/gcc/DATESTAMP
*** gcc-7.4.0/gcc/DATESTAMP	Thu Dec  6 00:16:14 2018
--- gcc-7.5.0/gcc/DATESTAMP	Thu Nov 14 00:16:05 2019
***************
*** 1 ****
! 20181206
--- 1 ----
! 20191114
diff -Nrcpad gcc-7.4.0/gcc/ada/ChangeLog gcc-7.5.0/gcc/ada/ChangeLog
*** gcc-7.4.0/gcc/ada/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/ada/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,143 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-10-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/91995
+ 	* sem_util.ads (Defining_Entity): Remove 2nd and 3th parameters.
+ 	* sem_util.adb (Defining_Entity): Remove 2nd and 3th parameters,
+ 	and adjust accordingly.
+ 
+ 2019-10-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Really test the
+ 	sign of the value when deciding to build a NEGATE_EXPR.
+ 	<PLUS_EXPR>: Remove redundant line.
+ 	<BIT_AND_EXPR>: Do the negation here.
+ 
+ 2019-09-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep
+ 	on the underlying type of the node.
+ 	(Call_to_gnu): Likewise with the type of the prefix.
+ 
+ 2019-09-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-07-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* system-darwin-ppc.ads: Set Stack_Check_Probes True for
+ 	PPC Darwin.
+ 
+ 2019-09-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-30  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gnatlink.adb (Link_Step): Push -shared-libgcc explicitly, when it
+ 	is the target default (unless overidden by the static flag).
+ 	When the user has put an instance of shared/static-libgcc do not push
+ 	a duplicate of this.
+ 
+ 2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
+ 	the main variant of a type, if any.
+ 
+ 2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
+ 	missing guard for the presence of TYPE_CANONICAL.
+ 	(set_reverse_storage_order_on_array_type): Likewise.
+ 
+ 2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.c (walk_nesting_tree): New static function.
+ 	(finalize_nrv): Use it to walk the entire nesting tree.
+ 
+ 2019-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
+ 	Honor DESTDIR.
+ 
+ 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/81956
+ 	Backport from mainline
+ 	2017-09-06  Ed Schonberg  <schonberg@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Call_Helper): Do not optimize calls to
+ 	null procedures when GNAT coverage is used, so that their (empty)
+ 	bodies are properly covered.
+ 
+ 	2017-09-06  Ed Schonberg  <schonberg@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Call_Helper): Replace call to null
+ 	procedure by a single null statement, after evaluating the
+ 	actuals that require it.
+ 
+ 2019-02-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/89349
+ 	Backport from mainline
+ 	2018-05-25  Arnaud Charlet  <charlet@adacore.com>
+ 
+ 	* osint.ads (Unknown_Attributes): No longer pretend this is a constant.
+ 	(No_File_Info_Cache): Initialize separately.
+ 	* osint.adb (No_File_Info_Cache): Update initializer.
+ 
+ 2019-02-08  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.c (Loop_Statement_to_gnu): Replace tests on
+ 	individual flag_unswitch_loops and flag_tree_loop_vectorize switches
+ 	with test on global optimize switch.
+ 	(Raise_Error_to_gnu): Likewise.
+ 
+ 2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* s-linux-sparc.ads (ETIMEDOUT): Set to correct value.
+ 
+ 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	Backport from mainline
+ 	2017-09-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.c (annotate_value): Tidy up.
+ 	<INTEGER_CST>: Set TCODE instead of recursing.
+ 	<COMPONENT_REF>: Set TCODE instead of calling Create_Node manually.
+ 	<MULT_EXPR, PLUS_EXPR>: Fold conversions into inner operations.
+ 	<BIT_AND_EXPR>: Adjust.
+ 	<CALL_EXPR>: Do not fall through.
+ 
+ 2019-01-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.c (array_type_has_nonaliased_component): Return
+ 	the same value for every dimension of a multidimensional array type.
+ 
+ 2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
+ 	DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
+ 	by a call to memset if the LHS is a DECL.
+ 
+ 2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
+ 	(Loop_Statement_to_gnu): Do not set it.
+ 
+ 2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
+ 	the sign bit instead of on the sign of the value.
+ 	<PLUS_EXPR>: Turn addition of negative constant into subtraction.
+ 	<BIT_AND_EXPR>: Simplify.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* adaint.c [__APPLE__] (__gnat_lwp_self): Ensure that the system
+ 	interface used is available on the target.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/ada/adaint.c gcc-7.5.0/gcc/ada/adaint.c
*** gcc-7.4.0/gcc/ada/adaint.c	Wed Feb  1 21:36:09 2017
--- gcc-7.5.0/gcc/ada/adaint.c	Mon Dec 24 13:35:32 2018
*************** __gnat_lwp_self (void)
*** 3174,3182 ****
  #endif
  
  #if defined (__APPLE__)
! #include <mach/thread_info.h>
! #include <mach/mach_init.h>
! #include <mach/thread_act.h>
  
  /* System-wide thread identifier.  Note it could be truncated on 32 bit
     hosts.
--- 3174,3186 ----
  #endif
  
  #if defined (__APPLE__)
! # if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060
! #  include <mach/thread_info.h>
! #  include <mach/mach_init.h>
! #  include <mach/thread_act.h>
! # else
! #  include <pthread.h>
! # endif
  
  /* System-wide thread identifier.  Note it could be truncated on 32 bit
     hosts.
*************** __gnat_lwp_self (void)
*** 3184,3189 ****
--- 3188,3194 ----
  void *
  __gnat_lwp_self (void)
  {
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060
    thread_identifier_info_data_t data;
    mach_msg_type_number_t count = THREAD_IDENTIFIER_INFO_COUNT;
    kern_return_t kret;
*************** __gnat_lwp_self (void)
*** 3194,3199 ****
--- 3199,3207 ----
      return (void *)(uintptr_t)data.thread_id;
    else
      return 0;
+ #else
+   return (void *)pthread_mach_thread_np (pthread_self ());
+ #endif
  }
  #endif
  
diff -Nrcpad gcc-7.4.0/gcc/ada/exp_ch6.adb gcc-7.5.0/gcc/ada/exp_ch6.adb
*** gcc-7.4.0/gcc/ada/exp_ch6.adb	Mon Jan 23 13:24:47 2017
--- gcc-7.5.0/gcc/ada/exp_ch6.adb	Tue Feb 26 08:12:21 2019
*************** package body Exp_Ch6 is
*** 3937,3942 ****
--- 3937,3959 ----
                Unchecked_Convert_To
                  (RTE (RE_Address), Relocate_Node (First_Actual (Call_Node))));
              return;
+ 
+          --  A call to a null procedure is replaced by a null statement, but we
+          --  are not allowed to ignore possible side effects of the call, so we
+          --  make sure that actuals are evaluated.
+          --  We also suppress this optimization for GNATCoverage.
+ 
+          elsif Is_Null_Procedure (Subp)
+            and then not Opt.Suppress_Control_Flow_Optimizations
+          then
+             Actual := First_Actual (Call_Node);
+             while Present (Actual) loop
+                Remove_Side_Effects (Actual);
+                Next_Actual (Actual);
+             end loop;
+ 
+             Rewrite (Call_Node, Make_Null_Statement (Loc));
+             return;
           end if;
  
           --  Handle inlining. No action needed if the subprogram is not inlined
diff -Nrcpad gcc-7.4.0/gcc/ada/gcc-interface/Makefile.in gcc-7.5.0/gcc/ada/gcc-interface/Makefile.in
*** gcc-7.4.0/gcc/ada/gcc-interface/Makefile.in	Thu Apr 12 11:08:35 2018
--- gcc-7.5.0/gcc/ada/gcc-interface/Makefile.in	Tue May  7 15:24:43 2019
*************** gnatlink-re: ../stamp-tools gnatmake-re
*** 2660,2668 ****
  install-gcc-specs:
  #	Install all the requested GCC spec files.
  
! 	for f in $(GCC_SPEC_FILES); do \
! 	    $(INSTALL_DATA_DATE) $(srcdir)/ada/$$f $(libsubdir)/; \
! 	done
  
  install-gnatlib: ../stamp-gnatlib-$(RTSDIR) install-gcc-specs
  	$(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
--- 2660,2667 ----
  install-gcc-specs:
  #	Install all the requested GCC spec files.
  
! 	$(foreach f,$(GCC_SPEC_FILES), \
! 	    $(INSTALL_DATA_DATE) $(srcdir)/ada/$(f) $(DESTDIR)$(libsubdir)/;)
  
  install-gnatlib: ../stamp-gnatlib-$(RTSDIR) install-gcc-specs
  	$(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR)
diff -Nrcpad gcc-7.4.0/gcc/ada/gcc-interface/decl.c gcc-7.5.0/gcc/ada/gcc-interface/decl.c
*** gcc-7.4.0/gcc/ada/gcc-interface/decl.c	Tue Jul 17 10:12:02 2018
--- gcc-7.5.0/gcc/ada/gcc-interface/decl.c	Fri Oct 11 08:57:58 2019
*************** static void
*** 6307,6313 ****
  set_nonaliased_component_on_array_type (tree type)
  {
    TYPE_NONALIASED_COMPONENT (type) = 1;
!   TYPE_NONALIASED_COMPONENT (TYPE_CANONICAL (type)) = 1;
  }
  
  /* Set TYPE_REVERSE_STORAGE_ORDER on an array type built by means of
--- 6307,6314 ----
  set_nonaliased_component_on_array_type (tree type)
  {
    TYPE_NONALIASED_COMPONENT (type) = 1;
!   if (TYPE_CANONICAL (type))
!     TYPE_NONALIASED_COMPONENT (TYPE_CANONICAL (type)) = 1;
  }
  
  /* Set TYPE_REVERSE_STORAGE_ORDER on an array type built by means of
*************** static void
*** 6317,6323 ****
  set_reverse_storage_order_on_array_type (tree type)
  {
    TYPE_REVERSE_STORAGE_ORDER (type) = 1;
!   TYPE_REVERSE_STORAGE_ORDER (TYPE_CANONICAL (type)) = 1;
  }
  
  /* Return true if DISCR1 and DISCR2 represent the same discriminant.  */
--- 6318,6325 ----
  set_reverse_storage_order_on_array_type (tree type)
  {
    TYPE_REVERSE_STORAGE_ORDER (type) = 1;
!   if (TYPE_CANONICAL (type))
!     TYPE_REVERSE_STORAGE_ORDER (TYPE_CANONICAL (type)) = 1;
  }
  
  /* Return true if DISCR1 and DISCR2 represent the same discriminant.  */
*************** same_discriminant_p (Entity_Id discr1, E
*** 6341,6352 ****
  static bool
  array_type_has_nonaliased_component (tree gnu_type, Entity_Id gnat_type)
  {
-   /* If the array type is not the innermost dimension of the GNAT type,
-      then it has a non-aliased component.  */
-   if (TREE_CODE (TREE_TYPE (gnu_type)) == ARRAY_TYPE
-       && TYPE_MULTI_ARRAY_P (TREE_TYPE (gnu_type)))
-     return true;
- 
    /* If the array type has an aliased component in the front-end sense,
       then it also has an aliased component in the back-end sense.  */
    if (Has_Aliased_Components (gnat_type))
--- 6343,6348 ----
*************** array_type_has_nonaliased_component (tre
*** 6357,6371 ****
    if (Is_Derived_Type (gnat_type))
      {
        tree gnu_parent_type = gnat_to_gnu_type (Etype (gnat_type));
-       int index;
        if (TREE_CODE (gnu_parent_type) == UNCONSTRAINED_ARRAY_TYPE)
  	gnu_parent_type
  	  = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (gnu_parent_type))));
-       for (index = Number_Dimensions (gnat_type) - 1; index > 0; index--)
- 	gnu_parent_type = TREE_TYPE (gnu_parent_type);
        return TYPE_NONALIASED_COMPONENT (gnu_parent_type);
      }
  
    /* Otherwise, rely exclusively on properties of the element type.  */
    return type_for_nonaliased_component_p (TREE_TYPE (gnu_type));
  }
--- 6353,6369 ----
    if (Is_Derived_Type (gnat_type))
      {
        tree gnu_parent_type = gnat_to_gnu_type (Etype (gnat_type));
        if (TREE_CODE (gnu_parent_type) == UNCONSTRAINED_ARRAY_TYPE)
  	gnu_parent_type
  	  = TREE_TYPE (TREE_TYPE (TYPE_FIELDS (TREE_TYPE (gnu_parent_type))));
        return TYPE_NONALIASED_COMPONENT (gnu_parent_type);
      }
  
+   /* For a multi-dimensional array type, find the component type.  */
+   while (TREE_CODE (TREE_TYPE (gnu_type)) == ARRAY_TYPE
+ 	 && TYPE_MULTI_ARRAY_P (TREE_TYPE (gnu_type)))
+     gnu_type = TREE_TYPE (gnu_type);
+ 
    /* Otherwise, rely exclusively on properties of the element type.  */
    return type_for_nonaliased_component_p (TREE_TYPE (gnu_type));
  }
*************** static Uint
*** 8052,8060 ****
  annotate_value (tree gnu_size)
  {
    TCode tcode;
!   Node_Ref_Or_Val ops[3], ret, pre_op1 = No_Uint;
    struct tree_int_map in;
-   int i;
  
    /* See if we've already saved the value for this node.  */
    if (EXPR_P (gnu_size))
--- 8050,8057 ----
  annotate_value (tree gnu_size)
  {
    TCode tcode;
!   Node_Ref_Or_Val ops[3] = { No_Uint, No_Uint, No_Uint };
    struct tree_int_map in;
  
    /* See if we've already saved the value for this node.  */
    if (EXPR_P (gnu_size))
*************** annotate_value (tree gnu_size)
*** 8071,8079 ****
      in.base.from = NULL_TREE;
  
    /* If we do not return inside this switch, TCODE will be set to the
!      code to use for a Create_Node operand and LEN (set above) will be
!      the number of recursive calls for us to make.  */
! 
    switch (TREE_CODE (gnu_size))
      {
      case INTEGER_CST:
--- 8068,8074 ----
      in.base.from = NULL_TREE;
  
    /* If we do not return inside this switch, TCODE will be set to the
!      code to be used in a call to Create_Node.  */
    switch (TREE_CODE (gnu_size))
      {
      case INTEGER_CST:
*************** annotate_value (tree gnu_size)
*** 8082,8119 ****
        if (tree_int_cst_sgn (gnu_size) < 0)
  	{
  	  tree t = wide_int_to_tree (sizetype, wi::neg (gnu_size));
! 	  return annotate_value (build1 (NEGATE_EXPR, sizetype, t));
  	}
! 
!       return TREE_OVERFLOW (gnu_size) ? No_Uint : UI_From_gnu (gnu_size);
  
      case COMPONENT_REF:
        /* The only case we handle here is a simple discriminant reference.  */
        if (DECL_DISCRIMINANT_NUMBER (TREE_OPERAND (gnu_size, 1)))
  	{
! 	  tree n = DECL_DISCRIMINANT_NUMBER (TREE_OPERAND (gnu_size, 1));
  
  	  /* Climb up the chain of successive extensions, if any.  */
! 	  while (TREE_CODE (TREE_OPERAND (gnu_size, 0)) == COMPONENT_REF
! 		 && DECL_NAME (TREE_OPERAND (TREE_OPERAND (gnu_size, 0), 1))
  		    == parent_name_id)
! 	    gnu_size = TREE_OPERAND (gnu_size, 0);
  
! 	  if (TREE_CODE (TREE_OPERAND (gnu_size, 0)) == PLACEHOLDER_EXPR)
! 	    return
! 	      Create_Node (Discrim_Val, annotate_value (n), No_Uint, No_Uint);
  	}
  
!       return No_Uint;
! 
!     CASE_CONVERT:   case NON_LVALUE_EXPR:
        return annotate_value (TREE_OPERAND (gnu_size, 0));
  
        /* Now just list the operations we handle.  */
      case COND_EXPR:		tcode = Cond_Expr; break;
-     case PLUS_EXPR:		tcode = Plus_Expr; break;
      case MINUS_EXPR:		tcode = Minus_Expr; break;
-     case MULT_EXPR:		tcode = Mult_Expr; break;
      case TRUNC_DIV_EXPR:	tcode = Trunc_Div_Expr; break;
      case CEIL_DIV_EXPR:		tcode = Ceil_Div_Expr; break;
      case FLOOR_DIV_EXPR:	tcode = Floor_Div_Expr; break;
--- 8077,8122 ----
        if (tree_int_cst_sgn (gnu_size) < 0)
  	{
  	  tree t = wide_int_to_tree (sizetype, wi::neg (gnu_size));
! 	  tcode = Negate_Expr;
! 	  ops[0] = UI_From_gnu (t);
  	}
!       else
! 	return TREE_OVERFLOW (gnu_size) ? No_Uint : UI_From_gnu (gnu_size);
!       break;
  
      case COMPONENT_REF:
        /* The only case we handle here is a simple discriminant reference.  */
        if (DECL_DISCRIMINANT_NUMBER (TREE_OPERAND (gnu_size, 1)))
  	{
! 	  tree ref = gnu_size;
! 	  gnu_size = TREE_OPERAND (ref, 1);
  
  	  /* Climb up the chain of successive extensions, if any.  */
! 	  while (TREE_CODE (TREE_OPERAND (ref, 0)) == COMPONENT_REF
! 		 && DECL_NAME (TREE_OPERAND (TREE_OPERAND (ref, 0), 1))
  		    == parent_name_id)
! 	    ref = TREE_OPERAND (ref, 0);
  
! 	  if (TREE_CODE (TREE_OPERAND (ref, 0)) == PLACEHOLDER_EXPR)
! 	    {
! 	      /* Fall through to common processing as a FIELD_DECL.  */
! 	      tcode = Discrim_Val;
! 	      ops[0] = UI_From_gnu (DECL_DISCRIMINANT_NUMBER (gnu_size));
! 	    }
! 	  else
! 	    return No_Uint;
  	}
+       else
+ 	return No_Uint;
+       break;
  
!     CASE_CONVERT:
!     case NON_LVALUE_EXPR:
        return annotate_value (TREE_OPERAND (gnu_size, 0));
  
        /* Now just list the operations we handle.  */
      case COND_EXPR:		tcode = Cond_Expr; break;
      case MINUS_EXPR:		tcode = Minus_Expr; break;
      case TRUNC_DIV_EXPR:	tcode = Trunc_Div_Expr; break;
      case CEIL_DIV_EXPR:		tcode = Ceil_Div_Expr; break;
      case FLOOR_DIV_EXPR:	tcode = Floor_Div_Expr; break;
*************** annotate_value (tree gnu_size)
*** 8138,8157 ****
      case EQ_EXPR:		tcode = Eq_Expr; break;
      case NE_EXPR:		tcode = Ne_Expr; break;
  
      case BIT_AND_EXPR:
        tcode = Bit_And_Expr;
        /* For negative values in sizetype, build NEGATE_EXPR of the opposite.
! 	 Such values appear in expressions with aligning patterns.  Note that,
! 	 since sizetype is unsigned, we have to jump through some hoops.   */
        if (TREE_CODE (TREE_OPERAND (gnu_size, 1)) == INTEGER_CST)
  	{
! 	  tree op1 = TREE_OPERAND (gnu_size, 1);
! 	  wide_int signed_op1 = wi::sext (op1, TYPE_PRECISION (sizetype));
! 	  if (wi::neg_p (signed_op1))
! 	    {
! 	      op1 = wide_int_to_tree (sizetype, wi::neg (signed_op1));
! 	      pre_op1 = annotate_value (build1 (NEGATE_EXPR, sizetype, op1));
! 	    }
  	}
        break;
  
--- 8141,8195 ----
      case EQ_EXPR:		tcode = Eq_Expr; break;
      case NE_EXPR:		tcode = Ne_Expr; break;
  
+     case PLUS_EXPR:
+       /* Turn addition of negative constant into subtraction.  */
+       if (TREE_CODE (TREE_OPERAND (gnu_size, 1)) == INTEGER_CST
+ 	  && tree_int_cst_sign_bit (TREE_OPERAND (gnu_size, 1)))
+ 	{
+ 	  tcode = Minus_Expr;
+ 	  wide_int wop1 = wi::neg (TREE_OPERAND (gnu_size, 1));
+ 	  ops[1] = annotate_value (wide_int_to_tree (sizetype, wop1));
+ 	  break;
+ 	}
+ 
+       /* ... fall through ... */
+ 
+     case MULT_EXPR:
+       tcode = (TREE_CODE (gnu_size) == MULT_EXPR ? Mult_Expr : Plus_Expr);
+       /* Fold conversions from bytes to bits into inner operations.  */
+       if (TREE_CODE (TREE_OPERAND (gnu_size, 1)) == INTEGER_CST
+ 	  && CONVERT_EXPR_P (TREE_OPERAND (gnu_size, 0)))
+ 	{
+ 	  tree inner_op = TREE_OPERAND (TREE_OPERAND (gnu_size, 0), 0);
+ 	  if (TREE_CODE (inner_op) == TREE_CODE (gnu_size)
+ 	      && TREE_CODE (TREE_OPERAND (inner_op, 1)) == INTEGER_CST)
+ 	    {
+ 	      ops[0] = annotate_value (TREE_OPERAND (inner_op, 0));
+ 	      tree inner_op_op1 = TREE_OPERAND (inner_op, 1);
+ 	      tree gnu_size_op1 = TREE_OPERAND (gnu_size, 1);
+ 	      wide_int op1;
+ 	      if (TREE_CODE (gnu_size) == MULT_EXPR)
+ 		op1 = wi::mul (inner_op_op1, gnu_size_op1);
+ 	      else
+ 		{
+ 		  op1 = wi::add (inner_op_op1, gnu_size_op1);
+ 		  if (wi::zext (op1, TYPE_PRECISION (sizetype)) == 0)
+ 		    return ops[0];
+ 		}
+ 	      ops[1] = annotate_value (wide_int_to_tree (sizetype, op1));
+ 	    }
+ 	}
+       break;
+ 
      case BIT_AND_EXPR:
        tcode = Bit_And_Expr;
        /* For negative values in sizetype, build NEGATE_EXPR of the opposite.
! 	 Such values can appear in expressions with aligning patterns.  */
        if (TREE_CODE (TREE_OPERAND (gnu_size, 1)) == INTEGER_CST)
  	{
! 	  wide_int wop1 = wi::neg (TREE_OPERAND (gnu_size, 1));
! 	  tree op1 = wide_int_to_tree (sizetype, wop1);
! 	  ops[1] = annotate_value (build1 (NEGATE_EXPR, sizetype, op1));
  	}
        break;
  
*************** annotate_value (tree gnu_size)
*** 8162,8195 ****
        if (List_Representation_Info == 3 || type_annotate_only)
  	{
  	  tree t = maybe_inline_call_in_expr (gnu_size);
! 	  if (t)
! 	    return annotate_value (t);
  	}
        else
  	return Uint_Minus_1;
  
-       /* Fall through... */
- 
      default:
        return No_Uint;
      }
  
    /* Now get each of the operands that's relevant for this code.  If any
       cannot be expressed as a repinfo node, say we can't.  */
!   for (i = 0; i < 3; i++)
!     ops[i] = No_Uint;
! 
!   for (i = 0; i < TREE_CODE_LENGTH (TREE_CODE (gnu_size)); i++)
!     {
!       if (i == 1 && pre_op1 != No_Uint)
! 	ops[i] = pre_op1;
!       else
  	ops[i] = annotate_value (TREE_OPERAND (gnu_size, i));
!       if (ops[i] == No_Uint)
! 	return No_Uint;
!     }
  
!   ret = Create_Node (tcode, ops[0], ops[1], ops[2]);
  
    /* Save the result in the cache.  */
    if (in.base.from)
--- 8200,8225 ----
        if (List_Representation_Info == 3 || type_annotate_only)
  	{
  	  tree t = maybe_inline_call_in_expr (gnu_size);
! 	  return t ? annotate_value (t) : No_Uint;
  	}
        else
  	return Uint_Minus_1;
  
      default:
        return No_Uint;
      }
  
    /* Now get each of the operands that's relevant for this code.  If any
       cannot be expressed as a repinfo node, say we can't.  */
!   for (int i = 0; i < TREE_CODE_LENGTH (TREE_CODE (gnu_size)); i++)
!     if (ops[i] == No_Uint)
!       {
  	ops[i] = annotate_value (TREE_OPERAND (gnu_size, i));
! 	if (ops[i] == No_Uint)
! 	  return No_Uint;
!       }
  
!   Node_Ref_Or_Val ret = Create_Node (tcode, ops[0], ops[1], ops[2]);
  
    /* Save the result in the cache.  */
    if (in.base.from)
*************** annotate_value (tree gnu_size)
*** 8202,8208 ****
        h = annotate_value_cache->find_slot (&in, INSERT);
        gcc_assert (!*h);
        *h = ggc_alloc<tree_int_map> ();
!       (*h)->base.from = gnu_size;
        (*h)->to = ret;
      }
  
--- 8232,8238 ----
        h = annotate_value_cache->find_slot (&in, INSERT);
        gcc_assert (!*h);
        *h = ggc_alloc<tree_int_map> ();
!       (*h)->base.from = in.base.from;
        (*h)->to = ret;
      }
  
diff -Nrcpad gcc-7.4.0/gcc/ada/gcc-interface/trans.c gcc-7.5.0/gcc/ada/gcc-interface/trans.c
*** gcc-7.4.0/gcc/ada/gcc-interface/trans.c	Thu Nov  8 15:58:16 2018
--- gcc-7.5.0/gcc/ada/gcc-interface/trans.c	Mon Sep 23 08:10:03 2019
*************** struct GTY(()) loop_info_d {
*** 197,203 ****
    tree low_bound;
    tree high_bound;
    vec<range_check_info, va_gc> *checks;
-   bool artificial;
  };
  
  typedef struct loop_info_d *loop_info;
--- 197,202 ----
*************** Attribute_to_gnu (Node_Id gnat_node, tre
*** 1707,1738 ****
        /* For other address attributes applied to a nested function,
  	 find an inner ADDR_EXPR and annotate it so that we can issue
  	 a useful warning with -Wtrampolines.  */
!       else if (TREE_CODE (TREE_TYPE (gnu_prefix)) == FUNCTION_TYPE)
  	{
! 	  gnu_expr = remove_conversions (gnu_result, false);
! 
! 	  if (TREE_CODE (gnu_expr) == ADDR_EXPR
! 	      && decl_function_context (TREE_OPERAND (gnu_expr, 0)))
! 	    {
! 	      set_expr_location_from_node (gnu_expr, gnat_node);
  
! 	      /* Also check the inlining status.  */
! 	      check_inlining_for_nested_subprog (TREE_OPERAND (gnu_expr, 0));
  
! 	      /* Moreover, for 'Access or 'Unrestricted_Access with non-
! 		 foreign-compatible representation, mark the ADDR_EXPR so
! 		 that we can build a descriptor instead of a trampoline.  */
! 	      if ((attribute == Attr_Access
! 		   || attribute == Attr_Unrestricted_Access)
! 		  && targetm.calls.custom_function_descriptors > 0
! 		  && Can_Use_Internal_Rep (Etype (gnat_node)))
! 		FUNC_ADDR_BY_DESCRIPTOR (gnu_expr) = 1;
  
! 	      /* Otherwise, we need to check that we are not violating the
! 		 No_Implicit_Dynamic_Code restriction.  */
! 	      else if (targetm.calls.custom_function_descriptors != 0)
! 	        Check_Implicit_Dynamic_Code_Allowed (gnat_node);
! 	    }
  	}
        break;
  
--- 1706,1734 ----
        /* For other address attributes applied to a nested function,
  	 find an inner ADDR_EXPR and annotate it so that we can issue
  	 a useful warning with -Wtrampolines.  */
!       else if (TREE_CODE (TREE_TYPE (gnu_prefix)) == FUNCTION_TYPE
! 	       && (gnu_expr = remove_conversions (gnu_result, false))
! 	       && TREE_CODE (gnu_expr) == ADDR_EXPR
! 	       && decl_function_context (TREE_OPERAND (gnu_expr, 0)))
  	{
! 	  set_expr_location_from_node (gnu_expr, gnat_node);
  
! 	  /* Also check the inlining status.  */
! 	  check_inlining_for_nested_subprog (TREE_OPERAND (gnu_expr, 0));
  
! 	  /* Moreover, for 'Access or 'Unrestricted_Access with non-
! 	     foreign-compatible representation, mark the ADDR_EXPR so
! 	     that we can build a descriptor instead of a trampoline.  */
! 	  if ((attribute == Attr_Access
! 	       || attribute == Attr_Unrestricted_Access)
! 	      && targetm.calls.custom_function_descriptors > 0
! 	      && Can_Use_Internal_Rep (Underlying_Type (Etype (gnat_node))))
! 	    FUNC_ADDR_BY_DESCRIPTOR (gnu_expr) = 1;
  
! 	  /* Otherwise, we need to check that we are not violating the
! 	     No_Implicit_Dynamic_Code restriction.  */
! 	  else if (targetm.calls.custom_function_descriptors != 0)
! 	    Check_Implicit_Dynamic_Code_Allowed (gnat_node);
  	}
        break;
  
*************** Loop_Statement_to_gnu (Node_Id gnat_node
*** 2841,2847 ****
  
    /* Save the statement for later reuse.  */
    gnu_loop_info->stmt = gnu_loop_stmt;
-   gnu_loop_info->artificial = !Comes_From_Source (gnat_node);
  
    /* Set the condition under which the loop must keep going.
       For the case "LOOP .... END LOOP;" the condition is always true.  */
--- 2837,2842 ----
*************** Loop_Statement_to_gnu (Node_Id gnat_node
*** 3104,3110 ****
  	 unswitching is enabled, do not require the loop bounds to be also
  	 invariant, as their evaluation will still be ahead of the loop.  */
        if (vec_safe_length (gnu_loop_info->checks) > 0
! 	 && (make_invariant (&gnu_low, &gnu_high) || flag_unswitch_loops))
  	{
  	  struct range_check_info_d *rci;
  	  unsigned int i, n_remaining_checks = 0;
--- 3099,3105 ----
  	 unswitching is enabled, do not require the loop bounds to be also
  	 invariant, as their evaluation will still be ahead of the loop.  */
        if (vec_safe_length (gnu_loop_info->checks) > 0
! 	 && (make_invariant (&gnu_low, &gnu_high) || optimize >= 3))
  	{
  	  struct range_check_info_d *rci;
  	  unsigned int i, n_remaining_checks = 0;
*************** Loop_Statement_to_gnu (Node_Id gnat_node
*** 3156,3177 ****
  
  	  /* Note that loop unswitching can only be applied a small number of
  	     times to a given loop (PARAM_MAX_UNSWITCH_LEVEL default to 3).  */
! 	  if (0 < n_remaining_checks && n_remaining_checks <= 3
! 	      && optimize > 1 && !optimize_size)
  	    FOR_EACH_VEC_ELT (*gnu_loop_info->checks, i, rci)
  	      if (rci->invariant_cond != boolean_false_node)
  		{
  		  TREE_OPERAND (rci->inserted_cond, 0) = rci->invariant_cond;
  
! 		  if (flag_unswitch_loops)
  		    add_stmt_with_node_force (rci->inserted_cond, gnat_node);
  		}
  	}
  
        /* Second, if loop vectorization is enabled and the iterations of the
  	 loop can easily be proved as independent, mark the loop.  */
!       if (optimize
! 	  && flag_tree_loop_vectorize
  	  && independent_iterations_p (LOOP_STMT_BODY (gnu_loop_stmt)))
  	LOOP_STMT_IVDEP (gnu_loop_stmt) = 1;
  
--- 3151,3172 ----
  
  	  /* Note that loop unswitching can only be applied a small number of
  	     times to a given loop (PARAM_MAX_UNSWITCH_LEVEL default to 3).  */
! 	  if (IN_RANGE (n_remaining_checks, 1, 3)
! 	      && optimize >= 2
! 	      && !optimize_size)
  	    FOR_EACH_VEC_ELT (*gnu_loop_info->checks, i, rci)
  	      if (rci->invariant_cond != boolean_false_node)
  		{
  		  TREE_OPERAND (rci->inserted_cond, 0) = rci->invariant_cond;
  
! 		  if (optimize >= 3)
  		    add_stmt_with_node_force (rci->inserted_cond, gnat_node);
  		}
  	}
  
        /* Second, if loop vectorization is enabled and the iterations of the
  	 loop can easily be proved as independent, mark the loop.  */
!       if (optimize >= 3
  	  && independent_iterations_p (LOOP_STMT_BODY (gnu_loop_stmt)))
  	LOOP_STMT_IVDEP (gnu_loop_stmt) = 1;
  
*************** finalize_nrv_unc_r (tree *tp, int *walk_
*** 3521,3526 ****
--- 3516,3535 ----
    return NULL_TREE;
  }
  
+ /* Apply FUNC to all the sub-trees of nested functions in NODE.  FUNC is called
+    with the DATA and the address of each sub-tree.  If FUNC returns a non-NULL
+    value, the traversal is stopped.  */
+ 
+ static void
+ walk_nesting_tree (struct cgraph_node *node, walk_tree_fn func, void *data)
+ {
+   for (node = node->nested; node; node = node->next_nested)
+     {
+       walk_tree_without_duplicates (&DECL_SAVED_TREE (node->decl), func, data);
+       walk_nesting_tree (node, func, data);
+     }
+ }
+ 
  /* Finalize the Named Return Value optimization for FNDECL.  The NRV bitmap
     contains the candidates for Named Return Value and OTHER is a list of
     the other return values.  GNAT_RET is a representative return node.  */
*************** finalize_nrv_unc_r (tree *tp, int *walk_
*** 3528,3534 ****
  static void
  finalize_nrv (tree fndecl, bitmap nrv, vec<tree, va_gc> *other, Node_Id gnat_ret)
  {
-   struct cgraph_node *node;
    struct nrv_data data;
    walk_tree_fn func;
    unsigned int i;
--- 3537,3542 ----
*************** finalize_nrv (tree fndecl, bitmap nrv, v
*** 3549,3558 ****
      return;
  
    /* Prune also the candidates that are referenced by nested functions.  */
!   node = cgraph_node::get_create (fndecl);
!   for (node = node->nested; node; node = node->next_nested)
!     walk_tree_without_duplicates (&DECL_SAVED_TREE (node->decl), prune_nrv_r,
! 				  &data);
    if (bitmap_empty_p (nrv))
      return;
  
--- 3557,3563 ----
      return;
  
    /* Prune also the candidates that are referenced by nested functions.  */
!   walk_nesting_tree (cgraph_node::get_create (fndecl), prune_nrv_r, &data);
    if (bitmap_empty_p (nrv))
      return;
  
*************** Call_to_gnu (Node_Id gnat_node, tree *gn
*** 4282,4288 ****
        /* If the access type doesn't require foreign-compatible representation,
  	 be prepared for descriptors.  */
        if (targetm.calls.custom_function_descriptors > 0
! 	  && Can_Use_Internal_Rep (Etype (Prefix (Name (gnat_node)))))
  	by_descriptor = true;
      }
    else if (Nkind (Name (gnat_node)) == N_Attribute_Reference)
--- 4287,4294 ----
        /* If the access type doesn't require foreign-compatible representation,
  	 be prepared for descriptors.  */
        if (targetm.calls.custom_function_descriptors > 0
! 	  && Can_Use_Internal_Rep
! 	     (Underlying_Type (Etype (Prefix (Name (gnat_node))))))
  	by_descriptor = true;
      }
    else if (Nkind (Name (gnat_node)) == N_Attribute_Reference)
*************** Raise_Error_to_gnu (Node_Id gnat_node, t
*** 5639,5645 ****
  		= build1 (SAVE_EXPR, boolean_type_node, boolean_true_node);
  	      vec_safe_push (loop->checks, rci);
  	      gnu_cond = build_noreturn_cond (gnat_to_gnu (gnat_cond));
! 	      if (flag_unswitch_loops)
  		gnu_cond = build_binary_op (TRUTH_ANDIF_EXPR,
  					    boolean_type_node,
  					    rci->inserted_cond,
--- 5645,5651 ----
  		= build1 (SAVE_EXPR, boolean_type_node, boolean_true_node);
  	      vec_safe_push (loop->checks, rci);
  	      gnu_cond = build_noreturn_cond (gnat_to_gnu (gnat_cond));
! 	      if (optimize >= 3)
  		gnu_cond = build_binary_op (TRUTH_ANDIF_EXPR,
  					    boolean_type_node,
  					    rci->inserted_cond,
*************** gnat_to_gnu (Node_Id gnat_node)
*** 6906,6926 ****
  	  /* Or else, use memset when the conditions are met.  */
  	  else if (use_memset_p)
  	    {
! 	      tree value = fold_convert (integer_type_node, gnu_rhs);
! 	      tree to = gnu_lhs;
! 	      tree type = TREE_TYPE (to);
! 	      tree size
! 	        = SUBSTITUTE_PLACEHOLDER_IN_EXPR (TYPE_SIZE_UNIT (type), to);
! 	      tree to_ptr = build_fold_addr_expr (to);
  	      tree t = builtin_decl_explicit (BUILT_IN_MEMSET);
! 	      if (TREE_CODE (value) == INTEGER_CST)
  		{
  		  tree mask
  		    = build_int_cst (integer_type_node,
  				     ((HOST_WIDE_INT) 1 << BITS_PER_UNIT) - 1);
  		  value = int_const_binop (BIT_AND_EXPR, value, mask);
  		}
! 	      gnu_result = build_call_expr (t, 3, to_ptr, value, size);
  	    }
  
  	  /* Otherwise build a regular assignment.  */
--- 6912,6940 ----
  	  /* Or else, use memset when the conditions are met.  */
  	  else if (use_memset_p)
  	    {
! 	      tree value
! 		= real_zerop (gnu_rhs)
! 		  ? integer_zero_node
! 		  : fold_convert (integer_type_node, gnu_rhs);
! 	      tree dest = build_fold_addr_expr (gnu_lhs);
  	      tree t = builtin_decl_explicit (BUILT_IN_MEMSET);
! 	      /* Be extra careful not to write too much data.  */
! 	      tree size;
! 	      if (TREE_CODE (gnu_lhs) == COMPONENT_REF)
! 		size = DECL_SIZE_UNIT (TREE_OPERAND (gnu_lhs, 1));
! 	      else if (DECL_P (gnu_lhs))
! 		size = DECL_SIZE_UNIT (gnu_lhs);
! 	      else
! 		size = TYPE_SIZE_UNIT (TREE_TYPE (gnu_lhs));
! 	      size = SUBSTITUTE_PLACEHOLDER_IN_EXPR (size, gnu_lhs);
! 	      if (TREE_CODE (value) == INTEGER_CST && !integer_zerop (value))
  		{
  		  tree mask
  		    = build_int_cst (integer_type_node,
  				     ((HOST_WIDE_INT) 1 << BITS_PER_UNIT) - 1);
  		  value = int_const_binop (BIT_AND_EXPR, value, mask);
  		}
! 	      gnu_result = build_call_expr (t, 3, dest, value, size);
  	    }
  
  	  /* Otherwise build a regular assignment.  */
*************** mark_visited_r (tree *tp, int *walk_subt
*** 8084,8091 ****
    else if (!TYPE_IS_DUMMY_P (t))
      TREE_VISITED (t) = 1;
  
    if (TYPE_P (t))
!     TYPE_SIZES_GIMPLIFIED (t) = 1;
  
    return NULL_TREE;
  }
--- 8098,8106 ----
    else if (!TYPE_IS_DUMMY_P (t))
      TREE_VISITED (t) = 1;
  
+   /* The test in gimplify_type_sizes is on the main variant.  */
    if (TYPE_P (t))
!     TYPE_SIZES_GIMPLIFIED (TYPE_MAIN_VARIANT (t)) = 1;
  
    return NULL_TREE;
  }
diff -Nrcpad gcc-7.4.0/gcc/ada/gnatlink.adb gcc-7.5.0/gcc/ada/gnatlink.adb
*** gcc-7.4.0/gcc/ada/gnatlink.adb	Mon May  2 09:11:03 2016
--- gcc-7.5.0/gcc/ada/gnatlink.adb	Fri Sep  6 16:08:08 2019
*************** begin
*** 1888,1893 ****
--- 1888,1894 ----
        Clean_Link_Option_Set : declare
           J                  : Natural;
           Shared_Libgcc_Seen : Boolean := False;
+          Static_Libgcc_Seen : Boolean := False;
  
        begin
           J := Linker_Options.First;
*************** begin
*** 1909,1915 ****
                 end if;
              end if;
  
!             --  Remove duplicate -shared-libgcc switch
  
              if Linker_Options.Table (J).all = Shared_Libgcc_String then
                 if Shared_Libgcc_Seen then
--- 1910,1916 ----
                 end if;
              end if;
  
!             --  Remove duplicate -shared-libgcc switches
  
              if Linker_Options.Table (J).all = Shared_Libgcc_String then
                 if Shared_Libgcc_Seen then
*************** begin
*** 1923,1928 ****
--- 1924,1943 ----
                 end if;
              end if;
  
+             --  Remove duplicate -static-libgcc switches
+ 
+             if Linker_Options.Table (J).all = Static_Libgcc_String then
+                if Static_Libgcc_Seen then
+                   Linker_Options.Table (J .. Linker_Options.Last - 1) :=
+                     Linker_Options.Table (J + 1 .. Linker_Options.Last);
+                   Linker_Options.Decrement_Last;
+                   Num_Args := Num_Args - 1;
+ 
+                else
+                   Static_Libgcc_Seen := True;
+                end if;
+             end if;
+ 
              --  Here we just check for a canonical form that matches the
              --  pragma Linker_Options set in the NT runtime.
  
*************** begin
*** 1954,1967 ****
--- 1969,1995 ----
              --  libgcc, if gcc is not called with -shared-libgcc, call it
              --  with -static-libgcc, as there are some platforms where one
              --  of these two switches is compulsory to link.
+             --  Don't push extra switches if we already saw one.
  
              if Shared_Libgcc_Default = 'T'
                and then not Shared_Libgcc_Seen
+               and then not Static_Libgcc_Seen
              then
                 Linker_Options.Increment_Last;
                 Linker_Options.Table (Linker_Options.Last) := Static_Libgcc;
                 Num_Args := Num_Args + 1;
              end if;
+ 
+             --  Likewise, the reverse.
+ 
+             if Shared_Libgcc_Default = 'H'
+               and then not Static_Libgcc_Seen
+               and then not Shared_Libgcc_Seen
+             then
+                Linker_Options.Increment_Last;
+                Linker_Options.Table (Linker_Options.Last) := Shared_Libgcc;
+                Num_Args := Num_Args + 1;
+             end if;
           end if;
        end Clean_Link_Option_Set;
  
diff -Nrcpad gcc-7.4.0/gcc/ada/osint.adb gcc-7.5.0/gcc/ada/osint.adb
*** gcc-7.4.0/gcc/ada/osint.adb	Fri Jan 13 10:19:19 2017
--- gcc-7.5.0/gcc/ada/osint.adb	Sat Feb 23 10:04:41 2019
*************** package body Osint is
*** 250,257 ****
        Attr : aliased File_Attributes;
     end record;
  
!    No_File_Info_Cache : constant File_Info_Cache :=
!                           (No_File, Unknown_Attributes);
  
     package File_Name_Hash_Table is new GNAT.HTable.Simple_HTable (
       Header_Num => File_Hash_Num,
--- 250,256 ----
        Attr : aliased File_Attributes;
     end record;
  
!    No_File_Info_Cache : constant File_Info_Cache := (No_File, (others => 0));
  
     package File_Name_Hash_Table is new GNAT.HTable.Simple_HTable (
       Header_Num => File_Hash_Num,
diff -Nrcpad gcc-7.4.0/gcc/ada/osint.ads gcc-7.5.0/gcc/ada/osint.ads
*** gcc-7.4.0/gcc/ada/osint.ads	Tue Apr 19 12:59:27 2016
--- gcc-7.5.0/gcc/ada/osint.ads	Sat Feb 23 10:04:41 2019
*************** package Osint is
*** 273,282 ****
     --  from the disk and then cached in the File_Attributes parameter (possibly
     --  along with other values).
  
!    type File_Attributes is private;
!    Unknown_Attributes : constant File_Attributes;
     --  A cache for various attributes for a file (length, accessibility,...)
!    --  This must be initialized to Unknown_Attributes prior to the first call.
  
     function Is_Directory
       (Name : C_File_Name;
--- 273,298 ----
     --  from the disk and then cached in the File_Attributes parameter (possibly
     --  along with other values).
  
!    File_Attributes_Size : constant Natural := 32;
!    --  This should be big enough to fit a "struct file_attributes" on any
!    --  system. It doesn't cause any malfunction if it is too big (which avoids
!    --  the need for either mapping the struct exactly or importing the sizeof
!    --  from C, which would result in dynamic code). However, it does waste
!    --  space (e.g. when a component of this type appears in a record, if it is
!    --  unnecessarily large). Note: for runtime units, use System.OS_Constants.
!    --  SIZEOF_struct_file_attributes instead, which has the exact value.
! 
!    type File_Attributes is
!      array (1 .. File_Attributes_Size)
!        of System.Storage_Elements.Storage_Element;
!    for File_Attributes'Alignment use Standard'Maximum_Alignment;
! 
!    Unknown_Attributes : File_Attributes;
     --  A cache for various attributes for a file (length, accessibility,...)
!    --  Will be initialized properly at elaboration (for efficiency later on,
!    --  avoid function calls every time we want to reset the attributes) prior
!    --  to the first usage. We cannot make it constant since the compiler may
!    --  put it in a read-only section.
  
     function Is_Directory
       (Name : C_File_Name;
*************** private
*** 769,790 ****
     --  detected, the file being written is deleted, and a fatal error is
     --  signalled.
  
-    File_Attributes_Size : constant Natural := 32;
-    --  This should be big enough to fit a "struct file_attributes" on any
-    --  system. It doesn't cause any malfunction if it is too big (which avoids
-    --  the need for either mapping the struct exactly or importing the sizeof
-    --  from C, which would result in dynamic code). However, it does waste
-    --  space (e.g. when a component of this type appears in a record, if it is
-    --  unnecessarily large). Note: for runtime units, use System.OS_Constants.
-    --  SIZEOF_struct_file_attributes instead, which has the exact value.
- 
-    type File_Attributes is
-      array (1 .. File_Attributes_Size)
-        of System.Storage_Elements.Storage_Element;
-    for File_Attributes'Alignment use Standard'Maximum_Alignment;
- 
-    Unknown_Attributes : constant File_Attributes := (others => 0);
-    --  Will be initialized properly at elaboration (for efficiency later on,
-    --  avoid function calls every time we want to reset the attributes).
- 
  end Osint;
--- 785,788 ----
diff -Nrcpad gcc-7.4.0/gcc/ada/s-linux-sparc.ads gcc-7.5.0/gcc/ada/s-linux-sparc.ads
*** gcc-7.4.0/gcc/ada/s-linux-sparc.ads	Wed Jan  7 10:12:03 2015
--- gcc-7.5.0/gcc/ada/s-linux-sparc.ads	Thu Feb  7 16:29:48 2019
*************** package System.Linux is
*** 70,76 ****
     EINVAL    : constant := 22;
     ENOMEM    : constant := 12;
     EPERM     : constant := 1;
!    ETIMEDOUT : constant := 110;
  
     -------------
     -- Signals --
--- 70,76 ----
     EINVAL    : constant := 22;
     ENOMEM    : constant := 12;
     EPERM     : constant := 1;
!    ETIMEDOUT : constant := 60;
  
     -------------
     -- Signals --
diff -Nrcpad gcc-7.4.0/gcc/ada/sem_util.adb gcc-7.5.0/gcc/ada/sem_util.adb
*** gcc-7.4.0/gcc/ada/sem_util.adb	Sat Sep  9 12:06:48 2017
--- gcc-7.5.0/gcc/ada/sem_util.adb	Sat Oct 12 14:51:26 2019
*************** package body Sem_Util is
*** 5203,5212 ****
     -- Defining_Entity --
     ---------------------
  
!    function Defining_Entity
!      (N               : Node_Id;
!       Empty_On_Errors : Boolean := False) return Entity_Id
!    is
        Err : Entity_Id := Empty;
  
     begin
--- 5203,5209 ----
     -- Defining_Entity --
     ---------------------
  
!    function Defining_Entity (N : Node_Id) return Entity_Id is
        Err : Entity_Id := Empty;
  
     begin
*************** package body Sem_Util is
*** 5285,5298 ****
                 --  can continue semantic analysis.
  
                 elsif Nam = Error then
!                   if Empty_On_Errors then
!                      return Empty;
!                   else
!                      Err := Make_Temporary (Sloc (N), 'T');
!                      Set_Defining_Unit_Name (N, Err);
  
!                      return Err;
!                   end if;
  
                 --  If not an entity, get defining identifier
  
--- 5282,5291 ----
                 --  can continue semantic analysis.
  
                 elsif Nam = Error then
!                   Err := Make_Temporary (Sloc (N), 'T');
!                   Set_Defining_Unit_Name (N, Err);
  
!                   return Err;
  
                 --  If not an entity, get defining identifier
  
*************** package body Sem_Util is
*** 5307,5317 ****
              return Entity (Identifier (N));
  
           when others =>
!             if Empty_On_Errors then
!                return Empty;
!             else
!                raise Program_Error;
!             end if;
        end case;
     end Defining_Entity;
  
--- 5300,5306 ----
              return Entity (Identifier (N));
  
           when others =>
!             raise Program_Error;
        end case;
     end Defining_Entity;
  
diff -Nrcpad gcc-7.4.0/gcc/ada/sem_util.ads gcc-7.5.0/gcc/ada/sem_util.ads
*** gcc-7.4.0/gcc/ada/sem_util.ads	Sat Sep  9 12:06:48 2017
--- gcc-7.5.0/gcc/ada/sem_util.ads	Sat Oct 12 14:51:26 2019
*************** package Sem_Util is
*** 474,482 ****
     --  in the case of a descendant of a generic formal type (returns Int'Last
     --  instead of 0).
  
!    function Defining_Entity
!      (N               : Node_Id;
!       Empty_On_Errors : Boolean := False) return Entity_Id;
     --  Given a declaration N, returns the associated defining entity. If the
     --  declaration has a specification, the entity is obtained from the
     --  specification. If the declaration has a defining unit name, then the
--- 474,480 ----
     --  in the case of a descendant of a generic formal type (returns Int'Last
     --  instead of 0).
  
!    function Defining_Entity (N : Node_Id) return Entity_Id;
     --  Given a declaration N, returns the associated defining entity. If the
     --  declaration has a specification, the entity is obtained from the
     --  specification. If the declaration has a defining unit name, then the
*************** package Sem_Util is
*** 487,505 ****
     --  local entities declared during loop expansion. These entities need
     --  debugging information, generated through Qualify_Entity_Names, and
     --  the loop declaration must be placed in the table Name_Qualify_Units.
-    --
-    --  Set flag Empty_On_Error to change the behavior of this routine as
-    --  follows:
-    --
-    --    * True  - A declaration that lacks a defining entity returns Empty.
-    --      A node that does not allow for a defining entity returns Empty.
-    --
-    --    * False - A declaration that lacks a defining entity is given a new
-    --      internally generated entity which is subsequently returned. A node
-    --      that does not allow for a defining entity raises Program_Error.
-    --
-    --  The former semantics is appropriate for the back end; the latter
-    --  semantics is appropriate for the front end.
  
     function Denotes_Discriminant
       (N                : Node_Id;
--- 485,490 ----
diff -Nrcpad gcc-7.4.0/gcc/ada/system-darwin-ppc.ads gcc-7.5.0/gcc/ada/system-darwin-ppc.ads
*** gcc-7.4.0/gcc/ada/system-darwin-ppc.ads	Mon Dec  5 11:15:17 2016
--- gcc-7.5.0/gcc/ada/system-darwin-ppc.ads	Fri Sep  6 16:11:09 2019
*************** private
*** 158,164 ****
     Preallocated_Stacks       : constant Boolean := False;
     Signed_Zeros              : constant Boolean := True;
     Stack_Check_Default       : constant Boolean := False;
!    Stack_Check_Probes        : constant Boolean := False;
     Stack_Check_Limits        : constant Boolean := False;
     Support_Aggregates        : constant Boolean := True;
     Support_Atomic_Primitives : constant Boolean := Word_Size = 64;
--- 158,164 ----
     Preallocated_Stacks       : constant Boolean := False;
     Signed_Zeros              : constant Boolean := True;
     Stack_Check_Default       : constant Boolean := False;
!    Stack_Check_Probes        : constant Boolean := True;
     Stack_Check_Limits        : constant Boolean := False;
     Support_Aggregates        : constant Boolean := True;
     Support_Atomic_Primitives : constant Boolean := Word_Size = 64;
diff -Nrcpad gcc-7.4.0/gcc/brig/ChangeLog gcc-7.5.0/gcc/brig/ChangeLog
*** gcc-7.4.0/gcc/brig/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/brig/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/builtins.c gcc-7.5.0/gcc/builtins.c
*** gcc-7.4.0/gcc/builtins.c	Fri Jun 22 20:52:44 2018
--- gcc-7.5.0/gcc/builtins.c	Fri Aug 30 12:16:43 2019
*************** expand_builtin_int_roundingfn (tree exp,
*** 2508,2514 ****
    tree arg;
  
    if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE))
!     gcc_unreachable ();
  
    arg = CALL_EXPR_ARG (exp, 0);
  
--- 2508,2514 ----
    tree arg;
  
    if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE))
!     return NULL_RTX;
  
    arg = CALL_EXPR_ARG (exp, 0);
  
*************** expand_builtin_int_roundingfn_2 (tree ex
*** 2644,2650 ****
    enum built_in_function fallback_fn = BUILT_IN_NONE;
  
    if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE))
!      gcc_unreachable ();
  
    arg = CALL_EXPR_ARG (exp, 0);
  
--- 2644,2650 ----
    enum built_in_function fallback_fn = BUILT_IN_NONE;
  
    if (!validate_arglist (exp, REAL_TYPE, VOID_TYPE))
!     return NULL_RTX;
  
    arg = CALL_EXPR_ARG (exp, 0);
  
*************** maybe_emit_sprintf_chk_warning (tree exp
*** 9774,9779 ****
--- 9774,9782 ----
  static void
  maybe_emit_free_warning (tree exp)
  {
+   if (call_expr_nargs (exp) != 1)
+     return;
+ 
    tree arg = CALL_EXPR_ARG (exp, 0);
  
    STRIP_NOPS (arg);
diff -Nrcpad gcc-7.4.0/gcc/c/ChangeLog gcc-7.5.0/gcc/c/ChangeLog
*** gcc-7.4.0/gcc/c/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/c/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,104 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR pch/61250
+ 	* c-parser.c (c_parse_file): Call c_common_no_more_pch ()
+ 	after determining that the first token is not
+ 	PRAGMA_GCC_PCH_PREPROCESS.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/90108
+ 	* c-decl.c (merge_decls): If remove is main variant and
+ 	DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
+ 	variant that has newdecl as TYPE_NAME if any.
+ 
+ 	2019-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/89933
+ 	* c-decl.c (merge_decls): When newdecl's type is its main variant,
+ 	don't try to remove it from the variant list, but instead assert
+ 	it has no variants.
+ 
+ 	2019-03-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/89734
+ 	* c-decl.c (grokdeclarator): Call c_build_qualified_type on function
+ 	return type even if quals_used is 0.  Formatting fixes.
+ 
+ 2019-01-16  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	Backport from mainline
+ 	2019-01-07  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/88720
+ 	PR c/88726
+ 	* c-decl.c (pop_scope): Use TREE_PUBLIC and b->nested to determine
+ 	whether a function is nested, not DECL_EXTERNAL.  Diagnose inline
+ 	functions declared but never defined only for external scope, not
+ 	for other scopes.
+ 
+ 2018-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR inline-asm/55681
+ 	* c-parser.c (c_parser_asm_statement): Update grammar.  Allow any
+ 	combination of volatile and goto, in any order, without repetitions.
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* c-parser.c (c_parser_asm_statement): Detect the inline keyword
+ 	after asm.  Pass a flag for it to build_asm_expr.
+ 	* c-tree.h (build_asm_expr): Update declaration.
+ 	* c-typeck.c (build_asm_stmt): Add is_inline parameter.  Use it to
+ 	set ASM_INLINE_P.
+ 
+ 	Backport from trunk
+ 	2018-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* c-parser (c_parser_asm_statement) [RID_INLINE]: Delete stray line
+ 	setting "quals".
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* c-parser.c (c_parser_asm_statement): Rewrite the loop to work without
+ 	"done" boolean variable.
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* c-parser.c (c_parser_asm_statement): Keep track of the location each
+ 	asm qualifier is first seen; use that to give nicer "duplicate asm
+ 	qualifier" messages.  Delete 'quals" variable, instead pass the
+ 	"is_volatile_ flag to build_asm_stmt directly.
+ 	* c-tree.h (build_asm_stmt): Make the first arg bool instead of tree.
+ 	* c-typeck.c (build_asm_stmt): Ditto; adjust.
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* c-parser.c (c_parser_asm_statement) <RID_CONST, RID_RESTRICT>: Give
+ 	a more specific error message (instead of just falling through).
+ 
+ 	And extra for the backport
+ 	2019-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* c-parser.c (c_parser_asm_statement): Output a warning instead of an
+ 	error for const and restrict.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/c/c-decl.c gcc-7.5.0/gcc/c/c-decl.c
*** gcc-7.4.0/gcc/c/c-decl.c	Fri Dec 22 18:12:15 2017
--- gcc-7.5.0/gcc/c/c-decl.c	Fri Aug 30 12:38:31 2019
*************** pop_scope (void)
*** 1235,1242 ****
  	      && DECL_ABSTRACT_ORIGIN (p) != 0
  	      && DECL_ABSTRACT_ORIGIN (p) != p)
  	    TREE_ADDRESSABLE (DECL_ABSTRACT_ORIGIN (p)) = 1;
! 	  if (!DECL_EXTERNAL (p)
  	      && !DECL_INITIAL (p)
  	      && scope != file_scope
  	      && scope != external_scope)
  	    {
--- 1235,1243 ----
  	      && DECL_ABSTRACT_ORIGIN (p) != 0
  	      && DECL_ABSTRACT_ORIGIN (p) != p)
  	    TREE_ADDRESSABLE (DECL_ABSTRACT_ORIGIN (p)) = 1;
! 	  if (!TREE_PUBLIC (p)
  	      && !DECL_INITIAL (p)
+ 	      && !b->nested
  	      && scope != file_scope
  	      && scope != external_scope)
  	    {
*************** pop_scope (void)
*** 1252,1258 ****
  		 in the same translation unit."  */
  	      if (!flag_gnu89_inline
  		  && !lookup_attribute ("gnu_inline", DECL_ATTRIBUTES (p))
! 		  && scope != external_scope)
  		pedwarn (input_location, 0,
  			 "inline function %q+D declared but never defined", p);
  	      DECL_EXTERNAL (p) = 1;
--- 1253,1259 ----
  		 in the same translation unit."  */
  	      if (!flag_gnu89_inline
  		  && !lookup_attribute ("gnu_inline", DECL_ATTRIBUTES (p))
! 		  && scope == external_scope)
  		pedwarn (input_location, 0,
  			 "inline function %q+D declared but never defined", p);
  	      DECL_EXTERNAL (p) = 1;
*************** merge_decls (tree newdecl, tree olddecl,
*** 2347,2359 ****
        if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl)
  	{
  	  tree remove = TREE_TYPE (newdecl);
! 	  for (tree t = TYPE_MAIN_VARIANT (remove); ;
! 	       t = TYPE_NEXT_VARIANT (t))
! 	    if (TYPE_NEXT_VARIANT (t) == remove)
! 	      {
! 		TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove);
! 		break;
! 	      }
  	}
      }
  
--- 2348,2380 ----
        if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl)
  	{
  	  tree remove = TREE_TYPE (newdecl);
! 	  if (TYPE_MAIN_VARIANT (remove) == remove)
! 	    {
! 	      gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE);
! 	      /* If remove is the main variant, no need to remove that
! 		 from the list.  One of the DECL_ORIGINAL_TYPE
! 		 variants, e.g. created for aligned attribute, might still
! 		 refer to the newdecl TYPE_DECL though, so remove that one
! 		 in that case.  */
! 	      if (DECL_ORIGINAL_TYPE (newdecl)
! 		  && DECL_ORIGINAL_TYPE (newdecl) != remove)
! 		for (tree t = TYPE_MAIN_VARIANT (DECL_ORIGINAL_TYPE (newdecl));
! 		     t; t = TYPE_MAIN_VARIANT (t))
! 		  if (TYPE_NAME (TYPE_NEXT_VARIANT (t)) == newdecl)
! 		    {
! 		      TYPE_NEXT_VARIANT (t)
! 			= TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t));
! 		      break;
! 		    }
! 	    }	    
! 	  else
! 	    for (tree t = TYPE_MAIN_VARIANT (remove); ;
! 		 t = TYPE_NEXT_VARIANT (t))
! 	      if (TYPE_NEXT_VARIANT (t) == remove)
! 		{
! 		  TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove);
! 		  break;
! 		}
  	}
      }
  
*************** grokdeclarator (const struct c_declarato
*** 6360,6369 ****
  		  quals_used &= TYPE_QUAL_ATOMIC;
  		if (quals_used && VOID_TYPE_P (type) && really_funcdef)
  		  pedwarn (specs_loc, 0,
! 			   "function definition has qualified void return type");
  		else
  		  warning_at (specs_loc, OPT_Wignored_qualifiers,
! 			   "type qualifiers ignored on function return type");
  
  		/* Ensure an error for restrict on invalid types; the
  		   DR#423 resolution is not entirely clear about
--- 6381,6392 ----
  		  quals_used &= TYPE_QUAL_ATOMIC;
  		if (quals_used && VOID_TYPE_P (type) && really_funcdef)
  		  pedwarn (specs_loc, 0,
! 			   "function definition has qualified void "
! 			   "return type");
  		else
  		  warning_at (specs_loc, OPT_Wignored_qualifiers,
! 			      "type qualifiers ignored on function "
! 			      "return type");
  
  		/* Ensure an error for restrict on invalid types; the
  		   DR#423 resolution is not entirely clear about
*************** grokdeclarator (const struct c_declarato
*** 6373,6380 ****
  		    && (!POINTER_TYPE_P (type)
  			|| !C_TYPE_OBJECT_OR_INCOMPLETE_P (TREE_TYPE (type))))
  		  error_at (loc, "invalid use of %<restrict%>");
! 		if (quals_used)
! 		  type = c_build_qualified_type (type, quals_used);
  	      }
  	    type_quals = TYPE_UNQUALIFIED;
  
--- 6396,6402 ----
  		    && (!POINTER_TYPE_P (type)
  			|| !C_TYPE_OBJECT_OR_INCOMPLETE_P (TREE_TYPE (type))))
  		  error_at (loc, "invalid use of %<restrict%>");
! 		type = c_build_qualified_type (type, quals_used);
  	      }
  	    type_quals = TYPE_UNQUALIFIED;
  
diff -Nrcpad gcc-7.4.0/gcc/c/c-parser.c gcc-7.5.0/gcc/c/c-parser.c
*** gcc-7.4.0/gcc/c/c-parser.c	Sun Dec 10 20:52:54 2017
--- gcc-7.5.0/gcc/c/c-parser.c	Thu Sep  5 19:27:31 2019
*************** c_parser_for_statement (c_parser *parser
*** 6089,6149 ****
  }
  
  /* Parse an asm statement, a GNU extension.  This is a full-blown asm
!    statement with inputs, outputs, clobbers, and volatile tag
!    allowed.
  
     asm-statement:
!      asm type-qualifier[opt] ( asm-argument ) ;
!      asm type-qualifier[opt] goto ( asm-goto-argument ) ;
  
     asm-argument:
       asm-string-literal
       asm-string-literal : asm-operands[opt]
       asm-string-literal : asm-operands[opt] : asm-operands[opt]
!      asm-string-literal : asm-operands[opt] : asm-operands[opt] : asm-clobbers[opt]
! 
!    asm-goto-argument:
       asm-string-literal : : asm-operands[opt] : asm-clobbers[opt] \
         : asm-goto-operands
  
!    Qualifiers other than volatile are accepted in the syntax but
!    warned for.  */
  
  static tree
  c_parser_asm_statement (c_parser *parser)
  {
!   tree quals, str, outputs, inputs, clobbers, labels, ret;
!   bool simple, is_goto;
    location_t asm_loc = c_parser_peek_token (parser)->location;
    int section, nsections;
  
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_ASM));
    c_parser_consume_token (parser);
-   if (c_parser_next_token_is_keyword (parser, RID_VOLATILE))
-     {
-       quals = c_parser_peek_token (parser)->value;
-       c_parser_consume_token (parser);
-     }
-   else if (c_parser_next_token_is_keyword (parser, RID_CONST)
- 	   || c_parser_next_token_is_keyword (parser, RID_RESTRICT))
-     {
-       warning_at (c_parser_peek_token (parser)->location,
- 		  0,
- 		  "%E qualifier ignored on asm",
- 		  c_parser_peek_token (parser)->value);
-       quals = NULL_TREE;
-       c_parser_consume_token (parser);
-     }
-   else
-     quals = NULL_TREE;
  
!   is_goto = false;
!   if (c_parser_next_token_is_keyword (parser, RID_GOTO))
      {
!       c_parser_consume_token (parser);
!       is_goto = true;
      }
  
    /* ??? Follow the C++ parser rather than using the
       lex_untranslated_string kludge.  */
    parser->lex_untranslated_string = true;
--- 6089,6192 ----
  }
  
  /* Parse an asm statement, a GNU extension.  This is a full-blown asm
!    statement with inputs, outputs, clobbers, and volatile, inline, and goto
!    tags allowed.
! 
!    asm-qualifier:
!      volatile
!      inline
!      goto
! 
!    asm-qualifier-list:
!      asm-qualifier-list asm-qualifier
!      asm-qualifier
  
     asm-statement:
!      asm asm-qualifier-list[opt] ( asm-argument ) ;
  
     asm-argument:
       asm-string-literal
       asm-string-literal : asm-operands[opt]
       asm-string-literal : asm-operands[opt] : asm-operands[opt]
!      asm-string-literal : asm-operands[opt] : asm-operands[opt] \
!        : asm-clobbers[opt]
       asm-string-literal : : asm-operands[opt] : asm-clobbers[opt] \
         : asm-goto-operands
  
!    The form with asm-goto-operands is valid if and only if the
!    asm-qualifier-list contains goto, and is the only allowed form in that case.
!    Duplicate asm-qualifiers are not allowed.  */
  
  static tree
  c_parser_asm_statement (c_parser *parser)
  {
!   tree str, outputs, inputs, clobbers, labels, ret;
!   bool simple;
    location_t asm_loc = c_parser_peek_token (parser)->location;
    int section, nsections;
  
    gcc_assert (c_parser_next_token_is_keyword (parser, RID_ASM));
    c_parser_consume_token (parser);
  
!   /* Handle the asm-qualifier-list.  */
!   location_t volatile_loc = UNKNOWN_LOCATION;
!   location_t inline_loc = UNKNOWN_LOCATION;
!   location_t goto_loc = UNKNOWN_LOCATION;
!   for (;;)
      {
!       c_token *token = c_parser_peek_token (parser);
!       location_t loc = token->location;
!       switch (token->keyword)
! 	{
! 	case RID_VOLATILE:
! 	  if (volatile_loc)
! 	    {
! 	      error_at (loc, "duplicate asm qualifier %qE", token->value);
! 	      inform (volatile_loc, "first seen here");
! 	    }
! 	  else
! 	    volatile_loc = loc;
! 	  c_parser_consume_token (parser);
! 	  continue;
! 
! 	case RID_INLINE:
! 	  if (inline_loc)
! 	    {
! 	      error_at (loc, "duplicate asm qualifier %qE", token->value);
! 	      inform (inline_loc, "first seen here");
! 	    }
! 	  else
! 	    inline_loc = loc;
! 	  c_parser_consume_token (parser);
! 	  continue;
! 
! 	case RID_GOTO:
! 	  if (goto_loc)
! 	    {
! 	      error_at (loc, "duplicate asm qualifier %qE", token->value);
! 	      inform (goto_loc, "first seen here");
! 	    }
! 	  else
! 	    goto_loc = loc;
! 	  c_parser_consume_token (parser);
! 	  continue;
! 
! 	case RID_CONST:
! 	case RID_RESTRICT:
! 	  warning_at (loc, 0, "%qE is not an asm qualifier", token->value);
! 	  c_parser_consume_token (parser);
! 	  continue;
! 
! 	default:
! 	  break;
! 	}
!       break;
      }
  
+   bool is_volatile = (volatile_loc != UNKNOWN_LOCATION);
+   bool is_inline = (inline_loc != UNKNOWN_LOCATION);
+   bool is_goto = (goto_loc != UNKNOWN_LOCATION);
+ 
    /* ??? Follow the C++ parser rather than using the
       lex_untranslated_string kludge.  */
    parser->lex_untranslated_string = true;
*************** c_parser_asm_statement (c_parser *parser
*** 6216,6223 ****
    if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"))
      c_parser_skip_to_end_of_block_or_statement (parser);
  
!   ret = build_asm_stmt (quals, build_asm_expr (asm_loc, str, outputs, inputs,
! 					       clobbers, labels, simple));
  
   error:
    parser->lex_untranslated_string = false;
--- 6259,6267 ----
    if (!c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"))
      c_parser_skip_to_end_of_block_or_statement (parser);
  
!   ret = build_asm_stmt (is_volatile,
! 			build_asm_expr (asm_loc, str, outputs, inputs,
! 					clobbers, labels, simple, is_inline));
  
   error:
    parser->lex_untranslated_string = false;
*************** c_parse_file (void)
*** 18170,18175 ****
--- 18214,18221 ----
  
    if (c_parser_peek_token (&tparser)->pragma_kind == PRAGMA_GCC_PCH_PREPROCESS)
      c_parser_pragma_pch_preprocess (&tparser);
+   else
+     c_common_no_more_pch ();
  
    the_parser = ggc_alloc<c_parser> ();
    *the_parser = tparser;
diff -Nrcpad gcc-7.4.0/gcc/c/c-tree.h gcc-7.5.0/gcc/c/c-tree.h
*** gcc-7.4.0/gcc/c/c-tree.h	Mon Mar 27 21:07:21 2017
--- gcc-7.5.0/gcc/c/c-tree.h	Wed Jan  2 22:49:04 2019
*************** extern tree build_compound_literal (loca
*** 659,666 ****
  extern void check_compound_literal_type (location_t, struct c_type_name *);
  extern tree c_start_case (location_t, location_t, tree, bool);
  extern void c_finish_case (tree, tree);
! extern tree build_asm_expr (location_t, tree, tree, tree, tree, tree, bool);
! extern tree build_asm_stmt (tree, tree);
  extern int c_types_compatible_p (tree, tree);
  extern tree c_begin_compound_stmt (bool);
  extern tree c_end_compound_stmt (location_t, tree, bool);
--- 659,667 ----
  extern void check_compound_literal_type (location_t, struct c_type_name *);
  extern tree c_start_case (location_t, location_t, tree, bool);
  extern void c_finish_case (tree, tree);
! extern tree build_asm_expr (location_t, tree, tree, tree, tree, tree, bool,
! 			    bool);
! extern tree build_asm_stmt (bool, tree);
  extern int c_types_compatible_p (tree, tree);
  extern tree c_begin_compound_stmt (bool);
  extern tree c_end_compound_stmt (location_t, tree, bool);
diff -Nrcpad gcc-7.4.0/gcc/c/c-typeck.c gcc-7.5.0/gcc/c/c-typeck.c
*** gcc-7.4.0/gcc/c/c-typeck.c	Fri Jun 22 21:25:04 2018
--- gcc-7.5.0/gcc/c/c-typeck.c	Wed Jan  2 22:49:04 2019
*************** process_init_element (location_t loc, st
*** 9669,9677 ****
     (guaranteed to be 'volatile' or null) and ARGS (represented using
     an ASM_EXPR node).  */
  tree
! build_asm_stmt (tree cv_qualifier, tree args)
  {
!   if (!ASM_VOLATILE_P (args) && cv_qualifier)
      ASM_VOLATILE_P (args) = 1;
    return add_stmt (args);
  }
--- 9669,9677 ----
     (guaranteed to be 'volatile' or null) and ARGS (represented using
     an ASM_EXPR node).  */
  tree
! build_asm_stmt (bool is_volatile, tree args)
  {
!   if (is_volatile)
      ASM_VOLATILE_P (args) = 1;
    return add_stmt (args);
  }
*************** build_asm_stmt (tree cv_qualifier, tree
*** 9680,9689 ****
     some INPUTS, and some CLOBBERS.  The latter three may be NULL.
     SIMPLE indicates whether there was anything at all after the
     string in the asm expression -- asm("blah") and asm("blah" : )
!    are subtly different.  We use a ASM_EXPR node to represent this.  */
  tree
  build_asm_expr (location_t loc, tree string, tree outputs, tree inputs,
! 		tree clobbers, tree labels, bool simple)
  {
    tree tail;
    tree args;
--- 9680,9691 ----
     some INPUTS, and some CLOBBERS.  The latter three may be NULL.
     SIMPLE indicates whether there was anything at all after the
     string in the asm expression -- asm("blah") and asm("blah" : )
!    are subtly different.  We use a ASM_EXPR node to represent this.
!    LOC is the location of the asm, and IS_INLINE says whether this
!    is asm inline.  */
  tree
  build_asm_expr (location_t loc, tree string, tree outputs, tree inputs,
! 		tree clobbers, tree labels, bool simple, bool is_inline)
  {
    tree tail;
    tree args;
*************** build_asm_expr (location_t loc, tree str
*** 9801,9806 ****
--- 9803,9809 ----
       as volatile.  */
    ASM_INPUT_P (args) = simple;
    ASM_VOLATILE_P (args) = (noutputs == 0);
+   ASM_INLINE_P (args) = is_inline;
  
    return args;
  }
diff -Nrcpad gcc-7.4.0/gcc/c-family/ChangeLog gcc-7.5.0/gcc/c-family/ChangeLog
*** gcc-7.4.0/gcc/c-family/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/c-family/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,40 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR pch/61250
+ 	* c-lex.c (c_lex_with_flags):  Don't call
+ 	c_common_no_more_pch () from here.
+ 
+ 2019-08-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-05-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR c/90474
+ 	* c-common.c (c_common_mark_addressable_vec): Also mark
+ 	a COMPOUND_LITERAL_EXPR_DECL addressable similar to
+ 	c_mark_addressable.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-06-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/90954
+ 	* c-omp.c (c_finish_omp_atomic): Allow tree_invariant_p in addition
+ 	to SAVE_EXPR in first operand of a COMPOUND_EXPR.
+ 
+ 2019-04-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* c-ada-spec.c (print_destructor): Deal with deleting destructors.
+ 	(dump_ada_declaration) <FUNCTION_DECL>: Likewise.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/c-family/c-ada-spec.c gcc-7.5.0/gcc/c-family/c-ada-spec.c
*** gcc-7.4.0/gcc/c-family/c-ada-spec.c	Thu Mar  9 09:20:59 2017
--- gcc-7.5.0/gcc/c-family/c-ada-spec.c	Tue Apr  9 19:30:57 2019
*************** print_destructor (pretty_printer *buffer
*** 2663,2668 ****
--- 2663,2670 ----
    tree decl_name = DECL_NAME (DECL_ORIGIN (t));
  
    pp_string (buffer, "Delete_");
+   if (strncmp (IDENTIFIER_POINTER (DECL_NAME (t)), "__del", 5) == 0)
+     pp_string (buffer, "And_Free_");
    pp_ada_tree_identifier (buffer, decl_name, t, false);
  }
  
*************** print_ada_declaration (pretty_printer *b
*** 2915,2922 ****
  	  if (DECL_ARTIFICIAL (t))
  	    return 0;
  
! 	  /* Only consider constructors/destructors for complete objects.  */
! 	  if (strncmp (IDENTIFIER_POINTER (decl_name), "__comp", 6) != 0)
  	    return 0;
  	}
  
--- 2917,2925 ----
  	  if (DECL_ARTIFICIAL (t))
  	    return 0;
  
! 	  /* Only consider complete constructors and deleting destructors.  */
! 	  if (strncmp (IDENTIFIER_POINTER (decl_name), "__comp", 6) != 0
! 	      && strncmp (IDENTIFIER_POINTER (decl_name), "__del", 5) != 0)
  	    return 0;
  	}
  
diff -Nrcpad gcc-7.4.0/gcc/c-family/c-common.c gcc-7.5.0/gcc/c-family/c-common.c
*** gcc-7.4.0/gcc/c-family/c-common.c	Fri Jun 22 21:33:58 2018
--- gcc-7.5.0/gcc/c-family/c-common.c	Fri Aug 30 16:44:17 2019
*************** c_common_mark_addressable_vec (tree t)
*** 6529,6534 ****
--- 6529,6536 ----
      return;
    if (!VAR_P (t) || !DECL_HARD_REGISTER (t))
      TREE_ADDRESSABLE (t) = 1;
+   if (TREE_CODE (t) == COMPOUND_LITERAL_EXPR)
+     TREE_ADDRESSABLE (COMPOUND_LITERAL_EXPR_DECL (t)) = 1;
  }
  
  
diff -Nrcpad gcc-7.4.0/gcc/c-family/c-lex.c gcc-7.5.0/gcc/c-family/c-lex.c
*** gcc-7.4.0/gcc/c-family/c-lex.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/c-family/c-lex.c	Thu Sep  5 19:27:31 2019
*************** enum cpp_ttype
*** 387,393 ****
  c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags,
  		  int lex_flags)
  {
-   static bool no_more_pch;
    const cpp_token *tok;
    enum cpp_ttype type;
    unsigned char add_flags = 0;
--- 387,392 ----
*************** c_lex_with_flags (tree *value, location_
*** 621,632 ****
    if (cpp_flags)
      *cpp_flags = tok->flags | add_flags;
  
-   if (!no_more_pch)
-     {
-       no_more_pch = true;
-       c_common_no_more_pch ();
-     }
- 
    timevar_pop (TV_CPP);
  
    return type;
--- 620,625 ----
diff -Nrcpad gcc-7.4.0/gcc/c-family/c-omp.c gcc-7.5.0/gcc/c-family/c-omp.c
*** gcc-7.4.0/gcc/c-family/c-omp.c	Fri Jun 22 21:25:04 2018
--- gcc-7.5.0/gcc/c-family/c-omp.c	Fri Aug 30 12:47:28 2019
*************** c_finish_omp_atomic (location_t loc, enu
*** 256,262 ****
    if (TREE_CODE (x) == COMPOUND_EXPR)
      {
        pre = TREE_OPERAND (x, 0);
!       gcc_assert (TREE_CODE (pre) == SAVE_EXPR);
        x = TREE_OPERAND (x, 1);
      }
    gcc_assert (TREE_CODE (x) == MODIFY_EXPR);
--- 256,262 ----
    if (TREE_CODE (x) == COMPOUND_EXPR)
      {
        pre = TREE_OPERAND (x, 0);
!       gcc_assert (TREE_CODE (pre) == SAVE_EXPR || tree_invariant_p (pre));
        x = TREE_OPERAND (x, 1);
      }
    gcc_assert (TREE_CODE (x) == MODIFY_EXPR);
diff -Nrcpad gcc-7.4.0/gcc/calls.c gcc-7.5.0/gcc/calls.c
*** gcc-7.4.0/gcc/calls.c	Fri Jun 22 20:43:53 2018
--- gcc-7.5.0/gcc/calls.c	Fri Aug 30 12:41:43 2019
*************** expand_call (tree exp, rtx target, int i
*** 3333,3338 ****
--- 3333,3360 ----
        || dbg_cnt (tail_call) == false)
      try_tail_call = 0;
  
+   /* Workaround buggy C/C++ wrappers around Fortran routines with
+      character(len=constant) arguments if the hidden string length arguments
+      are passed on the stack; if the callers forget to pass those arguments,
+      attempting to tail call in such routines leads to stack corruption.
+      Avoid tail calls in functions where at least one such hidden string
+      length argument is passed (partially or fully) on the stack in the
+      caller and the callee needs to pass any arguments on the stack.
+      See PR90329.  */
+   if (try_tail_call && args_size.constant != 0)
+     for (tree arg = DECL_ARGUMENTS (current_function_decl);
+ 	 arg; arg = DECL_CHAIN (arg))
+       if (DECL_HIDDEN_STRING_LENGTH (arg) && DECL_INCOMING_RTL (arg))
+ 	{
+ 	  subrtx_iterator::array_type array;
+ 	  FOR_EACH_SUBRTX (iter, array, DECL_INCOMING_RTL (arg), NONCONST)
+ 	    if (MEM_P (*iter))
+ 	      {
+ 		try_tail_call = 0;
+ 		break;
+ 	      }
+ 	}
+ 
    /* If the user has marked the function as requiring tail-call
       optimization, attempt it.  */
    if (must_tail_call)
diff -Nrcpad gcc-7.4.0/gcc/cfgcleanup.c gcc-7.5.0/gcc/cfgcleanup.c
*** gcc-7.4.0/gcc/cfgcleanup.c	Tue Apr 18 17:31:30 2017
--- gcc-7.5.0/gcc/cfgcleanup.c	Fri Aug 30 11:21:45 2019
*************** outgoing_edges_match (int mode, basic_bl
*** 1620,1629 ****
    if (crtl->shrink_wrapped
        && single_succ_p (bb1)
        && single_succ (bb1) == EXIT_BLOCK_PTR_FOR_FN (cfun)
!       && !JUMP_P (BB_END (bb1))
        && !(CALL_P (BB_END (bb1)) && SIBLING_CALL_P (BB_END (bb1))))
      return false;
!   
    /* If BB1 has only one successor, we may be looking at either an
       unconditional jump, or a fake edge to exit.  */
    if (single_succ_p (bb1)
--- 1620,1632 ----
    if (crtl->shrink_wrapped
        && single_succ_p (bb1)
        && single_succ (bb1) == EXIT_BLOCK_PTR_FOR_FN (cfun)
!       && (!JUMP_P (BB_END (bb1))
! 	  /* Punt if the only successor is a fake edge to exit, the jump
! 	     must be some weird one.  */
! 	  || (single_succ_edge (bb1)->flags & EDGE_FAKE) != 0)
        && !(CALL_P (BB_END (bb1)) && SIBLING_CALL_P (BB_END (bb1))))
      return false;
! 
    /* If BB1 has only one successor, we may be looking at either an
       unconditional jump, or a fake edge to exit.  */
    if (single_succ_p (bb1)
diff -Nrcpad gcc-7.4.0/gcc/cfghooks.c gcc-7.5.0/gcc/cfghooks.c
*** gcc-7.4.0/gcc/cfghooks.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/cfghooks.c	Thu Sep  5 12:11:52 2019
*************** can_duplicate_block_p (const_basic_block
*** 1067,1073 ****
     AFTER.  */
  
  basic_block
! duplicate_block (basic_block bb, edge e, basic_block after)
  {
    edge s, n;
    basic_block new_bb;
--- 1067,1073 ----
     AFTER.  */
  
  basic_block
! duplicate_block (basic_block bb, edge e, basic_block after, copy_bb_data *id)
  {
    edge s, n;
    basic_block new_bb;
*************** duplicate_block (basic_block bb, edge e,
*** 1083,1089 ****
  
    gcc_checking_assert (can_duplicate_block_p (bb));
  
!   new_bb = cfg_hooks->duplicate_block (bb);
    if (after)
      move_block_after (new_bb, after);
  
--- 1083,1089 ----
  
    gcc_checking_assert (can_duplicate_block_p (bb));
  
!   new_bb = cfg_hooks->duplicate_block (bb, id);
    if (after)
      move_block_after (new_bb, after);
  
*************** copy_bbs (basic_block *bbs, unsigned n,
*** 1355,1367 ****
    unsigned i, j;
    basic_block bb, new_bb, dom_bb;
    edge e;
  
    /* Duplicate bbs, update dominators, assign bbs to loops.  */
    for (i = 0; i < n; i++)
      {
        /* Duplicate.  */
        bb = bbs[i];
!       new_bb = new_bbs[i] = duplicate_block (bb, NULL, after);
        after = new_bb;
        bb->flags |= BB_DUPLICATED;
        if (bb->loop_father)
--- 1355,1368 ----
    unsigned i, j;
    basic_block bb, new_bb, dom_bb;
    edge e;
+   copy_bb_data id;
  
    /* Duplicate bbs, update dominators, assign bbs to loops.  */
    for (i = 0; i < n; i++)
      {
        /* Duplicate.  */
        bb = bbs[i];
!       new_bb = new_bbs[i] = duplicate_block (bb, NULL, after, &id);
        after = new_bb;
        bb->flags |= BB_DUPLICATED;
        if (bb->loop_father)
diff -Nrcpad gcc-7.4.0/gcc/cfghooks.h gcc-7.5.0/gcc/cfghooks.h
*** gcc-7.4.0/gcc/cfghooks.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/cfghooks.h	Thu Sep  5 12:11:52 2019
*************** struct profile_record
*** 54,59 ****
--- 54,72 ----
    bool run;
  };
  
+ typedef int_hash <unsigned short, 0> dependence_hash;
+ 
+ /* Optional data for duplicate_block.   */
+ 
+ struct copy_bb_data
+ {
+   copy_bb_data() : dependence_map (NULL) {}
+   ~copy_bb_data () { delete dependence_map; }
+ 
+   /* A map from the copied BBs dependence info cliques to
+      equivalents in the BBs duplicated to.  */
+   hash_map<dependence_hash, unsigned short> *dependence_map;
+ };
  
  struct cfg_hooks
  {
*************** struct cfg_hooks
*** 112,118 ****
    bool (*can_duplicate_block_p) (const_basic_block a);
  
    /* Duplicate block A.  */
!   basic_block (*duplicate_block) (basic_block a);
  
    /* Higher level functions representable by primitive operations above if
       we didn't have some oddities in RTL and Tree representations.  */
--- 125,131 ----
    bool (*can_duplicate_block_p) (const_basic_block a);
  
    /* Duplicate block A.  */
!   basic_block (*duplicate_block) (basic_block a, copy_bb_data *);
  
    /* Higher level functions representable by primitive operations above if
       we didn't have some oddities in RTL and Tree representations.  */
*************** extern void tidy_fallthru_edges (void);
*** 227,233 ****
  extern void predict_edge (edge e, enum br_predictor predictor, int probability);
  extern bool predicted_by_p (const_basic_block bb, enum br_predictor predictor);
  extern bool can_duplicate_block_p (const_basic_block);
! extern basic_block duplicate_block (basic_block, edge, basic_block);
  extern bool block_ends_with_call_p (basic_block bb);
  extern bool empty_block_p (basic_block);
  extern basic_block split_block_before_cond_jump (basic_block);
--- 240,247 ----
  extern void predict_edge (edge e, enum br_predictor predictor, int probability);
  extern bool predicted_by_p (const_basic_block bb, enum br_predictor predictor);
  extern bool can_duplicate_block_p (const_basic_block);
! extern basic_block duplicate_block (basic_block, edge, basic_block,
! 				    copy_bb_data * = NULL);
  extern bool block_ends_with_call_p (basic_block bb);
  extern bool empty_block_p (basic_block);
  extern basic_block split_block_before_cond_jump (basic_block);
diff -Nrcpad gcc-7.4.0/gcc/cfgloop.h gcc-7.5.0/gcc/cfgloop.h
*** gcc-7.4.0/gcc/cfgloop.h	Tue Mar 14 12:47:42 2017
--- gcc-7.5.0/gcc/cfgloop.h	Thu Sep  5 12:11:52 2019
*************** struct GTY ((chain_next ("%h.next"))) lo
*** 220,225 ****
--- 220,229 ----
    /* True if the loop is part of an oacc kernels region.  */
    unsigned in_oacc_kernels_region : 1;
  
+   /* If this loop was inlined the main clique of the callee which does
+      not need remapping when copying the loop body.  */
+   unsigned short owned_clique;
+ 
    /* For SIMD loops, this is a unique identifier of the loop, referenced
       by IFN_GOMP_SIMD_VF, IFN_GOMP_SIMD_LANE and IFN_GOMP_SIMD_LAST_LANE
       builtins.  */
diff -Nrcpad gcc-7.4.0/gcc/cfgloopmanip.c gcc-7.5.0/gcc/cfgloopmanip.c
*** gcc-7.4.0/gcc/cfgloopmanip.c	Tue Feb 21 15:37:18 2017
--- gcc-7.5.0/gcc/cfgloopmanip.c	Thu Sep  5 12:11:52 2019
*************** copy_loop_info (struct loop *loop, struc
*** 1023,1028 ****
--- 1023,1029 ----
    target->warned_aggressive_loop_optimizations
      |= loop->warned_aggressive_loop_optimizations;
    target->in_oacc_kernels_region = loop->in_oacc_kernels_region;
+   target->owned_clique = loop->owned_clique;
  }
  
  /* Copies copy of LOOP as subloop of TARGET loop, placing newly
diff -Nrcpad gcc-7.4.0/gcc/cfgrtl.c gcc-7.5.0/gcc/cfgrtl.c
*** gcc-7.4.0/gcc/cfgrtl.c	Fri Dec 22 08:53:37 2017
--- gcc-7.5.0/gcc/cfgrtl.c	Thu Sep  5 12:11:52 2019
*************** duplicate_insn_chain (rtx_insn *from, rt
*** 4204,4210 ****
  /* Create a duplicate of the basic block BB.  */
  
  static basic_block
! cfg_layout_duplicate_bb (basic_block bb)
  {
    rtx_insn *insn;
    basic_block new_bb;
--- 4204,4210 ----
  /* Create a duplicate of the basic block BB.  */
  
  static basic_block
! cfg_layout_duplicate_bb (basic_block bb, copy_bb_data *)
  {
    rtx_insn *insn;
    basic_block new_bb;
*************** rtl_can_remove_branch_p (const_edge e)
*** 5013,5021 ****
  }
  
  static basic_block
! rtl_duplicate_bb (basic_block bb)
  {
!   bb = cfg_layout_duplicate_bb (bb);
    bb->aux = NULL;
    return bb;
  }
--- 5013,5021 ----
  }
  
  static basic_block
! rtl_duplicate_bb (basic_block bb, copy_bb_data *id)
  {
!   bb = cfg_layout_duplicate_bb (bb, id);
    bb->aux = NULL;
    return bb;
  }
diff -Nrcpad gcc-7.4.0/gcc/combine.c gcc-7.5.0/gcc/combine.c
*** gcc-7.4.0/gcc/combine.c	Tue Nov 20 09:04:12 2018
--- gcc-7.5.0/gcc/combine.c	Fri Aug 30 11:59:10 2019
*************** combine_validate_cost (rtx_insn *i0, rtx
*** 962,975 ****
  }
  
  
! /* Delete any insns that copy a register to itself.  */
  
! static void
  delete_noop_moves (void)
  {
    rtx_insn *insn, *next;
    basic_block bb;
  
    FOR_EACH_BB_FN (bb, cfun)
      {
        for (insn = BB_HEAD (bb); insn != NEXT_INSN (BB_END (bb)); insn = next)
--- 962,978 ----
  }
  
  
! /* Delete any insns that copy a register to itself.
!    Return true if the CFG was changed.  */
  
! static bool
  delete_noop_moves (void)
  {
    rtx_insn *insn, *next;
    basic_block bb;
  
+   bool edges_deleted = false;
+ 
    FOR_EACH_BB_FN (bb, cfun)
      {
        for (insn = BB_HEAD (bb); insn != NEXT_INSN (BB_END (bb)); insn = next)
*************** delete_noop_moves (void)
*** 980,989 ****
  	      if (dump_file)
  		fprintf (dump_file, "deleting noop move %d\n", INSN_UID (insn));
  
! 	      delete_insn_and_edges (insn);
  	    }
  	}
      }
  }
  
  
--- 983,994 ----
  	      if (dump_file)
  		fprintf (dump_file, "deleting noop move %d\n", INSN_UID (insn));
  
! 	      edges_deleted |= delete_insn_and_edges (insn);
  	    }
  	}
      }
+ 
+   return edges_deleted;
  }
  
  
*************** insn_a_feeds_b (rtx_insn *a, rtx_insn *b
*** 1122,1129 ****
  /* Main entry point for combiner.  F is the first insn of the function.
     NREGS is the first unused pseudo-reg number.
  
!    Return nonzero if the combiner has turned an indirect jump
!    instruction into a direct jump.  */
  static int
  combine_instructions (rtx_insn *f, unsigned int nregs)
  {
--- 1127,1134 ----
  /* Main entry point for combiner.  F is the first insn of the function.
     NREGS is the first unused pseudo-reg number.
  
!    Return nonzero if the CFG was changed (e.g. if the combiner has
!    turned an indirect jump instruction into a direct jump).  */
  static int
  combine_instructions (rtx_insn *f, unsigned int nregs)
  {
*************** retry:
*** 1501,1507 ****
    default_rtl_profile ();
    clear_bb_flags ();
    new_direct_jump_p |= purge_all_dead_edges ();
!   delete_noop_moves ();
  
    /* Clean up.  */
    obstack_free (&insn_link_obstack, NULL);
--- 1506,1512 ----
    default_rtl_profile ();
    clear_bb_flags ();
    new_direct_jump_p |= purge_all_dead_edges ();
!   new_direct_jump_p |= delete_noop_moves ();
  
    /* Clean up.  */
    obstack_free (&insn_link_obstack, NULL);
*************** combine_simplify_rtx (rtx x, machine_mod
*** 5807,5814 ****
  	    && GET_MODE_PRECISION (mode) < GET_MODE_PRECISION (op0_mode)
  	    && subreg_lowpart_offset (mode, op0_mode) == SUBREG_BYTE (x)
  	    && HWI_COMPUTABLE_MODE_P (op0_mode)
! 	    && (nonzero_bits (SUBREG_REG (x), op0_mode)
! 		& GET_MODE_MASK (mode)) == 0)
  	  return CONST0_RTX (mode);
        }
  
--- 5812,5820 ----
  	    && GET_MODE_PRECISION (mode) < GET_MODE_PRECISION (op0_mode)
  	    && subreg_lowpart_offset (mode, op0_mode) == SUBREG_BYTE (x)
  	    && HWI_COMPUTABLE_MODE_P (op0_mode)
! 	    && ((nonzero_bits (SUBREG_REG (x), op0_mode)
! 		 & GET_MODE_MASK (mode)) == 0)
! 	    && !side_effects_p (SUBREG_REG (x)))
  	  return CONST0_RTX (mode);
        }
  
*************** make_extraction (machine_mode mode, rtx
*** 7480,7485 ****
--- 7486,7492 ----
  	      /* We can't do this if we are widening INNER_MODE (it
  		 may not be aligned, for one thing).  */
  	      && GET_MODE_PRECISION (inner_mode) >= GET_MODE_PRECISION (tmode)
+ 	      && pos + len <= GET_MODE_PRECISION (is_mode)
  	      && (inner_mode == tmode
  		  || (! mode_dependent_address_p (XEXP (inner, 0),
  						  MEM_ADDR_SPACE (inner))
*************** make_extraction (machine_mode mode, rtx
*** 7631,7636 ****
--- 7638,7647 ----
        && GET_MODE_SIZE (extraction_mode) < GET_MODE_SIZE (mode))
      extraction_mode = mode;
  
+   /* Punt if len is too large for extraction_mode.  */
+   if (len > GET_MODE_PRECISION (extraction_mode))
+     return NULL_RTX;
+ 
    if (!MEM_P (inner))
      wanted_inner_mode = wanted_inner_reg_mode;
    else
diff -Nrcpad gcc-7.4.0/gcc/config/aarch64/aarch64-c.c gcc-7.5.0/gcc/config/aarch64/aarch64-c.c
*** gcc-7.4.0/gcc/config/aarch64/aarch64-c.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/aarch64/aarch64-c.c	Wed May  1 15:27:40 2019
*************** aarch64_update_cpp_builtins (cpp_reader
*** 134,139 ****
--- 134,141 ----
    aarch64_def_or_undef (TARGET_CRYPTO, "__ARM_FEATURE_CRYPTO", pfile);
    aarch64_def_or_undef (TARGET_SIMD_RDMA, "__ARM_FEATURE_QRDMX", pfile);
  
+   aarch64_def_or_undef (TARGET_LSE, "__ARM_FEATURE_ATOMICS", pfile);
+ 
    /* Not for ACLE, but required to keep "float.h" correct if we switch
       target between implementations that do or do not support ARMv8.2-A
       16-bit floating-point extensions.  */
diff -Nrcpad gcc-7.4.0/gcc/config/aarch64/aarch64.md gcc-7.5.0/gcc/config/aarch64/aarch64.md
*** gcc-7.4.0/gcc/config/aarch64/aarch64.md	Tue Apr 10 12:59:08 2018
--- gcc-7.5.0/gcc/config/aarch64/aarch64.md	Tue Apr 30 09:31:04 2019
***************
*** 140,145 ****
--- 140,146 ----
      UNSPEC_RSQRTS
      UNSPEC_NZCV
      UNSPEC_XPACLRI
+     UNSPEC_COPYSIGN
  ])
  
  (define_c_enum "unspecv" [
***************
*** 5003,5047 ****
  ;;   LDR d2, #(1 << 63)
  ;;   BSL v2.8b, [y], [x]
  ;;
! ;; or another, equivalent, sequence using one of BSL/BIT/BIF.
! ;; aarch64_simd_bsldf will select the best suited of these instructions
! ;; to generate based on register allocation, and knows how to partially
! ;; constant fold based on the values of X and Y, so expand through that.
  
! (define_expand "copysigndf3"
!   [(match_operand:DF 0 "register_operand")
!    (match_operand:DF 1 "register_operand")
!    (match_operand:DF 2 "register_operand")]
    "TARGET_FLOAT && TARGET_SIMD"
  {
!   rtx mask = gen_reg_rtx (DImode);
!   emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 63));
!   emit_insn (gen_aarch64_simd_bsldf (operands[0], mask,
! 				     operands[2], operands[1]));
    DONE;
  }
  )
  
! ;; As above, but we must first get to a 64-bit value if we wish to use
! ;; aarch64_simd_bslv2sf.
! 
! (define_expand "copysignsf3"
!   [(match_operand:SF 0 "register_operand")
!    (match_operand:SF 1 "register_operand")
!    (match_operand:SF 2 "register_operand")]
    "TARGET_FLOAT && TARGET_SIMD"
! {
!   rtx mask = gen_reg_rtx (DImode);
! 
!   /* Juggle modes to get us in to a vector mode for BSL.  */
!   rtx op1 = lowpart_subreg (V2SFmode, operands[1], SFmode);
!   rtx op2 = lowpart_subreg (V2SFmode, operands[2], SFmode);
!   rtx tmp = gen_reg_rtx (V2SFmode);
!   emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 31));
!   emit_insn (gen_aarch64_simd_bslv2sf (tmp, mask, op2, op1));
!   emit_move_insn (operands[0], lowpart_subreg (SFmode, tmp, V2SFmode));
!   DONE;
! }
  )
  
  ;; -------------------------------------------------------------------
--- 5004,5048 ----
  ;;   LDR d2, #(1 << 63)
  ;;   BSL v2.8b, [y], [x]
  ;;
! ;; or another, equivalent, sequence using one of BSL/BIT/BIF.  Because
! ;; we expect these operations to nearly always operate on
! ;; floating-point values, we do not want the operation to be
! ;; simplified into a bit-field insert operation that operates on the
! ;; integer side, since typically that would involve three inter-bank
! ;; register copies.  As we do not expect copysign to be followed by
! ;; other logical operations on the result, it seems preferable to keep
! ;; this as an unspec operation, rather than exposing the underlying
! ;; logic to the compiler.
  
! (define_expand "copysign<GPF:mode>3"
!   [(match_operand:GPF 0 "register_operand")
!    (match_operand:GPF 1 "register_operand")
!    (match_operand:GPF 2 "register_operand")]
    "TARGET_FLOAT && TARGET_SIMD"
  {
!   rtx bitmask = gen_reg_rtx (<V_INT_EQUIV>mode);
!   emit_move_insn (bitmask, GEN_INT (HOST_WIDE_INT_M1U
! 				<< (GET_MODE_BITSIZE (<MODE>mode) - 1)));
!   emit_insn (gen_copysign<mode>3_insn (operands[0], operands[1], operands[2],
! 				       bitmask));
    DONE;
  }
  )
  
! (define_insn "copysign<GPF:mode>3_insn"
!   [(set (match_operand:GPF 0 "register_operand" "=w,w,w,r")
! 	(unspec:GPF [(match_operand:GPF 1 "register_operand" "w,0,w,r")
! 		     (match_operand:GPF 2 "register_operand" "w,w,0,0")
! 		     (match_operand:<V_INT_EQUIV> 3 "register_operand"
! 		     "0,w,w,X")]
! 	 UNSPEC_COPYSIGN))]
    "TARGET_FLOAT && TARGET_SIMD"
!   "@
!    bsl\\t%0.<Vbtype>, %2.<Vbtype>, %1.<Vbtype>
!    bit\\t%0.<Vbtype>, %2.<Vbtype>, %3.<Vbtype>
!    bif\\t%0.<Vbtype>, %1.<Vbtype>, %3.<Vbtype>
!    bfxil\\t%<w1>0, %<w1>1, #0, <sizem1>"
!   [(set_attr "type" "neon_bsl<q>,neon_bsl<q>,neon_bsl<q>,bfm")]
  )
  
  ;; -------------------------------------------------------------------
diff -Nrcpad gcc-7.4.0/gcc/config/aarch64/cortex-a57-fma-steering.c gcc-7.5.0/gcc/config/aarch64/cortex-a57-fma-steering.c
*** gcc-7.4.0/gcc/config/aarch64/cortex-a57-fma-steering.c	Fri Jul 28 11:13:45 2017
--- gcc-7.5.0/gcc/config/aarch64/cortex-a57-fma-steering.c	Thu Mar 14 09:18:07 2019
*************** fma_forest::merge_forest (fma_forest *ot
*** 404,410 ****
  
    /* Update root nodes' pointer to forest.  */
    for (other_root_iter = other_roots->begin ();
!        other_root_iter != other_roots->end (); other_root_iter++)
      (*other_root_iter)->set_forest (this);
  
    /* Remove other_forest from the list of forests and move its tree roots in
--- 404,410 ----
  
    /* Update root nodes' pointer to forest.  */
    for (other_root_iter = other_roots->begin ();
!        other_root_iter != other_roots->end (); ++other_root_iter)
      (*other_root_iter)->set_forest (this);
  
    /* Remove other_forest from the list of forests and move its tree roots in
*************** func_fma_steering::dfs (void (*process_f
*** 845,858 ****
  			void (*process_node) (fma_forest *, fma_node *),
  			bool free)
  {
!   vec<fma_node *> to_process;
    std::list<fma_forest *>::iterator forest_iter;
  
-   to_process.create (0);
- 
    /* For each forest.  */
    for (forest_iter = this->m_fma_forests.begin ();
!        forest_iter != this->m_fma_forests.end (); forest_iter++)
      {
        std::list<fma_root_node *>::iterator root_iter;
  
--- 845,857 ----
  			void (*process_node) (fma_forest *, fma_node *),
  			bool free)
  {
!   auto_vec<fma_node *> to_process;
!   auto_vec<fma_node *> to_free;
    std::list<fma_forest *>::iterator forest_iter;
  
    /* For each forest.  */
    for (forest_iter = this->m_fma_forests.begin ();
!        forest_iter != this->m_fma_forests.end (); ++forest_iter)
      {
        std::list<fma_root_node *>::iterator root_iter;
  
*************** func_fma_steering::dfs (void (*process_f
*** 861,867 ****
  
        /* For each tree root in this forest.  */
        for (root_iter = (*forest_iter)->get_roots ()->begin ();
! 	   root_iter != (*forest_iter)->get_roots ()->end (); root_iter++)
  	{
  	  if (process_root)
  	    process_root (*forest_iter, *root_iter);
--- 860,866 ----
  
        /* For each tree root in this forest.  */
        for (root_iter = (*forest_iter)->get_roots ()->begin ();
! 	   root_iter != (*forest_iter)->get_roots ()->end (); ++root_iter)
  	{
  	  if (process_root)
  	    process_root (*forest_iter, *root_iter);
*************** func_fma_steering::dfs (void (*process_f
*** 879,906 ****
  	  if (process_node)
  	    process_node (*forest_iter, node);
  
- 	  /* Absence of children might indicate an alternate root of a *chain*.
- 	     It's ok to skip it here as the chain will be renamed when
- 	     processing the canonical root for that chain.  */
- 	  if (node->get_children ()->empty ())
- 	    continue;
- 
  	  for (child_iter = node->get_children ()->begin ();
! 	       child_iter != node->get_children ()->end (); child_iter++)
  	    to_process.safe_push (*child_iter);
  	  if (free)
  	    {
  	      if (node->root_p ())
  		delete static_cast<fma_root_node *> (node);
  	      else
  		delete node;
  	    }
  	}
-       if (free)
- 	delete *forest_iter;
      }
- 
-   to_process.release ();
  }
  
  /* Build the dependency trees of FMUL and FMADD/FMSUB instructions.  */
--- 878,907 ----
  	  if (process_node)
  	    process_node (*forest_iter, node);
  
  	  for (child_iter = node->get_children ()->begin ();
! 	       child_iter != node->get_children ()->end (); ++child_iter)
  	    to_process.safe_push (*child_iter);
+ 
+ 	  /* Defer freeing so that the process_node callback can access the
+ 	     parent and children of the node being processed.  */
  	  if (free)
+ 	    to_free.safe_push (node);
+ 	}
+ 
+       if (free)
+ 	{
+ 	  delete *forest_iter;
+ 
+ 	  while (!to_free.is_empty ())
  	    {
+ 	      fma_node *node = to_free.pop ();
  	      if (node->root_p ())
  		delete static_cast<fma_root_node *> (node);
  	      else
  		delete node;
  	    }
  	}
      }
  }
  
  /* Build the dependency trees of FMUL and FMADD/FMSUB instructions.  */
diff -Nrcpad gcc-7.4.0/gcc/config/aarch64/iterators.md gcc-7.5.0/gcc/config/aarch64/iterators.md
*** gcc-7.4.0/gcc/config/aarch64/iterators.md	Thu Mar 16 10:03:11 2017
--- gcc-7.5.0/gcc/config/aarch64/iterators.md	Tue Apr 30 09:31:04 2019
***************
*** 438,444 ****
  (define_mode_attr sizen [(QI "8") (HI "16") (SI "32") (DI "64")])
  
  ;; Give the ordinal of the MSB in the mode
! (define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63")])
  
  ;; Attribute to describe constants acceptable in logical operations
  (define_mode_attr lconst [(SI "K") (DI "L")])
--- 438,445 ----
  (define_mode_attr sizen [(QI "8") (HI "16") (SI "32") (DI "64")])
  
  ;; Give the ordinal of the MSB in the mode
! (define_mode_attr sizem1 [(QI "#7") (HI "#15") (SI "#31") (DI "#63")
! 			  (HF "#15") (SF "#31") (DF "#63")])
  
  ;; Attribute to describe constants acceptable in logical operations
  (define_mode_attr lconst [(SI "K") (DI "L")])
***************
*** 507,513 ****
  			  (V8HF "16b") (V2SF  "8b")
  			  (V4SF "16b") (V2DF  "16b")
  			  (DI   "8b")  (DF    "8b")
! 			  (SI   "8b")])
  
  ;; Define element mode for each vector mode.
  (define_mode_attr VEL [(V8QI "QI") (V16QI "QI")
--- 508,514 ----
  			  (V8HF "16b") (V2SF  "8b")
  			  (V4SF "16b") (V2DF  "16b")
  			  (DI   "8b")  (DF    "8b")
! 			  (SI   "8b")  (SF    "8b")])
  
  ;; Define element mode for each vector mode.
  (define_mode_attr VEL [(V8QI "QI") (V16QI "QI")
***************
*** 648,653 ****
--- 649,657 ----
  ;; Double vector types for ALLX.
  (define_mode_attr Vallxd [(QI "8b") (HI "4h") (SI "2s")])
  
+ ;; Mode with floating-point values replaced by like-sized integers.
+ (define_mode_attr V_INT_EQUIV [(DF "DI") (SF "SI")])
+ 
  ;; Mode of result of comparison operations.
  (define_mode_attr V_cmp_result [(V8QI "V8QI") (V16QI "V16QI")
  				(V4HI "V4HI") (V8HI  "V8HI")
diff -Nrcpad gcc-7.4.0/gcc/config/alpha/alpha.c gcc-7.5.0/gcc/config/alpha/alpha.c
*** gcc-7.4.0/gcc/config/alpha/alpha.c	Wed Apr 11 18:36:37 2018
--- gcc-7.5.0/gcc/config/alpha/alpha.c	Fri Jan 18 16:46:47 2019
*************** alpha_gimplify_va_arg (tree valist, tree
*** 6357,6364 ****
    offset = get_initialized_tmp_var (t, pre_p, NULL);
  
    indirect = pass_by_reference (NULL, TYPE_MODE (type), type, false);
    if (indirect)
!     type = build_pointer_type_for_mode (type, ptr_mode, true);
  
    /* Find the value.  Note that this will be a stable indirection, or
       a composite of stable indirections in the case of complex.  */
--- 6357,6396 ----
    offset = get_initialized_tmp_var (t, pre_p, NULL);
  
    indirect = pass_by_reference (NULL, TYPE_MODE (type), type, false);
+ 
    if (indirect)
!     {
!       if (TREE_CODE (type) == COMPLEX_TYPE
! 	  && targetm.calls.split_complex_arg (type))
! 	{
! 	  tree real_part, imag_part, real_temp;
! 
! 	  tree ptr_type = build_pointer_type_for_mode (TREE_TYPE (type),
! 						       ptr_mode, true);
! 
! 	  real_part = alpha_gimplify_va_arg_1 (ptr_type, base,
! 					       offset, pre_p);
! 	  real_part = build_va_arg_indirect_ref (real_part);
! 
! 	  /* Copy the value into a new temporary, lest the formal temporary
! 	     be reused out from under us.  */
! 	  real_temp = get_initialized_tmp_var (real_part, pre_p, NULL);
! 
! 	  imag_part = alpha_gimplify_va_arg_1 (ptr_type, base,
! 					       offset, pre_p);
! 	  imag_part = build_va_arg_indirect_ref (imag_part);
! 
! 	  r = build2 (COMPLEX_EXPR, type, real_temp, imag_part);
! 
! 	  /* Stuff the offset temporary back into its field.  */
! 	  gimplify_assign (unshare_expr (offset_field),
! 			   fold_convert (TREE_TYPE (offset_field), offset),
! 			   pre_p);
! 	  return r;
! 	}
!       else
! 	type = build_pointer_type_for_mode (type, ptr_mode, true);
!     }
  
    /* Find the value.  Note that this will be a stable indirection, or
       a composite of stable indirections in the case of complex.  */
diff -Nrcpad gcc-7.4.0/gcc/config/arm/arm.c gcc-7.5.0/gcc/config/arm/arm.c
*** gcc-7.4.0/gcc/config/arm/arm.c	Wed Nov 21 16:50:37 2018
--- gcc-7.5.0/gcc/config/arm/arm.c	Fri Oct 25 14:39:06 2019
*************** arm_option_override_internal (struct gcc
*** 3001,3007 ****
  
    /* Thumb2 inline assembly code should always use unified syntax.
       This will apply to ARM and Thumb1 eventually.  */
!   opts->x_inline_asm_unified = TARGET_THUMB2_P (opts->x_target_flags);
  
  #ifdef SUBTARGET_OVERRIDE_INTERNAL_OPTIONS
    SUBTARGET_OVERRIDE_INTERNAL_OPTIONS;
--- 3001,3008 ----
  
    /* Thumb2 inline assembly code should always use unified syntax.
       This will apply to ARM and Thumb1 eventually.  */
!   if (TARGET_THUMB2_P (opts->x_target_flags))
!     opts->x_inline_asm_unified = true;
  
  #ifdef SUBTARGET_OVERRIDE_INTERNAL_OPTIONS
    SUBTARGET_OVERRIDE_INTERNAL_OPTIONS;
*************** static bool
*** 8711,8721 ****
  arm_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, rtx x)
  {
    rtx base, offset;
  
!   if (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P)
      {
!       split_const (x, &base, &offset);
!       if (GET_CODE (base) == SYMBOL_REF
  	  && !offset_within_block_p (base, INTVAL (offset)))
  	return true;
      }
--- 8712,8727 ----
  arm_cannot_force_const_mem (machine_mode mode ATTRIBUTE_UNUSED, rtx x)
  {
    rtx base, offset;
+   split_const (x, &base, &offset);
  
!   if (SYMBOL_REF_P (base))
      {
!       /* Function symbols cannot have an offset due to the Thumb bit.  */
!       if ((SYMBOL_REF_FLAGS (base) & SYMBOL_FLAG_FUNCTION)
! 	  && INTVAL (offset) != 0)
! 	return true;
! 
!       if (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P
  	  && !offset_within_block_p (base, INTVAL (offset)))
  	return true;
      }
*************** neon_valid_immediate (rtx op, machine_mo
*** 11695,11702 ****
    else
      {
        n_elts = 1;
!       if (mode == VOIDmode)
! 	mode = DImode;
      }
  
    innersize = GET_MODE_UNIT_SIZE (mode);
--- 11701,11707 ----
    else
      {
        n_elts = 1;
!       gcc_assert (mode != VOIDmode);
      }
  
    innersize = GET_MODE_UNIT_SIZE (mode);
*************** arm_compute_save_reg_mask (void)
*** 19211,19217 ****
    return save_reg_mask;
  }
  
! /* Compute a bit mask of which registers need to be
     saved on the stack for the current function.  */
  static unsigned long
  thumb1_compute_save_reg_mask (void)
--- 19216,19251 ----
    return save_reg_mask;
  }
  
! /* Return a mask for the call-clobbered low registers that are unused
!    at the end of the prologue.  */
! static unsigned long
! thumb1_prologue_unused_call_clobbered_lo_regs (void)
! {
!   unsigned long mask = 0;
! 
!   for (int reg = 0; reg <= LAST_LO_REGNUM; reg++)
!     if (!callee_saved_reg_p (reg)
! 	&& !REGNO_REG_SET_P (df_get_live_out (ENTRY_BLOCK_PTR_FOR_FN (cfun)),
! 			     reg))
!       mask |= 1 << reg;
!   return mask;
! }
! 
! /* Similarly for the start of the epilogue.  */
! static unsigned long
! thumb1_epilogue_unused_call_clobbered_lo_regs (void)
! {
!   unsigned long mask = 0;
! 
!   for (int reg = 0; reg <= LAST_LO_REGNUM; reg++)
!     if (!callee_saved_reg_p (reg)
! 	&& !REGNO_REG_SET_P (df_get_live_in (EXIT_BLOCK_PTR_FOR_FN (cfun)),
! 			     reg))
!       mask |= 1 << reg;
!   return mask;
! }
! 
! /* Compute a bit mask of which core registers need to be
     saved on the stack for the current function.  */
  static unsigned long
  thumb1_compute_save_reg_mask (void)
*************** thumb1_compute_save_reg_mask (void)
*** 19242,19251 ****
    if (mask & 0xff || thumb_force_lr_save ())
      mask |= (1 << LR_REGNUM);
  
!   /* Make sure we have a low work register if we need one.
!      We will need one if we are going to push a high register,
!      but we are not currently intending to push a low register.  */
    if ((mask & 0xff) == 0
        && ((mask & 0x0f00) || TARGET_BACKTRACE))
      {
        /* Use thumb_find_work_register to choose which register
--- 19276,19294 ----
    if (mask & 0xff || thumb_force_lr_save ())
      mask |= (1 << LR_REGNUM);
  
!   bool call_clobbered_scratch
!     = (thumb1_prologue_unused_call_clobbered_lo_regs ()
!        && thumb1_epilogue_unused_call_clobbered_lo_regs ());
! 
!   /* Make sure we have a low work register if we need one.  We will
!      need one if we are going to push a high register, but we are not
!      currently intending to push a low register.  However if both the
!      prologue and epilogue have a spare call-clobbered low register,
!      then we won't need to find an additional work register.  It does
!      not need to be the same register in the prologue and
!      epilogue.  */
    if ((mask & 0xff) == 0
+       && !call_clobbered_scratch
        && ((mask & 0x0f00) || TARGET_BACKTRACE))
      {
        /* Use thumb_find_work_register to choose which register
*************** thumb1_unexpanded_epilogue (void)
*** 24434,24445 ****
        unsigned long mask = live_regs_mask & 0xff;
        int next_hi_reg;
  
!       /* The available low registers depend on the size of the value we are
!          returning.  */
!       if (size <= 12)
! 	mask |=  1 << 3;
!       if (size <= 8)
! 	mask |= 1 << 2;
  
        if (mask == 0)
  	/* Oh dear!  We have no low registers into which we can pop
--- 24477,24483 ----
        unsigned long mask = live_regs_mask & 0xff;
        int next_hi_reg;
  
!       mask |= thumb1_epilogue_unused_call_clobbered_lo_regs ();
  
        if (mask == 0)
  	/* Oh dear!  We have no low registers into which we can pop
*************** thumb1_unexpanded_epilogue (void)
*** 24447,24453 ****
  	internal_error
  	  ("no low registers available for popping high registers");
  
!       for (next_hi_reg = 8; next_hi_reg < 13; next_hi_reg++)
  	if (live_regs_mask & (1 << next_hi_reg))
  	  break;
  
--- 24485,24491 ----
  	internal_error
  	  ("no low registers available for popping high registers");
  
!       for (next_hi_reg = 12; next_hi_reg > LAST_LO_REGNUM; next_hi_reg--)
  	if (live_regs_mask & (1 << next_hi_reg))
  	  break;
  
*************** thumb1_unexpanded_epilogue (void)
*** 24455,24461 ****
  	{
  	  /* Find lo register(s) into which the high register(s) can
               be popped.  */
! 	  for (regno = 0; regno <= LAST_LO_REGNUM; regno++)
  	    {
  	      if (mask & (1 << regno))
  		high_regs_pushed--;
--- 24493,24499 ----
  	{
  	  /* Find lo register(s) into which the high register(s) can
               be popped.  */
! 	  for (regno = LAST_LO_REGNUM; regno >= 0; regno--)
  	    {
  	      if (mask & (1 << regno))
  		high_regs_pushed--;
*************** thumb1_unexpanded_epilogue (void)
*** 24463,24482 ****
  		break;
  	    }
  
! 	  mask &= (2 << regno) - 1;	/* A noop if regno == 8 */
  
  	  /* Pop the values into the low register(s).  */
  	  thumb_pop (asm_out_file, mask);
  
  	  /* Move the value(s) into the high registers.  */
! 	  for (regno = 0; regno <= LAST_LO_REGNUM; regno++)
  	    {
  	      if (mask & (1 << regno))
  		{
  		  asm_fprintf (asm_out_file, "\tmov\t%r, %r\n", next_hi_reg,
  			       regno);
  
! 		  for (next_hi_reg++; next_hi_reg < 13; next_hi_reg++)
  		    if (live_regs_mask & (1 << next_hi_reg))
  		      break;
  		}
--- 24501,24522 ----
  		break;
  	    }
  
! 	  if (high_regs_pushed == 0 && regno >= 0)
! 	    mask &= ~((1 << regno) - 1);
  
  	  /* Pop the values into the low register(s).  */
  	  thumb_pop (asm_out_file, mask);
  
  	  /* Move the value(s) into the high registers.  */
! 	  for (regno = LAST_LO_REGNUM; regno >= 0; regno--)
  	    {
  	      if (mask & (1 << regno))
  		{
  		  asm_fprintf (asm_out_file, "\tmov\t%r, %r\n", next_hi_reg,
  			       regno);
  
! 		  for (next_hi_reg--; next_hi_reg > LAST_LO_REGNUM;
! 		       next_hi_reg--)
  		    if (live_regs_mask & (1 << next_hi_reg))
  		      break;
  		}
*************** thumb1_expand_prologue (void)
*** 24858,24867 ****
  	  break;
  
        /* Here we need to mask out registers used for passing arguments
! 	 even if they can be pushed.  This is to avoid using them to stash the high
! 	 registers.  Such kind of stash may clobber the use of arguments.  */
        pushable_regs = l_mask & (~arg_regs_mask);
!       if (lr_needs_saving)
  	pushable_regs &= ~(1 << LR_REGNUM);
  
        if (pushable_regs == 0)
--- 24898,24917 ----
  	  break;
  
        /* Here we need to mask out registers used for passing arguments
! 	 even if they can be pushed.  This is to avoid using them to
! 	 stash the high registers.  Such kind of stash may clobber the
! 	 use of arguments.  */
        pushable_regs = l_mask & (~arg_regs_mask);
!       pushable_regs |= thumb1_prologue_unused_call_clobbered_lo_regs ();
! 
!       /* Normally, LR can be used as a scratch register once it has been
! 	 saved; but if the function examines its own return address then
! 	 the value is still live and we need to avoid using it.  */
!       bool return_addr_live
! 	= REGNO_REG_SET_P (df_get_live_out (ENTRY_BLOCK_PTR_FOR_FN (cfun)),
! 			   LR_REGNUM);
! 
!       if (lr_needs_saving || return_addr_live)
  	pushable_regs &= ~(1 << LR_REGNUM);
  
        if (pushable_regs == 0)
*************** thumb1_expand_prologue (void)
*** 24902,24907 ****
--- 24952,24962 ----
  	      push_mask |= 1 << LR_REGNUM;
  	      real_regs_mask |= 1 << LR_REGNUM;
  	      lr_needs_saving = false;
+ 	      /* If the return address is not live at this point, we
+ 		 can add LR to the list of registers that we can use
+ 		 for pushes.  */
+ 	      if (!return_addr_live)
+ 		pushable_regs |= 1 << LR_REGNUM;
  	    }
  
  	  insn = thumb1_emit_multi_reg_push (push_mask, real_regs_mask);
diff -Nrcpad gcc-7.4.0/gcc/config/arm/arm.h gcc-7.5.0/gcc/config/arm/arm.h
*** gcc-7.4.0/gcc/config/arm/arm.h	Thu Mar 29 09:19:45 2018
--- gcc-7.5.0/gcc/config/arm/arm.h	Wed Mar 13 11:46:56 2019
*************** extern tree arm_fp16_type_node;
*** 186,192 ****
  /* FPU supports converting between HFmode and DFmode in a single hardware
     step.  */
  #define TARGET_FP16_TO_DOUBLE						\
!   (TARGET_HARD_FLOAT && (TARGET_FP16 && TARGET_VFP5))
  
  /* FPU supports fused-multiply-add operations.  */
  #define TARGET_FMA (bitmap_bit_p (arm_active_target.isa, isa_bit_VFPv4))
--- 186,192 ----
  /* FPU supports converting between HFmode and DFmode in a single hardware
     step.  */
  #define TARGET_FP16_TO_DOUBLE						\
!   (TARGET_HARD_FLOAT && TARGET_FP16 && TARGET_VFP5 && TARGET_VFP_DOUBLE)
  
  /* FPU supports fused-multiply-add operations.  */
  #define TARGET_FMA (bitmap_bit_p (arm_active_target.isa, isa_bit_VFPv4))
diff -Nrcpad gcc-7.4.0/gcc/config/arm/arm.md gcc-7.5.0/gcc/config/arm/arm.md
*** gcc-7.4.0/gcc/config/arm/arm.md	Wed Mar 28 09:20:22 2018
--- gcc-7.5.0/gcc/config/arm/arm.md	Thu Oct 17 16:48:39 2019
***************
*** 4486,4547 ****
  ; ARMv6+ unaligned load/store instructions (used for packed structure accesses).
  
  (define_insn "unaligned_loadsi"
!   [(set (match_operand:SI 0 "s_register_operand" "=l,r")
! 	(unspec:SI [(match_operand:SI 1 "memory_operand" "Uw,m")]
  		   UNSPEC_UNALIGNED_LOAD))]
    "unaligned_access"
!   "ldr%?\t%0, %1\t@ unaligned"
!   [(set_attr "arch" "t2,any")
!    (set_attr "length" "2,4")
!    (set_attr "predicable" "yes")
!    (set_attr "predicable_short_it" "yes,no")
     (set_attr "type" "load1")])
  
  (define_insn "unaligned_loadhis"
    [(set (match_operand:SI 0 "s_register_operand" "=r")
  	(sign_extend:SI
  	  (unspec:HI [(match_operand:HI 1 "memory_operand" "Uh")]
  		     UNSPEC_UNALIGNED_LOAD)))]
!   "unaligned_access"
    "ldrsh%?\t%0, %1\t@ unaligned"
    [(set_attr "predicable" "yes")
     (set_attr "type" "load_byte")])
  
  (define_insn "unaligned_loadhiu"
!   [(set (match_operand:SI 0 "s_register_operand" "=l,r")
  	(zero_extend:SI
! 	  (unspec:HI [(match_operand:HI 1 "memory_operand" "Uw,m")]
  		     UNSPEC_UNALIGNED_LOAD)))]
    "unaligned_access"
!   "ldrh%?\t%0, %1\t@ unaligned"
!   [(set_attr "arch" "t2,any")
!    (set_attr "length" "2,4")
!    (set_attr "predicable" "yes")
!    (set_attr "predicable_short_it" "yes,no")
     (set_attr "type" "load_byte")])
  
  (define_insn "unaligned_storesi"
!   [(set (match_operand:SI 0 "memory_operand" "=Uw,m")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "l,r")]
  		   UNSPEC_UNALIGNED_STORE))]
    "unaligned_access"
!   "str%?\t%1, %0\t@ unaligned"
!   [(set_attr "arch" "t2,any")
!    (set_attr "length" "2,4")
!    (set_attr "predicable" "yes")
!    (set_attr "predicable_short_it" "yes,no")
     (set_attr "type" "store1")])
  
  (define_insn "unaligned_storehi"
!   [(set (match_operand:HI 0 "memory_operand" "=Uw,m")
! 	(unspec:HI [(match_operand:HI 1 "s_register_operand" "l,r")]
  		   UNSPEC_UNALIGNED_STORE))]
    "unaligned_access"
!   "strh%?\t%1, %0\t@ unaligned"
!   [(set_attr "arch" "t2,any")
!    (set_attr "length" "2,4")
!    (set_attr "predicable" "yes")
!    (set_attr "predicable_short_it" "yes,no")
     (set_attr "type" "store1")])
  
  
--- 4486,4563 ----
  ; ARMv6+ unaligned load/store instructions (used for packed structure accesses).
  
  (define_insn "unaligned_loadsi"
!   [(set (match_operand:SI 0 "s_register_operand" "=l,l,r")
! 	(unspec:SI [(match_operand:SI 1 "memory_operand" "m,Uw,m")]
  		   UNSPEC_UNALIGNED_LOAD))]
    "unaligned_access"
!   "@
!    ldr\t%0, %1\t@ unaligned
!    ldr%?\t%0, %1\t@ unaligned
!    ldr%?\t%0, %1\t@ unaligned"
!   [(set_attr "arch" "t1,t2,32")
!    (set_attr "length" "2,2,4")
!    (set_attr "predicable" "no,yes,yes")
!    (set_attr "predicable_short_it" "no,yes,no")
     (set_attr "type" "load1")])
  
+ ;; The 16-bit Thumb1 variant of ldrsh requires two registers in the
+ ;; address (there's no immediate format).  That's tricky to support
+ ;; here and we don't really need this pattern for that case, so only
+ ;; enable for 32-bit ISAs.
  (define_insn "unaligned_loadhis"
    [(set (match_operand:SI 0 "s_register_operand" "=r")
  	(sign_extend:SI
  	  (unspec:HI [(match_operand:HI 1 "memory_operand" "Uh")]
  		     UNSPEC_UNALIGNED_LOAD)))]
!   "unaligned_access && TARGET_32BIT"
    "ldrsh%?\t%0, %1\t@ unaligned"
    [(set_attr "predicable" "yes")
     (set_attr "type" "load_byte")])
  
  (define_insn "unaligned_loadhiu"
!   [(set (match_operand:SI 0 "s_register_operand" "=l,l,r")
  	(zero_extend:SI
! 	  (unspec:HI [(match_operand:HI 1 "memory_operand" "m,Uw,m")]
  		     UNSPEC_UNALIGNED_LOAD)))]
    "unaligned_access"
!   "@
!    ldrh\t%0, %1\t@ unaligned
!    ldrh%?\t%0, %1\t@ unaligned
!    ldrh%?\t%0, %1\t@ unaligned"
!   [(set_attr "arch" "t1,t2,32")
!    (set_attr "length" "2,2,4")
!    (set_attr "predicable" "no,yes,yes")
!    (set_attr "predicable_short_it" "no,yes,no")
     (set_attr "type" "load_byte")])
  
  (define_insn "unaligned_storesi"
!   [(set (match_operand:SI 0 "memory_operand" "=m,Uw,m")
! 	(unspec:SI [(match_operand:SI 1 "s_register_operand" "l,l,r")]
  		   UNSPEC_UNALIGNED_STORE))]
    "unaligned_access"
!   "@
!    str\t%1, %0\t@ unaligned
!    str%?\t%1, %0\t@ unaligned
!    str%?\t%1, %0\t@ unaligned"
!   [(set_attr "arch" "t1,t2,32")
!    (set_attr "length" "2,2,4")
!    (set_attr "predicable" "no,yes,yes")
!    (set_attr "predicable_short_it" "no,yes,no")
     (set_attr "type" "store1")])
  
  (define_insn "unaligned_storehi"
!   [(set (match_operand:HI 0 "memory_operand" "=m,Uw,m")
! 	(unspec:HI [(match_operand:HI 1 "s_register_operand" "l,l,r")]
  		   UNSPEC_UNALIGNED_STORE))]
    "unaligned_access"
!   "@
!    strh\t%1, %0\t@ unaligned
!    strh%?\t%1, %0\t@ unaligned
!    strh%?\t%1, %0\t@ unaligned"
!   [(set_attr "arch" "t1,t2,32")
!    (set_attr "length" "2,2,4")
!    (set_attr "predicable" "no,yes,yes")
!    (set_attr "predicable_short_it" "no,yes,no")
     (set_attr "type" "store1")])
  
  
***************
*** 5999,6050 ****
          }
      }
  
!   if (ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P)
      {
!       split_const (operands[1], &base, &offset);
!       if (GET_CODE (base) == SYMBOL_REF
! 	  && !offset_within_block_p (base, INTVAL (offset)))
! 	{
! 	  tmp = can_create_pseudo_p () ? gen_reg_rtx (SImode) : operands[0];
! 	  emit_move_insn (tmp, base);
! 	  emit_insn (gen_addsi3 (operands[0], tmp, offset));
! 	  DONE;
! 	}
      }
  
    /* Recognize the case where operand[1] is a reference to thread-local
!      data and load its address to a register.  */
    if (arm_tls_referenced_p (operands[1]))
!     {
!       rtx tmp = operands[1];
!       rtx addend = NULL;
! 
!       if (GET_CODE (tmp) == CONST && GET_CODE (XEXP (tmp, 0)) == PLUS)
!         {
!           addend = XEXP (XEXP (tmp, 0), 1);
!           tmp = XEXP (XEXP (tmp, 0), 0);
!         }
! 
!       gcc_assert (GET_CODE (tmp) == SYMBOL_REF);
!       gcc_assert (SYMBOL_REF_TLS_MODEL (tmp) != 0);
! 
!       tmp = legitimize_tls_address (tmp,
! 				    !can_create_pseudo_p () ? operands[0] : 0);
!       if (addend)
!         {
!           tmp = gen_rtx_PLUS (SImode, tmp, addend);
!           tmp = force_operand (tmp, operands[0]);
!         }
!       operands[1] = tmp;
!     }
    else if (flag_pic
  	   && (CONSTANT_P (operands[1])
  	       || symbol_mentioned_p (operands[1])
  	       || label_mentioned_p (operands[1])))
!       operands[1] = legitimize_pic_address (operands[1], SImode,
! 					    (!can_create_pseudo_p ()
! 					     ? operands[0]
! 					     : 0));
    }
    "
  )
--- 6015,6043 ----
          }
      }
  
!   split_const (operands[1], &base, &offset);
!   if (INTVAL (offset) != 0
!       && targetm.cannot_force_const_mem (SImode, operands[1]))
      {
!       tmp = can_create_pseudo_p () ? gen_reg_rtx (SImode) : operands[0];
!       emit_move_insn (tmp, base);
!       emit_insn (gen_addsi3 (operands[0], tmp, offset));
!       DONE;
      }
  
+   tmp = can_create_pseudo_p () ? NULL_RTX : operands[0];
+ 
    /* Recognize the case where operand[1] is a reference to thread-local
!      data and load its address to a register.  Offsets have been split off
!      already.  */
    if (arm_tls_referenced_p (operands[1]))
!     operands[1] = legitimize_tls_address (operands[1], tmp);
    else if (flag_pic
  	   && (CONSTANT_P (operands[1])
  	       || symbol_mentioned_p (operands[1])
  	       || label_mentioned_p (operands[1])))
!     operands[1] =
!       legitimize_pic_address (operands[1], SImode, tmp);
    }
    "
  )
diff -Nrcpad gcc-7.4.0/gcc/config/arm/constraints.md gcc-7.5.0/gcc/config/arm/constraints.md
*** gcc-7.4.0/gcc/config/arm/constraints.md	Fri Jan  6 17:37:39 2017
--- gcc-7.5.0/gcc/config/arm/constraints.md	Wed Apr 10 13:34:54 2019
***************
*** 31,37 ****
  ;; 'H' was previously used for FPA.
  
  ;; The following multi-letter normal constraints have been used:
! ;; in ARM/Thumb-2 state: Da, Db, Dc, Dd, Dn, Dl, DL, Do, Dv, Dy, Di, Dt, Dp, Dz
  ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe
  ;; in Thumb-2 state: Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py
  ;; in all states: Pf
--- 31,38 ----
  ;; 'H' was previously used for FPA.
  
  ;; The following multi-letter normal constraints have been used:
! ;; in ARM/Thumb-2 state: Da, Db, Dc, Dd, Dn, DN, Dm, Dl, DL, Do, Dv, Dy, Di,
! ;;			 Dt, Dp, Dz
  ;; in Thumb-1 state: Pa, Pb, Pc, Pd, Pe
  ;; in Thumb-2 state: Pj, PJ, Ps, Pt, Pu, Pv, Pw, Px, Py
  ;; in all states: Pf
***************
*** 294,307 ****
   (and (match_code "const_double,const_int")
        (match_test "TARGET_32BIT && arm_const_double_by_immediates (op)")))
  
! (define_constraint "Dn"
   "@internal
!   In ARM/Thumb-2 state a const_vector or const_int which can be loaded with a
!   Neon vmov immediate instruction."
!  (and (match_code "const_vector,const_int")
        (match_test "TARGET_32BIT
  		   && imm_for_neon_mov_operand (op, GET_MODE (op))")))
  
  (define_constraint "Dl"
   "@internal
    In ARM/Thumb-2 state a const_vector which can be used with a Neon vorr or
--- 295,322 ----
   (and (match_code "const_double,const_int")
        (match_test "TARGET_32BIT && arm_const_double_by_immediates (op)")))
  
! (define_constraint "Dm"
   "@internal
!   In ARM/Thumb-2 state a const_vector which can be loaded with a Neon vmov
!   immediate instruction."
!  (and (match_code "const_vector")
        (match_test "TARGET_32BIT
  		   && imm_for_neon_mov_operand (op, GET_MODE (op))")))
  
+ (define_constraint "Dn"
+  "@internal
+   In ARM/Thumb-2 state a DImode const_int which can be loaded with a Neon vmov
+   immediate instruction."
+  (and (match_code "const_int")
+       (match_test "TARGET_32BIT && imm_for_neon_mov_operand (op, DImode)")))
+ 
+ (define_constraint "DN"
+  "@internal
+   In ARM/Thumb-2 state a TImode const_int which can be loaded with a Neon vmov
+   immediate instruction."
+  (and (match_code "const_int")
+       (match_test "TARGET_32BIT && imm_for_neon_mov_operand (op, TImode)")))
+ 
  (define_constraint "Dl"
   "@internal
    In ARM/Thumb-2 state a const_vector which can be used with a Neon vorr or
diff -Nrcpad gcc-7.4.0/gcc/config/arm/neon.md gcc-7.5.0/gcc/config/arm/neon.md
*** gcc-7.4.0/gcc/config/arm/neon.md	Tue Mar 27 13:26:56 2018
--- gcc-7.5.0/gcc/config/arm/neon.md	Wed Apr 10 13:34:54 2019
***************
*** 25,38 ****
  
  (define_insn "*neon_mov<mode>"
    [(set (match_operand:VDX 0 "nonimmediate_operand"
! 	  "=w,Un,w, w,  ?r,?w,?r,?r, ?Us")
  	(match_operand:VDX 1 "general_operand"
! 	  " w,w, Dn,Uni, w, r, r, Usi,r"))]
    "TARGET_NEON
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
  {
!   if (which_alternative == 2)
      {
        int width, is_valid;
        static char templ[40];
--- 25,38 ----
  
  (define_insn "*neon_mov<mode>"
    [(set (match_operand:VDX 0 "nonimmediate_operand"
! 	  "=w,Un,w, w, w,  ?r,?w,?r,?r, ?Us")
  	(match_operand:VDX 1 "general_operand"
! 	  " w,w, Dm,Dn,Uni, w, r, r, Usi,r"))]
    "TARGET_NEON
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
  {
!   if (which_alternative == 2 || which_alternative == 3)
      {
        int width, is_valid;
        static char templ[40];
***************
*** 53,83 ****
    switch (which_alternative)
      {
      case 0: return "vmov\t%P0, %P1  @ <mode>";
!     case 1: case 3: return output_move_neon (operands);
!     case 2: gcc_unreachable ();
!     case 4: return "vmov\t%Q0, %R0, %P1  @ <mode>";
!     case 5: return "vmov\t%P0, %Q1, %R1  @ <mode>";
      default: return output_move_double (operands, true, NULL);
      }
  }
   [(set_attr "type" "neon_move<q>,neon_store1_1reg,neon_move<q>,\
!                     neon_load1_1reg, neon_to_gp<q>,neon_from_gp<q>,mov_reg,\
!                     neon_load1_2reg, neon_store1_2reg")
!   (set_attr "length" "4,4,4,4,4,4,8,8,8")
!   (set_attr "arm_pool_range"     "*,*,*,1020,*,*,*,1020,*")
!   (set_attr "thumb2_pool_range"     "*,*,*,1018,*,*,*,1018,*")
!   (set_attr "neg_pool_range" "*,*,*,1004,*,*,*,1004,*")])
  
  (define_insn "*neon_mov<mode>"
    [(set (match_operand:VQXMOV 0 "nonimmediate_operand"
!   	  "=w,Un,w, w,  ?r,?w,?r,?r,  ?Us")
  	(match_operand:VQXMOV 1 "general_operand"
! 	  " w,w, Dn,Uni, w, r, r, Usi, r"))]
    "TARGET_NEON
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
  {
!   if (which_alternative == 2)
      {
        int width, is_valid;
        static char templ[40];
--- 53,84 ----
    switch (which_alternative)
      {
      case 0: return "vmov\t%P0, %P1  @ <mode>";
!     case 1: case 4: return output_move_neon (operands);
!     case 2: case 3: gcc_unreachable ();
!     case 5: return "vmov\t%Q0, %R0, %P1  @ <mode>";
!     case 6: return "vmov\t%P0, %Q1, %R1  @ <mode>";
      default: return output_move_double (operands, true, NULL);
      }
  }
   [(set_attr "type" "neon_move<q>,neon_store1_1reg,neon_move<q>,\
!                     neon_move<q>,neon_load1_1reg, neon_to_gp<q>,\
! 		    neon_from_gp<q>,mov_reg,neon_load1_2reg,\
! 		    neon_store1_2reg")
!   (set_attr "length" "4,4,4,4,4,4,4,8,8,8")
!   (set_attr "arm_pool_range"     "*,*,*,*,1020,*,*,*,1020,*")
!   (set_attr "thumb2_pool_range"     "*,*,*,*,1018,*,*,*,1018,*")
!   (set_attr "neg_pool_range" "*,*,*,*,1004,*,*,*,1004,*")])
  
  (define_insn "*neon_mov<mode>"
    [(set (match_operand:VQXMOV 0 "nonimmediate_operand"
! 	  "=w,Un,w, w, w,  ?r,?w,?r,?r,  ?Us")
  	(match_operand:VQXMOV 1 "general_operand"
! 	  " w,w, Dm,DN,Uni, w, r, r, Usi, r"))]
    "TARGET_NEON
     && (register_operand (operands[0], <MODE>mode)
         || register_operand (operands[1], <MODE>mode))"
  {
!   if (which_alternative == 2 || which_alternative == 3)
      {
        int width, is_valid;
        static char templ[40];
***************
*** 98,117 ****
    switch (which_alternative)
      {
      case 0: return "vmov\t%q0, %q1  @ <mode>";
!     case 1: case 3: return output_move_neon (operands);
!     case 2: gcc_unreachable ();
!     case 4: return "vmov\t%Q0, %R0, %e1  @ <mode>\;vmov\t%J0, %K0, %f1";
!     case 5: return "vmov\t%e0, %Q1, %R1  @ <mode>\;vmov\t%f0, %J1, %K1";
      default: return output_move_quad (operands);
      }
  }
    [(set_attr "type" "neon_move_q,neon_store2_2reg_q,neon_move_q,\
!                      neon_load2_2reg_q,neon_to_gp_q,neon_from_gp_q,\
!                      mov_reg,neon_load1_4reg,neon_store1_4reg")
!    (set_attr "length" "4,8,4,8,8,8,16,8,16")
!    (set_attr "arm_pool_range" "*,*,*,1020,*,*,*,1020,*")
!    (set_attr "thumb2_pool_range" "*,*,*,1018,*,*,*,1018,*")
!    (set_attr "neg_pool_range" "*,*,*,996,*,*,*,996,*")])
  
  (define_expand "movti"
    [(set (match_operand:TI 0 "nonimmediate_operand" "")
--- 99,118 ----
    switch (which_alternative)
      {
      case 0: return "vmov\t%q0, %q1  @ <mode>";
!     case 1: case 4: return output_move_neon (operands);
!     case 2: case 3: gcc_unreachable ();
!     case 5: return "vmov\t%Q0, %R0, %e1  @ <mode>\;vmov\t%J0, %K0, %f1";
!     case 6: return "vmov\t%e0, %Q1, %R1  @ <mode>\;vmov\t%f0, %J1, %K1";
      default: return output_move_quad (operands);
      }
  }
    [(set_attr "type" "neon_move_q,neon_store2_2reg_q,neon_move_q,\
!                      neon_move_q,neon_load2_2reg_q,neon_to_gp_q,\
!                      neon_from_gp_q,mov_reg,neon_load1_4reg,neon_store1_4reg")
!    (set_attr "length" "4,8,4,4,8,8,8,16,8,16")
!    (set_attr "arm_pool_range" "*,*,*,*,1020,*,*,*,1020,*")
!    (set_attr "thumb2_pool_range" "*,*,*,*,1018,*,*,*,1018,*")
!    (set_attr "neg_pool_range" "*,*,*,*,996,*,*,*,996,*")])
  
  (define_expand "movti"
    [(set (match_operand:TI 0 "nonimmediate_operand" "")
***************
*** 1007,1013 ****
  (define_insn "vashl<mode>3"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w,w")
  	(ashift:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w,w")
! 		      (match_operand:VDQIW 2 "imm_lshift_or_reg_neon" "w,Dn")))]
    "TARGET_NEON"
    {
      switch (which_alternative)
--- 1008,1014 ----
  (define_insn "vashl<mode>3"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w,w")
  	(ashift:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w,w")
! 		      (match_operand:VDQIW 2 "imm_lshift_or_reg_neon" "w,Dm")))]
    "TARGET_NEON"
    {
      switch (which_alternative)
***************
*** 1026,1032 ****
  (define_insn "vashr<mode>3_imm"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w")
  	(ashiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w")
! 			(match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dn")))]
    "TARGET_NEON"
    {
      return neon_output_shift_immediate ("vshr", 's', &operands[2],
--- 1027,1033 ----
  (define_insn "vashr<mode>3_imm"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w")
  	(ashiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w")
! 			(match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dm")))]
    "TARGET_NEON"
    {
      return neon_output_shift_immediate ("vshr", 's', &operands[2],
***************
*** 1039,1045 ****
  (define_insn "vlshr<mode>3_imm"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w")
  	(lshiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w")
! 			(match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dn")))]
    "TARGET_NEON"
    {
      return neon_output_shift_immediate ("vshr", 'u', &operands[2],
--- 1040,1046 ----
  (define_insn "vlshr<mode>3_imm"
    [(set (match_operand:VDQIW 0 "s_register_operand" "=w")
  	(lshiftrt:VDQIW (match_operand:VDQIW 1 "s_register_operand" "w")
! 			(match_operand:VDQIW 2 "imm_for_neon_rshift_operand" "Dm")))]
    "TARGET_NEON"
    {
      return neon_output_shift_immediate ("vshr", 'u', &operands[2],
diff -Nrcpad gcc-7.4.0/gcc/config/arm/t-rtems gcc-7.5.0/gcc/config/arm/t-rtems
*** gcc-7.4.0/gcc/config/arm/t-rtems	Wed Aug 24 06:05:04 2016
--- gcc-7.5.0/gcc/config/arm/t-rtems	Tue May 14 05:15:38 2019
***************
*** 1,7 ****
  # Custom RTEMS multilibs for ARM
  
! MULTILIB_OPTIONS  = mbig-endian mthumb march=armv6-m/march=armv7-a/march=armv7-r/march=armv7-m/mcpu=cortex-m7 mfpu=neon/mfpu=vfp/mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-d16 mfloat-abi=hard
! MULTILIB_DIRNAMES = eb thumb armv6-m armv7-a armv7-r armv7-m cortex-m7 neon vfp vfpv3-d16 fpv4-sp-d16 fpv5-d16 hard
  
  # Enumeration of multilibs
  
--- 1,7 ----
  # Custom RTEMS multilibs for ARM
  
! MULTILIB_OPTIONS  = mbig-endian mthumb march=armv6-m/march=armv7-a/march=armv7-r/mcpu=cortex-m3/mcpu=cortex-m4/mcpu=cortex-m7 mfpu=neon/mfpu=vfp/mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-d16 mfloat-abi=hard
! MULTILIB_DIRNAMES = eb thumb armv6-m armv7-a armv7-r cortex-m3 cortex-m4 cortex-m7 neon vfp vfpv3-d16 fpv4-sp-d16 fpv5-d16 hard
  
  # Enumeration of multilibs
  
*************** MULTILIB_REQUIRED += mthumb/march=armv7-
*** 16,22 ****
  MULTILIB_REQUIRED += mthumb/march=armv7-a
  MULTILIB_REQUIRED += mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
  MULTILIB_REQUIRED += mthumb/march=armv7-r
! MULTILIB_REQUIRED += mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard
  MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfpu=fpv5-d16/mfloat-abi=hard
- MULTILIB_REQUIRED += mthumb/march=armv7-m
  MULTILIB_REQUIRED += mthumb
--- 16,23 ----
  MULTILIB_REQUIRED += mthumb/march=armv7-a
  MULTILIB_REQUIRED += mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
  MULTILIB_REQUIRED += mthumb/march=armv7-r
! MULTILIB_REQUIRED += mthumb/mcpu=cortex-m3
! MULTILIB_REQUIRED += mthumb/mcpu=cortex-m4
! MULTILIB_REQUIRED += mthumb/mcpu=cortex-m4/mfpu=fpv4-sp-d16/mfloat-abi=hard
  MULTILIB_REQUIRED += mthumb/mcpu=cortex-m7/mfpu=fpv5-d16/mfloat-abi=hard
  MULTILIB_REQUIRED += mthumb
diff -Nrcpad gcc-7.4.0/gcc/config/avr/avr.c gcc-7.5.0/gcc/config/avr/avr.c
*** gcc-7.4.0/gcc/config/avr/avr.c	Tue Aug 22 07:55:34 2017
--- gcc-7.5.0/gcc/config/avr/avr.c	Fri Oct 18 09:16:16 2019
*************** avr_out_lpm (rtx_insn *insn, rtx *op, in
*** 3579,3591 ****
            gcc_unreachable();
  
          case 1:
!           return avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
  
          case 2:
            if (REGNO (dest) == REG_Z)
!             return avr_asm_len ("%4lpm %5,%a2+" CR_TAB
!                                 "%4lpm %B0,%a2" CR_TAB
!                                 "mov %A0,%5", xop, plen, 3);
            else
              {
                avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
--- 3579,3592 ----
            gcc_unreachable();
  
          case 1:
!           avr_asm_len ("%4lpm %0,%a2", xop, plen, 1);
!           break;
  
          case 2:
            if (REGNO (dest) == REG_Z)
!             avr_asm_len ("%4lpm %5,%a2+" CR_TAB
!                          "%4lpm %B0,%a2" CR_TAB
!                          "mov %A0,%5", xop, plen, 3);
            else
              {
                avr_asm_len ("%4lpm %A0,%a2+" CR_TAB
*************** avr_out_lpm (rtx_insn *insn, rtx *op, in
*** 3614,3622 ****
                         "%4lpm %B0,%a2+", xop, plen, 2);
  
            if (REGNO (dest) == REG_Z - 2)
!             return avr_asm_len ("%4lpm %5,%a2+" CR_TAB
!                                 "%4lpm %C0,%a2" CR_TAB
!                                 "mov %D0,%5", xop, plen, 3);
            else
              {
                avr_asm_len ("%4lpm %C0,%a2+" CR_TAB
--- 3615,3623 ----
                         "%4lpm %B0,%a2+", xop, plen, 2);
  
            if (REGNO (dest) == REG_Z - 2)
!             avr_asm_len ("%4lpm %5,%a2+" CR_TAB
!                          "%4lpm %C0,%a2" CR_TAB
!                          "mov %D0,%5", xop, plen, 3);
            else
              {
                avr_asm_len ("%4lpm %C0,%a2+" CR_TAB
diff -Nrcpad gcc-7.4.0/gcc/config/darwin-c.c gcc-7.5.0/gcc/config/darwin-c.c
*** gcc-7.4.0/gcc/config/darwin-c.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/darwin-c.c	Tue Sep  3 19:18:30 2019
*************** static const char *framework_defaults []
*** 463,503 ****
  /* Register the GNU objective-C runtime include path if STDINC.  */
  
  void
! darwin_register_objc_includes (const char *sysroot, const char *iprefix,
! 			       int stdinc)
  {
!   const char *fname;
!   size_t len;
!   /* We do not do anything if we do not want the standard includes. */
!   if (!stdinc)
!     return;
! 
!   fname = GCC_INCLUDE_DIR "-gnu-runtime";
! 
!   /* Register the GNU OBJC runtime include path if we are compiling  OBJC
!     with GNU-runtime.  */
  
!   if (c_dialect_objc () && !flag_next_runtime)
      {
        char *str;
!       /* See if our directory starts with the standard prefix.
  	 "Translate" them, i.e. replace /usr/local/lib/gcc... with
  	 IPREFIX and search them first.  */
!       if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0 && !sysroot
  	  && !strncmp (fname, cpp_GCC_INCLUDE_DIR, len))
  	{
  	  str = concat (iprefix, fname + len, NULL);
!           /* FIXME: wrap the headers for C++awareness.  */
! 	  add_path (str, SYSTEM, /*c++aware=*/false, false);
  	}
  
!       /* Should this directory start with the sysroot?  */
!       if (sysroot)
! 	str = concat (sysroot, fname, NULL);
!       else
! 	str = update_path (fname, "");
! 
!       add_path (str, SYSTEM, /*c++aware=*/false, false);
      }
  }
  
--- 463,494 ----
  /* Register the GNU objective-C runtime include path if STDINC.  */
  
  void
! darwin_register_objc_includes (const char *sysroot ATTRIBUTE_UNUSED,
! 			       const char *iprefix, int stdinc)
  {
!   /* If we want standard includes;  Register the GNU OBJC runtime include
!      path if we are compiling OBJC with GNU-runtime.
!      This path is compiler-relative, we don't want to prepend the sysroot
!      since it's not expected to find the headers there.  */
  
!   if (stdinc && c_dialect_objc () && !flag_next_runtime)
      {
+       const char *fname = GCC_INCLUDE_DIR "-gnu-runtime";
        char *str;
!       size_t len;
! 
!      /* See if our directory starts with the standard prefix.
  	 "Translate" them, i.e. replace /usr/local/lib/gcc... with
  	 IPREFIX and search them first.  */
!       if (iprefix && (len = cpp_GCC_INCLUDE_DIR_len) != 0
  	  && !strncmp (fname, cpp_GCC_INCLUDE_DIR, len))
  	{
  	  str = concat (iprefix, fname + len, NULL);
! 	  add_path (str, SYSTEM, /*c++aware=*/true, false);
  	}
  
!       str = update_path (fname, "");
!       add_path (str, SYSTEM, /*c++aware=*/true, false);
      }
  }
  
diff -Nrcpad gcc-7.4.0/gcc/config/darwin-driver.c gcc-7.5.0/gcc/config/darwin-driver.c
*** gcc-7.4.0/gcc/config/darwin-driver.c	Tue Jan  3 05:36:40 2017
--- gcc-7.5.0/gcc/config/darwin-driver.c	Tue Oct 29 19:52:20 2019
*************** along with GCC; see the file COPYING3.
*** 26,31 ****
--- 26,116 ----
  #include "opts.h"
  #include "diagnostic-core.h"
  
+ /* Validate a version string (either given on the command line or, perhaps
+    as MACOSX_DEPLOYMENT_TARGET).
+ 
+    The specs %version-compare() function doesn't accept leading '0' on
+    numbers so strip them out.  Do sanity checking here too.
+ 
+    Return:
+      * original string means it was OK and we didn't want to change it.
+      * new string means it was OK but we rewrote it to avoid possible format
+      problems.
+      * NULL means we didn't like what we saw.
+ */
+ 
+ static const char *
+ validate_macosx_version_min (const char *version_str)
+ {
+   size_t version_len;
+   unsigned long major, minor, tiny = 0;
+   char *end;
+   const char *old_version = version_str;
+   bool need_rewrite = false;
+ 
+   version_len = strlen (version_str);
+   if (version_len < 4) /* The minimum would be 10.x  */
+     return NULL;
+ 
+   /* Version string must consist of digits and periods only.  */
+   if (strspn (version_str, "0123456789.") != version_len)
+     return NULL;
+ 
+   if (!ISDIGIT (version_str[0]) || !ISDIGIT (version_str[version_len - 1]))
+     return NULL;
+ 
+   if (version_str[0] == '0')
+     need_rewrite = true;
+ 
+   major = strtoul (version_str, &end, 10);
+   version_str = end + ((*end == '.') ? 1 : 0);
+ 
+   if (major != 10) /* So far .. all MacOS 10 ... */
+     return NULL;
+ 
+   /* Version string components must be present and numeric.  */
+   if (!ISDIGIT (version_str[0]))
+     return NULL;
+ 
+   /* If we have one or more leading zeros on a component, then rewrite the
+      version string.  */
+   if (version_str[0] == '0' && version_str[1] != '\0'
+       && version_str[1] != '.')
+     need_rewrite = true;
+ 
+   minor = strtoul (version_str, &end, 10);
+   version_str = end + ((*end == '.') ? 1 : 0);
+   if (minor > 99)
+     return NULL;
+ 
+   /* If 'tiny' is present it must be numeric.  */
+   if (*end != '\0' && !ISDIGIT (version_str[0]))
+     return NULL;
+ 
+   /* If we have one or more leading zeros on a component, then rewrite the
+      version string.  */
+   if (*end != '\0' && version_str[0] == '0'
+       && version_str[1] != '\0')
+     need_rewrite = true;
+ 
+   tiny = strtoul (version_str, &end, 10);
+   if (tiny > 99)
+     return NULL;
+ 
+   /* Version string must contain no more than three tokens.  */
+   if (*end != '\0')
+     return NULL;
+ 
+   if (need_rewrite)
+     {
+       char *new_version;
+       asprintf (&new_version, "10.%lu.%lu", minor, tiny);
+       return new_version;
+     }
+ 
+   return old_version;
+ }
+ 
  #ifndef CROSS_DIRECTORY_STRUCTURE
  #include <sys/sysctl.h>
  #include "xregex.h"
*************** darwin_default_min_version (void)
*** 120,135 ****
  
    if (new_flag != NULL)
      {
!       size_t len = strlen (new_flag);
!       if (len > 128) { /* Arbitrary limit, number should be like xx.yy.zz */
! 	warning (0, "couldn%'t understand version %s\n", new_flag);
! 	return NULL;
!       }
!       new_flag = xstrndup (new_flag, len);
      }
    return new_flag;
  }
  
  /* Translate -filelist and -framework options in *DECODED_OPTIONS
     (size *DECODED_OPTIONS_COUNT) to use -Xlinker so that they are
     considered to be linker inputs in the case that no other inputs are
--- 205,243 ----
  
    if (new_flag != NULL)
      {
!       const char *checked = validate_macosx_version_min (new_flag);
!       if (checked == NULL)
! 	{
! 	  warning (0, "couldn%'t understand version %s\n", new_flag);
! 	  return NULL;
! 	}
!       new_flag = xstrndup (checked, strlen (checked));
      }
    return new_flag;
  }
  
+ /* See if we can find the sysroot from the SDKROOT environment variable.  */
+ 
+ static const char *
+ maybe_get_sysroot_from_sdkroot ()
+ {
+   const char *maybe_sysroot = getenv ("SDKROOT");
+ 
+   /* We'll use the same rules as the clang driver, for compatibility.
+      1) The path must be absolute
+      2) Ignore "/", that is the default anyway and we do not want the
+ 	sysroot semantics to be applied to it.
+      3) It must exist (actually, we'll check it's readable too).  */
+ 
+    if (maybe_sysroot  == NULL
+        || *maybe_sysroot != '/'
+        || strlen (maybe_sysroot) == 1
+        || access (maybe_sysroot, R_OK) == -1)
+     return NULL;
+ 
+   return xstrndup (maybe_sysroot, strlen (maybe_sysroot));
+ }
+ 
  /* Translate -filelist and -framework options in *DECODED_OPTIONS
     (size *DECODED_OPTIONS_COUNT) to use -Xlinker so that they are
     considered to be linker inputs in the case that no other inputs are
*************** darwin_driver_init (unsigned int *decode
*** 154,159 ****
--- 262,268 ----
    bool appendM64 = false;
    const char *vers_string = NULL;
    bool seen_version_min = false;
+   bool seen_sysroot_p = false;
  
    for (i = 1; i < *decoded_options_count; i++)
      {
*************** darwin_driver_init (unsigned int *decode
*** 181,187 ****
  	  if (*decoded_options_count > i) {
  	    memmove (*decoded_options + i,
  		     *decoded_options + i + 1,
! 		     ((*decoded_options_count - i)
  		      * sizeof (struct cl_decoded_option)));
  	  }
  	  --i;
--- 290,296 ----
  	  if (*decoded_options_count > i) {
  	    memmove (*decoded_options + i,
  		     *decoded_options + i + 1,
! 		     ((*decoded_options_count - i - 1)
  		      * sizeof (struct cl_decoded_option)));
  	  }
  	  --i;
*************** darwin_driver_init (unsigned int *decode
*** 215,221 ****
  
  	case OPT_mmacosx_version_min_:
  	  seen_version_min = true;
! 	  vers_string = xstrndup ((*decoded_options)[i].arg, 32);
  
  	default:
  	  break;
--- 324,352 ----
  
  	case OPT_mmacosx_version_min_:
  	  seen_version_min = true;
! 	  vers_string =
! 	    validate_macosx_version_min ((*decoded_options)[i].arg);
! 	  if (vers_string == NULL)
! 	    warning (0, "%qs is not valid for %<mmacosx-version-min%>\n",
! 		     (*decoded_options)[i].arg);
! 	  else if (vers_string == (*decoded_options)[i].arg)
! 	    vers_string = xstrndup ((*decoded_options)[i].arg, 32);
! 	  /* Now we've examined it, and verified/re-written, put it to
! 	     one side and append later.  */
! 	  if (*decoded_options_count > i) {
! 	    memmove (*decoded_options + i,
! 		     *decoded_options + i + 1,
! 		     ((*decoded_options_count - i - 1)
! 		      * sizeof (struct cl_decoded_option)));
! 	  }
! 	  --i;
! 	  --*decoded_options_count;
! 	  break;
! 
! 	case OPT__sysroot_:
! 	case OPT_isysroot:
! 	  seen_sysroot_p = true;
! 	  break;
  
  	default:
  	  break;
*************** darwin_driver_init (unsigned int *decode
*** 278,303 ****
  		       &(*decoded_options)[*decoded_options_count - 1]);
      }
  
!   /* We will need to know the OS X version we're trying to build for here
!      so that we can figure out the mechanism and source for the sysroot to
!      be used.  */
!   if (! seen_version_min && *decoded_options_count > 1)
      {
!       /* Not set by the User, try to figure it out.  */
!       vers_string = darwin_default_min_version ();
!       if (vers_string != NULL)
  	{
  	  ++*decoded_options_count;
  	  *decoded_options = XRESIZEVEC (struct cl_decoded_option,
  					 *decoded_options,
  					 *decoded_options_count);
! 	  generate_option (OPT_mmacosx_version_min_, vers_string, 1, CL_DRIVER,
! 			  &(*decoded_options)[*decoded_options_count - 1]);
  	}
      }
!   /* Create and push the major version for assemblers that need it.  */
    if (vers_string != NULL)
      {
        char *asm_major = NULL;
        const char *first_period = strchr(vers_string, '.');
        if (first_period != NULL)
--- 409,448 ----
  		       &(*decoded_options)[*decoded_options_count - 1]);
      }
  
!   if (! seen_sysroot_p)
      {
!       /* We will pick up an SDKROOT if we didn't specify a sysroot and treat
! 	 it as overriding any configure-time --with-sysroot.  */
!        const char *sdkroot = maybe_get_sysroot_from_sdkroot ();
!        if (sdkroot)
  	{
  	  ++*decoded_options_count;
  	  *decoded_options = XRESIZEVEC (struct cl_decoded_option,
  					 *decoded_options,
  					 *decoded_options_count);
! 	  generate_option (OPT__sysroot_, sdkroot, 1, CL_DRIVER,
! 			   &(*decoded_options)[*decoded_options_count - 1]);
  	}
      }
! 
!   /* We will need to know the OS X version we're trying to build for here
!      so that we can figure out the mechanism and source for the sysroot to
!      be used.  */
!   if (! seen_version_min && *decoded_options_count > 1)
!     /* Not set by the User, try to figure it out.  */
!     vers_string = darwin_default_min_version ();
! 
!   /* Create and push a cleaned up version, plus the major version for
!      assemblers and other cases that need it.  */
    if (vers_string != NULL)
      {
+        ++*decoded_options_count;
+        *decoded_options = XRESIZEVEC (struct cl_decoded_option,
+ 				      *decoded_options,
+ 				      *decoded_options_count);
+       generate_option (OPT_mmacosx_version_min_, vers_string, 1, CL_DRIVER,
+ 		       &(*decoded_options)[*decoded_options_count - 1]);
+ 
        char *asm_major = NULL;
        const char *first_period = strchr(vers_string, '.');
        if (first_period != NULL)
diff -Nrcpad gcc-7.4.0/gcc/config/darwin-protos.h gcc-7.5.0/gcc/config/darwin-protos.h
*** gcc-7.4.0/gcc/config/darwin-protos.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/darwin-protos.h	Tue Oct 29 20:13:06 2019
*************** extern void darwin_set_default_type_attr
*** 53,60 ****
  
  #endif /* TREE_CODE */
  
- extern void machopic_finish (FILE *);
- 
  extern int machopic_reloc_rw_mask (void);
  extern section *machopic_select_section (tree, int, unsigned HOST_WIDE_INT);
  
--- 53,58 ----
diff -Nrcpad gcc-7.4.0/gcc/config/darwin.c gcc-7.5.0/gcc/config/darwin.c
*** gcc-7.4.0/gcc/config/darwin.c	Mon Nov 26 19:46:24 2018
--- gcc-7.5.0/gcc/config/darwin.c	Fri Nov  1 20:52:21 2019
*************** along with GCC; see the file COPYING3.
*** 71,85 ****
     setting the second word in the .non_lazy_symbol_pointer data
     structure to symbol.  See indirect_data for the code that handles
     the extra indirection, and machopic_output_indirection and its use
!    of MACHO_SYMBOL_STATIC for the code that handles @code{static}
     symbol indirection.  */
  
- /* For darwin >= 9  (OSX 10.5) the linker is capable of making the necessary
-    branch islands and we no longer need to emit darwin stubs.
-    However, if we are generating code for earlier systems (or for use in the 
-    kernel) the stubs might still be required, and this will be set true.  */
- int darwin_emit_branch_islands = false;
- 
  typedef struct GTY(()) cdtor_record {
    rtx symbol;
    int priority;		/* [con/de]structor priority */
--- 71,79 ----
     setting the second word in the .non_lazy_symbol_pointer data
     structure to symbol.  See indirect_data for the code that handles
     the extra indirection, and machopic_output_indirection and its use
!    of MACHO_SYMBOL_FLAG_STATIC for the code that handles @code{static}
     symbol indirection.  */
  
  typedef struct GTY(()) cdtor_record {
    rtx symbol;
    int priority;		/* [con/de]structor priority */
*************** int generating_for_darwin_version ;
*** 101,106 ****
--- 95,104 ----
     for weak or single-definition items.  */
  static bool ld_uses_coal_sects = false;
  
+ /* Very old (ld_classic) linkers need a symbol to mark the start of
+    each FDE.  */
+ static bool ld_needs_eh_markers = false;
+ 
  /* Section names.  */
  section * darwin_sections[NUM_DARWIN_SECTIONS];
  
*************** name_needs_quotes (const char *name)
*** 246,252 ****
  int
  machopic_symbol_defined_p (rtx sym_ref)
  {
!   if (SYMBOL_REF_FLAGS (sym_ref) & MACHO_SYMBOL_FLAG_DEFINED)
      return true;
  
    /* If a symbol references local and is not an extern to this
--- 244,250 ----
  int
  machopic_symbol_defined_p (rtx sym_ref)
  {
!   if (MACHO_SYMBOL_DEFINED_P (sym_ref))
      return true;
  
    /* If a symbol references local and is not an extern to this
*************** machopic_symbol_defined_p (rtx sym_ref)
*** 255,261 ****
      {
        /* If the symbol references a variable and the variable is a
  	 common symbol, then this symbol is not defined.  */
!       if (SYMBOL_REF_FLAGS (sym_ref) & MACHO_SYMBOL_FLAG_VARIABLE)
  	{
  	  tree decl = SYMBOL_REF_DECL (sym_ref);
  	  if (!decl)
--- 253,259 ----
      {
        /* If the symbol references a variable and the variable is a
  	 common symbol, then this symbol is not defined.  */
!       if (MACHO_SYMBOL_VARIABLE_P (sym_ref))
  	{
  	  tree decl = SYMBOL_REF_DECL (sym_ref);
  	  if (!decl)
*************** typedef struct GTY ((for_user)) machopic
*** 451,456 ****
--- 449,461 ----
    bool stub_p;
    /* True iff this stub or pointer has been referenced.  */
    bool used;
+   /* True iff a non-lazy symbol pointer should be emitted into the .data
+      section, rather than the non-lazy symbol pointers section.  The cases
+      for which this occurred seem to have been unintentional, and later
+      toolchains emit all of the indirections to the 'usual' section.  We
+      are keeping this in case it is necessary to preserve compatibility with
+      older toolchains.  */
+   bool nlsp_in_data_section;
  } machopic_indirection;
  
  struct indirection_hasher : ggc_ptr_hash<machopic_indirection>
*************** indirection_hasher::equal (machopic_indi
*** 485,491 ****
  /* Return the name of the non-lazy pointer (if STUB_P is false) or
     stub (if STUB_B is true) corresponding to the given name.
  
!   If we have a situation like:
  
  global_weak_symbol:
    ....
--- 490,496 ----
  /* Return the name of the non-lazy pointer (if STUB_P is false) or
     stub (if STUB_B is true) corresponding to the given name.
  
!   PR71767 - If we have a situation like:
  
  global_weak_symbol:
    ....
*************** Lnon_weak_local:
*** 494,529 ****
  
    ld64 will be unable to split this into two atoms (because the "L" makes
    the second symbol 'invisible').  This means that legitimate direct accesses
!   to the second symbol will appear to be non-allowed direct accesses to an
!   atom of type weak, global which are not allowed.
! 
!   To avoid this, we make the indirections have a leading 'l' (lower-case L)
!   which has a special meaning: linker can see this and use it to determine
!   atoms, but it is not placed into the final symbol table.
  
!   The implementation here is somewhat heavy-handed in that it will also mark
!   indirections to the __IMPORT,__pointers section the same way which is
!   really unnecessary, since ld64 _can_ split those into atoms as they are
!   fixed size.  FIXME: determine if this is a penalty worth extra code to
!   fix.
  
  */
  
  const char *
  machopic_indirection_name (rtx sym_ref, bool stub_p)
  {
-   char *buffer;
    const char *name = XSTR (sym_ref, 0);
!   size_t namelen = strlen (name);
!   machopic_indirection *p;
!   bool needs_quotes;
!   const char *suffix;
!   char L_or_l = 'L';
!   const char *prefix = user_label_prefix;
!   const char *quote = "";
!   tree id;
! 
!   id = maybe_get_identifier (name);
    if (id)
      {
        tree id_orig = id;
--- 499,520 ----
  
    ld64 will be unable to split this into two atoms (because the "L" makes
    the second symbol 'invisible').  This means that legitimate direct accesses
!   to the second symbol will appear to be direct accesses to an atom of type
!   weak, global which are not allowed.
  
!   To avoid this, we make any data-section indirections have a leading 'l'
!   (lower-case L) which has a special meaning: linker can see this and use
!   it to determine  atoms, but it is not placed into the final symbol table.
  
+   Symbols in the non-lazy symbol pointers section (or stubs) do not have this
+   problem because ld64 already knows the size of each entry.
  */
  
  const char *
  machopic_indirection_name (rtx sym_ref, bool stub_p)
  {
    const char *name = XSTR (sym_ref, 0);
!   tree id = maybe_get_identifier (name);
    if (id)
      {
        tree id_orig = id;
*************** machopic_indirection_name (rtx sym_ref,
*** 531,573 ****
        while (IDENTIFIER_TRANSPARENT_ALIAS (id))
  	id = TREE_CHAIN (id);
        if (id != id_orig)
! 	{
! 	  name = IDENTIFIER_POINTER (id);
! 	  namelen = strlen (name);
! 	}
      }
  
    if (name[0] == '*')
      {
        prefix = "";
        ++name;
-       --namelen;
-     }
- 
-   needs_quotes = name_needs_quotes (name);
-   if (needs_quotes)
-     {
-       quote = "\"";
      }
  
!   if (stub_p)
!     suffix = STUB_SUFFIX;
!   else
!     {
!       suffix = NON_LAZY_POINTER_SUFFIX;
!       /* Let the linker see this.  */
!       L_or_l = 'l';
!     }
  
!   buffer = XALLOCAVEC (char, 2  /* strlen ("&L") or ("&l") */
! 		   + strlen (prefix)
! 		   + namelen
! 		   + strlen (suffix)
! 		   + 2 * strlen (quote)
! 		   + 1 /* '\0' */);
  
    /* Construct the name of the non-lazy pointer or stub.  */
!   sprintf (buffer, "&%s%c%s%s%s%s", quote, L_or_l, prefix, name, suffix, quote);
  
    if (!machopic_indirections)
      machopic_indirections = hash_table<indirection_hasher>::create_ggc (37);
--- 522,568 ----
        while (IDENTIFIER_TRANSPARENT_ALIAS (id))
  	id = TREE_CHAIN (id);
        if (id != id_orig)
! 	name = IDENTIFIER_POINTER (id);
      }
  
+   const char *prefix = user_label_prefix;
+   /* If we are emitting the label 'verbatim' then omit the U_L_P and count
+      the name without the leading '*'.  */
    if (name[0] == '*')
      {
        prefix = "";
        ++name;
      }
  
!   /* Here we are undoing a number of causes that placed some indirections
!      (apparently erroneously) into the .data section.  Specifically, some
!      symbols that are ABI mandated indirections and some hidden symbols
!      were being placed there - which cause difficulties with later
!      versions of ld64.  Iff (after these checks) some symbol still gets an
!      indirection in the data section, we want to adjust the indirection
!      name to be linker visible to deal with PR71767 (notes above).  */
!   bool nlsp_in_data_section =
!        ! MACHO_SYMBOL_MUST_INDIRECT_P (sym_ref)
!     && ! MACHO_SYMBOL_HIDDEN_VIS_P (sym_ref)
!     && (machopic_symbol_defined_p (sym_ref) || SYMBOL_REF_LOCAL_P (sym_ref))
!     && ! indirect_data (sym_ref);
  
!   const char *suffix = stub_p ? STUB_SUFFIX : NON_LAZY_POINTER_SUFFIX;
!   /* If the indirection is in the data section, let the linker see it.  */
!   char L_or_l = (!stub_p && nlsp_in_data_section) ? 'l' : 'L';
!   /* We have mangled symbols with spaces and punctuation which typically
!      need surrounding in quotes for the assembler to consume them.  */
!   const char *quote = name_needs_quotes (name) ? "\"" : "";
!   char *buffer = XALLOCAVEC (char, 2  /* strlen ("&L") or ("&l") */
! 			     + strlen (prefix)
! 			     + strlen (name)
! 			     + strlen (suffix)
! 			     + 2 * strlen (quote)
! 			     + 1 /* '\0' */);
  
    /* Construct the name of the non-lazy pointer or stub.  */
!   sprintf (buffer, "&%s%c%s%s%s%s", quote, L_or_l, prefix, name,
! 	   suffix, quote);
  
    if (!machopic_indirections)
      machopic_indirections = hash_table<indirection_hasher>::create_ggc (37);
*************** machopic_indirection_name (rtx sym_ref,
*** 576,585 ****
      = machopic_indirections->find_slot_with_hash (buffer,
  						  htab_hash_string (buffer),
  						  INSERT);
    if (*slot)
!     {
!       p = *slot;
!     }
    else
      {
        p = ggc_alloc<machopic_indirection> ();
--- 571,579 ----
      = machopic_indirections->find_slot_with_hash (buffer,
  						  htab_hash_string (buffer),
  						  INSERT);
+   machopic_indirection *p;
    if (*slot)
!     p = *slot;
    else
      {
        p = ggc_alloc<machopic_indirection> ();
*************** machopic_indirection_name (rtx sym_ref,
*** 587,592 ****
--- 581,587 ----
        p->ptr_name = xstrdup (buffer);
        p->stub_p = stub_p;
        p->used = false;
+       p->nlsp_in_data_section = nlsp_in_data_section;
        *slot = p;
      }
  
*************** machopic_indirect_data_reference (rtx or
*** 662,668 ****
  	   /* some other cpu -- writeme!  */
  	   gcc_unreachable ();
  	}
!       else if (defined)
  	{
  	  rtx offset = NULL;
  	  if (DARWIN_PPC || HAVE_lo_sum)
--- 657,663 ----
  	   /* some other cpu -- writeme!  */
  	   gcc_unreachable ();
  	}
!       else if (defined && ! MACHO_SYMBOL_MUST_INDIRECT_P (orig))
  	{
  	  rtx offset = NULL;
  	  if (DARWIN_PPC || HAVE_lo_sum)
*************** machopic_indirect_data_reference (rtx or
*** 704,709 ****
--- 699,705 ----
  		  machopic_indirection_name (orig, /*stub_p=*/false)));
  
        SYMBOL_REF_DATA (ptr_ref) = SYMBOL_REF_DATA (orig);
+       SYMBOL_REF_FLAGS (ptr_ref) |= MACHO_SYMBOL_FLAG_INDIRECTION;
  
        ptr_ref = gen_const_mem (Pmode, ptr_ref);
        machopic_define_symbol (ptr_ref);
*************** machopic_indirect_data_reference (rtx or
*** 786,792 ****
  rtx
  machopic_indirect_call_target (rtx target)
  {
!   if (! darwin_emit_branch_islands)
      return target;
  
    if (GET_CODE (target) != MEM)
--- 782,788 ----
  rtx
  machopic_indirect_call_target (rtx target)
  {
!   if (! darwin_symbol_stubs)
      return target;
  
    if (GET_CODE (target) != MEM)
*************** machopic_indirect_call_target (rtx targe
*** 794,801 ****
  
    if (MACHOPIC_INDIRECT
        && GET_CODE (XEXP (target, 0)) == SYMBOL_REF
!       && !(SYMBOL_REF_FLAGS (XEXP (target, 0))
! 	   & MACHO_SYMBOL_FLAG_DEFINED))
      {
        rtx sym_ref = XEXP (target, 0);
        const char *stub_name = machopic_indirection_name (sym_ref,
--- 790,796 ----
  
    if (MACHOPIC_INDIRECT
        && GET_CODE (XEXP (target, 0)) == SYMBOL_REF
!       && ! MACHO_SYMBOL_DEFINED_P (XEXP (target, 0)))
      {
        rtx sym_ref = XEXP (target, 0);
        const char *stub_name = machopic_indirection_name (sym_ref,
*************** machopic_indirect_call_target (rtx targe
*** 804,809 ****
--- 799,805 ----
  
        XEXP (target, 0) = gen_rtx_SYMBOL_REF (mode, stub_name);
        SYMBOL_REF_DATA (XEXP (target, 0)) = SYMBOL_REF_DATA (sym_ref);
+       SYMBOL_REF_FLAGS (XEXP (target, 0)) |= MACHO_SYMBOL_FLAG_INDIRECTION;
        MEM_READONLY_P (target) = 1;
        MEM_NOTRAP_P (target) = 1;
      }
*************** machopic_legitimize_pic_address (rtx ori
*** 841,847 ****
  	{
  	  if (reg == 0)
  	    {
! 	      gcc_assert (!reload_in_progress);
  	      reg = gen_reg_rtx (Pmode);
  	    }
  
--- 837,843 ----
  	{
  	  if (reg == 0)
  	    {
! 	      gcc_assert (!lra_in_progress);
  	      reg = gen_reg_rtx (Pmode);
  	    }
  
*************** machopic_legitimize_pic_address (rtx ori
*** 925,931 ****
  	      emit_use (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM));
  #endif
  
! 	      if (reload_in_progress)
  		df_set_regs_ever_live (REGNO (pic), true);
  	      pic_ref = gen_rtx_PLUS (Pmode, pic,
  				      machopic_gen_offset (XEXP (orig, 0)));
--- 921,927 ----
  	      emit_use (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM));
  #endif
  
! 	      if (lra_in_progress)
  		df_set_regs_ever_live (REGNO (pic), true);
  	      pic_ref = gen_rtx_PLUS (Pmode, pic,
  				      machopic_gen_offset (XEXP (orig, 0)));
*************** machopic_legitimize_pic_address (rtx ori
*** 949,955 ****
  
  	      if (reg == 0)
  		{
! 		  gcc_assert (!reload_in_progress);
  		  reg = gen_reg_rtx (Pmode);
  		}
  
--- 945,951 ----
  
  	      if (reg == 0)
  		{
! 		  gcc_assert (!lra_in_progress);
  		  reg = gen_reg_rtx (Pmode);
  		}
  
*************** machopic_legitimize_pic_address (rtx ori
*** 995,1001 ****
  #if 0
  		  emit_use (pic_offset_table_rtx);
  #endif
! 		  if (reload_in_progress)
  		    df_set_regs_ever_live (REGNO (pic), true);
  		  pic_ref = gen_rtx_PLUS (Pmode,
  					  pic,
--- 991,997 ----
  #if 0
  		  emit_use (pic_offset_table_rtx);
  #endif
! 		  if (lra_in_progress)
  		    df_set_regs_ever_live (REGNO (pic), true);
  		  pic_ref = gen_rtx_PLUS (Pmode,
  					  pic,
*************** machopic_legitimize_pic_address (rtx ori
*** 1072,1200 ****
    return pic_ref;
  }
  
! /* Output the stub or non-lazy pointer in *SLOT, if it has been used.
!    DATA is the FILE* for assembly output.  Called from
!    htab_traverse.  */
  
  int
! machopic_output_indirection (machopic_indirection **slot, FILE *asm_out_file)
  {
    machopic_indirection *p = *slot;
-   rtx symbol;
-   const char *sym_name;
-   const char *ptr_name;
  
!   if (!p->used)
      return 1;
  
!   symbol = p->symbol;
!   sym_name = XSTR (symbol, 0);
!   ptr_name = p->ptr_name;
  
!   if (p->stub_p)
!     {
!       char *sym;
!       char *stub;
!       tree id;
  
!       id = maybe_get_identifier (sym_name);
!       if (id)
! 	{
! 	  tree id_orig = id;
  
! 	  while (IDENTIFIER_TRANSPARENT_ALIAS (id))
! 	    id = TREE_CHAIN (id);
! 	  if (id != id_orig)
! 	    sym_name = IDENTIFIER_POINTER (id);
! 	}
  
!       sym = XALLOCAVEC (char, strlen (sym_name) + 2);
!       if (sym_name[0] == '*' || sym_name[0] == '&')
! 	strcpy (sym, sym_name + 1);
!       else if (sym_name[0] == '-' || sym_name[0] == '+')
! 	strcpy (sym, sym_name);
!       else
! 	sprintf (sym, "%s%s", user_label_prefix, sym_name);
  
!       stub = XALLOCAVEC (char, strlen (ptr_name) + 2);
!       if (ptr_name[0] == '*' || ptr_name[0] == '&')
! 	strcpy (stub, ptr_name + 1);
!       else
! 	sprintf (stub, "%s%s", user_label_prefix, ptr_name);
  
!       machopic_output_stub (asm_out_file, sym, stub);
!     }
!   else if (! indirect_data (symbol)
! 	   && (machopic_symbol_defined_p (symbol)
! 	       || SYMBOL_REF_LOCAL_P (symbol)))
      {
!       switch_to_section (data_section);
!       assemble_align (GET_MODE_ALIGNMENT (Pmode));
!       assemble_label (asm_out_file, ptr_name);
!       assemble_integer (gen_rtx_SYMBOL_REF (Pmode, sym_name),
! 			GET_MODE_SIZE (Pmode),
! 			GET_MODE_ALIGNMENT (Pmode), 1);
      }
    else
!     {
!       rtx init = const0_rtx;
  
!       switch_to_section (darwin_sections[machopic_nl_symbol_ptr_section]);
  
!       /* Mach-O symbols are passed around in code through indirect
! 	 references and the original symbol_ref hasn't passed through
! 	 the generic handling and reference-catching in
! 	 output_operand, so we need to manually mark weak references
! 	 as such.  */
!       if (SYMBOL_REF_WEAK (symbol))
! 	{
! 	  tree decl = SYMBOL_REF_DECL (symbol);
! 	  gcc_assert (DECL_P (decl));
  
! 	  if (decl != NULL_TREE
! 	      && DECL_EXTERNAL (decl) && TREE_PUBLIC (decl)
! 	      /* Handle only actual external-only definitions, not
! 		 e.g. extern inline code or variables for which
! 		 storage has been allocated.  */
! 	      && !TREE_STATIC (decl))
! 	    {
! 	      fputs ("\t.weak_reference ", asm_out_file);
! 	      assemble_name (asm_out_file, sym_name);
! 	      fputc ('\n', asm_out_file);
! 	    }
! 	}
  
!       assemble_name (asm_out_file, ptr_name);
!       fprintf (asm_out_file, ":\n");
  
!       fprintf (asm_out_file, "\t.indirect_symbol ");
!       assemble_name (asm_out_file, sym_name);
!       fprintf (asm_out_file, "\n");
  
!       /* Variables that are marked with MACHO_SYMBOL_STATIC need to
! 	 have their symbol name instead of 0 in the second entry of
! 	 the non-lazy symbol pointer data structure when they are
! 	 defined.  This allows the runtime to rebind newer instances
! 	 of the translation unit with the original instance of the
! 	 symbol.  */
  
!       if ((SYMBOL_REF_FLAGS (symbol) & MACHO_SYMBOL_STATIC)
! 	  && machopic_symbol_defined_p (symbol))
! 	init = gen_rtx_SYMBOL_REF (Pmode, sym_name);
  
!       assemble_integer (init, GET_MODE_SIZE (Pmode),
! 			GET_MODE_ALIGNMENT (Pmode), 1);
      }
  
    return 1;
  }
  
! void
  machopic_finish (FILE *asm_out_file)
  {
!   if (machopic_indirections)
!     machopic_indirections
!       ->traverse_noresize<FILE *, machopic_output_indirection> (asm_out_file);
  }
  
  int
--- 1068,1227 ----
    return pic_ref;
  }
  
! /* Callbacks to output the stub or non-lazy pointers.
!    Each works on the item in *SLOT,if it has been used.
!    DATA is the FILE* for assembly output.
!    Called from htab_traverses, invoked from machopic_finish().  */
  
  int
! machopic_output_data_section_indirection (machopic_indirection **slot,
! 					  FILE *asm_out_file)
  {
    machopic_indirection *p = *slot;
  
!   if (!p->used || !p->nlsp_in_data_section)
      return 1;
  
!   rtx symbol = p->symbol;
!   /* The original symbol name.  */
!   const char *sym_name = XSTR (symbol, 0);
!   /* The name of the indirection symbol.  */
!   const char *ptr_name = p->ptr_name;
  
!   switch_to_section (data_section);
!   assemble_align (GET_MODE_ALIGNMENT (Pmode));
!   assemble_label (asm_out_file, ptr_name);
!   assemble_integer (gen_rtx_SYMBOL_REF (Pmode, sym_name),
! 		    GET_MODE_SIZE (Pmode),
! 		    GET_MODE_ALIGNMENT (Pmode), 1);
  
!   return 1;
! }
  
! int
! machopic_output_stub_indirection (machopic_indirection **slot,
! 				  FILE *asm_out_file)
! {
!   machopic_indirection *p = *slot;
  
!   if (!p->used || !p->stub_p)
!     return 1;
  
!   rtx symbol = p->symbol;
!   /* The original symbol name.  */
!   const char *sym_name = XSTR (symbol, 0);
!   /* The name of the stub symbol.  */
!   const char *ptr_name = p->ptr_name;
  
!   tree id = maybe_get_identifier (sym_name);
!   if (id)
      {
!       tree id_orig = id;
! 
!       while (IDENTIFIER_TRANSPARENT_ALIAS (id))
! 	id = TREE_CHAIN (id);
!       if (id != id_orig)
! 	sym_name = IDENTIFIER_POINTER (id);
      }
+ 
+   char *sym = XALLOCAVEC (char, strlen (sym_name) + 2);
+   if (sym_name[0] == '*' || sym_name[0] == '&')
+     strcpy (sym, sym_name + 1);
+   else if (sym_name[0] == '-' || sym_name[0] == '+')
+     strcpy (sym, sym_name);
    else
!     sprintf (sym, "%s%s", user_label_prefix, sym_name);
  
!   char *stub = XALLOCAVEC (char, strlen (ptr_name) + 2);
!   if (ptr_name[0] == '*' || ptr_name[0] == '&')
!     strcpy (stub, ptr_name + 1);
!   else
!     sprintf (stub, "%s%s", user_label_prefix, ptr_name);
  
!   machopic_output_stub (asm_out_file, sym, stub);
  
!   return 1;
! }
  
! int
! machopic_output_indirection (machopic_indirection **slot, FILE *asm_out_file)
! {
!   machopic_indirection *p = *slot;
  
!   if (!p->used || p->stub_p || p->nlsp_in_data_section)
!     return 1;
  
!   rtx symbol = p->symbol;
!   /* The original symbol name.  */
!   const char *sym_name = XSTR (symbol, 0);
!   /* The nonlazy-stub symbol name.  */
!   const char *ptr_name = p->ptr_name;
  
!   switch_to_section (darwin_sections[machopic_nl_symbol_ptr_section]);
  
!   /* Mach-O symbols are passed around in code through indirect references and
!      the original symbol_ref hasn't passed through the generic handling and
!      reference-catching in output_operand, so we need to manually mark weak
!      references as such.  */
! 
!   if (SYMBOL_REF_WEAK (symbol))
!     {
!       tree decl = SYMBOL_REF_DECL (symbol);
!       gcc_checking_assert (DECL_P (decl));
! 
!       if (decl != NULL_TREE
! 	  && DECL_EXTERNAL (decl) && TREE_PUBLIC (decl)
! 	  /* Handle only actual external-only definitions, not
! 	     e.g. extern inline code or variables for which
! 	     storage has been allocated.  */
! 	  && !TREE_STATIC (decl))
! 	{
! 	  fputs ("\t.weak_reference ", asm_out_file);
! 	  assemble_name (asm_out_file, sym_name);
! 	  fputc ('\n', asm_out_file);
! 	}
      }
  
+   assemble_name (asm_out_file, ptr_name);
+   fprintf (asm_out_file, ":\n");
+ 
+   fprintf (asm_out_file, "\t.indirect_symbol ");
+   assemble_name (asm_out_file, sym_name);
+   fprintf (asm_out_file, "\n");
+ 
+   /* Variables that are marked with MACHO_SYMBOL_FLAG_STATIC need to
+      have their symbol name instead of 0 in the second entry of
+      the non-lazy symbol pointer data structure when they are
+      defined.  This allows the runtime to rebind newer instances
+      of the translation unit with the original instance of the
+      symbol.  */
+ 
+   rtx init = const0_rtx;
+   if (MACHO_SYMBOL_STATIC_P (symbol) && machopic_symbol_defined_p (symbol))
+     init = gen_rtx_SYMBOL_REF (Pmode, sym_name);
+ 
+   assemble_integer (init, GET_MODE_SIZE (Pmode),
+ 		    GET_MODE_ALIGNMENT (Pmode), 1);
+ 
    return 1;
  }
  
! static void
  machopic_finish (FILE *asm_out_file)
  {
!   if (!machopic_indirections)
!     return;
! 
!   /* First output an symbol indirections that have been placed into .data
!      (we don't expect these now).  */
!   machopic_indirections->traverse_noresize
!     <FILE *, machopic_output_data_section_indirection> (asm_out_file);
! 
!   machopic_indirections->traverse_noresize
!     <FILE *, machopic_output_stub_indirection> (asm_out_file);
! 
!   machopic_indirections->traverse_noresize
!     <FILE *, machopic_output_indirection> (asm_out_file);
  }
  
  int
*************** machopic_operand_p (rtx op)
*** 1209,1233 ****
  	    && XINT (XEXP (op, 0), 1) == UNSPEC_MACHOPIC_OFFSET);
  }
  
! /* This function records whether a given name corresponds to a defined
!    or undefined function or variable, for machopic_classify_ident to
!    use later.  */
  
  void
! darwin_encode_section_info (tree decl, rtx rtl, int first ATTRIBUTE_UNUSED)
  {
!   rtx sym_ref;
  
!   /* Do the standard encoding things first.  */
    default_encode_section_info (decl, rtl, first);
  
!   if (TREE_CODE (decl) != FUNCTION_DECL && TREE_CODE (decl) != VAR_DECL)
      return;
  
!   sym_ref = XEXP (rtl, 0);
!   if (TREE_CODE (decl) == VAR_DECL)
      SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_VARIABLE;
  
    if (!DECL_EXTERNAL (decl)
        && (!TREE_PUBLIC (decl) || !DECL_WEAK (decl))
        && ! lookup_attribute ("weakref", DECL_ATTRIBUTES (decl))
--- 1236,1286 ----
  	    && XINT (XEXP (op, 0), 1) == UNSPEC_MACHOPIC_OFFSET);
  }
  
! /* This function:
!    computes and caches a series of flags that characterise the symbol's
!    properties that affect Mach-O code gen (including accidental cases
!    from older toolchains).
! 
!    TODO:
!    Here we also need to do enough analysis to determine if a symbol's
!    name needs to be made linker-visible.  This is more tricky - since
!    it depends on whether we've previously seen a global weak definition
!    in the same section.
!    */
  
  void
! darwin_encode_section_info (tree decl, rtx rtl, int first)
  {
!   /* Careful not to prod global register variables.  */
!   if (!MEM_P (rtl))
!     return;
  
!   /* Do the standard encoding things first; this sets:
!      SYMBOL_FLAG_FUNCTION,
!      SYMBOL_FLAG_LOCAL, (binds_local_p)
!      TLS_MODEL, SYMBOL_FLAG_SMALL
!      SYMBOL_FLAG_EXTERNAL.  */
    default_encode_section_info (decl, rtl, first);
  
!   if (! VAR_OR_FUNCTION_DECL_P (decl))
      return;
  
!   rtx sym_ref = XEXP (rtl, 0);
!   if (VAR_P (decl))
      SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_VARIABLE;
  
+   /* Only really common if there's no initialiser.  */
+   bool really_common_p = (DECL_COMMON (decl)
+ 			  && (DECL_INITIAL (decl) == NULL
+ 			      || (!in_lto_p
+ 				  && DECL_INITIAL (decl) == error_mark_node)));
+ 
+   /* For Darwin, if we have specified visibility and it's not the default
+      that's counted 'hidden'.  */
+   if (DECL_VISIBILITY_SPECIFIED (decl)
+       && DECL_VISIBILITY (decl) != VISIBILITY_DEFAULT)
+     SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_HIDDEN_VIS;
+ 
    if (!DECL_EXTERNAL (decl)
        && (!TREE_PUBLIC (decl) || !DECL_WEAK (decl))
        && ! lookup_attribute ("weakref", DECL_ATTRIBUTES (decl))
*************** darwin_encode_section_info (tree decl, r
*** 1238,1244 ****
      SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_DEFINED;
  
    if (! TREE_PUBLIC (decl))
!     SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_STATIC;
  }
  
  void
--- 1291,1303 ----
      SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_DEFINED;
  
    if (! TREE_PUBLIC (decl))
!     SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_STATIC;
! 
!   /* Short cut check for Darwin 'must indirect' rules.  */
!   if (really_common_p
!       || (DECL_WEAK (decl) && ! MACHO_SYMBOL_HIDDEN_VIS_P (sym_ref))
!       || lookup_attribute ("weakref", DECL_ATTRIBUTES (decl)))
!      SYMBOL_REF_FLAGS (sym_ref) |= MACHO_SYMBOL_FLAG_MUST_INDIRECT;
  }
  
  void
*************** darwin_mark_decl_preserved (const char *
*** 1255,1266 ****
  }
  
  static section *
! darwin_rodata_section (int use_coal, bool zsize)
  {
    return (use_coal
  	  ? darwin_sections[const_coal_section]
  	  : (zsize ? darwin_sections[zobj_const_section]
! 		   : darwin_sections[const_section]));
  }
  
  static section *
--- 1314,1326 ----
  }
  
  static section *
! darwin_rodata_section (int use_coal, bool zsize, int reloc)
  {
    return (use_coal
  	  ? darwin_sections[const_coal_section]
  	  : (zsize ? darwin_sections[zobj_const_section]
! 		   : reloc ? darwin_sections[const_data_section]
! 			   : darwin_sections[const_section]));
  }
  
  static section *
*************** machopic_select_section (tree decl,
*** 1553,1559 ****
  
      case SECCAT_RODATA:
      case SECCAT_SRODATA:
!       base_section = darwin_rodata_section (use_coal, zsize);
        break;
  
      case SECCAT_RODATA_MERGE_STR:
--- 1613,1619 ----
  
      case SECCAT_RODATA:
      case SECCAT_SRODATA:
!       base_section = darwin_rodata_section (use_coal, zsize, reloc);
        break;
  
      case SECCAT_RODATA_MERGE_STR:
*************** darwin_emit_unwind_label (FILE *file, tr
*** 2082,2092 ****
    static int invok_count = 0;
    static tree last_fun_decl = NULL_TREE;
    
!   /* We use the linker to emit the .eh labels for Darwin 9 and above.  */
!   if (! for_eh || generating_for_darwin_version >= 9)
      return;
  
!   /* FIXME: This only works when the eh for all sections of a function is 
       emitted at the same time.  If that changes, we would need to use a lookup
       table of some form to determine what to do.  Also, we should emit the
       unadorned label for the partition containing the public label for a
--- 2142,2152 ----
    static int invok_count = 0;
    static tree last_fun_decl = NULL_TREE;
    
!   /* Modern linkers can produce distinct FDEs without compiler support.  */
!   if (! for_eh || ! ld_needs_eh_markers)
      return;
  
!   /* FIXME: This only works when the eh for all sections of a function are
       emitted at the same time.  If that changes, we would need to use a lookup
       table of some form to determine what to do.  Also, we should emit the
       unadorned label for the partition containing the public label for a
*************** darwin_file_end (void)
*** 2908,2919 ****
        if (flag_objc_abi >= 2)
  	{
  	  flags = 16;
! 	  output_section_asm_op
! 	    (darwin_sections[objc2_image_info_section]->unnamed.data);
  	}
        else
! 	output_section_asm_op
! 	  (darwin_sections[objc_image_info_section]->unnamed.data);
  
        ASM_OUTPUT_ALIGN (asm_out_file, 2);
        fputs ("L_OBJC_ImageInfo:\n", asm_out_file);
--- 2968,2977 ----
        if (flag_objc_abi >= 2)
  	{
  	  flags = 16;
!           switch_to_section (darwin_sections[objc2_image_info_section]);
  	}
        else
! 	switch_to_section (darwin_sections[objc_image_info_section]);
  
        ASM_OUTPUT_ALIGN (asm_out_file, 2);
        fputs ("L_OBJC_ImageInfo:\n", asm_out_file);
*************** darwin_override_options (void)
*** 3119,3135 ****
  				: (generating_for_darwin_version >= 9) ? 1
  								       : 0);
  
-   /* Objective-C family ABI 2 is only valid for next/m64 at present.  */
    if (global_options_set.x_flag_objc_abi && flag_next_runtime)
      {
!       if (TARGET_64BIT && global_options.x_flag_objc_abi < 2)
! 	error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 must be"
! 				    " used for %<-m64%> targets with"
! 				    " %<-fnext-runtime%>");
!       if (!TARGET_64BIT && global_options.x_flag_objc_abi >= 2)
! 	error_at (UNKNOWN_LOCATION, "%<-fobjc-abi-version%> >= 2 is not"
! 				    " supported on %<-m32%> targets with"
! 				    " %<-fnext-runtime%>");
      }
  
    /* Don't emit DWARF3/4 unless specifically selected.  This is a 
--- 3177,3195 ----
  				: (generating_for_darwin_version >= 9) ? 1
  								       : 0);
  
    if (global_options_set.x_flag_objc_abi && flag_next_runtime)
      {
!       if (TARGET_64BIT && global_options.x_flag_objc_abi != 2)
! 	/* The Objective-C family ABI 2 is the only valid version NeXT/m64.  */
! 	error_at (UNKNOWN_LOCATION,
! 		  "%<-fobjc-abi-version%> 2 must be used for 64 bit targets"
! 		  " with %<-fnext-runtime%>");
!       else if (!TARGET_64BIT && global_options.x_flag_objc_abi >= 2)
! 	/* ABI versions 0 and 1 are the only valid versions NeXT/m32.  */
! 	error_at (UNKNOWN_LOCATION,
! 		  "%<-fobjc-abi-version%> %d is not supported for 32 bit"
! 		  " targets with %<-fnext-runtime%>",
! 		  global_options.x_flag_objc_abi);
      }
  
    /* Don't emit DWARF3/4 unless specifically selected.  This is a 
*************** darwin_override_options (void)
*** 3197,3204 ****
        /* so no tables either.. */
        flag_unwind_tables = 0;
        flag_asynchronous_unwind_tables = 0;
-       /* We still need to emit branch islands for kernel context.  */
-       darwin_emit_branch_islands = true;
      }
  
    if (flag_var_tracking_uninit == 0
--- 3257,3262 ----
*************** darwin_override_options (void)
*** 3208,3213 ****
--- 3266,3273 ----
        && write_symbols == DWARF2_DEBUG)
      flag_var_tracking_uninit = flag_var_tracking;
  
+   /* Final check on PCI options; for Darwin these are not dependent on the PIE
+      ones, although PIE does require PIC to support it.  */
    if (MACHO_DYNAMIC_NO_PIC_P)
      {
        if (flag_pic)
*************** darwin_override_options (void)
*** 3216,3232 ****
  		 " %<-fpie%> or %<-fPIE%>");
        flag_pic = 0;
      }
!   else if (flag_pic == 1)
      {
!       /* Darwin's -fpic is -fPIC.  */
        flag_pic = 2;
      }
  
!   /* It is assumed that branch island stubs are needed for earlier systems.  */
!   if (generating_for_darwin_version < 9)
!     darwin_emit_branch_islands = true;
!   else
!     emit_aligned_common = true; /* Later systems can support aligned common.  */
  
    /* The c_dialect...() macros are not available to us here.  */
    darwin_running_cxx = (strstr (lang_hooks.name, "C++") != 0);
--- 3276,3327 ----
  		 " %<-fpie%> or %<-fPIE%>");
        flag_pic = 0;
      }
!   else if (flag_pic == 1
! 	   || (flag_pic == 0 && !(flag_mkernel || flag_apple_kext)))
      {
!       /* Darwin's -fpic is -fPIC.
! 	 We only support "static" code in the kernel and kernel exts.  */
        flag_pic = 2;
      }
  
!   /* Linkers >= ld64-62.1 (at least) are capable of making the necessary PIC
!      indirections and we no longer need to emit pic symbol stubs.
!      However, if we are generating code for earlier ones (or for use in the
!      kernel) the stubs might still be required, and this will be set true.
!      If the user sets it on or off - then that takes precedence.
! 
!      Linkers that don't need stubs, don't need the EH symbol markers either.
!   */
! 
!   if (!global_options_set.x_darwin_symbol_stubs)
!     {
!       if (darwin_target_linker)
! 	{
! 	  if (strverscmp (darwin_target_linker, MIN_LD64_OMIT_STUBS) < 0)
! 	    {
! 	      darwin_symbol_stubs = true;
! 	      ld_needs_eh_markers = true;
! 	    }
! 	}
!       else if (generating_for_darwin_version < 9)
! 	{
! 	  /* If we don't know the linker version and we're targeting an old
! 	     system, we know no better than to assume the use of an earlier
! 	     linker.  */
! 	  darwin_symbol_stubs = true;
! 	  ld_needs_eh_markers = true;
! 	}
!     }
!   else if (DARWIN_X86 && darwin_symbol_stubs && TARGET_64BIT)
!     {
!       inform (input_location,
! 	      "%<-msymbol-stubs%> is not required for 64b code (ignored)");
!       darwin_symbol_stubs = false;
!     }
! 
!   if (generating_for_darwin_version >= 9)
!     /* Later systems can support aligned common.  */
!     emit_aligned_common = true;
  
    /* The c_dialect...() macros are not available to us here.  */
    darwin_running_cxx = (strstr (lang_hooks.name, "C++") != 0);
diff -Nrcpad gcc-7.4.0/gcc/config/darwin.h gcc-7.5.0/gcc/config/darwin.h
*** gcc-7.4.0/gcc/config/darwin.h	Mon Nov 26 19:46:24 2018
--- gcc-7.5.0/gcc/config/darwin.h	Fri Nov  1 20:44:32 2019
*************** extern GTY(()) int darwin_ms_struct;
*** 127,132 ****
--- 127,150 ----
    "%{fapple-kext|mkernel:-static}",				\
    "%{shared:-Zdynamiclib} %<shared"
  
+ #if LD64_HAS_EXPORT_DYNAMIC
+ #define DARWIN_RDYNAMIC "%{rdynamic:-export_dynamic}"
+ #else
+ #define DARWIN_RDYNAMIC "%{rdynamic:%nrdynamic is not supported}"
+ #endif
+ 
+ /* FIXME: we should check that the linker supports the -pie and -no_pie.
+    options.  */
+ #define DARWIN_PIE_SPEC \
+ "%{pie|fpie|fPIE:\
+    %{mdynamic-no-pic: \
+      %n'-mdynamic-no-pic' overrides '-pie', '-fpie' or '-fPIE'; \
+      :%:version-compare(>= 10.5 mmacosx-version-min= -pie) }} "
+ 
+ #define DARWIN_NOPIE_SPEC \
+ "%{no-pie|fno-pie|fno-PIE: \
+    %:version-compare(>= 10.7 mmacosx-version-min= -no_pie) }"
+ 
  #define DARWIN_CC1_SPEC							\
    "%{findirect-virtual-calls: -fapple-kext} %<findirect-virtual-calls " \
    "%{fterminated-vtables: -fapple-kext} %<fterminated-vtables "		\
*************** extern GTY(()) int darwin_ms_struct;
*** 157,182 ****
  #define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:-D__DYNAMIC__}" \
  	" %{pthread:-D_REENTRANT}"
  
! /* This is mostly a clone of the standard LINK_COMMAND_SPEC, plus
!    precomp, libtool, and fat build additions.
  
     In general, random Darwin linker flags should go into LINK_SPEC
     instead of LINK_COMMAND_SPEC.  The command spec is better for
     specifying the handling of options understood by generic Unix
     linkers, and for positional arguments like libraries.  */
  
- #if LD64_HAS_EXPORT_DYNAMIC
- #define DARWIN_EXPORT_DYNAMIC " %{rdynamic:-export_dynamic}"
- #else
- #define DARWIN_EXPORT_DYNAMIC " %{rdynamic: %nrdynamic is not supported}"
- #endif
- 
  #define LINK_COMMAND_SPEC_A \
     "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
      %(linker)" \
      LINK_PLUGIN_SPEC \
      "%{flto*:%<fcompare-debug*} \
!     %{flto*} \
      %l " LINK_COMPRESS_DEBUG_SPEC \
     "%X %{s} %{t} %{Z} %{u*} \
      %{e*} %{r} \
--- 175,211 ----
  #define CPP_SPEC "%{static:%{!dynamic:-D__STATIC__}}%{!static:-D__DYNAMIC__}" \
  	" %{pthread:-D_REENTRANT}"
  
! /* This is a fix for PR41260 by passing -no_compact_unwind on darwin10 and
!    later until the assembler, linker and libunwind are able to deal with the
!    output from GCC.
! 
!    FIXME: we should check that the linker supports the option.
! */
! 
! #define DARWIN_NOCOMPACT_UNWIND \
! " %:version-compare(>= 10.6 mmacosx-version-min= -no_compact_unwind) "
! 
! /* In Darwin linker specs we can put -lcrt0.o and ld will search the library
!    path for crt0.o or -lcrtx.a and it will search for for libcrtx.a.  As for
!    other ports, we can also put xxx.{o,a}%s and get the appropriate complete
!    startfile absolute directory.  This latter point is important when we want
!    to override ld's rule of .dylib being found ahead of .a and the user wants
!    the convenience library to be linked.  */
! 
! /* The LINK_COMMAND spec is mostly a clone of the standard LINK_COMMAND_SPEC,
!    plus precomp, libtool, and fat build additions.
  
     In general, random Darwin linker flags should go into LINK_SPEC
     instead of LINK_COMMAND_SPEC.  The command spec is better for
     specifying the handling of options understood by generic Unix
     linkers, and for positional arguments like libraries.  */
  
  #define LINK_COMMAND_SPEC_A \
     "%{!fdump=*:%{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\
      %(linker)" \
      LINK_PLUGIN_SPEC \
      "%{flto*:%<fcompare-debug*} \
!      %{flto} %{fno-lto} %{flto=*} \
      %l " LINK_COMPRESS_DEBUG_SPEC \
     "%X %{s} %{t} %{Z} %{u*} \
      %{e*} %{r} \
*************** extern GTY(()) int darwin_ms_struct;
*** 192,201 ****
        %{%:sanitize(address): -lasan } \
        %{%:sanitize(undefined): -lubsan } \
        %(link_ssp) \
-       " DARWIN_EXPORT_DYNAMIC " %<rdynamic \
        %(link_gcc_c_sequence) \
      }}\
!     %{!nostdlib:%{!nostartfiles:%E}} %{T*} %{F*} }}}}}}}"
  
  #define DSYMUTIL "\ndsymutil"
  
--- 221,234 ----
        %{%:sanitize(address): -lasan } \
        %{%:sanitize(undefined): -lubsan } \
        %(link_ssp) \
        %(link_gcc_c_sequence) \
      }}\
!     %{!nostdlib:%{!r:%{!nostartfiles:%E}}} %{T*} %{F*} "\
!     DARWIN_PIE_SPEC \
!     DARWIN_NOPIE_SPEC \
!     DARWIN_RDYNAMIC \
!     DARWIN_NOCOMPACT_UNWIND \
!     "}}}}}}} %<pie %<no-pie %<rdynamic "
  
  #define DSYMUTIL "\ndsymutil"
  
*************** extern GTY(()) int darwin_ms_struct;
*** 232,239 ****
  #define STANDARD_STARTFILE_PREFIX_1 ""
  #define STANDARD_STARTFILE_PREFIX_2 ""
  
- #define DARWIN_PIE_SPEC "%{fpie|pie|fPIE:}"
- 
  /* Please keep the random linker options in alphabetical order (modulo
     'Z' and 'no' prefixes). Note that options taking arguments may appear
     multiple times on a command line with different arguments each time,
--- 265,270 ----
*************** extern GTY(()) int darwin_ms_struct;
*** 297,303 ****
       %:version-compare(< 10.5 mmacosx-version-min= -multiply_defined) \
       %:version-compare(< 10.5 mmacosx-version-min= suppress)}} \
     %{Zmultiplydefinedunused*:-multiply_defined_unused %*} \
-    " DARWIN_PIE_SPEC " \
     %{prebind} %{noprebind} %{nofixprebinding} %{prebind_all_twolevel_modules} \
     %{read_only_relocs} \
     %{sectcreate*} %{sectorder*} %{seg1addr*} %{segprot*} \
--- 328,333 ----
*************** extern GTY(()) int darwin_ms_struct;
*** 329,371 ****
  
  /* Support -mmacosx-version-min by supplying different (stub) libgcc_s.dylib
     libraries to link against, and by not linking against libgcc_s on
!    earlier-than-10.3.9.
  
!    Note that by default, -lgcc_eh is not linked against!  This is
!    because in a future version of Darwin the EH frame information may
!    be in a new format, or the fallback routine might be changed; if
!    you want to explicitly link against the static version of those
!    routines, because you know you don't need to unwind through system
!    libraries, you need to explicitly say -static-libgcc.
  
!    If it is linked against, it has to be before -lgcc, because it may
     need symbols from -lgcc.  */
  #undef REAL_LIBGCC_SPEC
  #define REAL_LIBGCC_SPEC						   \
     "%{static-libgcc|static: -lgcc_eh -lgcc;				   \
!       shared-libgcc|fexceptions|fgnu-runtime:				   \
!        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4)	   \
         %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
!        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
         %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
         -lgcc ;								   \
        :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
         %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
!        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
         %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
         -lgcc }"
  
! /* We specify crt0.o as -lcrt0.o so that ld will search the library path.
! 
!    crt3.o provides __cxa_atexit on systems that don't have it.  Since
!    it's only used with C++, which requires passing -shared-libgcc, key
!    off that to avoid unnecessarily adding a destructor to every
!    powerpc program built.  */
  
  #undef  STARTFILE_SPEC
  #define STARTFILE_SPEC							    \
!   "%{Zdynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}}		    \
!    %{!Zdynamiclib:%{Zbundle:%{!static:					    \
  	%:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o)	    \
  	%{fgnu-tm: -lcrttms.o}}}					    \
       %{!Zbundle:%{pg:%{static:-lgcrt0.o}				    \
--- 359,400 ----
  
  /* Support -mmacosx-version-min by supplying different (stub) libgcc_s.dylib
     libraries to link against, and by not linking against libgcc_s on
!    earlier-than-10.3.9.  If we need exceptions, prior to 10.3.9, then we have
!    to link the static eh lib, since there's no shared version on the system.
  
!    Note that by default, except as above, -lgcc_eh is not linked against.
!    This is because,in general, we need to unwind through system libraries that
!    are linked with the shared unwinder in libunwind (or libgcc_s for 10.4/5).
  
!    The static version of the current libgcc unwinder (which differs from the
!    implementation in libunwind.dylib on systems Darwin10 [10.6]+) can be used
!    by specifying -static-libgcc.
! 
!    If libgcc_eh is linked against, it has to be before -lgcc, because it might
     need symbols from -lgcc.  */
+ 
  #undef REAL_LIBGCC_SPEC
  #define REAL_LIBGCC_SPEC						   \
     "%{static-libgcc|static: -lgcc_eh -lgcc;				   \
!       shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime:		   \
!        %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh)	   \
!        %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
         %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
!        %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_ext.10.4) \
         %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
         -lgcc ;								   \
        :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
         %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
!        %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_ext.10.4) \
         %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
         -lgcc }"
  
! /* We specify crt0.o as -lcrt0.o so that ld will search the library path.  */
  
  #undef  STARTFILE_SPEC
  #define STARTFILE_SPEC							    \
! "%{Zdynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}}		    \
!  %{!Zdynamiclib:%{Zbundle:%{!static:					    \
  	%:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o)	    \
  	%{fgnu-tm: -lcrttms.o}}}					    \
       %{!Zbundle:%{pg:%{static:-lgcrt0.o}				    \
*************** extern GTY(()) int darwin_ms_struct;
*** 379,385 ****
                                  %{!object:%{preload:-lcrt0.o}		    \
                                    %{!preload: %(darwin_crt1)		    \
  					      %(darwin_crt2)}}}}}}	    \
!   %{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}"
  
  /* We want a destructor last in the list.  */
  #define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}"
--- 408,414 ----
                                  %{!object:%{preload:-lcrt0.o}		    \
                                    %{!preload: %(darwin_crt1)		    \
  					      %(darwin_crt2)}}}}}}	    \
!  %(darwin_crt3)"
  
  /* We want a destructor last in the list.  */
  #define TM_DESTRUCTOR "%{fgnu-tm: -lcrttme.o}"
*************** extern GTY(()) int darwin_ms_struct;
*** 387,404 ****
  
  #define DARWIN_EXTRA_SPECS						\
    { "darwin_crt1", DARWIN_CRT1_SPEC },					\
    { "darwin_dylib1", DARWIN_DYLIB1_SPEC },
  
- #define DARWIN_DYLIB1_SPEC						\
-   "%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o)		\
-    %:version-compare(>< 10.5 10.6 mmacosx-version-min= -ldylib1.10.5.o)"
- 
  #define DARWIN_CRT1_SPEC						\
    "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)		\
     %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lcrt1.10.5.o)	\
     %:version-compare(>< 10.6 10.8 mmacosx-version-min= -lcrt1.10.6.o)	\
     %{fgnu-tm: -lcrttms.o}"
  
  #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
  /* Emit macosx version (but only major).  */
  #define ASM_MMACOSX_VERSION_MIN_SPEC \
--- 416,445 ----
  
  #define DARWIN_EXTRA_SPECS						\
    { "darwin_crt1", DARWIN_CRT1_SPEC },					\
+   { "darwin_crt2", DARWIN_CRT2_SPEC },					\
+   { "darwin_crt3", DARWIN_CRT3_SPEC },					\
    { "darwin_dylib1", DARWIN_DYLIB1_SPEC },
  
  #define DARWIN_CRT1_SPEC						\
    "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)		\
     %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lcrt1.10.5.o)	\
     %:version-compare(>< 10.6 10.8 mmacosx-version-min= -lcrt1.10.6.o)	\
     %{fgnu-tm: -lcrttms.o}"
  
+ #define DARWIN_CRT2_SPEC ""
+ 
+ /* crt3.o provides __cxa_atexit on systems that don't have it (and a fix
+    up for faulty versions on 10.4).  Since it's only used with C++, which
+    requires passing -shared-libgcc, key off that to avoid unnecessarily
+    adding a destructor to every program built for 10.4 or earlier.  */
+ 
+ #define DARWIN_CRT3_SPEC \
+ "%{shared-libgcc:%:version-compare(< 10.5 mmacosx-version-min= crt3.o%s)}"
+ 
+ #define DARWIN_DYLIB1_SPEC						\
+   "%:version-compare(!> 10.5 mmacosx-version-min= -ldylib1.o)		\
+    %:version-compare(>< 10.5 10.6 mmacosx-version-min= -ldylib1.10.5.o)"
+ 
  #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
  /* Emit macosx version (but only major).  */
  #define ASM_MMACOSX_VERSION_MIN_SPEC \
*************** extern GTY(()) int darwin_ms_struct;
*** 434,453 ****
  
  #define DWARF2_DEBUGGING_INFO 1
  
! #define DEBUG_FRAME_SECTION	"__DWARF,__debug_frame,regular,debug"
! #define DEBUG_INFO_SECTION	"__DWARF,__debug_info,regular,debug"
! #define DEBUG_ABBREV_SECTION	"__DWARF,__debug_abbrev,regular,debug"
! #define DEBUG_ARANGES_SECTION	"__DWARF,__debug_aranges,regular,debug"
! #define DEBUG_MACINFO_SECTION	"__DWARF,__debug_macinfo,regular,debug"
! #define DEBUG_LINE_SECTION	"__DWARF,__debug_line,regular,debug"
! #define DEBUG_LOC_SECTION	"__DWARF,__debug_loc,regular,debug"
! #define DEBUG_PUBNAMES_SECTION	"__DWARF,__debug_pubnames,regular,debug"
! #define DEBUG_PUBTYPES_SECTION	"__DWARF,__debug_pubtypes,regular,debug"
! #define DEBUG_STR_SECTION	"__DWARF,__debug_str,regular,debug"
! #define DEBUG_RANGES_SECTION	"__DWARF,__debug_ranges,regular,debug"
! #define DEBUG_MACRO_SECTION    "__DWARF,__debug_macro,regular,debug"
  
  #define TARGET_WANT_DEBUG_PUB_SECTIONS true
  
  /* When generating stabs debugging, use N_BINCL entries.  */
  
--- 475,503 ----
  
  #define DWARF2_DEBUGGING_INFO 1
  
! #define DEBUG_FRAME_SECTION	  "__DWARF,__debug_frame,regular,debug"
! #define DEBUG_INFO_SECTION	  "__DWARF,__debug_info,regular,debug"
! #define DEBUG_ABBREV_SECTION	  "__DWARF,__debug_abbrev,regular,debug"
! #define DEBUG_ARANGES_SECTION	  "__DWARF,__debug_aranges,regular,debug"
! #define DEBUG_MACINFO_SECTION	  "__DWARF,__debug_macinfo,regular,debug"
! #define DEBUG_LINE_SECTION	  "__DWARF,__debug_line,regular,debug"
! #define DEBUG_LOC_SECTION	  "__DWARF,__debug_loc,regular,debug"
! #define DEBUG_LOCLISTS_SECTION    "__DWARF,__debug_loclists,regular,debug"
! 
! #define DEBUG_STR_SECTION	  "__DWARF,__debug_str,regular,debug"
! #define DEBUG_STR_OFFSETS_SECTION "__DWARF,__debug_str_offs,regular,debug"
! #define DEBUG_RANGES_SECTION	  "__DWARF,__debug_ranges,regular,debug"
! #define DEBUG_RNGLISTS_SECTION    "__DWARF,__debug_rnglists,regular,debug"
! #define DEBUG_MACRO_SECTION       "__DWARF,__debug_macro,regular,debug"
  
  #define TARGET_WANT_DEBUG_PUB_SECTIONS true
+ #define DEBUG_PUBNAMES_SECTION   ((debug_generate_pub_sections == 2) \
+                                ? "__DWARF,__debug_gnu_pubn,regular,debug" \
+                                : "__DWARF,__debug_pubnames,regular,debug")
+ 
+ #define DEBUG_PUBTYPES_SECTION   ((debug_generate_pub_sections == 2) \
+                                ? "__DWARF,__debug_gnu_pubt,regular,debug" \
+                                : "__DWARF,__debug_pubtypes,regular,debug")
  
  /* When generating stabs debugging, use N_BINCL entries.  */
  
*************** extern GTY(()) int darwin_ms_struct;
*** 495,505 ****
     links to, so there's no need for weak-ness for that.  */
  #define GTHREAD_USE_WEAK 0
  
- /* The Darwin linker doesn't want coalesced symbols to appear in
-    a static archive's table of contents. */
- #undef TARGET_WEAK_NOT_IN_ARCHIVE_TOC
- #define TARGET_WEAK_NOT_IN_ARCHIVE_TOC 1
- 
  /* On Darwin, we don't (at the time of writing) have linkonce sections
     with names, so it's safe to make the class data not comdat.  */
  #define TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT hook_bool_void_false
--- 545,550 ----
*************** extern GTY(()) section * darwin_sections
*** 751,771 ****
  #undef TARGET_ASM_MARK_DECL_PRESERVED
  #define TARGET_ASM_MARK_DECL_PRESERVED darwin_mark_decl_preserved
  
! /* Set on a symbol with SYMBOL_FLAG_FUNCTION or
!    MACHO_SYMBOL_FLAG_VARIABLE to indicate that the function or
!    variable has been defined in this translation unit.
!    When porting Mach-O to new architectures you need to make
!    sure these aren't clobbered by the backend.  */
  
! #define MACHO_SYMBOL_FLAG_VARIABLE (SYMBOL_FLAG_MACH_DEP)
! #define MACHO_SYMBOL_FLAG_DEFINED ((SYMBOL_FLAG_MACH_DEP) << 1)
  
  /* Set on a symbol to indicate when fix-and-continue style code
     generation is being used and the symbol refers to a static symbol
     that should be rebound from new instances of a translation unit to
     the original instance of the data.  */
  
! #define MACHO_SYMBOL_STATIC ((SYMBOL_FLAG_MACH_DEP) << 2)
  
  /* Symbolic names for various things we might know about a symbol.  */
  
--- 796,847 ----
  #undef TARGET_ASM_MARK_DECL_PRESERVED
  #define TARGET_ASM_MARK_DECL_PRESERVED darwin_mark_decl_preserved
  
! /* Any port using this header needs to define the first available
!    subtarget symbol bit: SYMBOL_FLAG_SUBT_DEP.  */
  
! /* Is a variable. */
! #define MACHO_SYMBOL_FLAG_VARIABLE (SYMBOL_FLAG_SUBT_DEP)
! #define MACHO_SYMBOL_VARIABLE_P(RTX) \
!   ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_VARIABLE) != 0)
! 
! /* Set on a symbol that must be indirected, even when there is a
!    definition in the TU.  The ABI mandates that common symbols are so
!    indirected, as are weak.  If 'fix-and-continue' is operational then
!    data symbols might also be.  */
! 
! #define MACHO_SYMBOL_FLAG_MUST_INDIRECT ((SYMBOL_FLAG_SUBT_DEP) << 1)
! #define MACHO_SYMBOL_MUST_INDIRECT_P(RTX) \
!   ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_MUST_INDIRECT) != 0)
! 
! /* Set on a symbol with SYMBOL_FLAG_FUNCTION or MACHO_SYMBOL_FLAG_VARIABLE
!    to indicate that the function or variable is considered defined in this
!    translation unit.  */
! 
! #define MACHO_SYMBOL_FLAG_DEFINED ((SYMBOL_FLAG_SUBT_DEP) << 2)
! #define MACHO_SYMBOL_DEFINED_P(RTX) \
!   ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_DEFINED) != 0)
! 
! /* Set on a symbol that has specified non-default visibility.  */
! 
! #define MACHO_SYMBOL_FLAG_HIDDEN_VIS ((SYMBOL_FLAG_SUBT_DEP) << 3)
! #define MACHO_SYMBOL_HIDDEN_VIS_P(RTX) \
!   ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_HIDDEN_VIS) != 0)
! 
! /* Set on a symbol that is a pic stub or symbol indirection (i.e. the
!    L_xxxxx${stub,non_lazy_ptr,lazy_ptr}.  */
! 
! #define MACHO_SYMBOL_FLAG_INDIRECTION ((SYMBOL_FLAG_SUBT_DEP) << 5)
! #define MACHO_SYMBOL_INDIRECTION_P(RTX) \
!   ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_INDIRECTION) != 0)
  
  /* Set on a symbol to indicate when fix-and-continue style code
     generation is being used and the symbol refers to a static symbol
     that should be rebound from new instances of a translation unit to
     the original instance of the data.  */
  
! #define MACHO_SYMBOL_FLAG_STATIC ((SYMBOL_FLAG_SUBT_DEP) << 6)
! #define MACHO_SYMBOL_STATIC_P(RTX) \
!   ((SYMBOL_REF_FLAGS (RTX) & MACHO_SYMBOL_FLAG_STATIC) != 0)
  
  /* Symbolic names for various things we might know about a symbol.  */
  
*************** extern void darwin_driver_init (unsigned
*** 958,965 ****
     _tested_ version known to support this so far.  */
  #define MIN_LD64_NO_COAL_SECTS "236.4"
  
  #ifndef LD64_VERSION
! #define LD64_VERSION "85.2"
  #else
  #define DEF_LD64 LD64_VERSION
  #endif
--- 1034,1045 ----
     _tested_ version known to support this so far.  */
  #define MIN_LD64_NO_COAL_SECTS "236.4"
  
+ /* From at least version 62.1, ld64 can build symbol indirection stubs as
+    needed, and there is no need for the compiler to emit them.  */
+ #define MIN_LD64_OMIT_STUBS "85.2"
+ 
  #ifndef LD64_VERSION
! #define LD64_VERSION "62.1"
  #else
  #define DEF_LD64 LD64_VERSION
  #endif
diff -Nrcpad gcc-7.4.0/gcc/config/darwin.opt gcc-7.5.0/gcc/config/darwin.opt
*** gcc-7.4.0/gcc/config/darwin.opt	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/darwin.opt	Fri Nov  1 20:30:26 2019
***************
*** 18,257 ****
  ; along with GCC; see the file COPYING3.  If not see
  ; <http://www.gnu.org/licenses/>.
  
! ; Various linker options have a -Z added so that they can get to specs
! ; processing without interference.  Note that an option name with a
! ; prefix that matches another option name, that also takes an
! ; argument, being mapped to a -Z linker option, needs to be modified
! ; so the prefix is different, otherwise a '*' after the shorter option
! ; will match with the longer one.
  
  all_load
! Driver Alias(Zall_load)
  
  allowable_client
! Driver Separate Alias(Zallowable_client)
  
  arch
  Driver RejectNegative Separate
  
  arch_errors_fatal
! Driver Alias(Zarch_errors_fatal)
  
  asm_macosx_version_min=
  Driver RejectNegative Joined
  
  bind_at_load
! Driver Alias(Zbind_at_load)
  
  bundle
! Driver Alias(Zbundle)
  
  bundle_loader
! Driver Separate Alias(Zbundle_loader)
  
! dead_strip
! Driver Alias(Zdead_strip)
  
! dependency-file
! C ObjC C++ ObjC++ Separate Alias(MF) MissingArgError(missing filename after %qs)
  
  dylib_file
  Driver Separate Alias(Zdylib_file)
  
  dylinker
! Driver
  
  dynamic
! Driver Alias(Zdynamic)
  
  dynamiclib
! Driver Alias(Zdynamiclib)
  
  exported_symbols_list
! Driver Separate Alias(Zexported_symbols_list)
  
  filelist
  Driver RejectNegative Separate
  
  findirect-virtual-calls
  Driver RejectNegative
  
  flat_namespace
  Driver RejectNegative Alias(Zflat_namespace)
  
  force_cpusubtype_ALL
  Driver RejectNegative Alias(Zforce_cpusubtype_ALL)
  
  force_flat_namespace
  Driver RejectNegative Alias(Zforce_flat_namespace)
  
  framework
  Driver RejectNegative Separate
  
  fterminated-vtables
  Driver RejectNegative
  
  gfull
  Driver
  
  gused
! Driver
  
  headerpad_max_install_names
! Driver
  
  image_base
! Driver Separate Alias(Zimage_base)
  
  init
! Driver Separate Alias(Zinit)
  
  install_name
! Driver Separate Alias(Zinstall_name)
  
  keep_private_externs
! Driver
! 
! mconstant-cfstrings
! Target Report Var(darwin_constant_cfstrings) Init(1)
! Generate compile-time CFString objects.
  
  multi_module
  Driver RejectNegative Alias(Zmulti_module)
  
  multiply_defined
  Driver RejectNegative Separate Alias(Zmultiply_defined)
  
  multiply_defined_unused
  Driver RejectNegative Separate Alias(Zmultiplydefinedunused)
  
  no_dead_strip_inits_and_terms
! Driver Alias(Zno_dead_strip_inits_and_terms)
  
  nofixprebinding
! Driver
  
  nomultidefs
! Driver
  
  noprebind
! Driver
  
  noseglinkedit
! Driver
  
  object
! Driver
  
  prebind
! Driver
  
  prebind_all_twolevel_modules
! Driver
  
  preload
! Driver
  
  private_bundle
! Driver
  
  pthread
! Driver
  
  rdynamic
! Driver
  
  seg_addr_table
! Driver Separate Alias(Zseg_addr_table)
  
  seg_addr_table_filename
! Driver Separate Alias(Zfn_seg_addr_table_filename)
  
  segaddr
! Driver Separate Args(2) Alias(Zsegaddr)
  
  seglinkedit
! Driver
  
  segs_read_only_addr
! Driver Separate Alias(Zsegs_read_only_addr)
  
  segs_read_write_addr
! Driver Separate Alias(Zsegs_read_write_addr)
  
  single_module
! Driver Alias(Zsingle_module)
  
  twolevel_namespace
! Driver
  
  twolevel_namespace_hints
! Driver
  
  umbrella
! Driver Separate Alias(Zumbrella)
  
  unexported_symbols_list
! Driver Separate Alias(Zunexported_symbols_list)
  
  weak_reference_mismatches
! Driver Separate Alias(Zweak_reference_mismatches)
  
  whatsloaded
! Driver
  
  whyload
! Driver
  
  y
! Driver Joined
  
  Mach
! Driver
! 
! Wnonportable-cfstrings
! Target Report Var(darwin_warn_nonportable_cfstrings) Init(1) Warning
! Warn if constant CFString objects contain non-portable characters.
! 
! ; Use new-style pic stubs if this is true, x86 only so far.
! matt-stubs
! Target Report Var(darwin_macho_att_stub) Init(1)
! Generate AT&T-style stubs for Mach-O.
! 
! mdynamic-no-pic
! Target Common Report Mask(MACHO_DYNAMIC_NO_PIC)
! Generate code suitable for executables (NOT shared libs).
! 
! mfix-and-continue
! Target Report Var(darwin_fix_and_continue)
! Generate code suitable for fast turn around debugging.
! 
! ; The Init here is for the convenience of GCC developers, so that cc1
! ; and cc1plus don't crash if no -mmacosx-version-min is passed.  The
! ; driver will always pass a -mmacosx-version-min, so in normal use the
! ; Init is never used.
! mmacosx-version-min=
! Target Joined Report Var(darwin_macosx_version_min) Init(DEF_MIN_OSX_VERSION)
! The earliest MacOS X version on which this program will run.
! 
! mone-byte-bool
! Target RejectNegative Report Var(darwin_one_byte_bool)
! Set sizeof(bool) to 1.
! 
! fapple-kext
! Target Report C++ Var(flag_apple_kext)
! Generate code for darwin loadable kernel extensions.
! 
! mkernel
! Target Report Var(flag_mkernel)
! Generate code for the kernel or loadable kernel extensions.
! 
! iframework
! Target RejectNegative C ObjC C++ ObjC++ Joined Separate 
! -iframework <dir>	Add <dir> to the end of the system framework include path.
  
! X
! Driver
  
  Zall_load
  Driver
--- 18,399 ----
  ; along with GCC; see the file COPYING3.  If not see
  ; <http://www.gnu.org/licenses/>.
  
! ; We have a lot of Driver options, many of which are obsolete or very very
! ; rarely used so, to keep this file easier to manage:
! 
! ; Please place all Non-driver options first (in alphabetical order), followed
! ; by Driver-only options.
! 
! ; Non-driver options.
! 
! dependency-file
! C ObjC C++ ObjC++ Separate Alias(MF) MissingArgError(missing filename after %qs)
! 
! fapple-kext
! Target Report C++ Var(flag_apple_kext)
! Generate code for darwin loadable kernel extensions.
! 
! iframework
! Target RejectNegative C ObjC C++ ObjC++ Joined Separate
! -iframework <dir>	Add <dir> to the end of the system framework include path.
! 
! mconstant-cfstrings
! Target Report Var(darwin_constant_cfstrings) Init(1)
! Generate compile-time CFString objects.
! 
! Wnonportable-cfstrings
! Target Report Var(darwin_warn_nonportable_cfstrings) Init(1) Warning
! Warn if constant CFString objects contain non-portable characters.
! 
! ; Use new-style pic stubs if this is true, x86 only so far.
! matt-stubs
! Target Report Var(darwin_macho_att_stub) Init(1)
! Generate AT&T-style stubs for Mach-O.
! 
! mdynamic-no-pic
! Target Common Report Mask(MACHO_DYNAMIC_NO_PIC)
! Generate code suitable for executables (NOT shared libs).
! 
! mfix-and-continue
! Target Report Var(darwin_fix_and_continue)
! Generate code suitable for fast turn around debugging.
! 
! mkernel
! Target Report Var(flag_mkernel)
! Generate code for the kernel or loadable kernel extensions.
! 
! ; The Init here is for the convenience of GCC developers, so that cc1
! ; and cc1plus don't crash if no -mmacosx-version-min is passed.  The
! ; driver will always pass a -mmacosx-version-min, so in normal use the
! ; Init is never used.
! mmacosx-version-min=
! Target RejectNegative Joined Report Var(darwin_macosx_version_min) Init(DEF_MIN_OSX_VERSION)
! The earliest MacOS X version on which this program will run.
! 
! ; Really, only relevant to PowerPC which has a 4 byte bool by default.
! mone-byte-bool
! Target RejectNegative Report Var(darwin_one_byte_bool)
! Set sizeof(bool) to 1.
! 
! msymbol-stubs
! Target Report Var(darwin_symbol_stubs) Init(0)
! Force generation of external symbol indirection stubs.
! 
! ; Some code-gen may be improved / adjusted if the linker is sufficiently modern.
! mtarget-linker=
! Target RejectNegative Joined Report Alias(mtarget-linker)
! 
! mtarget-linker
! Target RejectNegative Joined Separate Report Var(darwin_target_linker) Init(LD64_VERSION)
! The version of ld64 in use for this toolchain.
! 
! ; Driver options.
  
  all_load
! Driver RejectNegative Alias(Zall_load)
! Loads all members of archive libraries
  
  allowable_client
! Driver RejectNegative Separate Alias(Zallowable_client)
! -allowable_client <name>	The output dylib is private to the client(s) named
  
  arch
  Driver RejectNegative Separate
+ -arch <name>	Specify that the output file should be generated for architecture  \"name\"
  
  arch_errors_fatal
! Driver RejectNegative Alias(Zarch_errors_fatal)
! Mismatches between file architecture and the \"-arch\" are errors instead of warnings
  
  asm_macosx_version_min=
  Driver RejectNegative Joined
+ The earliest MacOS X version on which this program will run (formatted for the assembler)
  
  bind_at_load
! Driver RejectNegative Alias(Zbind_at_load)
! Produce an output file that will bind symbols on load, rather than lazily.
  
  bundle
! Driver RejectNegative Alias(Zbundle)
! Produce a Mach-O bundle (file type MH_BUNDLE)
  
  bundle_loader
! Driver RejectNegative Separate Alias(Zbundle_loader)
! -bundle_loader <executable>	Treat \"executable\" (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution
  
! client_name
! Driver RejectNegative Separate
! -client_name <name>	Enable the executable being built to link against a private dylib (using allowable_client)
  
! compatibility_version
! Driver RejectNegative Separate
! -compatibility_version <number>	Set the minimum version for the client interface.  Clients must record a greater number than this or the binding will fail at runtime
! 
! current_version
! Driver RejectNegative Separate
! -current_version <number>	Set the current version for the library.
! 
! dead_strip
! Driver RejectNegative Alias(Zdead_strip)
! Remove code and data that is unreachable from any exported symbol (including the entry point)
  
  dylib_file
  Driver Separate Alias(Zdylib_file)
  
  dylinker
! Driver RejectNegative
! Produce a Mach-O dylinker (file type MH_DYLINKER), only used for building dyld.
! 
! dylinker_install_name
! Driver RejectNegative Separate
! -dylinker_install_name <path>	Only used for building dyld.
  
  dynamic
! Driver RejectNegative Alias(Zdynamic)
! The default (and opposite of -static), implied by user mode executables, shared libraries and bundles.
  
  dynamiclib
! Driver RejectNegative Alias(Zdynamiclib)
! Produce a Mach-O shared library (file type MH_DYLIB), synonym for -shared
  
  exported_symbols_list
! Driver RejectNegative Separate Alias(Zexported_symbols_list)
! -exported_symbols_list <filename>	Global symbols in \"filename\" will be exported from the linked output file, any symbols not mentioned will be treated as hidden.
  
  filelist
  Driver RejectNegative Separate
+ Supply a list of objects to be linked from a file, rather than the command line
  
  findirect-virtual-calls
  Driver RejectNegative
+ Used for generating code for some older kernel revisions.
  
  flat_namespace
  Driver RejectNegative Alias(Zflat_namespace)
+ Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol.
  
  force_cpusubtype_ALL
  Driver RejectNegative Alias(Zforce_cpusubtype_ALL)
+ For the assembler (and linker) permit any architecture sub-variant to be used without error.
  
  force_flat_namespace
  Driver RejectNegative Alias(Zforce_flat_namespace)
+ Set the output object such that, on loading, dyld  will ignore any two-level information and resolve symbols in the discovery order for loaded libs.
  
  framework
  Driver RejectNegative Separate
+ -framework <name>	The linker should search for the named framework in the framework search path.
  
  fterminated-vtables
  Driver RejectNegative
+ Used for generating code for some older kernel revisions.
  
  gfull
  Driver
+ Abbreviation for \"-g -fno-eliminate-unused-debug-symbols\"
  
  gused
! Driver RejectNegative
! Abbreviation for \"-g -feliminate-unused-debug-symbols\"
  
  headerpad_max_install_names
! Driver RejectNegative
! Automatically adds space for longer path names in load commands (up to MAXPATHLEN)
  
  image_base
! Driver RejectNegative Separate Alias(Zimage_base)
! -image_base <address>	Choose a base address for a dylib or bundle.
  
  init
! Driver RejectNegative Separate Alias(Zinit)
! -init <symbol_name>	The symbol \"symbol_name\" will be used as the first initialiser for a dylib.
  
  install_name
! Driver RejectNegative Separate Alias(Zinstall_name)
! -install_name <name>	Set the install name for a dylib.
  
  keep_private_externs
! Driver RejectNegative
! Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported.
  
  multi_module
  Driver RejectNegative Alias(Zmulti_module)
+ (Obsolete after 10.4) Multi modules are ignored at runtime since MacOS 10.4
  
  multiply_defined
  Driver RejectNegative Separate Alias(Zmultiply_defined)
+ (Obsolete after 10.4) -multiply_defined <treatment> Provided a mechanism for warning about symbols defined in multiple dylibs.
  
  multiply_defined_unused
  Driver RejectNegative Separate Alias(Zmultiplydefinedunused)
+ (Obsolete after 10.4) -multiply_defined_unused <treatment>	Provided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs.
  
  no_dead_strip_inits_and_terms
! Driver RejectNegative Alias(Zno_dead_strip_inits_and_terms)
! (Obsolete) The linker never dead strips these items, so the option is not needed.
  
  nofixprebinding
! Driver RejectNegative
! (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an exectuable.
  
  nomultidefs
! Driver RejectNegative
! (Obsolete after 10.4)	Set MH_NOMULTIDEFS in an umbrella framework.
  
  noprebind
! Driver RejectNegative Negative(prebind)
! (Obsolete) LD_PREBIND is no longer supported.
  
  noseglinkedit
! Driver RejectNegative Negative(seglinkedit)
! (Obsolete) This is the default.
  
  object
! Driver RejectNegative
! 
! pagezero_size
! Driver RejectNegative Separate
! -pagezero_size size	Allows setting the page 0 size to 4kb for certain special cases.
  
  prebind
! Driver RejectNegative Negative(noprebind)
! (Obsolete) LD_PREBIND is no longer supported.
  
  prebind_all_twolevel_modules
! Driver RejectNegative
! (Obsolete) LD_PREBIND is no longer supported.
  
  preload
! Driver RejectNegative
! Produces a Mach-O file suitable for embedded/ROM use.
  
  private_bundle
! Driver RejectNegative
! (Obsolete) Allowed linking to proceed with \"-flat_namespace\" when a linked bundle contained a symbol also exported from the main executable.
  
  pthread
! Driver RejectNegative
  
  rdynamic
! Driver RejectNegative
! Synonym for \"-export-dynamic\" for linker versions that support it.
! 
! read_only_relocs
! Driver RejectNegative Separate
! -read_only_relocs <treatment>	This will allow relocs in read-only pages (not advisable).
! 
! sectalign
! Driver RejectNegative Separate Args(3)
! -sectalign <segname> <sectname> <value>	Set section \"sectname\" in segment \"segname\" to have alignment \"value\" which must be an integral power of two expressed in hexadecimal form.
! 
! sectcreate
! Driver RejectNegative Separate Args(3)
! -sectcreate <segname> <sectname> <file>	Create section \"sectname\" in segment \"segname\" from the contents of \"file\".
! 
! sectobjectsymbols
! Driver RejectNegative Separate Args(2)
! (Obsolete) -sectobjectsymbols <segname> <sectname>	Setting a local symbol at the start of a section is no longer supported.
! 
! sectorder
! Driver RejectNegative Separate Args(3)
! (Obsolete) -sectorder <segname> <sectname> orderfile	Replaced by a more general option \"-order_file\".
  
  seg_addr_table
! Driver RejectNegative Separate Alias(Zseg_addr_table)
! -seg_addr_table <file>	Specify the base addresses for dynamic libraries, \"file\" contains a line for each library.
  
+ ; This is only usable by the ld_classic linker.
  seg_addr_table_filename
! Driver RejectNegative Separate Alias(Zfn_seg_addr_table_filename)
! (Obsolete, ld_classic only) -seg_addr_table_filename <path>
! 
! seg1addr
! Driver RejectNegative Separate
! Synonym for \"image_base\"
  
  segaddr
! Driver RejectNegative Separate Args(2) Alias(Zsegaddr)
! -segaddr <name> <address>	Set the base address of segment \"name\" to \"address\" which must be aligned to a page boundary (currently 4kb).
! 
! ; This is only usable by the ld_classic linker.
! segcreate
! Driver RejectNegative Separate Args(3)
! (Obsolete, ld_classic only) -sectcreate segname sectname file
  
  seglinkedit
! Driver RejectNegative Negative(noseglinkedit)
! (Obsolete) Object files with LINKEDIT sections are no longer supported.
! 
! segprot
! Driver RejectNegative Separate Args(3)
! -segprot <segname> max_prot init_prot	The protection values are \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\".
  
  segs_read_only_addr
! Driver RejectNegative Separate Alias(Zsegs_read_only_addr)
! -segs_read_only_addr address 	Allows specifying the address of the read only portion of a dylib.
  
  segs_read_write_addr
! Driver RejectNegative Separate Alias(Zsegs_read_write_addr)
! -segs_read_write_addr address 	Allows specifying the address of the read/write portion of a dylib.
  
  single_module
! Driver RejectNegative Alias(Zsingle_module)
! (Obsolete)	This is the default.
! 
! sub_library
! Driver RejectNegative Separate
! -sub_library <name>	Library named \"name\" will be re-exported (only useful for dylibs).
! 
! sub_umbrella
! Driver RejectNegative Separate
! -sub_umbrella <name>	Framework named \"name\" will be re-exported (only useful for dylibs).
  
  twolevel_namespace
! Driver RejectNegative
! This is the default
  
  twolevel_namespace_hints
! Driver RejectNegative
! Specifies content that can speed up dynamic loading when the binaries are unchanged.
  
  umbrella
! Driver RejectNegative Separate Alias(Zumbrella)
! -umbrella <framework>	The specified framework will be re-exported.
! 
! undefined
! Driver RejectNegative Separate
! -undefined <treatment>	Specify the handling for undefined symbols (default is error).
  
  unexported_symbols_list
! Driver RejectNegative Separate Alias(Zunexported_symbols_list)
! -unexported_symbols_list <filename>	Don't export global symbols listed in filename.
  
  weak_reference_mismatches
! Driver RejectNegative Separate Alias(Zweak_reference_mismatches)
! -weak_reference_mismatches <treatment>	Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak.
  
  whatsloaded
! Driver RejectNegative
! Logs the object files the linker loads
  
  whyload
! Driver RejectNegative
! Logs which symbol(s) caused an object to be loaded.
! 
! ;(Obsolete, ignored)	Strip symbols starting with "L", this is the default.
! X
! Driver RejectNegative
  
  y
! Driver RejectNegative Joined
! (Obsolete, ignored)	Old support similar to whyload.
  
  Mach
! Driver RejectNegative
! (Obsolete and unhandled by ld64, ignored)	ld should produce an executable (only handled by ld_classic).
  
! ;; These are not "real" options, but placeholders used to hide the real options
! ;; from generic options processing... FIXME: they can be eliminated now.
  
  Zall_load
  Driver
*************** Driver Separate
*** 343,404 ****
  Zweak_reference_mismatches
  Driver Separate
  
- client_name
- Driver Separate
- 
- compatibility_version
- Driver Separate
- 
- current_version
- Driver Separate
- 
- dylinker_install_name
- Driver Separate
- 
- pagezero_size
- Driver Separate
- 
- read_only_relocs
- Driver Separate
- 
- sectalign
- Driver Separate Args(3)
- 
- sectcreate
- Driver Separate Args(3)
- 
- sectobjectsymbols
- Driver Separate Args(2)
- 
- sectorder
- Driver Separate Args(3)
- 
- seg1addr
- Driver Separate
- 
- segcreate
- Driver Separate Args(3)
- 
- segprot
- Driver Separate Args(3)
- 
- segs_read_only_addr
- Driver Separate
- 
- segs_read_write_addr
- Driver Separate
- 
- sub_library
- Driver Separate
- 
- sub_umbrella
- Driver Separate
- 
- ; Certain aspects of code-gen may be improved / adjusted if the version of ld64
- ; is sufficiently modern.
- mtarget-linker
- Target RejectNegative Joined Separate Report Var(darwin_target_linker) Init(LD64_VERSION)
- The version of ld64 in use for this toolchain.
- 
- undefined
- Driver Separate
--- 485,487 ----
diff -Nrcpad gcc-7.4.0/gcc/config/darwin10.h gcc-7.5.0/gcc/config/darwin10.h
*** gcc-7.4.0/gcc/config/darwin10.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/darwin10.h	Tue Oct 29 19:46:05 2019
*************** You should have received a copy of the G
*** 18,34 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! /* Fix PR41260 by passing -no_compact_unwind on darwin10 and later until
!    unwinder in libSystem is fixed to digest new epilog unwinding notes.
  
-    Fix PR47558 by linking against libSystem ahead of libgcc_ext. */
  #undef  LINK_GCC_C_SEQUENCE_SPEC
  #define LINK_GCC_C_SEQUENCE_SPEC \
! "%:version-compare(>= 10.6 mmacosx-version-min= -no_compact_unwind) \
!    %{!static:%{!static-libgcc: \
!       %:version-compare(>= 10.6 mmacosx-version-min= -lSystem) } } \
!    %{fno-pic|fno-PIC|fno-pie|fno-PIE|fapple-kext|mkernel|static|mdynamic-no-pic: \
!       %:version-compare(>= 10.7 mmacosx-version-min= -no_pie) } %G %L"
  
  #undef DEF_MIN_OSX_VERSION
  #define DEF_MIN_OSX_VERSION "10.6"
--- 18,30 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  
! /* Fix PR47558 by linking against libSystem ahead of libgcc_ext. */
  
  #undef  LINK_GCC_C_SEQUENCE_SPEC
  #define LINK_GCC_C_SEQUENCE_SPEC \
! "%{!static:%{!static-libgcc: \
!    %:version-compare(>= 10.6 mmacosx-version-min= -lSystem) } } \
!  %G %L"
  
  #undef DEF_MIN_OSX_VERSION
  #define DEF_MIN_OSX_VERSION "10.6"
diff -Nrcpad gcc-7.4.0/gcc/config/darwin9.h gcc-7.5.0/gcc/config/darwin9.h
*** gcc-7.4.0/gcc/config/darwin9.h	Mon Jan 16 21:33:07 2017
--- gcc-7.5.0/gcc/config/darwin9.h	Tue Oct 29 19:46:05 2019
*************** along with GCC; see the file COPYING3.
*** 35,46 ****
  /* Tell collect2 to run dsymutil for us as necessary.  */
  #define COLLECT_RUN_DSYMUTIL 1
  
- #undef DARWIN_PIE_SPEC
- #define DARWIN_PIE_SPEC \
-   "%{fpie|pie|fPIE: \
-      %{mdynamic-no-pic: %n'-mdynamic-no-pic' overrides '-pie', '-fpie' or '-fPIE'; \
-       :-pie}}"
- 
  /* Only ask as for debug data if the debug style is stabs (since as doesn't
     yet generate dwarf.)  */
  
--- 35,40 ----
diff -Nrcpad gcc-7.4.0/gcc/config/i386/avx2intrin.h gcc-7.5.0/gcc/config/i386/avx2intrin.h
*** gcc-7.4.0/gcc/config/i386/avx2intrin.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/i386/avx2intrin.h	Mon Sep  9 11:43:08 2019
*************** extern __inline __m256i
*** 258,264 ****
  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
  _mm256_cmpgt_epi8 (__m256i __A, __m256i __B)
  {
!   return (__m256i) ((__v32qi)__A > (__v32qi)__B);
  }
  
  extern __inline __m256i
--- 258,264 ----
  __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
  _mm256_cmpgt_epi8 (__m256i __A, __m256i __B)
  {
!   return (__m256i) ((__v32qs)__A > (__v32qs)__B);
  }
  
  extern __inline __m256i
diff -Nrcpad gcc-7.4.0/gcc/config/i386/avxintrin.h gcc-7.5.0/gcc/config/i386/avxintrin.h
*** gcc-7.4.0/gcc/config/i386/avxintrin.h	Fri Apr  7 19:22:00 2017
--- gcc-7.5.0/gcc/config/i386/avxintrin.h	Mon Sep  9 11:43:08 2019
*************** typedef unsigned int __v8su __attribute_
*** 47,52 ****
--- 47,53 ----
  typedef short __v16hi __attribute__ ((__vector_size__ (32)));
  typedef unsigned short __v16hu __attribute__ ((__vector_size__ (32)));
  typedef char __v32qi __attribute__ ((__vector_size__ (32)));
+ typedef signed char __v32qs __attribute__ ((__vector_size__ (32)));
  typedef unsigned char __v32qu __attribute__ ((__vector_size__ (32)));
  
  /* The Intel API is flexible enough that we must allow aliasing with other
diff -Nrcpad gcc-7.4.0/gcc/config/i386/cpuid.h gcc-7.5.0/gcc/config/i386/cpuid.h
*** gcc-7.4.0/gcc/config/i386/cpuid.h	Thu Jun 22 11:40:43 2017
--- gcc-7.5.0/gcc/config/i386/cpuid.h	Thu May 23 04:55:40 2019
***************
*** 167,176 ****
--- 167,193 ----
  #define signature_VORTEX_ecx	0x436f5320
  #define signature_VORTEX_edx	0x36387865
  
+ #ifndef __x86_64__
+ /* At least one cpu (Winchip 2) does not set %ebx and %ecx
+    for cpuid leaf 1. Forcibly zero the two registers before
+    calling cpuid as a precaution.  */
+ #define __cpuid(level, a, b, c, d)			\
+   do {							\
+     if (__builtin_constant_p (level) && (level) != 1)	\
+       __asm__ ("cpuid\n\t"				\
+ 	      : "=a" (a), "=b" (b), "=c" (c), "=d" (d)	\
+ 	      : "0" (level));				\
+     else						\
+       __asm__ ("cpuid\n\t"				\
+ 	      : "=a" (a), "=b" (b), "=c" (c), "=d" (d)	\
+ 	      : "0" (level), "1" (0), "2" (0));		\
+   } while (0)
+ #else
  #define __cpuid(level, a, b, c, d)			\
    __asm__ ("cpuid\n\t"					\
  	   : "=a" (a), "=b" (b), "=c" (c), "=d" (d)	\
  	   : "0" (level))
+ #endif
  
  #define __cpuid_count(level, count, a, b, c, d)		\
    __asm__ ("cpuid\n\t"					\
diff -Nrcpad gcc-7.4.0/gcc/config/i386/darwin.h gcc-7.5.0/gcc/config/i386/darwin.h
*** gcc-7.4.0/gcc/config/i386/darwin.h	Sun Nov 18 21:36:30 2018
--- gcc-7.5.0/gcc/config/i386/darwin.h	Fri Nov  1 20:30:26 2019
*************** along with GCC; see the file COPYING3.
*** 39,44 ****
--- 39,71 ----
  #endif
  #endif
  
+ /* WORKAROUND pr80556:
+    For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected
+    from libSystem).  This doesn't use the keymgr (see keymgr.c) and therefore
+    the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not
+    updated to include new images, and might not even be valid for a single
+    image.
+    Therefore, for 64b exes at least, we must use the libunwind implementation,
+    even when static-libgcc is specified.  We put libSystem first so that
+    unwinder symbols are satisfied from there.
+    We default to 64b for single-arch builds, so apply this unconditionally. */
+ #undef REAL_LIBGCC_SPEC
+ #define REAL_LIBGCC_SPEC						   \
+    "%{static-libgcc|static: 						   \
+        %:version-compare(>= 10.6 mmacosx-version-min= -lSystem)		   \
+        -lgcc_eh -lgcc;							   \
+       shared-libgcc|fexceptions|fgnu-runtime:				   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4)	   \
+        %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
+        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
+        -lgcc ;								   \
+       :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
+        %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
+        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
+        -lgcc }"
+ 
  /* Size of the Obj-C jump buffer.  */
  #define OBJC_JBLEN ((TARGET_64BIT) ? ((9 * 2) + 3 + 16) : (18))
  
*************** along with GCC; see the file COPYING3.
*** 62,75 ****
  #undef WCHAR_TYPE_SIZE
  #define WCHAR_TYPE_SIZE 32
  
! /* Generate branch islands stubs if this is true.  */
! extern int darwin_emit_branch_islands;
! 
! #undef TARGET_MACHO_BRANCH_ISLANDS
! #define TARGET_MACHO_BRANCH_ISLANDS darwin_emit_branch_islands
  
  /* For compatibility with OSX system tools, use the new style of pic stub
!    if this is set.  */
  #undef  MACHOPIC_ATT_STUB
  #define MACHOPIC_ATT_STUB (darwin_macho_att_stub)
  
--- 89,100 ----
  #undef WCHAR_TYPE_SIZE
  #define WCHAR_TYPE_SIZE 32
  
! /* Generate pic symbol indirection stubs if this is true.  */
! #undef TARGET_MACHO_SYMBOL_STUBS
! #define TARGET_MACHO_SYMBOL_STUBS (darwin_symbol_stubs)
  
  /* For compatibility with OSX system tools, use the new style of pic stub
!    if this is set (default).  */
  #undef  MACHOPIC_ATT_STUB
  #define MACHOPIC_ATT_STUB (darwin_macho_att_stub)
  
*************** extern int darwin_emit_branch_islands;
*** 85,93 ****
  /* On Darwin, the stack is 128-bit aligned at the point of every call.
     Failure to ensure this will lead to a crash in the system libraries
     or dynamic loader.  */
- #undef STACK_BOUNDARY
- #define STACK_BOUNDARY \
-   ((profile_flag || TARGET_64BIT_MS_ABI) ? 128 : BITS_PER_WORD)
  
  #undef MAIN_STACK_BOUNDARY
  #define MAIN_STACK_BOUNDARY 128
--- 110,115 ----
*************** extern int darwin_emit_branch_islands;
*** 107,113 ****
  #undef CC1_SPEC
  #define CC1_SPEC "%(cc1_cpu) \
    %{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \
!   %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} " \
    DARWIN_CC1_SPEC
  
  #undef ASM_SPEC
--- 129,136 ----
  #undef CC1_SPEC
  #define CC1_SPEC "%(cc1_cpu) \
    %{!mkernel:%{!static:%{!mdynamic-no-pic:-fPIC}}} \
!   %{g: %{!fno-eliminate-unused-debug-symbols: -feliminate-unused-debug-symbols }} \
!   %{mx32:%eDarwin is not an mx32 platform}" \
    DARWIN_CC1_SPEC
  
  #undef ASM_SPEC
*************** extern int darwin_emit_branch_islands;
*** 115,123 ****
    " ASM_OPTIONS " -force_cpusubtype_ALL \
    %{static}" ASM_MMACOSX_VERSION_MIN_SPEC
  
- #define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}"
- #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
- 
  #undef ENDFILE_SPEC
  #define ENDFILE_SPEC \
    "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
--- 138,143 ----
*************** extern int darwin_emit_branch_islands;
*** 125,136 ****
     %{mpc64:crtprec64.o%s} \
     %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR
  
  #undef SUBTARGET_EXTRA_SPECS
  #define SUBTARGET_EXTRA_SPECS                                   \
    DARWIN_EXTRA_SPECS                                            \
!   { "darwin_arch", DARWIN_ARCH_SPEC },                          \
    { "darwin_crt2", "" },                                        \
!   { "darwin_subarch", DARWIN_SUBARCH_SPEC },
  
  /* The Darwin assembler mostly follows AT&T syntax.  */
  #undef ASSEMBLER_DIALECT
--- 145,159 ----
     %{mpc64:crtprec64.o%s} \
     %{mpc80:crtprec80.o%s}" TM_DESTRUCTOR
  
+ /* We default to x86_64 for single-arch builds, bi-arch overrides.  */
+ #define DARWIN_ARCH_SPEC "x86_64"
+ 
  #undef SUBTARGET_EXTRA_SPECS
  #define SUBTARGET_EXTRA_SPECS                                   \
    DARWIN_EXTRA_SPECS                                            \
!   { "darwin_arch", DARWIN_ARCH_SPEC },				\
    { "darwin_crt2", "" },                                        \
!   { "darwin_subarch", DARWIN_ARCH_SPEC },
  
  /* The Darwin assembler mostly follows AT&T syntax.  */
  #undef ASSEMBLER_DIALECT
*************** extern int darwin_emit_branch_islands;
*** 196,214 ****
          }				\
      } while (0)
  
  /* Darwin profiling -- call mcount.  */
  #undef FUNCTION_PROFILER
  #define FUNCTION_PROFILER(FILE, LABELNO)				\
!     do {								\
!       if (TARGET_MACHO_BRANCH_ISLANDS 					\
! 	   && MACHOPIC_INDIRECT && !TARGET_64BIT)			\
! 	{								\
! 	  const char *name = machopic_mcount_stub_name ();		\
! 	  fprintf (FILE, "\tcall %s\n", name+1);  /*  skip '&'  */	\
! 	  machopic_validate_stub_or_non_lazy_ptr (name);		\
! 	}								\
!       else fprintf (FILE, "\tcall mcount\n");				\
!     } while (0)
  
  #define C_COMMON_OVERRIDE_OPTIONS					\
    do {									\
--- 219,254 ----
          }				\
      } while (0)
  
+ #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
+ #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP)                    \
+   do {                                                                  \
+     if ((LOG) != 0) {                                                   \
+       if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1)            \
+         fprintf ((FILE), "\t.p2align %d\n", (LOG));                     \
+       else                                                              \
+         fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));     \
+     }                                                                   \
+   } while (0)
+ #endif
+ 
+ /* Darwin x86 assemblers support the .ident directive.  */
+ 
+ #undef TARGET_ASM_OUTPUT_IDENT
+ #define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive
+ 
  /* Darwin profiling -- call mcount.  */
  #undef FUNCTION_PROFILER
  #define FUNCTION_PROFILER(FILE, LABELNO)				\
!   do {									\
!     if (TARGET_MACHO_SYMBOL_STUBS 					\
! 	&& MACHOPIC_INDIRECT && !TARGET_64BIT)				\
!       {									\
! 	const char *name = machopic_mcount_stub_name ();		\
! 	fprintf (FILE, "\tcall %s\n", name+1);  /*  skip '&'  */	\
! 	machopic_validate_stub_or_non_lazy_ptr (name);			\
!       }									\
!     else fprintf (FILE, "\tcall mcount\n");				\
!   } while (0)
  
  #define C_COMMON_OVERRIDE_OPTIONS					\
    do {									\
*************** do {									\
*** 281,290 ****
          }                                                                       \
      }
  
! /* This needs to move since i386 uses the first flag and other flags are
!    used in Mach-O.  */
! #undef MACHO_SYMBOL_FLAG_VARIABLE
! #define MACHO_SYMBOL_FLAG_VARIABLE ((SYMBOL_FLAG_MACH_DEP) << 3)
  
  #undef MACHOPIC_NL_SYMBOL_PTR_SECTION
  #define MACHOPIC_NL_SYMBOL_PTR_SECTION \
--- 321,328 ----
          }                                                                       \
      }
  
! /* First available SYMBOL flag bit for use by subtargets.  */
! #define SYMBOL_FLAG_SUBT_DEP (SYMBOL_FLAG_MACH_DEP << 5)
  
  #undef MACHOPIC_NL_SYMBOL_PTR_SECTION
  #define MACHOPIC_NL_SYMBOL_PTR_SECTION \
diff -Nrcpad gcc-7.4.0/gcc/config/i386/darwin32-biarch.h gcc-7.5.0/gcc/config/i386/darwin32-biarch.h
*** gcc-7.4.0/gcc/config/i386/darwin32-biarch.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/i386/darwin32-biarch.h	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,58 ----
+ /* Target definitions for i386 running Darwin with a 32b host and supporting
+    a 64b multilib.
+    Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #undef DARWIN_ARCH_SPEC
+ #define DARWIN_ARCH_SPEC "%{m64:x86_64;:i386}"
+ 
+ /* WORKAROUND pr80556:
+    For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected
+    from libSystem).  This doesn't use the keymgr (see keymgr.c) and therefore
+    the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not
+    updated to include new images, and might not even be valid for a single
+    image.
+    Therefore, for 64b exes at least, we must use the libunwind implementation,
+    even when static-libgcc is specified.  We put libSystem first so that
+    unwinder symbols are satisfied from there. */
+ #undef REAL_LIBGCC_SPEC
+ #define REAL_LIBGCC_SPEC						   \
+    "%{static-libgcc|static: 						   \
+       %{m64:%:version-compare(>= 10.6 mmacosx-version-min= -lSystem)}	   \
+         -lgcc_eh -lgcc;							   \
+       shared-libgcc|fexceptions|fgnu-runtime:				   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4)	   \
+        %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
+        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
+        -lgcc ;								   \
+       :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
+        %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
+        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
+        -lgcc }"
+ 
+ #undef  DARWIN_SUBARCH_SPEC
+ #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
+ 
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS                                   \
+   DARWIN_EXTRA_SPECS                                            \
+   { "darwin_arch", DARWIN_ARCH_SPEC },                          \
+   { "darwin_crt2", "" },                                        \
+   { "darwin_subarch", DARWIN_SUBARCH_SPEC },
diff -Nrcpad gcc-7.4.0/gcc/config/i386/darwin64-biarch.h gcc-7.5.0/gcc/config/i386/darwin64-biarch.h
*** gcc-7.4.0/gcc/config/i386/darwin64-biarch.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/i386/darwin64-biarch.h	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,59 ----
+ /* Target definitions for x86_64 running Darwin with a 64b host supporting a
+    32b multilib.
+    Copyright (C) 2006-2019 Free Software Foundation, Inc.
+    Contributed by Apple Computer Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #undef  DARWIN_ARCH_SPEC
+ #define DARWIN_ARCH_SPEC "%{m32:i386;:x86_64}"
+ 
+ /* WORKAROUND pr80556:
+    For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected
+    from libSystem).  This doesn't use the keymgr (see keymgr.c) and therefore
+    the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not
+    updated to include new images, and might not even be valid for a single
+    image.
+    Therefore, for 64b exes at least, we must use the libunwind implementation,
+    even when static-libgcc is specified.  We put libSystem first so that
+    unwinder symbols are satisfied from there. */
+ #undef REAL_LIBGCC_SPEC
+ #define REAL_LIBGCC_SPEC						   \
+    "%{static-libgcc|static: 						   \
+       %{!m32:%:version-compare(>= 10.6 mmacosx-version-min= -lSystem)}	   \
+         -lgcc_eh -lgcc;							   \
+       shared-libgcc|fexceptions|fgnu-runtime:				   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_s.10.4)	   \
+        %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
+        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
+        -lgcc ;								   \
+       :%:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
+        %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)   \
+        %:version-compare(!> 10.5 mmacosx-version-min= -lgcc_ext.10.4)	   \
+        %:version-compare(>= 10.5 mmacosx-version-min= -lgcc_ext.10.5)	   \
+        -lgcc }"
+ 
+ #undef  DARWIN_SUBARCH_SPEC
+ #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
+ 
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS                                   \
+   DARWIN_EXTRA_SPECS                                            \
+   { "darwin_arch", DARWIN_ARCH_SPEC },                          \
+   { "darwin_crt2", "" },                                        \
+   { "darwin_subarch", DARWIN_SUBARCH_SPEC },
diff -Nrcpad gcc-7.4.0/gcc/config/i386/darwin64.h gcc-7.5.0/gcc/config/i386/darwin64.h
*** gcc-7.4.0/gcc/config/i386/darwin64.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/i386/darwin64.h	Thu Jan  1 00:00:00 1970
***************
*** 1,32 ****
- /* Target definitions for x86_64 running Darwin.
-    Copyright (C) 2006-2017 Free Software Foundation, Inc.
-    Contributed by Apple Computer Inc.
- 
- This file is part of GCC.
- 
- GCC is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3, or (at your option)
- any later version.
- 
- GCC is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
- 
- You should have received a copy of the GNU General Public License
- along with GCC; see the file COPYING3.  If not see
- <http://www.gnu.org/licenses/>.  */
- 
- #undef  DARWIN_ARCH_SPEC
- #define DARWIN_ARCH_SPEC "%{m32:i386;:x86_64}"
- 
- #undef  DARWIN_SUBARCH_SPEC
- #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
- 
- #undef SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS                                   \
-   DARWIN_EXTRA_SPECS                                            \
-   { "darwin_arch", DARWIN_ARCH_SPEC },                          \
-   { "darwin_crt2", "" },                                        \
-   { "darwin_subarch", DARWIN_SUBARCH_SPEC },
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/config/i386/emmintrin.h gcc-7.5.0/gcc/config/i386/emmintrin.h
*** gcc-7.4.0/gcc/config/i386/emmintrin.h	Tue Nov 20 14:35:43 2018
--- gcc-7.5.0/gcc/config/i386/emmintrin.h	Mon Sep  9 11:44:17 2019
*************** _mm_xor_si128 (__m128i __A, __m128i __B)
*** 1296,1302 ****
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpeq_epi8 (__m128i __A, __m128i __B)
  {
!   return (__m128i) ((__v16qs)__A == (__v16qs)__B);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
--- 1296,1302 ----
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
  _mm_cmpeq_epi8 (__m128i __A, __m128i __B)
  {
!   return (__m128i) ((__v16qi)__A == (__v16qi)__B);
  }
  
  extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__))
diff -Nrcpad gcc-7.4.0/gcc/config/i386/i386-builtin.def gcc-7.5.0/gcc/config/i386/i386-builtin.def
*** gcc-7.4.0/gcc/config/i386/i386-builtin.def	Fri Oct 12 14:55:17 2018
--- gcc-7.5.0/gcc/config/i386/i386-builtin.def	Sun Aug 25 19:51:45 2019
*************** BDESC (OPTION_MASK_ISA_SSE3, CODE_FOR_ss
*** 766,776 ****
  
  /* SSSE3 */
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv16qi2, "__builtin_ia32_pabsb128", IX86_BUILTIN_PABSB128, UNKNOWN, (int) V16QI_FTYPE_V16QI)
! BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv8qi2, "__builtin_ia32_pabsb", IX86_BUILTIN_PABSB, UNKNOWN, (int) V8QI_FTYPE_V8QI)
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv8hi2, "__builtin_ia32_pabsw128", IX86_BUILTIN_PABSW128, UNKNOWN, (int) V8HI_FTYPE_V8HI)
! BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv4hi2, "__builtin_ia32_pabsw", IX86_BUILTIN_PABSW, UNKNOWN, (int) V4HI_FTYPE_V4HI)
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv4si2, "__builtin_ia32_pabsd128", IX86_BUILTIN_PABSD128, UNKNOWN, (int) V4SI_FTYPE_V4SI)
! BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv2si2, "__builtin_ia32_pabsd", IX86_BUILTIN_PABSD, UNKNOWN, (int) V2SI_FTYPE_V2SI)
  
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_phaddwv8hi3, "__builtin_ia32_phaddw128", IX86_BUILTIN_PHADDW128, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI)
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_phaddwv4hi3, "__builtin_ia32_phaddw", IX86_BUILTIN_PHADDW, UNKNOWN, (int) V4HI_FTYPE_V4HI_V4HI)
--- 766,776 ----
  
  /* SSSE3 */
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv16qi2, "__builtin_ia32_pabsb128", IX86_BUILTIN_PABSB128, UNKNOWN, (int) V16QI_FTYPE_V16QI)
! BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_absv8qi2, "__builtin_ia32_pabsb", IX86_BUILTIN_PABSB, UNKNOWN, (int) V8QI_FTYPE_V8QI)
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv8hi2, "__builtin_ia32_pabsw128", IX86_BUILTIN_PABSW128, UNKNOWN, (int) V8HI_FTYPE_V8HI)
! BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_absv4hi2, "__builtin_ia32_pabsw", IX86_BUILTIN_PABSW, UNKNOWN, (int) V4HI_FTYPE_V4HI)
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_absv4si2, "__builtin_ia32_pabsd128", IX86_BUILTIN_PABSD128, UNKNOWN, (int) V4SI_FTYPE_V4SI)
! BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_absv2si2, "__builtin_ia32_pabsd", IX86_BUILTIN_PABSD, UNKNOWN, (int) V2SI_FTYPE_V2SI)
  
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_phaddwv8hi3, "__builtin_ia32_phaddw128", IX86_BUILTIN_PHADDW128, UNKNOWN, (int) V8HI_FTYPE_V8HI_V8HI)
  BDESC (OPTION_MASK_ISA_SSSE3, CODE_FOR_ssse3_phaddwv4hi3, "__builtin_ia32_phaddw", IX86_BUILTIN_PHADDW, UNKNOWN, (int) V4HI_FTYPE_V4HI_V4HI)
diff -Nrcpad gcc-7.4.0/gcc/config/i386/i386.c gcc-7.5.0/gcc/config/i386/i386.c
*** gcc-7.4.0/gcc/config/i386/i386.c	Tue Oct  9 17:23:06 2018
--- gcc-7.5.0/gcc/config/i386/i386.c	Fri Nov  1 20:30:26 2019
*************** ix86_option_override_internal (bool main
*** 6282,6287 ****
--- 6282,6293 ----
      target_option_default_node = target_option_current_node
        = build_target_option_node (opts);
  
+   /* PR86952: jump table usage with retpolines is slow.
+      The PR provides some numbers about the slowness.  */
+   if (ix86_indirect_branch != indirect_branch_keep
+       && !opts_set->x_flag_jump_tables)
+     opts->x_flag_jump_tables = 0;
+ 
    return true;
  }
  
*************** ix86_compute_frame_layout (void)
*** 12788,12797 ****
    /* 64-bit MS ABI seem to require stack alignment to be always 16,
       except for function prologues, leaf functions and when the defult
       incoming stack boundary is overriden at command line or via
!      force_align_arg_pointer attribute.  */
!   if ((TARGET_64BIT_MS_ABI && crtl->preferred_stack_boundary < 128)
        && (!crtl->is_leaf || cfun->calls_alloca != 0
  	  || ix86_current_function_calls_tls_descriptor
  	  || ix86_incoming_stack_boundary < 128))
      {
        crtl->preferred_stack_boundary = 128;
--- 12794,12809 ----
    /* 64-bit MS ABI seem to require stack alignment to be always 16,
       except for function prologues, leaf functions and when the defult
       incoming stack boundary is overriden at command line or via
!      force_align_arg_pointer attribute.
! 
!      Darwin's ABI specifies 128b alignment for both 32 and  64 bit variants
!      at call sites, including profile function calls.
!  */
!   if (((TARGET_64BIT_MS_ABI || TARGET_MACHO)
!         && crtl->preferred_stack_boundary < 128)
        && (!crtl->is_leaf || cfun->calls_alloca != 0
  	  || ix86_current_function_calls_tls_descriptor
+ 	  || (TARGET_MACHO && crtl->profile)
  	  || ix86_incoming_stack_boundary < 128))
      {
        crtl->preferred_stack_boundary = 128;
*************** ix86_expand_prologue (void)
*** 14493,14500 ****
  	}
        m->fs.sp_offset += allocate;
  
!       /* Use stack_pointer_rtx for relative addressing so that code
! 	 works for realigned stack, too.  */
        if (r10_live && eax_live)
          {
  	  t = gen_rtx_PLUS (Pmode, stack_pointer_rtx, eax);
--- 14505,14513 ----
  	}
        m->fs.sp_offset += allocate;
  
!       /* Use stack_pointer_rtx for relative addressing so that code works for
! 	 realigned stack.  But this means that we need a blockage to prevent
! 	 stores based on the frame pointer from being scheduled before.  */
        if (r10_live && eax_live)
          {
  	  t = gen_rtx_PLUS (Pmode, stack_pointer_rtx, eax);
*************** ix86_expand_prologue (void)
*** 14503,14508 ****
--- 14516,14522 ----
  	  t = plus_constant (Pmode, t, UNITS_PER_WORD);
  	  emit_move_insn (gen_rtx_REG (word_mode, AX_REG),
  			  gen_frame_mem (word_mode, t));
+ 	  emit_insn (gen_memory_blockage ());
  	}
        else if (eax_live || r10_live)
  	{
*************** ix86_expand_prologue (void)
*** 14510,14515 ****
--- 14524,14530 ----
  	  emit_move_insn (gen_rtx_REG (word_mode,
  				       (eax_live ? AX_REG : R10_REG)),
  			  gen_frame_mem (word_mode, t));
+ 	  emit_insn (gen_memory_blockage ());
  	}
      }
    gcc_assert (m->fs.sp_offset == frame.stack_pointer_offset);
*************** output_pic_addr_const (FILE *file, rtx x
*** 17379,17385 ****
        break;
  
      case SYMBOL_REF:
!       if (TARGET_64BIT || ! TARGET_MACHO_BRANCH_ISLANDS)
  	output_addr_const (file, x);
        else
  	{
--- 17394,17400 ----
        break;
  
      case SYMBOL_REF:
!       if (TARGET_64BIT || ! TARGET_MACHO_SYMBOL_STUBS)
  	output_addr_const (file, x);
        else
  	{
*************** print_reg (rtx x, int code, FILE *file)
*** 18164,18169 ****
--- 18179,18185 ----
     ~ -- print "i" if TARGET_AVX2, "f" otherwise.
     @ -- print a segment register of thread base pointer load
     ^ -- print addr32 prefix if TARGET_64BIT and Pmode != word_mode
+    M -- print addr32 prefix for TARGET_X32 with VSIB address.
     ! -- print MPX prefix for jxx/call/ret instructions if required.
   */
  
*************** ix86_print_operand (FILE *file, rtx x, i
*** 18723,18728 ****
--- 18739,18764 ----
  	  putc (TARGET_AVX2 ? 'i' : 'f', file);
  	  return;
  
+ 	case 'M':
+ 	  if (TARGET_X32)
+ 	    {
+ 	      /* NB: 32-bit indices in VSIB address are sign-extended
+ 		 to 64 bits. In x32, if 32-bit address 0xf7fa3010 is
+ 		 sign-extended to 0xfffffffff7fa3010 which is invalid
+ 		 address.  Add addr32 prefix if there is no base
+ 		 register nor symbol.  */
+ 	      bool ok;
+ 	      struct ix86_address parts;
+ 	      ok = ix86_decompose_address (x, &parts);
+ 	      gcc_assert (ok && parts.index == NULL_RTX);
+ 	      if (parts.base == NULL_RTX
+ 		  && (parts.disp == NULL_RTX
+ 		      || !symbolic_operand (parts.disp,
+ 					    GET_MODE (parts.disp))))
+ 		fputs ("addr32 ", file);
+ 	    }
+ 	  return;
+ 
  	case '^':
  	  if (TARGET_64BIT && Pmode != word_mode)
  	    fputs ("addr32 ", file);
*************** ix86_expand_sse_fp_minmax (rtx dest, enu
*** 24111,24116 ****
--- 24147,24154 ----
    else
      {
        code = is_min ? SMIN : SMAX;
+       if (MEM_P (if_true) && MEM_P (if_false))
+ 	if_true = force_reg (mode, if_true);
        tmp = gen_rtx_fmt_ee (code, mode, if_true, if_false);
      }
  
*************** ix86_expand_sse_fp_minmax (rtx dest, enu
*** 24118,24124 ****
    return true;
  }
  
! /* Expand an sse vector comparison.  Return the register with the result.  */
  
  static rtx
  ix86_expand_sse_cmp (rtx dest, enum rtx_code code, rtx cmp_op0, rtx cmp_op1,
--- 24156,24162 ----
    return true;
  }
  
! /* Expand an SSE comparison.  Return the register with the result.  */
  
  static rtx
  ix86_expand_sse_cmp (rtx dest, enum rtx_code code, rtx cmp_op0, rtx cmp_op1,
*************** ix86_expand_sse_cmp (rtx dest, enum rtx_
*** 24144,24152 ****
    else
      cmp_mode = cmp_ops_mode;
  
- 
    cmp_op0 = force_reg (cmp_ops_mode, cmp_op0);
!   if (!nonimmediate_operand (cmp_op1, cmp_ops_mode))
      cmp_op1 = force_reg (cmp_ops_mode, cmp_op1);
  
    if (optimize
--- 24182,24193 ----
    else
      cmp_mode = cmp_ops_mode;
  
    cmp_op0 = force_reg (cmp_ops_mode, cmp_op0);
! 
!   int (*op1_predicate)(rtx, machine_mode)
!     = VECTOR_MODE_P (cmp_ops_mode) ? vector_operand : nonimmediate_operand;
! 
!   if (!op1_predicate (cmp_op1, cmp_ops_mode))
      cmp_op1 = force_reg (cmp_ops_mode, cmp_op1);
  
    if (optimize
*************** ix86_expand_sse_movcc (rtx dest, rtx cmp
*** 24266,24272 ****
        rtx (*gen) (rtx, rtx, rtx, rtx) = NULL;
        rtx d = dest;
  
!       if (!nonimmediate_operand (op_true, mode))
  	op_true = force_reg (mode, op_true);
  
        op_false = force_reg (mode, op_false);
--- 24307,24313 ----
        rtx (*gen) (rtx, rtx, rtx, rtx) = NULL;
        rtx d = dest;
  
!       if (!vector_operand (op_true, mode))
  	op_true = force_reg (mode, op_true);
  
        op_false = force_reg (mode, op_false);
*************** ix86_nopic_noplt_attribute_p (rtx call_o
*** 28821,28826 ****
--- 28862,28886 ----
    return false;
  }
  
+ /* Helper to output the jmp/call.  */
+ static void
+ ix86_output_jmp_thunk_or_indirect (const char *thunk_name,
+ 				   bool need_bnd_p,
+ 				   const int regno)
+ {
+   if (thunk_name != NULL)
+     {
+       if (need_bnd_p)
+ 	fprintf (asm_out_file, "\tbnd jmp\t");
+       else
+ 	fprintf (asm_out_file, "\tjmp\t");
+       assemble_name (asm_out_file, thunk_name);
+       putc ('\n', asm_out_file);
+     }
+   else
+     output_indirect_thunk (need_bnd_p, regno);
+ }
+ 
  /* Output indirect branch via a call and return thunk.  CALL_OP is a
     register which contains the branch target.  XASM is the assembly
     template for CALL_OP.  Branch is a tail call if SIBCALL_P is true.
*************** ix86_output_indirect_branch_via_reg (rtx
*** 28861,28885 ****
      thunk_name = NULL;
  
    if (sibcall_p)
!     {
!       if (thunk_name != NULL)
! 	{
! 	  if (need_bnd_p)
! 	    fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name);
! 	  else
! 	    fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name);
! 	}
!       else
! 	output_indirect_thunk (need_bnd_p, regno);
!     }
    else
      {
        if (thunk_name != NULL)
  	{
  	  if (need_bnd_p)
! 	    fprintf (asm_out_file, "\tbnd call\t%s\n", thunk_name);
  	  else
! 	    fprintf (asm_out_file, "\tcall\t%s\n", thunk_name);
  	  return;
  	}
  
--- 28921,28937 ----
      thunk_name = NULL;
  
    if (sibcall_p)
!     ix86_output_jmp_thunk_or_indirect (thunk_name, need_bnd_p, regno);
    else
      {
        if (thunk_name != NULL)
  	{
  	  if (need_bnd_p)
! 	    fprintf (asm_out_file, "\tbnd call\t");
  	  else
! 	    fprintf (asm_out_file, "\tcall\t");
! 	  assemble_name (asm_out_file, thunk_name);
! 	  putc ('\n', asm_out_file);
  	  return;
  	}
  
*************** ix86_output_indirect_branch_via_reg (rtx
*** 28903,28917 ****
  
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel1);
  
!       if (thunk_name != NULL)
! 	{
! 	  if (need_bnd_p)
! 	    fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name);
! 	  else
! 	    fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name);
! 	}
!       else
! 	output_indirect_thunk (need_bnd_p, regno);
  
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2);
  
--- 28955,28961 ----
  
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel1);
  
!       ix86_output_jmp_thunk_or_indirect (thunk_name, need_bnd_p, regno);
  
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2);
  
*************** ix86_output_indirect_branch_via_push (rt
*** 28975,28989 ****
    if (sibcall_p)
      {
        output_asm_insn (push_buf, &call_op);
!       if (thunk_name != NULL)
! 	{
! 	  if (need_bnd_p)
! 	    fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name);
! 	  else
! 	    fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name);
! 	}
!       else
! 	output_indirect_thunk (need_bnd_p, regno);
      }
    else
      {
--- 29019,29025 ----
    if (sibcall_p)
      {
        output_asm_insn (push_buf, &call_op);
!       ix86_output_jmp_thunk_or_indirect (thunk_name, need_bnd_p, regno);
      }
    else
      {
*************** ix86_output_indirect_branch_via_push (rt
*** 29042,29056 ****
  
        output_asm_insn (push_buf, &call_op);
  
!       if (thunk_name != NULL)
! 	{
! 	  if (need_bnd_p)
! 	    fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name);
! 	  else
! 	    fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name);
! 	}
!       else
! 	output_indirect_thunk (need_bnd_p, regno);
  
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2);
  
--- 29078,29084 ----
  
        output_asm_insn (push_buf, &call_op);
  
!       ix86_output_jmp_thunk_or_indirect (thunk_name, need_bnd_p, regno);
  
        ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel2);
  
*************** ix86_output_function_return (bool long_p
*** 29118,29130 ****
  	  if (need_bnd_p)
  	    {
  	      indirect_return_bnd_needed |= need_thunk;
! 	      fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name);
  	    }
  	  else
  	    {
  	      indirect_return_needed |= need_thunk;
! 	      fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name);
  	    }
  	}
        else
  	output_indirect_thunk (need_bnd_p, INVALID_REGNUM);
--- 29146,29160 ----
  	  if (need_bnd_p)
  	    {
  	      indirect_return_bnd_needed |= need_thunk;
! 	      fprintf (asm_out_file, "\tbnd jmp\t");
  	    }
  	  else
  	    {
  	      indirect_return_needed |= need_thunk;
! 	      fprintf (asm_out_file, "\tjmp\t");
  	    }
+ 	  assemble_name (asm_out_file, thunk_name);
+ 	  putc ('\n', asm_out_file);
  	}
        else
  	output_indirect_thunk (need_bnd_p, INVALID_REGNUM);
*************** ix86_output_indirect_function_return (rt
*** 29164,29170 ****
  		  indirect_return_via_cx_bnd = true;
  		  indirect_thunks_bnd_used |= 1 << CX_REG;
  		}
! 	      fprintf (asm_out_file, "\tbnd jmp\t%s\n", thunk_name);
  	    }
  	  else
  	    {
--- 29194,29200 ----
  		  indirect_return_via_cx_bnd = true;
  		  indirect_thunks_bnd_used |= 1 << CX_REG;
  		}
! 	      fprintf (asm_out_file, "\tbnd jmp\t");
  	    }
  	  else
  	    {
*************** ix86_output_indirect_function_return (rt
*** 29173,29180 ****
  		  indirect_return_via_cx = true;
  		  indirect_thunks_used |= 1 << CX_REG;
  		}
! 	      fprintf (asm_out_file, "\tjmp\t%s\n", thunk_name);
  	    }
  	}
        else
  	output_indirect_thunk (need_bnd_p, regno);
--- 29203,29212 ----
  		  indirect_return_via_cx = true;
  		  indirect_thunks_used |= 1 << CX_REG;
  		}
! 	      fprintf (asm_out_file, "\tjmp\t");
  	    }
+ 	  assemble_name (asm_out_file, thunk_name);
+ 	  putc ('\n', asm_out_file);
  	}
        else
  	output_indirect_thunk (need_bnd_p, regno);
*************** ix86_expand_builtin (tree exp, rtx targe
*** 38388,38393 ****
--- 38420,38435 ----
            unsigned char lsb_index = INTVAL (op1) & 0xFF;
            op1 = GEN_INT (length);
            op2 = GEN_INT (lsb_index);
+ 
+ 	  mode1 = insn_data[icode].operand[1].mode;
+ 	  if (!insn_data[icode].operand[1].predicate (op0, mode1))
+ 	    op0 = copy_to_mode_reg (mode1, op0);
+ 
+ 	  mode0 = insn_data[icode].operand[0].mode;
+ 	  if (target == 0
+ 	      || !register_operand (target, mode0))
+ 	    target = gen_reg_rtx (mode0);
+ 
            pat = GEN_FCN (icode) (target, op0, op1, op2);
            if (pat)
              emit_insn (pat);
*************** ix86_vectorize_builtin_scatter (const_tr
*** 40478,40484 ****
  static bool
  use_rsqrt_p ()
  {
!   return (TARGET_SSE_MATH
  	  && flag_finite_math_only
  	  && !flag_trapping_math
  	  && flag_unsafe_math_optimizations);
--- 40520,40526 ----
  static bool
  use_rsqrt_p ()
  {
!   return (TARGET_SSE && TARGET_SSE_MATH
  	  && flag_finite_math_only
  	  && !flag_trapping_math
  	  && flag_unsafe_math_optimizations);
*************** ix86_expand_floorceildf_32 (rtx operand0
*** 46176,46183 ****
            x2 -= 1;
       Compensate.  Ceil:
          if (x2 < x)
!           x2 -= -1;
!         return x2;
     */
    machine_mode mode = GET_MODE (operand0);
    rtx xa, TWO52, tmp, one, res, mask;
--- 46218,46227 ----
            x2 -= 1;
       Compensate.  Ceil:
          if (x2 < x)
!           x2 += 1;
! 	if (HONOR_SIGNED_ZEROS (mode))
! 	  x2 = copysign (x2, x);
! 	return x2;
     */
    machine_mode mode = GET_MODE (operand0);
    rtx xa, TWO52, tmp, one, res, mask;
*************** ix86_expand_floorceildf_32 (rtx operand0
*** 46203,46219 ****
    /* xa = copysign (xa, operand1) */
    ix86_sse_copysign_to_positive (xa, xa, res, mask);
  
!   /* generate 1.0 or -1.0 */
!   one = force_reg (mode,
! 	           const_double_from_real_value (do_floor
! 						 ? dconst1 : dconstm1, mode));
  
    /* Compensate: xa = xa - (xa > operand1 ? 1 : 0) */
    tmp = ix86_expand_sse_compare_mask (UNGT, xa, res, !do_floor);
    emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, one, tmp)));
!   /* We always need to subtract here to preserve signed zero.  */
!   tmp = expand_simple_binop (mode, MINUS,
  			     xa, tmp, NULL_RTX, 0, OPTAB_DIRECT);
    emit_move_insn (res, tmp);
  
    emit_label (label);
--- 46247,46262 ----
    /* xa = copysign (xa, operand1) */
    ix86_sse_copysign_to_positive (xa, xa, res, mask);
  
!   /* generate 1.0 */
!   one = force_reg (mode, const_double_from_real_value (dconst1, mode));
  
    /* Compensate: xa = xa - (xa > operand1 ? 1 : 0) */
    tmp = ix86_expand_sse_compare_mask (UNGT, xa, res, !do_floor);
    emit_insn (gen_rtx_SET (tmp, gen_rtx_AND (mode, one, tmp)));
!   tmp = expand_simple_binop (mode, do_floor ? MINUS : PLUS,
  			     xa, tmp, NULL_RTX, 0, OPTAB_DIRECT);
+   if (!do_floor && HONOR_SIGNED_ZEROS (mode))
+     ix86_sse_copysign_to_positive (tmp, tmp, res, mask);
    emit_move_insn (res, tmp);
  
    emit_label (label);
*************** static bool
*** 46772,46778 ****
  expand_vec_perm_blend (struct expand_vec_perm_d *d)
  {
    machine_mode mmode, vmode = d->vmode;
!   unsigned i, mask, nelt = d->nelt;
    rtx target, op0, op1, maskop, x;
    rtx rperm[32], vperm;
  
--- 46815,46822 ----
  expand_vec_perm_blend (struct expand_vec_perm_d *d)
  {
    machine_mode mmode, vmode = d->vmode;
!   unsigned i, nelt = d->nelt;
!   unsigned HOST_WIDE_INT mask;
    rtx target, op0, op1, maskop, x;
    rtx rperm[32], vperm;
  
*************** expand_vec_perm_blend (struct expand_vec
*** 46826,46832 ****
      case V16SImode:
      case V8DImode:
        for (i = 0; i < nelt; ++i)
! 	mask |= (d->perm[i] >= nelt) << i;
        break;
  
      case V2DImode:
--- 46870,46876 ----
      case V16SImode:
      case V8DImode:
        for (i = 0; i < nelt; ++i)
! 	mask |= ((unsigned HOST_WIDE_INT) (d->perm[i] >= nelt)) << i;
        break;
  
      case V2DImode:
*************** ix86_simd_clone_compute_vecsize_and_simd
*** 51694,51700 ****
        case DFmode:
        /* case SCmode: */
        /* case DCmode: */
! 	break;
        default:
  	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
  		    "unsupported return type %qT for simd\n", ret_type);
--- 51738,51746 ----
        case DFmode:
        /* case SCmode: */
        /* case DCmode: */
! 	if (!AGGREGATE_TYPE_P (ret_type))
! 	  break;
! 	/* FALLTHRU */
        default:
  	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
  		    "unsupported return type %qT for simd\n", ret_type);
*************** ix86_simd_clone_compute_vecsize_and_simd
*** 51703,51727 ****
  
    tree t;
    int i;
  
!   for (t = DECL_ARGUMENTS (node->decl), i = 0; t; t = DECL_CHAIN (t), i++)
!     /* FIXME: Shouldn't we allow such arguments if they are uniform?  */
!     switch (TYPE_MODE (TREE_TYPE (t)))
!       {
!       case QImode:
!       case HImode:
!       case SImode:
!       case DImode:
!       case SFmode:
!       case DFmode:
!       /* case SCmode: */
!       /* case DCmode: */
! 	break;
!       default:
! 	warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 		    "unsupported argument type %qT for simd\n", TREE_TYPE (t));
! 	return 0;
!       }
  
    if (clonei->cilk_elemental)
      {
--- 51749,51782 ----
  
    tree t;
    int i;
+   tree type_arg_types = TYPE_ARG_TYPES (TREE_TYPE (node->decl));
+   bool decl_arg_p = (node->definition || type_arg_types == NULL_TREE);
  
!   for (t = (decl_arg_p ? DECL_ARGUMENTS (node->decl) : type_arg_types), i = 0;
!        t && t != void_list_node; t = TREE_CHAIN (t), i++)
!     {
!       tree arg_type = decl_arg_p ? TREE_TYPE (t) : TREE_VALUE (t);
!       switch (TYPE_MODE (arg_type))
! 	{
! 	case QImode:
! 	case HImode:
! 	case SImode:
! 	case DImode:
! 	case SFmode:
! 	case DFmode:
! 	/* case SCmode: */
! 	/* case DCmode: */
! 	  if (!AGGREGATE_TYPE_P (arg_type))
! 	    break;
! 	  /* FALLTHRU */
! 	default:
! 	  if (clonei->args[i].arg_type == SIMD_CLONE_ARG_TYPE_UNIFORM)
! 	    break;
! 	  warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
! 		      "unsupported argument type %qT for simd\n", arg_type);
! 	  return 0;
! 	}
!     }
  
    if (clonei->cilk_elemental)
      {
*************** ix86_float_exceptions_rounding_supported
*** 51933,51939 ****
       there is no adddf3 pattern (since x87 floating point only has
       XFmode operations) so the default hook implementation gets this
       wrong.  */
!   return TARGET_80387 || TARGET_SSE_MATH;
  }
  
  /* Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV.  */
--- 51988,51994 ----
       there is no adddf3 pattern (since x87 floating point only has
       XFmode operations) so the default hook implementation gets this
       wrong.  */
!   return TARGET_80387 || (TARGET_SSE && TARGET_SSE_MATH);
  }
  
  /* Implement TARGET_ATOMIC_ASSIGN_EXPAND_FENV.  */
*************** ix86_float_exceptions_rounding_supported
*** 51941,51947 ****
  static void
  ix86_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update)
  {
!   if (!TARGET_80387 && !TARGET_SSE_MATH)
      return;
    tree exceptions_var = create_tmp_var_raw (integer_type_node);
    if (TARGET_80387)
--- 51996,52002 ----
  static void
  ix86_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update)
  {
!   if (!TARGET_80387 && !(TARGET_SSE && TARGET_SSE_MATH))
      return;
    tree exceptions_var = create_tmp_var_raw (integer_type_node);
    if (TARGET_80387)
*************** ix86_atomic_assign_expand_fenv (tree *ho
*** 51976,51982 ****
        tree update_fldenv = build_call_expr (fldenv, 1, fenv_addr);
        *update = build2 (COMPOUND_EXPR, void_type_node, *update, update_fldenv);
      }
!   if (TARGET_SSE_MATH)
      {
        tree mxcsr_orig_var = create_tmp_var_raw (unsigned_type_node);
        tree mxcsr_mod_var = create_tmp_var_raw (unsigned_type_node);
--- 52031,52037 ----
        tree update_fldenv = build_call_expr (fldenv, 1, fenv_addr);
        *update = build2 (COMPOUND_EXPR, void_type_node, *update, update_fldenv);
      }
!   if (TARGET_SSE && TARGET_SSE_MATH)
      {
        tree mxcsr_orig_var = create_tmp_var_raw (unsigned_type_node);
        tree mxcsr_mod_var = create_tmp_var_raw (unsigned_type_node);
*************** ix86_expand_divmod_libfunc (rtx libfunc,
*** 52301,52310 ****
    rtx rem = assign_386_stack_local (mode, SLOT_TEMP);
  
    rtx quot = emit_library_call_value (libfunc, NULL_RTX, LCT_NORMAL,
! 				    mode, 3,
! 				    op0, GET_MODE (op0),
! 				    op1, GET_MODE (op1),
! 				    XEXP (rem, 0), Pmode);
    *quot_p = quot;
    *rem_p = rem;
  }
--- 52356,52363 ----
    rtx rem = assign_386_stack_local (mode, SLOT_TEMP);
  
    rtx quot = emit_library_call_value (libfunc, NULL_RTX, LCT_NORMAL,
! 				      mode, 3, op0, mode, op1, mode,
! 				      XEXP (rem, 0), Pmode);
    *quot_p = quot;
    *rem_p = rem;
  }
*************** ix86_excess_precision (enum excess_preci
*** 52335,52341 ****
  	  return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT;
  	else if (!TARGET_MIX_SSE_I387)
  	  {
! 	    if (!TARGET_SSE_MATH)
  	      return FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE;
  	    else if (TARGET_SSE2)
  	      return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT;
--- 52388,52394 ----
  	  return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT;
  	else if (!TARGET_MIX_SSE_I387)
  	  {
! 	    if (!(TARGET_SSE && TARGET_SSE_MATH))
  	      return FLT_EVAL_METHOD_PROMOTE_TO_LONG_DOUBLE;
  	    else if (TARGET_SSE2)
  	      return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT;
diff -Nrcpad gcc-7.4.0/gcc/config/i386/i386.h gcc-7.5.0/gcc/config/i386/i386.h
*** gcc-7.4.0/gcc/config/i386/i386.h	Sun Nov 18 21:36:30 2018
--- gcc-7.5.0/gcc/config/i386/i386.h	Fri Nov  1 20:30:26 2019
*************** extern tree x86_mfence;
*** 590,596 ****
  /* Replace MACH-O, ifdefs by in-line tests, where possible. 
     (a) Macros defined in config/i386/darwin.h  */
  #define TARGET_MACHO 0
! #define TARGET_MACHO_BRANCH_ISLANDS 0
  #define MACHOPIC_ATT_STUB 0
  /* (b) Macros defined in config/darwin.h  */
  #define MACHO_DYNAMIC_NO_PIC_P 0
--- 590,596 ----
  /* Replace MACH-O, ifdefs by in-line tests, where possible. 
     (a) Macros defined in config/i386/darwin.h  */
  #define TARGET_MACHO 0
! #define TARGET_MACHO_SYMBOL_STUBS 0
  #define MACHOPIC_ATT_STUB 0
  /* (b) Macros defined in config/darwin.h  */
  #define MACHO_DYNAMIC_NO_PIC_P 0
diff -Nrcpad gcc-7.4.0/gcc/config/i386/i386.md gcc-7.5.0/gcc/config/i386/i386.md
*** gcc-7.4.0/gcc/config/i386/i386.md	Tue Aug 21 16:27:22 2018
--- gcc-7.5.0/gcc/config/i386/i386.md	Thu May 23 04:55:40 2019
***************
*** 8268,8274 ****
    [(parallel [(set (match_dup 0)
  		   (zero_extend:DI (and:SI (match_dup 1) (match_dup 2))))
  	      (clobber (reg:CC FLAGS_REG))])]
!   "operands[2] = gen_lowpart (SImode, operands[2]);")
  
  ;; See comment for addsi_1_zext why we do use nonimmediate_operand
  (define_insn "*andsi_1_zext"
--- 8268,8291 ----
    [(parallel [(set (match_dup 0)
  		   (zero_extend:DI (and:SI (match_dup 1) (match_dup 2))))
  	      (clobber (reg:CC FLAGS_REG))])]
! {
!   if (GET_CODE (operands[2]) == SYMBOL_REF
!       || GET_CODE (operands[2]) == LABEL_REF)
!     {
!       operands[2] = shallow_copy_rtx (operands[2]);
!       PUT_MODE (operands[2], SImode);
!     }
!   else if (GET_CODE (operands[2]) == CONST)
!     {
!       /* (const:DI (plus:DI (symbol_ref:DI ("...")) (const_int N))) */
!       operands[2] = copy_rtx (operands[2]);
!       PUT_MODE (operands[2], SImode);
!       PUT_MODE (XEXP (operands[2], 0), SImode);
!       PUT_MODE (XEXP (XEXP (operands[2], 0), 0), SImode);
!     }    
!   else
!     operands[2] = gen_lowpart (SImode, operands[2]);
! })
  
  ;; See comment for addsi_1_zext why we do use nonimmediate_operand
  (define_insn "*andsi_1_zext"
diff -Nrcpad gcc-7.4.0/gcc/config/i386/sse.md gcc-7.5.0/gcc/config/i386/sse.md
*** gcc-7.4.0/gcc/config/i386/sse.md	Thu Nov 22 22:46:54 2018
--- gcc-7.5.0/gcc/config/i386/sse.md	Fri Aug 30 11:32:15 2019
***************
*** 1777,1783 ****
    [(set (match_operand:VF1_128_256 0 "register_operand")
  	(unspec:VF1_128_256
  	  [(match_operand:VF1_128_256 1 "vector_operand")] UNSPEC_RSQRT))]
!   "TARGET_SSE_MATH"
  {
    ix86_emit_swsqrtsf (operands[0], operands[1], <MODE>mode, true);
    DONE;
--- 1777,1783 ----
    [(set (match_operand:VF1_128_256 0 "register_operand")
  	(unspec:VF1_128_256
  	  [(match_operand:VF1_128_256 1 "vector_operand")] UNSPEC_RSQRT))]
!   "TARGET_SSE && TARGET_SSE_MATH"
  {
    ix86_emit_swsqrtsf (operands[0], operands[1], <MODE>mode, true);
    DONE;
***************
*** 4601,4637 ****
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  (define_insn "sse2_cvtpi2pd"
!   [(set (match_operand:V2DF 0 "register_operand" "=x,x")
! 	(float:V2DF (match_operand:V2SI 1 "nonimmediate_operand" "y,m")))]
    "TARGET_SSE2"
!   "cvtpi2pd\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt")
!    (set_attr "unit" "mmx,*")
!    (set_attr "prefix_data16" "1,*")
     (set_attr "mode" "V2DF")])
  
  (define_insn "sse2_cvtpd2pi"
!   [(set (match_operand:V2SI 0 "register_operand" "=y")
! 	(unspec:V2SI [(match_operand:V2DF 1 "nonimmediate_operand" "xm")]
  		     UNSPEC_FIX_NOTRUNC))]
    "TARGET_SSE2"
!   "cvtpd2pi\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt")
!    (set_attr "unit" "mmx")
     (set_attr "bdver1_decode" "double")
!    (set_attr "btver2_decode" "direct")
!    (set_attr "prefix_data16" "1")
!    (set_attr "mode" "DI")])
  
  (define_insn "sse2_cvttpd2pi"
!   [(set (match_operand:V2SI 0 "register_operand" "=y")
! 	(fix:V2SI (match_operand:V2DF 1 "nonimmediate_operand" "xm")))]
    "TARGET_SSE2"
!   "cvttpd2pi\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt")
!    (set_attr "unit" "mmx")
     (set_attr "bdver1_decode" "double")
!    (set_attr "prefix_data16" "1")
     (set_attr "mode" "TI")])
  
  (define_insn "sse2_cvtsi2sd"
--- 4601,4649 ----
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  (define_insn "sse2_cvtpi2pd"
!   [(set (match_operand:V2DF 0 "register_operand" "=v,x")
! 	(float:V2DF (match_operand:V2SI 1 "nonimmediate_operand" "vBm,?!y")))]
    "TARGET_SSE2"
!   "@
!    %vcvtdq2pd\t{%1, %0|%0, %1}
!    cvtpi2pd\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt")
!    (set_attr "unit" "*,mmx")
!    (set_attr "prefix_data16" "*,1")
!    (set_attr "prefix" "maybe_vex,*")
     (set_attr "mode" "V2DF")])
  
  (define_insn "sse2_cvtpd2pi"
!   [(set (match_operand:V2SI 0 "register_operand" "=v,?!y")
! 	(unspec:V2SI [(match_operand:V2DF 1 "nonimmediate_operand" "vBm,xm")]
  		     UNSPEC_FIX_NOTRUNC))]
    "TARGET_SSE2"
!   "@
!    * return TARGET_AVX ? \"vcvtpd2dq{x}\t{%1, %0|%0, %1}\" : \"cvtpd2dq\t{%1, %0|%0, %1}\";
!    cvtpd2pi\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt")
!    (set_attr "unit" "*,mmx")
!    (set_attr "amdfam10_decode" "double")
!    (set_attr "athlon_decode" "vector")
     (set_attr "bdver1_decode" "double")
!    (set_attr "prefix_data16" "*,1")
!    (set_attr "prefix" "maybe_vex,*")
!    (set_attr "mode" "TI")])
  
  (define_insn "sse2_cvttpd2pi"
!   [(set (match_operand:V2SI 0 "register_operand" "=v,?!y")
! 	(fix:V2SI (match_operand:V2DF 1 "nonimmediate_operand" "vBm,xm")))]
    "TARGET_SSE2"
!   "@
!    * return TARGET_AVX ? \"vcvttpd2dq{x}\t{%1, %0|%0, %1}\" : \"cvttpd2dq\t{%1, %0|%0, %1}\";
!    cvttpd2pi\t{%1, %0|%0, %1}"
    [(set_attr "type" "ssecvt")
!    (set_attr "unit" "*,mmx")
!    (set_attr "amdfam10_decode" "double")
!    (set_attr "athlon_decode" "vector")
     (set_attr "bdver1_decode" "double")
!    (set_attr "prefix_data16" "*,1")
!    (set_attr "prefix" "maybe_vex,*")
     (set_attr "mode" "TI")])
  
  (define_insn "sse2_cvtsi2sd"
***************
*** 12684,12696 ****
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:VI8F_256 1 "register_operand" "v")
  	    (match_operand:VI8F_256 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3  "const_0_to_3_operand")
! 		     (match_operand 4  "const_0_to_3_operand")
! 		     (match_operand 5  "const_4_to_7_operand")
! 		     (match_operand 6  "const_4_to_7_operand")])))]
    "TARGET_AVX512VL
!    && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
!        && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1))"
  {
    int mask;
    mask = INTVAL (operands[3]) / 2;
--- 12696,12710 ----
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:VI8F_256 1 "register_operand" "v")
  	    (match_operand:VI8F_256 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3 "const_0_to_3_operand")
! 		     (match_operand 4 "const_0_to_3_operand")
! 		     (match_operand 5 "const_4_to_7_operand")
! 		     (match_operand 6 "const_4_to_7_operand")])))]
    "TARGET_AVX512VL
!    && (INTVAL (operands[3]) & 1) == 0
!    && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
!    && (INTVAL (operands[5]) & 1) == 0
!    && INTVAL (operands[5]) == INTVAL (operands[6]) - 1"
  {
    int mask;
    mask = INTVAL (operands[3]) / 2;
***************
*** 12733,12751 ****
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:V8FI 1 "register_operand" "v")
  	    (match_operand:V8FI 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3  "const_0_to_7_operand")
! 		     (match_operand 4  "const_0_to_7_operand")
! 		     (match_operand 5  "const_0_to_7_operand")
! 		     (match_operand 6  "const_0_to_7_operand")
! 		     (match_operand 7  "const_8_to_15_operand")
! 		     (match_operand 8  "const_8_to_15_operand")
! 		     (match_operand 9  "const_8_to_15_operand")
! 		     (match_operand 10  "const_8_to_15_operand")])))]
    "TARGET_AVX512F
!    && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
!        && INTVAL (operands[5]) == (INTVAL (operands[6]) - 1)
!        && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
!        && INTVAL (operands[9]) == (INTVAL (operands[10]) - 1))"
  {
    int mask;
    mask = INTVAL (operands[3]) / 2;
--- 12747,12769 ----
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:V8FI 1 "register_operand" "v")
  	    (match_operand:V8FI 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3 "const_0_to_7_operand")
! 		     (match_operand 4 "const_0_to_7_operand")
! 		     (match_operand 5 "const_0_to_7_operand")
! 		     (match_operand 6 "const_0_to_7_operand")
! 		     (match_operand 7 "const_8_to_15_operand")
! 		     (match_operand 8 "const_8_to_15_operand")
! 		     (match_operand 9 "const_8_to_15_operand")
! 		     (match_operand 10 "const_8_to_15_operand")])))]
    "TARGET_AVX512F
!    && (INTVAL (operands[3]) & 1) == 0
!    && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
!    && (INTVAL (operands[5]) & 1) == 0
!    && INTVAL (operands[5]) == INTVAL (operands[6]) - 1
!    && (INTVAL (operands[7]) & 1) == 0
!    && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
!    && (INTVAL (operands[9]) & 1) == 0
!    && INTVAL (operands[9]) == INTVAL (operands[10]) - 1"
  {
    int mask;
    mask = INTVAL (operands[3]) / 2;
***************
*** 12791,12811 ****
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:VI4F_256 1 "register_operand" "v")
  	    (match_operand:VI4F_256 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3  "const_0_to_7_operand")
! 		     (match_operand 4  "const_0_to_7_operand")
! 		     (match_operand 5  "const_0_to_7_operand")
! 		     (match_operand 6  "const_0_to_7_operand")
! 		     (match_operand 7  "const_8_to_15_operand")
! 		     (match_operand 8  "const_8_to_15_operand")
! 		     (match_operand 9  "const_8_to_15_operand")
  		     (match_operand 10 "const_8_to_15_operand")])))]
    "TARGET_AVX512VL
!    && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
!        && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
!        && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
!        && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
!        && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
!        && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3))"
  {
    int mask;
    mask = INTVAL (operands[3]) / 4;
--- 12809,12831 ----
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:VI4F_256 1 "register_operand" "v")
  	    (match_operand:VI4F_256 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3 "const_0_to_7_operand")
! 		     (match_operand 4 "const_0_to_7_operand")
! 		     (match_operand 5 "const_0_to_7_operand")
! 		     (match_operand 6 "const_0_to_7_operand")
! 		     (match_operand 7 "const_8_to_15_operand")
! 		     (match_operand 8 "const_8_to_15_operand")
! 		     (match_operand 9 "const_8_to_15_operand")
  		     (match_operand 10 "const_8_to_15_operand")])))]
    "TARGET_AVX512VL
!    && (INTVAL (operands[3]) & 3) == 0
!    && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
!    && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
!    && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
!    && (INTVAL (operands[7]) & 3) == 0
!    && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
!    && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
!    && INTVAL (operands[7]) == INTVAL (operands[10]) - 3"
  {
    int mask;
    mask = INTVAL (operands[3]) / 4;
***************
*** 12857,12891 ****
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:V16FI 1 "register_operand" "v")
  	    (match_operand:V16FI 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3  "const_0_to_15_operand")
! 		     (match_operand 4  "const_0_to_15_operand")
! 		     (match_operand 5  "const_0_to_15_operand")
! 		     (match_operand 6  "const_0_to_15_operand")
! 		     (match_operand 7  "const_0_to_15_operand")
! 		     (match_operand 8  "const_0_to_15_operand")
! 		     (match_operand 9  "const_0_to_15_operand")
! 		     (match_operand 10  "const_0_to_15_operand")
! 		     (match_operand 11  "const_16_to_31_operand")
! 		     (match_operand 12  "const_16_to_31_operand")
! 		     (match_operand 13  "const_16_to_31_operand")
! 		     (match_operand 14  "const_16_to_31_operand")
! 		     (match_operand 15  "const_16_to_31_operand")
! 		     (match_operand 16  "const_16_to_31_operand")
! 		     (match_operand 17  "const_16_to_31_operand")
! 		     (match_operand 18  "const_16_to_31_operand")])))]
    "TARGET_AVX512F
!    && (INTVAL (operands[3]) == (INTVAL (operands[4]) - 1)
!        && INTVAL (operands[3]) == (INTVAL (operands[5]) - 2)
!        && INTVAL (operands[3]) == (INTVAL (operands[6]) - 3)
!        && INTVAL (operands[7]) == (INTVAL (operands[8]) - 1)
!        && INTVAL (operands[7]) == (INTVAL (operands[9]) - 2)
!        && INTVAL (operands[7]) == (INTVAL (operands[10]) - 3)
!        && INTVAL (operands[11]) == (INTVAL (operands[12]) - 1)
!        && INTVAL (operands[11]) == (INTVAL (operands[13]) - 2)
!        && INTVAL (operands[11]) == (INTVAL (operands[14]) - 3)
!        && INTVAL (operands[15]) == (INTVAL (operands[16]) - 1)
!        && INTVAL (operands[15]) == (INTVAL (operands[17]) - 2)
!        && INTVAL (operands[15]) == (INTVAL (operands[18]) - 3))"
  {
    int mask;
    mask = INTVAL (operands[3]) / 4;
--- 12877,12915 ----
  	  (vec_concat:<ssedoublemode>
  	    (match_operand:V16FI 1 "register_operand" "v")
  	    (match_operand:V16FI 2 "nonimmediate_operand" "vm"))
! 	  (parallel [(match_operand 3 "const_0_to_15_operand")
! 		     (match_operand 4 "const_0_to_15_operand")
! 		     (match_operand 5 "const_0_to_15_operand")
! 		     (match_operand 6 "const_0_to_15_operand")
! 		     (match_operand 7 "const_0_to_15_operand")
! 		     (match_operand 8 "const_0_to_15_operand")
! 		     (match_operand 9 "const_0_to_15_operand")
! 		     (match_operand 10 "const_0_to_15_operand")
! 		     (match_operand 11 "const_16_to_31_operand")
! 		     (match_operand 12 "const_16_to_31_operand")
! 		     (match_operand 13 "const_16_to_31_operand")
! 		     (match_operand 14 "const_16_to_31_operand")
! 		     (match_operand 15 "const_16_to_31_operand")
! 		     (match_operand 16 "const_16_to_31_operand")
! 		     (match_operand 17 "const_16_to_31_operand")
! 		     (match_operand 18 "const_16_to_31_operand")])))]
    "TARGET_AVX512F
!    && (INTVAL (operands[3]) & 3) == 0
!    && INTVAL (operands[3]) == INTVAL (operands[4]) - 1
!    && INTVAL (operands[3]) == INTVAL (operands[5]) - 2
!    && INTVAL (operands[3]) == INTVAL (operands[6]) - 3
!    && (INTVAL (operands[7]) & 3) == 0
!    && INTVAL (operands[7]) == INTVAL (operands[8]) - 1
!    && INTVAL (operands[7]) == INTVAL (operands[9]) - 2
!    && INTVAL (operands[7]) == INTVAL (operands[10]) - 3
!    && (INTVAL (operands[11]) & 3) == 0
!    && INTVAL (operands[11]) == INTVAL (operands[12]) - 1
!    && INTVAL (operands[11]) == INTVAL (operands[13]) - 2
!    && INTVAL (operands[11]) == INTVAL (operands[14]) - 3
!    && (INTVAL (operands[15]) & 3) == 0
!    && INTVAL (operands[15]) == INTVAL (operands[16]) - 1
!    && INTVAL (operands[15]) == INTVAL (operands[17]) - 2
!    && INTVAL (operands[15]) == INTVAL (operands[18]) - 3"
  {
    int mask;
    mask = INTVAL (operands[3]) / 4;
***************
*** 14918,14924 ****
      }
  })
  
! (define_insn "abs<mode>2"
    [(set (match_operand:MMXMODEI 0 "register_operand" "=y")
  	(abs:MMXMODEI
  	  (match_operand:MMXMODEI 1 "nonimmediate_operand" "ym")))]
--- 14942,14948 ----
      }
  })
  
! (define_insn "ssse3_abs<mode>2"
    [(set (match_operand:MMXMODEI 0 "register_operand" "=y")
  	(abs:MMXMODEI
  	  (match_operand:MMXMODEI 1 "nonimmediate_operand" "ym")))]
***************
*** 16015,16023 ****
    switch (INTVAL (operands[4]))
      {
      case 3:
!       return "vgatherpf0<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      case 2:
!       return "vgatherpf1<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
--- 16039,16047 ----
    switch (INTVAL (operands[4]))
      {
      case 3:
!       return "%M2vgatherpf0<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      case 2:
!       return "%M2vgatherpf1<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
***************
*** 16060,16068 ****
    switch (INTVAL (operands[4]))
      {
      case 3:
!       return "vgatherpf0<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      case 2:
!       return "vgatherpf1<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
--- 16084,16092 ----
    switch (INTVAL (operands[4]))
      {
      case 3:
!       return "%M2vgatherpf0<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      case 2:
!       return "%M2vgatherpf1<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
***************
*** 16106,16115 ****
      {
      case 3:
      case 7:
!       return "vscatterpf0<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      case 2:
      case 6:
!       return "vscatterpf1<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
--- 16130,16139 ----
      {
      case 3:
      case 7:
!       return "%M2vscatterpf0<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      case 2:
      case 6:
!       return "%M2vscatterpf1<ssemodesuffix>ps\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
***************
*** 16153,16162 ****
      {
      case 3:
      case 7:
!       return "vscatterpf0<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      case 2:
      case 6:
!       return "vscatterpf1<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
--- 16177,16186 ----
      {
      case 3:
      case 7:
!       return "%M2vscatterpf0<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      case 2:
      case 6:
!       return "%M2vscatterpf1<ssemodesuffix>pd\t{%5%{%0%}|%5%{%0%}}";
      default:
        gcc_unreachable ();
      }
***************
*** 19020,19026 ****
  	  UNSPEC_GATHER))
     (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))]
    "TARGET_AVX2"
!   "v<sseintprefix>gatherd<ssemodesuffix>\t{%1, %7, %0|%0, %7, %1}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19044,19050 ----
  	  UNSPEC_GATHER))
     (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))]
    "TARGET_AVX2"
!   "%M3v<sseintprefix>gatherd<ssemodesuffix>\t{%1, %7, %0|%0, %7, %1}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19040,19046 ****
  	  UNSPEC_GATHER))
     (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))]
    "TARGET_AVX2"
!   "v<sseintprefix>gatherd<ssemodesuffix>\t{%1, %6, %0|%0, %6, %1}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19064,19070 ----
  	  UNSPEC_GATHER))
     (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))]
    "TARGET_AVX2"
!   "%M2v<sseintprefix>gatherd<ssemodesuffix>\t{%1, %6, %0|%0, %6, %1}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19081,19087 ****
  	  UNSPEC_GATHER))
     (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))]
    "TARGET_AVX2"
!   "v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %7, %2|%2, %7, %5}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19105,19111 ----
  	  UNSPEC_GATHER))
     (clobber (match_scratch:VEC_GATHER_MODE 1 "=&x"))]
    "TARGET_AVX2"
!   "%M3v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %7, %2|%2, %7, %5}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19103,19110 ****
    "TARGET_AVX2"
  {
    if (<MODE>mode != <VEC_GATHER_SRCDI>mode)
!     return "v<sseintprefix>gatherq<ssemodesuffix>\t{%4, %6, %x0|%x0, %6, %4}";
!   return "v<sseintprefix>gatherq<ssemodesuffix>\t{%4, %6, %0|%0, %6, %4}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
--- 19127,19134 ----
    "TARGET_AVX2"
  {
    if (<MODE>mode != <VEC_GATHER_SRCDI>mode)
!     return "%M2v<sseintprefix>gatherq<ssemodesuffix>\t{%4, %6, %x0|%x0, %6, %4}";
!   return "%M2v<sseintprefix>gatherq<ssemodesuffix>\t{%4, %6, %0|%0, %6, %4}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
***************
*** 19128,19134 ****
  		     (const_int 2) (const_int 3)])))
     (clobber (match_scratch:VI4F_256 1 "=&x"))]
    "TARGET_AVX2"
!   "v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %7, %0|%0, %7, %5}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19152,19158 ----
  		     (const_int 2) (const_int 3)])))
     (clobber (match_scratch:VI4F_256 1 "=&x"))]
    "TARGET_AVX2"
!   "%M3v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %7, %0|%0, %7, %5}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19151,19157 ****
  		     (const_int 2) (const_int 3)])))
     (clobber (match_scratch:VI4F_256 1 "=&x"))]
    "TARGET_AVX2"
!   "v<sseintprefix>gatherq<ssemodesuffix>\t{%4, %6, %0|%0, %6, %4}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19175,19181 ----
  		     (const_int 2) (const_int 3)])))
     (clobber (match_scratch:VI4F_256 1 "=&x"))]
    "TARGET_AVX2"
!   "%M2v<sseintprefix>gatherq<ssemodesuffix>\t{%4, %6, %0|%0, %6, %4}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19195,19201 ****
  	  UNSPEC_GATHER))
     (clobber (match_scratch:<avx512fmaskmode> 2 "=&Yk"))]
    "TARGET_AVX512F"
!   "v<sseintprefix>gatherd<ssemodesuffix>\t{%6, %0%{%2%}|%0%{%2%}, %<xtg_mode>6}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19219,19225 ----
  	  UNSPEC_GATHER))
     (clobber (match_scratch:<avx512fmaskmode> 2 "=&Yk"))]
    "TARGET_AVX512F"
!   "%M4v<sseintprefix>gatherd<ssemodesuffix>\t{%6, %0%{%2%}|%0%{%2%}, %<xtg_mode>6}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19214,19220 ****
  	  UNSPEC_GATHER))
     (clobber (match_scratch:<avx512fmaskmode> 1 "=&Yk"))]
    "TARGET_AVX512F"
!   "v<sseintprefix>gatherd<ssemodesuffix>\t{%5, %0%{%1%}|%0%{%1%}, %<xtg_mode>5}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19238,19244 ----
  	  UNSPEC_GATHER))
     (clobber (match_scratch:<avx512fmaskmode> 1 "=&Yk"))]
    "TARGET_AVX512F"
!   "%M3v<sseintprefix>gatherd<ssemodesuffix>\t{%5, %0%{%1%}|%0%{%1%}, %<xtg_mode>5}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19254,19260 ****
     (clobber (match_scratch:QI 2 "=&Yk"))]
    "TARGET_AVX512F"
  {
!   return "v<sseintprefix>gatherq<ssemodesuffix>\t{%6, %1%{%2%}|%1%{%2%}, %<gatherq_mode>6}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
--- 19278,19284 ----
     (clobber (match_scratch:QI 2 "=&Yk"))]
    "TARGET_AVX512F"
  {
!   return "%M4v<sseintprefix>gatherq<ssemodesuffix>\t{%6, %1%{%2%}|%1%{%2%}, %<gatherq_mode>6}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
***************
*** 19278,19288 ****
    if (<MODE>mode != <VEC_GATHER_SRCDI>mode)
      {
        if (<MODE_SIZE> != 64)
! 	return "v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %x0%{%1%}|%x0%{%1%}, %<gatherq_mode>5}";
        else
! 	return "v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %t0%{%1%}|%t0%{%1%}, %t5}";
      }
!   return "v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %0%{%1%}|%0%{%1%}, %<gatherq_mode>5}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
--- 19302,19312 ----
    if (<MODE>mode != <VEC_GATHER_SRCDI>mode)
      {
        if (<MODE_SIZE> != 64)
! 	return "%M3v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %x0%{%1%}|%x0%{%1%}, %<gatherq_mode>5}";
        else
! 	return "%M3v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %t0%{%1%}|%t0%{%1%}, %t5}";
      }
!   return "%M3v<sseintprefix>gatherq<ssemodesuffix>\t{%5, %0%{%1%}|%0%{%1%}, %<gatherq_mode>5}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
***************
*** 19319,19325 ****
  	  UNSPEC_SCATTER))
     (clobber (match_scratch:<avx512fmaskmode> 1 "=&Yk"))]
    "TARGET_AVX512F"
!   "v<sseintprefix>scatterd<ssemodesuffix>\t{%3, %5%{%1%}|%5%{%1%}, %3}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<sseinsnmode>")])
--- 19343,19349 ----
  	  UNSPEC_SCATTER))
     (clobber (match_scratch:<avx512fmaskmode> 1 "=&Yk"))]
    "TARGET_AVX512F"
!   "%M0v<sseintprefix>scatterd<ssemodesuffix>\t{%3, %5%{%1%}|%5%{%1%}, %3}"
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
     (set_attr "mode" "<sseinsnmode>")])
***************
*** 19357,19364 ****
    "TARGET_AVX512F"
  {
    if (GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)) == 8)
!     return "v<sseintprefix>scatterq<ssemodesuffix>\t{%3, %5%{%1%}|%5%{%1%}, %3}";
!   return "v<sseintprefix>scatterq<ssemodesuffix>\t{%3, %5%{%1%}|%t5%{%1%}, %3}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
--- 19381,19388 ----
    "TARGET_AVX512F"
  {
    if (GET_MODE_SIZE (GET_MODE_INNER (<MODE>mode)) == 8)
!     return "%M0v<sseintprefix>scatterq<ssemodesuffix>\t{%3, %5%{%1%}|%5%{%1%}, %3}";
!   return "%M0v<sseintprefix>scatterq<ssemodesuffix>\t{%3, %5%{%1%}|%t5%{%1%}, %3}";
  }
    [(set_attr "type" "ssemov")
     (set_attr "prefix" "evex")
diff -Nrcpad gcc-7.4.0/gcc/config/i386/t-darwin gcc-7.5.0/gcc/config/i386/t-darwin
*** gcc-7.4.0/gcc/config/i386/t-darwin	Wed Nov  2 15:23:48 2011
--- gcc-7.5.0/gcc/config/i386/t-darwin	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- MULTILIB_OPTIONS = m64
- MULTILIB_DIRNAMES = x86_64
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/config/i386/t-darwin32-biarch gcc-7.5.0/gcc/config/i386/t-darwin32-biarch
*** gcc-7.4.0/gcc/config/i386/t-darwin32-biarch	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/i386/t-darwin32-biarch	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,2 ----
+ MULTILIB_OPTIONS = m64
+ MULTILIB_DIRNAMES = x86_64
diff -Nrcpad gcc-7.4.0/gcc/config/i386/t-darwin64 gcc-7.5.0/gcc/config/i386/t-darwin64
*** gcc-7.4.0/gcc/config/i386/t-darwin64	Wed Nov  2 15:23:48 2011
--- gcc-7.5.0/gcc/config/i386/t-darwin64	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- MULTILIB_OPTIONS = m32
- MULTILIB_DIRNAMES = i386
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/config/i386/t-darwin64-biarch gcc-7.5.0/gcc/config/i386/t-darwin64-biarch
*** gcc-7.4.0/gcc/config/i386/t-darwin64-biarch	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/i386/t-darwin64-biarch	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,2 ----
+ MULTILIB_OPTIONS = m32
+ MULTILIB_DIRNAMES = i386
diff -Nrcpad gcc-7.4.0/gcc/config/nvptx/nvptx.c gcc-7.5.0/gcc/config/nvptx/nvptx.c
*** gcc-7.4.0/gcc/config/nvptx/nvptx.c	Tue Apr  3 14:04:22 2018
--- gcc-7.5.0/gcc/config/nvptx/nvptx.c	Fri Aug 30 12:43:04 2019
*************** nvptx_output_softstack_switch (FILE *fil
*** 1354,1360 ****
        fputs (";\n", file);
        if (!CONST_INT_P (size) || UINTVAL (align) > GET_MODE_SIZE (DImode))
  	fprintf (file,
! 		 "\t\tand.u%d %%r%d, %%r%d, -" HOST_WIDE_INT_PRINT_DEC ";\n",
  		 bits, regno, regno, UINTVAL (align));
      }
    if (cfun->machine->has_softstack)
--- 1354,1360 ----
        fputs (";\n", file);
        if (!CONST_INT_P (size) || UINTVAL (align) > GET_MODE_SIZE (DImode))
  	fprintf (file,
! 		 "\t\tand.b%d %%r%d, %%r%d, -" HOST_WIDE_INT_PRINT_DEC ";\n",
  		 bits, regno, regno, UINTVAL (align));
      }
    if (cfun->machine->has_softstack)
diff -Nrcpad gcc-7.4.0/gcc/config/pa/pa.c gcc-7.5.0/gcc/config/pa/pa.c
*** gcc-7.4.0/gcc/config/pa/pa.c	Sun Jul 29 16:03:58 2018
--- gcc-7.5.0/gcc/config/pa/pa.c	Fri Sep 20 22:03:40 2019
*************** pa_cannot_change_mode_class (machine_mod
*** 10001,10010 ****
    /* There is no way to load QImode or HImode values directly from memory
       to a FP register.  SImode loads to the FP registers are not zero
       extended.  On the 64-bit target, this conflicts with the definition
!      of LOAD_EXTEND_OP.  Thus, we can't allow changing between modes with
!      different sizes in the floating-point registers.  */
    if (MAYBE_FP_REG_CLASS_P (rclass))
!     return true;
  
    /* HARD_REGNO_MODE_OK places modes with sizes larger than a word
       in specific sets of registers.  Thus, we cannot allow changing
--- 10001,10011 ----
    /* There is no way to load QImode or HImode values directly from memory
       to a FP register.  SImode loads to the FP registers are not zero
       extended.  On the 64-bit target, this conflicts with the definition
!      of LOAD_EXTEND_OP.  Thus, we reject all mode changes in the FP registers
!      except for DImode to SImode on the 64-bit target.  It is handled by
!      register renaming in pa_print_operand.  */
    if (MAYBE_FP_REG_CLASS_P (rclass))
!     return !(TARGET_64BIT && from == DImode && to == SImode);
  
    /* HARD_REGNO_MODE_OK places modes with sizes larger than a word
       in specific sets of registers.  Thus, we cannot allow changing
*************** pa_trampoline_init (rtx m_tramp, tree fn
*** 10199,10206 ****
      }
  
  #ifdef HAVE_ENABLE_EXECUTE_STACK
!   emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"),
! 		     LCT_NORMAL, VOIDmode, 1, XEXP (m_tramp, 0), Pmode);
  #endif
  }
  
--- 10200,10207 ----
      }
  
  #ifdef HAVE_ENABLE_EXECUTE_STACK
!   emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__enable_execute_stack"),
! 		     LCT_NORMAL, VOIDmode, 1, XEXP (m_tramp, 0), Pmode);
  #endif
  }
  
diff -Nrcpad gcc-7.4.0/gcc/config/pa/pa.md gcc-7.5.0/gcc/config/pa/pa.md
*** gcc-7.4.0/gcc/config/pa/pa.md	Thu Sep 20 01:10:47 2018
--- gcc-7.5.0/gcc/config/pa/pa.md	Sun Jun 16 21:49:19 2019
***************
*** 5319,5326 ****
  
  (define_insn "umulsidi3"
    [(set (match_operand:DI 0 "register_operand" "=f")
! 	(mult:DI (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "f"))
! 		 (zero_extend:DI (match_operand:SI 2 "nonimmediate_operand" "f"))))]
    "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT"
    "xmpyu %1,%2,%0"
    [(set_attr "type" "fpmuldbl")
--- 5319,5326 ----
  
  (define_insn "umulsidi3"
    [(set (match_operand:DI 0 "register_operand" "=f")
! 	(mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f"))
! 		 (zero_extend:DI (match_operand:SI 2 "register_operand" "f"))))]
    "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT"
    "xmpyu %1,%2,%0"
    [(set_attr "type" "fpmuldbl")
***************
*** 5328,5334 ****
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=f")
! 	(mult:DI (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "f"))
  		 (match_operand:DI 2 "uint32_operand" "f")))]
    "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && !TARGET_64BIT"
    "xmpyu %1,%R2,%0"
--- 5328,5334 ----
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=f")
! 	(mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f"))
  		 (match_operand:DI 2 "uint32_operand" "f")))]
    "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && !TARGET_64BIT"
    "xmpyu %1,%R2,%0"
***************
*** 5337,5343 ****
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=f")
! 	(mult:DI (zero_extend:DI (match_operand:SI 1 "nonimmediate_operand" "f"))
  		 (match_operand:DI 2 "uint32_operand" "f")))]
    "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && TARGET_64BIT"
    "xmpyu %1,%2R,%0"
--- 5337,5343 ----
  
  (define_insn ""
    [(set (match_operand:DI 0 "register_operand" "=f")
! 	(mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f"))
  		 (match_operand:DI 2 "uint32_operand" "f")))]
    "TARGET_PA_11 && ! TARGET_DISABLE_FPREGS && ! TARGET_SOFT_FLOAT && TARGET_64BIT"
    "xmpyu %1,%2R,%0"
***************
*** 6904,6924 ****
    rtx stack = operands[2];
    rtx fp = operands[3];
  
-   lab = copy_to_reg (lab);
- 
    emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode)));
    emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx));
  
!   /* Restore the frame pointer.  The virtual_stack_vars_rtx is saved
!      instead of the hard_frame_pointer_rtx in the save area.  As a
!      result, an extra instruction is needed to adjust for the offset
!      of the virtual stack variables and the hard frame pointer.  */
!   if (GET_CODE (fp) != REG)
!     fp = force_reg (Pmode, fp);
!   emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8));
  
    emit_stack_restore (SAVE_NONLOCAL, stack);
  
    emit_use (hard_frame_pointer_rtx);
    emit_use (stack_pointer_rtx);
  
--- 6904,6927 ----
    rtx stack = operands[2];
    rtx fp = operands[3];
  
    emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode)));
    emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx));
  
!   lab = copy_to_reg (lab);
  
+   /* Restore the stack and frame pointers.  The virtual_stack_vars_rtx
+      is saved instead of the hard_frame_pointer_rtx in the save area.
+      As a result, an extra instruction is needed to adjust for the offset
+      of the virtual stack variables and the hard frame pointer.  */
+   fp = copy_to_reg (fp);
    emit_stack_restore (SAVE_NONLOCAL, stack);
  
+   /* Ensure the frame pointer move is not optimized.  */
+   emit_insn (gen_blockage ());
+   emit_clobber (hard_frame_pointer_rtx);
+   emit_clobber (frame_pointer_rtx);
+   emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8));
+ 
    emit_use (hard_frame_pointer_rtx);
    emit_use (stack_pointer_rtx);
  
*************** add,l %2,%3,%3\;bv,n %%r0(%3)"
*** 8695,8717 ****
    emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode)));
    emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx));
  
-   /* Restore the frame pointer.  The virtual_stack_vars_rtx is saved
-      instead of the hard_frame_pointer_rtx in the save area.  We need
-      to adjust for the offset between these two values.  */
-   if (GET_CODE (fp) != REG)
-     fp = force_reg (Pmode, fp);
-   emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8));
- 
-   /* This bit is the same as expand_builtin_longjmp.  */
-   emit_stack_restore (SAVE_NONLOCAL, stack);
-   emit_use (hard_frame_pointer_rtx);
-   emit_use (stack_pointer_rtx);
- 
    /* Load the label we are jumping through into r1 so that we know
       where to look for it when we get back to setjmp's function for
       restoring the gp.  */
    emit_move_insn (pv, lab);
  
    /* Prevent the insns above from being scheduled into the delay slot
       of the interspace jump because the space register could change.  */
    emit_insn (gen_blockage ());
--- 8698,8723 ----
    emit_clobber (gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode)));
    emit_clobber (gen_rtx_MEM (BLKmode, hard_frame_pointer_rtx));
  
    /* Load the label we are jumping through into r1 so that we know
       where to look for it when we get back to setjmp's function for
       restoring the gp.  */
    emit_move_insn (pv, lab);
  
+   /* Restore the stack and frame pointers.  The virtual_stack_vars_rtx
+      is saved instead of the hard_frame_pointer_rtx in the save area.
+      We need to adjust for the offset between these two values.  */
+   fp = copy_to_reg (fp);
+   emit_stack_restore (SAVE_NONLOCAL, stack);
+ 
+   /* Ensure the frame pointer move is not optimized.  */
+   emit_insn (gen_blockage ());
+   emit_clobber (hard_frame_pointer_rtx);
+   emit_clobber (frame_pointer_rtx);
+   emit_move_insn (hard_frame_pointer_rtx, plus_constant (Pmode, fp, -8));
+ 
+   emit_use (hard_frame_pointer_rtx);
+   emit_use (stack_pointer_rtx);
+ 
    /* Prevent the insns above from being scheduled into the delay slot
       of the interspace jump because the space register could change.  */
    emit_insn (gen_blockage ());
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/altivec.h gcc-7.5.0/gcc/config/rs6000/altivec.h
*** gcc-7.4.0/gcc/config/rs6000/altivec.h	Tue Mar  6 23:52:59 2018
--- gcc-7.5.0/gcc/config/rs6000/altivec.h	Tue Apr  2 01:08:31 2019
***************
*** 388,393 ****
--- 388,398 ----
  #define vec_vsubuqm __builtin_vec_vsubuqm
  #define vec_vupkhsw __builtin_vec_vupkhsw
  #define vec_vupklsw __builtin_vec_vupklsw
+ #define vec_sbox_be __builtin_crypto_vsbox_be
+ #define vec_cipher_be __builtin_crypto_vcipher_be
+ #define vec_cipherlast_be __builtin_crypto_vcipherlast_be
+ #define vec_ncipher_be __builtin_crypto_vncipher_be
+ #define vec_ncipherlast_be __builtin_crypto_vncipherlast_be
  #endif
  
  #ifdef __POWER9_VECTOR__
***************
*** 421,426 ****
--- 426,436 ----
  #define vec_insert_exp __builtin_vec_insert_exp
  #define vec_test_data_class __builtin_vec_test_data_class
  
+ #define vec_extract_fp_from_shorth __builtin_vec_vextract_fp_from_shorth
+ #define vec_extract_fp_from_shortl __builtin_vec_vextract_fp_from_shortl
+ #define vec_extract_fp32_from_shorth __builtin_vec_vextract_fp_from_shorth
+ #define vec_extract_fp32_from_shortl __builtin_vec_vextract_fp_from_shortl
+ 
  #define scalar_extract_exp __builtin_vec_scalar_extract_exp
  #define scalar_extract_sig __builtin_vec_scalar_extract_sig
  #define scalar_insert_exp __builtin_vec_scalar_insert_exp
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/altivec.md gcc-7.5.0/gcc/config/rs6000/altivec.md
*** gcc-7.4.0/gcc/config/rs6000/altivec.md	Fri Mar 23 17:48:58 2018
--- gcc-7.5.0/gcc/config/rs6000/altivec.md	Fri Aug 30 14:22:48 2019
***************
*** 154,162 ****
     UNSPEC_BCDADD
     UNSPEC_BCDSUB
     UNSPEC_BCD_OVERFLOW
-    UNSPEC_CMPRB
-    UNSPEC_CMPRB2
-    UNSPEC_CMPEQB
     UNSPEC_VRLMI
     UNSPEC_VRLNM
  ])
--- 154,159 ----
***************
*** 3787,4009 ****
    [(set_attr "length" "4")
     (set_attr "type" "vecsimple")])
  
- (define_insn "darn_32"
-   [(set (match_operand:SI 0 "register_operand" "=r")
-         (unspec:SI [(const_int 0)] UNSPEC_DARN_32))]
-   "TARGET_P9_MISC"
-   "darn %0,0"
-   [(set_attr "type" "integer")])
- 
- (define_insn "darn_raw"
-   [(set (match_operand:DI 0 "register_operand" "=r")
-         (unspec:DI [(const_int 0)] UNSPEC_DARN_RAW))]
-   "TARGET_P9_MISC && TARGET_64BIT"
-   "darn %0,2"
-   [(set_attr "type" "integer")])
- 
- (define_insn "darn"
-   [(set (match_operand:DI 0 "register_operand" "=r")
-         (unspec:DI [(const_int 0)] UNSPEC_DARN))]
-   "TARGET_P9_MISC && TARGET_64BIT"
-   "darn %0,1"
-   [(set_attr "type" "integer")])
- 
- ;; Test byte within range.
- ;;
- ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
- ;; represents a byte whose value is ignored in this context and
- ;; vv, the least significant byte, holds the byte value that is to
- ;; be tested for membership within the range specified by operand 2.
- ;; The bytes of operand 2 are organized as xx:xx:hi:lo.
- ;;
- ;; Return in target register operand 0 a value of 1 if lo <= vv and
- ;; vv <= hi.  Otherwise, set register operand 0 to 0.
- ;;
- ;; Though the instructions to which this expansion maps operate on
- ;; 64-bit registers, the current implementation only operates on
- ;; SI-mode operands as the high-order bits provide no information
- ;; that is not already available in the low-order bits.  To avoid the
- ;; costs of data widening operations, future enhancements might allow
- ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
- (define_expand "cmprb"
-   [(set (match_dup 3)
- 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
- 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
- 	 UNSPEC_CMPRB))
-    (set (match_operand:SI 0 "gpc_reg_operand" "=r")
- 	(if_then_else:SI (lt (match_dup 3)
- 			     (const_int 0))
- 			 (const_int -1)
- 			 (if_then_else (gt (match_dup 3)
- 					   (const_int 0))
- 				       (const_int 1)
- 				       (const_int 0))))]
-   "TARGET_P9_MISC"
- {
-   operands[3] = gen_reg_rtx (CCmode);
- })
- 
- ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
- ;; represents a byte whose value is ignored in this context and
- ;; vv, the least significant byte, holds the byte value that is to
- ;; be tested for membership within the range specified by operand 2.
- ;; The bytes of operand 2 are organized as xx:xx:hi:lo.
- ;;
- ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
- ;; lo <= vv and vv <= hi.  Otherwise, set the GT bit to 0.  The other
- ;; 3 bits of the target CR register are all set to 0.
- (define_insn "*cmprb_internal"
-   [(set (match_operand:CC 0 "cc_reg_operand" "=y")
- 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
- 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
- 	 UNSPEC_CMPRB))]
-   "TARGET_P9_MISC"
-   "cmprb %0,0,%1,%2"
-   [(set_attr "type" "logical")])
- 
- ;; Set operand 0 register to -1 if the LT bit (0x8) of condition
- ;; register operand 1 is on.  Otherwise, set operand 0 register to 1
- ;; if the GT bit (0x4) of condition register operand 1 is on.
- ;; Otherwise, set operand 0 to 0.  Note that the result stored into
- ;; register operand 0 is non-zero iff either the LT or GT bits are on
- ;; within condition register operand 1.
- (define_insn "setb_signed"
-    [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- 	 (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y")
- 			      (const_int 0))
- 			  (const_int -1)
- 			  (if_then_else (gt (match_dup 1)
- 					    (const_int 0))
- 					(const_int 1)
- 					(const_int 0))))]
-   "TARGET_P9_MISC"
-   "setb %0,%1"
-   [(set_attr "type" "logical")])
- 
- (define_insn "setb_unsigned"
-    [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
- 	 (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y")
- 			      (const_int 0))
- 			  (const_int -1)
- 			  (if_then_else (gtu (match_dup 1)
- 					    (const_int 0))
- 					(const_int 1)
- 					(const_int 0))))]
-   "TARGET_P9_MISC"
-   "setb %0,%1"
-   [(set_attr "type" "logical")])
- 
- ;; Test byte within two ranges.
- ;;
- ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
- ;; represents a byte whose value is ignored in this context and
- ;; vv, the least significant byte, holds the byte value that is to
- ;; be tested for membership within the range specified by operand 2.
- ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
- ;;
- ;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and
- ;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2).  Otherwise, set register
- ;; operand 0 to 0.
- ;;
- ;; Though the instructions to which this expansion maps operate on
- ;; 64-bit registers, the current implementation only operates on
- ;; SI-mode operands as the high-order bits provide no information
- ;; that is not already available in the low-order bits.  To avoid the
- ;; costs of data widening operations, future enhancements might allow
- ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
- (define_expand "cmprb2"
-   [(set (match_dup 3)
- 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
- 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
- 	 UNSPEC_CMPRB2))
-    (set (match_operand:SI 0 "gpc_reg_operand" "=r")
- 	(if_then_else:SI (lt (match_dup 3)
- 			     (const_int 0))
- 			 (const_int -1)
- 			 (if_then_else (gt (match_dup 3)
- 					   (const_int 0))
- 				       (const_int 1)
- 				       (const_int 0))))]
-   "TARGET_P9_MISC"
- {
-   operands[3] = gen_reg_rtx (CCmode);
- })
- 
- ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
- ;; represents a byte whose value is ignored in this context and
- ;; vv, the least significant byte, holds the byte value that is to
- ;; be tested for membership within the ranges specified by operand 2.
- ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
- ;;
- ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
- ;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2).
- ;; Otherwise, set the GT bit to 0.  The other 3 bits of the target
- ;; CR register are all set to 0.
- (define_insn "*cmprb2_internal"
-   [(set (match_operand:CC 0 "cc_reg_operand" "=y")
- 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
- 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
- 	 UNSPEC_CMPRB2))]
-   "TARGET_P9_MISC"
-   "cmprb %0,1,%1,%2"
-   [(set_attr "type" "logical")])
- 
- ;; Test byte membership within set of 8 bytes.
- ;;
- ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
- ;; represents a byte whose value is ignored in this context and
- ;; vv, the least significant byte, holds the byte value that is to
- ;; be tested for membership within the set specified by operand 2.
- ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
- ;;
- ;; Return in target register operand 0 a value of 1 if vv equals one
- ;; of the values e0, e1, e2, e3, e4, e5, e6, or e7.  Otherwise, set
- ;; register operand 0 to 0.  Note that the 8 byte values held within
- ;; operand 2 need not be unique.
- ;;
- ;; Though the instructions to which this expansion maps operate on
- ;; 64-bit registers, the current implementation requires that operands
- ;; 0 and 1 have mode SI as the high-order bits provide no information
- ;; that is not already available in the low-order bits.  To avoid the
- ;; costs of data widening operations, future enhancements might allow
- ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
- (define_expand "cmpeqb"
-   [(set (match_dup 3)
- 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
- 		    (match_operand:DI 2 "gpc_reg_operand" "r")]
- 	 UNSPEC_CMPEQB))
-    (set (match_operand:SI 0 "gpc_reg_operand" "=r")
- 	(if_then_else:SI (lt (match_dup 3)
- 			     (const_int 0))
- 			 (const_int -1)
- 			 (if_then_else (gt (match_dup 3)
- 					   (const_int 0))
- 				       (const_int 1)
- 				       (const_int 0))))]
-   "TARGET_P9_MISC && TARGET_64BIT"
- {
-   operands[3] = gen_reg_rtx (CCmode);
- })
- 
- ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
- ;; represents a byte whose value is ignored in this context and
- ;; vv, the least significant byte, holds the byte value that is to
- ;; be tested for membership within the set specified by operand 2.
- ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
- ;;
- ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv
- ;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7.  Otherwise,
- ;; set the GT bit to zero.  The other 3 bits of the target CR register
- ;; are all set to 0.
- (define_insn "*cmpeqb_internal"
-   [(set (match_operand:CC 0 "cc_reg_operand" "=y")
- 	 (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
- 		     (match_operand:DI 2 "gpc_reg_operand" "r")]
- 	  UNSPEC_CMPEQB))]
-   "TARGET_P9_MISC && TARGET_64BIT"
-   "cmpeqb %0,%1,%2"
-   [(set_attr "type" "logical")])
- 
  (define_expand "bcd<bcd_add_sub>_<code>"
    [(parallel [(set (reg:CCFP CR6_REGNO)
  		   (compare:CCFP
--- 3784,3789 ----
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/crypto.md gcc-7.5.0/gcc/config/rs6000/crypto.md
*** gcc-7.4.0/gcc/config/rs6000/crypto.md	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/rs6000/crypto.md	Thu Mar  7 01:54:46 2019
***************
*** 48,53 ****
--- 48,56 ----
  ;; Iterator for VSHASIGMAD/VSHASIGMAW
  (define_mode_iterator CR_hash [V4SI V2DI])
  
+ ;; Iterator for VSBOX/VCIPHER/VNCIPHER/VCIPHERLAST/VNCIPHERLAST
+ (define_mode_iterator CR_vqdi [V16QI V2DI])
+ 
  ;; Iterator for the other crypto functions
  (define_int_iterator CR_code   [UNSPEC_VCIPHER
  				UNSPEC_VNCIPHER
***************
*** 60,69 ****
  			  (UNSPEC_VNCIPHERLAST "vncipherlast")])
  
  ;; 2 operand crypto instructions
! (define_insn "crypto_<CR_insn>"
!   [(set (match_operand:V2DI 0 "register_operand" "=v")
! 	(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "v")
! 		      (match_operand:V2DI 2 "register_operand" "v")]
  		     CR_code))]
    "TARGET_CRYPTO"
    "<CR_insn> %0,%1,%2"
--- 63,72 ----
  			  (UNSPEC_VNCIPHERLAST "vncipherlast")])
  
  ;; 2 operand crypto instructions
! (define_insn "crypto_<CR_insn>_<mode>"
!   [(set (match_operand:CR_vqdi 0 "register_operand" "=v")
! 	(unspec:CR_vqdi [(match_operand:CR_vqdi 1 "register_operand" "v")
! 		      (match_operand:CR_vqdi 2 "register_operand" "v")]
  		     CR_code))]
    "TARGET_CRYPTO"
    "<CR_insn> %0,%1,%2"
***************
*** 90,98 ****
    [(set_attr "type" "vecperm")])
  
  ;; 1 operand crypto instruction
! (define_insn "crypto_vsbox"
!   [(set (match_operand:V2DI 0 "register_operand" "=v")
! 	(unspec:V2DI [(match_operand:V2DI 1 "register_operand" "v")]
  		     UNSPEC_VSBOX))]
    "TARGET_CRYPTO"
    "vsbox %0,%1"
--- 93,101 ----
    [(set_attr "type" "vecperm")])
  
  ;; 1 operand crypto instruction
! (define_insn "crypto_vsbox_<mode>"
!   [(set (match_operand:CR_vqdi 0 "register_operand" "=v")
! 	(unspec:CR_vqdi [(match_operand:CR_vqdi 1 "register_operand" "v")]
  		     UNSPEC_VSBOX))]
    "TARGET_CRYPTO"
    "vsbox %0,%1"
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/darwin.h gcc-7.5.0/gcc/config/rs6000/darwin.h
*** gcc-7.4.0/gcc/config/rs6000/darwin.h	Tue Feb  7 11:29:06 2017
--- gcc-7.5.0/gcc/config/rs6000/darwin.h	Fri Nov  1 20:44:32 2019
***************
*** 53,69 ****
  #define TARGET_OS_CPP_BUILTINS()			\
    do							\
      {							\
-       if (!TARGET_64BIT) builtin_define ("__ppc__");	\
-       if (TARGET_64BIT) builtin_define ("__ppc64__");	\
        builtin_define ("__POWERPC__");			\
        builtin_define ("__NATURAL_ALIGNMENT__");		\
        darwin_cpp_builtins (pfile);			\
      }							\
    while (0)
  
- /* Generate branch islands stubs if this is true.  */
- extern int darwin_emit_branch_islands;
- 
  #define SUBTARGET_OVERRIDE_OPTIONS darwin_rs6000_override_options ()
  
  #define C_COMMON_OVERRIDE_OPTIONS do {					\
--- 53,80 ----
  #define TARGET_OS_CPP_BUILTINS()			\
    do							\
      {							\
        builtin_define ("__POWERPC__");			\
+       builtin_define ("__PPC__");			\
+       if (TARGET_64BIT)					\
+ 	{						\
+ 	  builtin_define ("__ppc64__");			\
+ 	  builtin_define ("__PPC64__");			\
+ 	  builtin_define ("__powerpc64__");		\
+ 	  builtin_assert ("cpu=powerpc64");		\
+ 	  builtin_assert ("machine=powerpc64");		\
+ 	}						\
+       else						\
+ 	{						\
+ 	  builtin_define ("__ppc__");			\
+ 	  builtin_define_std ("PPC");			\
+ 	  builtin_assert ("cpu=powerpc");		\
+ 	  builtin_assert ("machine=powerpc");		\
+ 	}						\
        builtin_define ("__NATURAL_ALIGNMENT__");		\
        darwin_cpp_builtins (pfile);			\
      }							\
    while (0)
  
  #define SUBTARGET_OVERRIDE_OPTIONS darwin_rs6000_override_options ()
  
  #define C_COMMON_OVERRIDE_OPTIONS do {					\
*************** extern int darwin_emit_branch_islands;
*** 98,108 ****
    %<faltivec %<fno-altivec " \
    DARWIN_CC1_SPEC
  
! #define DARWIN_ARCH_SPEC "%{m64:ppc64;:ppc}"
  
  #define DARWIN_SUBARCH_SPEC "			\
-  %{m64: ppc64}					\
-  %{!m64:					\
   %{mcpu=601:ppc601;				\
     mcpu=603:ppc603;				\
     mcpu=603e:ppc603;				\
--- 109,118 ----
    %<faltivec %<fno-altivec " \
    DARWIN_CC1_SPEC
  
! /* Default to PPC for single arch builds.  */
! #define DARWIN_ARCH_SPEC "ppc"
  
  #define DARWIN_SUBARCH_SPEC "			\
   %{mcpu=601:ppc601;				\
     mcpu=603:ppc603;				\
     mcpu=603e:ppc603;				\
*************** extern int darwin_emit_branch_islands;
*** 117,127 ****
     mcpu=970:ppc970;				\
     mcpu=power4:ppc970;				\
     mcpu=G5:ppc970;				\
!    :ppc}}"
  
! /* crt2.o is at least partially required for 10.3.x and earlier.  */
  #define DARWIN_CRT2_SPEC \
!   "%{!m64:%:version-compare(!> 10.4 mmacosx-version-min= crt2.o%s)}"
  
  #undef SUBTARGET_EXTRA_SPECS
  #define SUBTARGET_EXTRA_SPECS			\
--- 127,165 ----
     mcpu=970:ppc970;				\
     mcpu=power4:ppc970;				\
     mcpu=G5:ppc970;				\
!    :ppc}"
  
! /* We need to jam the crt to 10.5 for 10.6 (Rosetta) use.  */
! #undef DARWIN_CRT1_SPEC
! #define DARWIN_CRT1_SPEC						\
!   "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)		\
!    %:version-compare(>< 10.5 10.7 mmacosx-version-min= -lcrt1.10.5.o)	\
!    %{fgnu-tm: -lcrttms.o}"
! 
! /* crt2.o is at least partially required for 10.3.x and earlier.
!    It deals with registration of the unwind frames, where this is not
!    automatically provided by the system.  So we need it for any case that
!    might use exceptions.  */
! #undef DARWIN_CRT2_SPEC
  #define DARWIN_CRT2_SPEC \
! "%{!m64:%{shared-libgcc|static-libstdc++|fexceptions|fobjc-exceptions|fgnu-runtime: \
!    %:version-compare(!> 10.4 mmacosx-version-min= crt2.o%s) \
!   }}"
! 
! /* crt3 deals with providing cxa_atexit on earlier systems (or fixing it up,
!    for broken versions).  It's only needed for c++ code, so we can make it
!    conditional on shared-libgcc since that's forced on for c++.  */
! #undef DARWIN_CRT3_SPEC
! #define DARWIN_CRT3_SPEC \
! "%{!m64:%{shared-libgcc|static-libstdc++:							\
!    %:version-compare(>< 10.4 10.5 mmacosx-version-min= crt3.o%s) \
!    %:version-compare(!> 10.4 mmacosx-version-min= crt3_2.o%s) \
!   }}"
! 
! /* The PPC regs save/restore functions are leaves and could, conceivably
!    be used by the tm destructor.  */
! #undef ENDFILE_SPEC
! #define ENDFILE_SPEC TM_DESTRUCTOR " -lef_ppc"
  
  #undef SUBTARGET_EXTRA_SPECS
  #define SUBTARGET_EXTRA_SPECS			\
*************** extern int darwin_emit_branch_islands;
*** 244,252 ****
  /* This is supported in cctools 465 and later.  The macro test
     above prevents using it in earlier build environments.  */
  #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP)          \
!   if ((LOG) != 0)                                             \
      {                                                         \
!       if ((MAX_SKIP) == 0)                                    \
          fprintf ((FILE), "\t.p2align %d\n", (LOG));           \
        else                                                    \
          fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
--- 282,290 ----
  /* This is supported in cctools 465 and later.  The macro test
     above prevents using it in earlier build environments.  */
  #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP)          \
!   if ((LOG) > 0)                                             \
      {                                                         \
!       if ((MAX_SKIP) <= 0)                                    \
          fprintf ((FILE), "\t.p2align %d\n", (LOG));           \
        else                                                    \
          fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
*************** extern int darwin_emit_branch_islands;
*** 358,363 ****
--- 396,402 ----
    do \
      { \
        DARWIN_REGISTER_TARGET_PRAGMAS(); \
+       targetm.target_option.pragma_parse = rs6000_pragma_target_parse; \
        targetm.resolve_overloaded_builtin = altivec_resolve_overloaded_builtin; \
      } \
    while (0)
*************** do {									\
*** 417,422 ****
--- 456,464 ----
     this will need to be modified similar to the x86 case.  */
  #define TARGET_FOLD_BUILTIN SUBTARGET_FOLD_BUILTIN
  
+ /* First available SYMBOL flag bit for use by subtargets.  */
+ #define SYMBOL_FLAG_SUBT_DEP (SYMBOL_FLAG_MACH_DEP)
+ 
  /* Use standard DWARF numbering for DWARF debugging information.  */
  #define RS6000_USE_DWARF_NUMBERING
  
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/darwin.md gcc-7.5.0/gcc/config/rs6000/darwin.md
*** gcc-7.4.0/gcc/config/rs6000/darwin.md	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/rs6000/darwin.md	Tue Oct 29 20:20:23 2019
*************** You should have received a copy of the G
*** 139,176 ****
    [(set_attr "type" "store")
     (set_attr "length" "4")])
  
- ;; 64-bit MachO load/store support
- (define_insn "movdi_low"
-   [(set (match_operand:DI 0 "gpc_reg_operand" "=r,*!d")
-         (mem:DI (lo_sum:DI (match_operand:DI 1 "gpc_reg_operand" "b,b")
-                            (match_operand 2 "" ""))))]
-   "TARGET_MACHO && TARGET_64BIT"
-   "@
-    ld %0,lo16(%2)(%1)
-    lfd %0,lo16(%2)(%1)"
-   [(set_attr "type" "load")
-    (set_attr "length" "4")])
- 
- (define_insn "movsi_low_st"
-   [(set (mem:SI (lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b")
-                            (match_operand 2 "" "")))
- 	(match_operand:SI 0 "gpc_reg_operand" "r"))]
-   "TARGET_MACHO && ! TARGET_64BIT"
-   "stw %0,lo16(%2)(%1)"
-   [(set_attr "type" "store")
-    (set_attr "length" "4")])
- 
- (define_insn "movdi_low_st"
-   [(set (mem:DI (lo_sum:DI (match_operand:DI 1 "gpc_reg_operand" "b,b")
-                            (match_operand 2 "" "")))
- 	(match_operand:DI 0 "gpc_reg_operand" "r,*!d"))]
-   "TARGET_MACHO && TARGET_64BIT"
-   "@
-    std %0,lo16(%2)(%1)
-    stfd %0,lo16(%2)(%1)"
-   [(set_attr "type" "store")
-    (set_attr "length" "4")])
- 
  ;; Mach-O PIC trickery.
  (define_expand "macho_high"
    [(set (match_operand 0 "" "")
--- 139,144 ----
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/darwin32-biarch.h gcc-7.5.0/gcc/config/rs6000/darwin32-biarch.h
*** gcc-7.4.0/gcc/config/rs6000/darwin32-biarch.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/rs6000/darwin32-biarch.h	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,49 ----
+ /* Target definitions for PowerPC running Darwin (Mac OS X) for a 32b host
+    with a 64b miultilib.
+    Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published
+    by the Free Software Foundation; either version 3, or (at your
+    option) any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #undef DARWIN_ARCH_SPEC
+ #define DARWIN_ARCH_SPEC "%{m64:ppc64;:ppc}"
+ 
+ #undef DARWIN_SUBARCH_SPEC
+ #define DARWIN_SUBARCH_SPEC "			\
+  %{m64: ppc64}					\
+  %{!m64:					\
+  %{mcpu=601:ppc601;				\
+    mcpu=603:ppc603;				\
+    mcpu=603e:ppc603;				\
+    mcpu=604:ppc604;				\
+    mcpu=604e:ppc604e;				\
+    mcpu=740:ppc750;				\
+    mcpu=750:ppc750;				\
+    mcpu=G3:ppc750;				\
+    mcpu=7400:ppc7400;				\
+    mcpu=G4:ppc7400;				\
+    mcpu=7450:ppc7450;				\
+    mcpu=970:ppc970;				\
+    mcpu=power4:ppc970;				\
+    mcpu=G5:ppc970;				\
+    :ppc}}"
+ 
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS			\
+   DARWIN_EXTRA_SPECS                            \
+   { "darwin_arch", DARWIN_ARCH_SPEC },		\
+   { "darwin_crt2", DARWIN_CRT2_SPEC },		\
+   { "darwin_subarch", DARWIN_SUBARCH_SPEC },
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/darwin64-biarch.h gcc-7.5.0/gcc/config/rs6000/darwin64-biarch.h
*** gcc-7.4.0/gcc/config/rs6000/darwin64-biarch.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/rs6000/darwin64-biarch.h	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,38 ----
+ /* Target definitions for PowerPC64 running Darwin (Mac OS X) for a 64b host
+    supporting a 32b multilib.
+    Copyright (C) 2006-2019 Free Software Foundation, Inc.
+    Contributed by Apple Computer Inc.
+ 
+    This file is part of GCC.
+ 
+    GCC is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published
+    by the Free Software Foundation; either version 3, or (at your
+    option) any later version.
+ 
+    GCC is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+    License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with GCC; see the file COPYING3.  If not see
+    <http://www.gnu.org/licenses/>.  */
+ 
+ #undef  TARGET_DEFAULT
+ #define TARGET_DEFAULT (MASK_POWERPC64 | MASK_64BIT \
+ 			| MASK_MULTIPLE | MASK_PPC_GFXOPT)
+ 
+ #undef DARWIN_ARCH_SPEC
+ #define DARWIN_ARCH_SPEC "%{m32:ppc;:ppc64}"
+ 
+ /* Actually, there's really only 970 as an active option.  */
+ #undef DARWIN_SUBARCH_SPEC
+ #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
+ 
+ #undef SUBTARGET_EXTRA_SPECS
+ #define SUBTARGET_EXTRA_SPECS			\
+   DARWIN_EXTRA_SPECS                            \
+   { "darwin_arch", DARWIN_ARCH_SPEC },		\
+   { "darwin_crt2", "" },			\
+   { "darwin_subarch", DARWIN_SUBARCH_SPEC },
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/darwin64.h gcc-7.5.0/gcc/config/rs6000/darwin64.h
*** gcc-7.4.0/gcc/config/rs6000/darwin64.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/rs6000/darwin64.h	Thu Jan  1 00:00:00 1970
***************
*** 1,32 ****
- /* Target definitions for PowerPC running Darwin (Mac OS X).
-    Copyright (C) 2006-2017 Free Software Foundation, Inc.
-    Contributed by Apple Computer Inc.
- 
-    This file is part of GCC.
- 
-    GCC is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published
-    by the Free Software Foundation; either version 3, or (at your
-    option) any later version.
- 
-    GCC is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-    License for more details.
- 
-    You should have received a copy of the GNU General Public License
-    along with GCC; see the file COPYING3.  If not see
-    <http://www.gnu.org/licenses/>.  */
- 
- #undef  TARGET_DEFAULT
- #define TARGET_DEFAULT (MASK_POWERPC64 | MASK_64BIT \
- 			| MASK_MULTIPLE | MASK_PPC_GFXOPT)
- 
- #undef DARWIN_ARCH_SPEC
- #define DARWIN_ARCH_SPEC "%{m32:ppc;:ppc64}"
- 
- #undef DARWIN_SUBARCH_SPEC
- #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
- 
- #undef DARWIN_CRT2_SPEC
- #define DARWIN_CRT2_SPEC ""
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/darwin7.h gcc-7.5.0/gcc/config/rs6000/darwin7.h
*** gcc-7.4.0/gcc/config/rs6000/darwin7.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/rs6000/darwin7.h	Mon Dec 24 13:17:28 2018
*************** along with GCC; see the file COPYING3.
*** 28,32 ****
--- 28,37 ----
    %:version-compare(!< 10.3 mmacosx-version-min= -lmx)\
    -lSystem}"
  
+ /* This generation of tools (specifically the archive tool) did not
+    export weak symbols from the TOC. */
+ #undef TARGET_WEAK_NOT_IN_ARCHIVE_TOC
+ #define TARGET_WEAK_NOT_IN_ARCHIVE_TOC 1
+ 
  #undef DEF_MIN_OSX_VERSION
  #define DEF_MIN_OSX_VERSION "10.3.9"
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/rs6000-builtin.def gcc-7.5.0/gcc/config/rs6000/rs6000-builtin.def
*** gcc-7.4.0/gcc/config/rs6000/rs6000-builtin.def	Mon Apr  2 19:19:37 2018
--- gcc-7.5.0/gcc/config/rs6000/rs6000-builtin.def	Tue Apr  2 01:08:31 2019
*************** BU_ALTIVEC_3 (VSEL_1TI_UNS,   "vsel_1ti_
*** 1000,1005 ****
--- 1000,1006 ----
  BU_ALTIVEC_3 (VSLDOI_16QI,    "vsldoi_16qi",    CONST, 	altivec_vsldoi_v16qi)
  BU_ALTIVEC_3 (VSLDOI_8HI,     "vsldoi_8hi",     CONST, 	altivec_vsldoi_v8hi)
  BU_ALTIVEC_3 (VSLDOI_4SI,     "vsldoi_4si",     CONST, 	altivec_vsldoi_v4si)
+ BU_ALTIVEC_3 (VSLDOI_2DI,     "vsldoi_2di",     CONST, 	altivec_vsldoi_v2di)
  BU_ALTIVEC_3 (VSLDOI_4SF,     "vsldoi_4sf",     CONST, 	altivec_vsldoi_v4sf)
  BU_ALTIVEC_3 (VSLDOI_2DF,     "vsldoi_2df",     CONST, 	altivec_vsldoi_v2df)
  
*************** BU_P9V_OVERLOAD_1 (VSTDCNSP,	"scalar_tes
*** 1988,1993 ****
--- 1989,1997 ----
  
  BU_P9V_OVERLOAD_1 (REVB,	"revb")
  
+ BU_P9V_OVERLOAD_1 (VEXTRACT_FP_FROM_SHORTH, "vextract_fp_from_shorth")
+ BU_P9V_OVERLOAD_1 (VEXTRACT_FP_FROM_SHORTL, "vextract_fp_from_shortl")
+ 
  /* ISA 3.0 vector scalar overloaded 2 argument functions.  */
  BU_P9V_OVERLOAD_2 (VSIEDP,	"scalar_insert_exp")
  
*************** BU_P9V_VSX_1 (VEEDP, "extract_exp_dp", C
*** 2005,2010 ****
--- 2009,2016 ----
  BU_P9V_VSX_1 (VEESP, "extract_exp_sp", CONST, xvxexpsp)
  BU_P9V_VSX_1 (VESDP, "extract_sig_dp", CONST, xvxsigdp)
  BU_P9V_VSX_1 (VESSP, "extract_sig_sp", CONST, xvxsigsp)
+ BU_P9V_VSX_1 (VEXTRACT_FP_FROM_SHORTH, "vextract_fp_from_shorth", CONST, vextract_fp_from_shorth)
+ BU_P9V_VSX_1 (VEXTRACT_FP_FROM_SHORTL, "vextract_fp_from_shortl", CONST, vextract_fp_from_shortl)
  
  /* 2 argument vsx vector functions added in ISA 3.0 (power9).  */
  BU_P9V_VSX_2 (VIEDP, "insert_exp_dp", CONST, xviexpdp)
*************** BU_FLOAT128_1 (FABSQ,		"fabsq",       CO
*** 2233,2245 ****
  BU_FLOAT128_2 (COPYSIGNQ,	"copysignq",   CONST, copysignkf3)
  
  /* 1 argument crypto functions.  */
! BU_CRYPTO_1 (VSBOX,		"vsbox",	  CONST, crypto_vsbox)
  
  /* 2 argument crypto functions.  */
! BU_CRYPTO_2 (VCIPHER,		"vcipher",	  CONST, crypto_vcipher)
! BU_CRYPTO_2 (VCIPHERLAST,	"vcipherlast",	  CONST, crypto_vcipherlast)
! BU_CRYPTO_2 (VNCIPHER,		"vncipher",	  CONST, crypto_vncipher)
! BU_CRYPTO_2 (VNCIPHERLAST,	"vncipherlast",	  CONST, crypto_vncipherlast)
  BU_CRYPTO_2A (VPMSUMB,		"vpmsumb",	  CONST, crypto_vpmsumb)
  BU_CRYPTO_2A (VPMSUMH,		"vpmsumh",	  CONST, crypto_vpmsumh)
  BU_CRYPTO_2A (VPMSUMW,		"vpmsumw",	  CONST, crypto_vpmsumw)
--- 2239,2260 ----
  BU_FLOAT128_2 (COPYSIGNQ,	"copysignq",   CONST, copysignkf3)
  
  /* 1 argument crypto functions.  */
! BU_CRYPTO_1 (VSBOX,		"vsbox",	  CONST, crypto_vsbox_v2di)
! BU_CRYPTO_1 (VSBOX_BE,		"vsbox_be",	  CONST, crypto_vsbox_v16qi)
  
  /* 2 argument crypto functions.  */
! BU_CRYPTO_2 (VCIPHER,		"vcipher",	  CONST, crypto_vcipher_v2di)
! BU_CRYPTO_2 (VCIPHER_BE,	"vcipher_be",	  CONST, crypto_vcipher_v16qi)
! BU_CRYPTO_2 (VCIPHERLAST,	"vcipherlast",
! 	     CONST, crypto_vcipherlast_v2di)
! BU_CRYPTO_2 (VCIPHERLAST_BE,	"vcipherlast_be",
! 	     CONST, crypto_vcipherlast_v16qi)
! BU_CRYPTO_2 (VNCIPHER,		"vncipher",	  CONST, crypto_vncipher_v2di)
! BU_CRYPTO_2 (VNCIPHER_BE,	"vncipher_be",	  CONST, crypto_vncipher_v16qi)
! BU_CRYPTO_2 (VNCIPHERLAST,	"vncipherlast",
! 	     CONST, crypto_vncipherlast_v2di)
! BU_CRYPTO_2 (VNCIPHERLAST_BE,	"vncipherlast_be",
! 	     CONST, crypto_vncipherlast_v16qi)
  BU_CRYPTO_2A (VPMSUMB,		"vpmsumb",	  CONST, crypto_vpmsumb)
  BU_CRYPTO_2A (VPMSUMH,		"vpmsumh",	  CONST, crypto_vpmsumh)
  BU_CRYPTO_2A (VPMSUMW,		"vpmsumw",	  CONST, crypto_vpmsumw)
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/rs6000-c.c gcc-7.5.0/gcc/config/rs6000/rs6000-c.c
*** gcc-7.4.0/gcc/config/rs6000/rs6000-c.c	Tue Jun 26 19:45:01 2018
--- gcc-7.5.0/gcc/config/rs6000/rs6000-c.c	Mon May 20 20:07:12 2019
*************** const struct altivec_builtin_types altiv
*** 910,915 ****
--- 910,917 ----
      RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V4SI, 0, 0 },
    { ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHPX,
      RS6000_BTI_unsigned_V4SI, RS6000_BTI_pixel_V8HI, 0, 0 },
+   { ALTIVEC_BUILTIN_VEC_UNPACKH, ALTIVEC_BUILTIN_VUPKHPX,
+     RS6000_BTI_V2DF, RS6000_BTI_V4SF, 0, 0 },
    { ALTIVEC_BUILTIN_VEC_VUPKHSH, ALTIVEC_BUILTIN_VUPKHSH,
      RS6000_BTI_V4SI, RS6000_BTI_V8HI, 0, 0 },
    { ALTIVEC_BUILTIN_VEC_VUPKHSH, ALTIVEC_BUILTIN_VUPKHSH,
*************** const struct altivec_builtin_types altiv
*** 940,945 ****
--- 942,949 ----
      RS6000_BTI_V2DI, RS6000_BTI_V4SI, 0, 0 },
    { ALTIVEC_BUILTIN_VEC_UNPACKL, P8V_BUILTIN_VUPKLSW,
      RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V4SI, 0, 0 },
+   { ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VUPKLPX,
+     RS6000_BTI_V2DF, RS6000_BTI_V4SF, 0, 0 },
    { ALTIVEC_BUILTIN_VEC_VUPKLPX, ALTIVEC_BUILTIN_VUPKLPX,
      RS6000_BTI_unsigned_V4SI, RS6000_BTI_unsigned_V8HI, 0, 0 },
    { ALTIVEC_BUILTIN_VEC_VUPKLPX, ALTIVEC_BUILTIN_VUPKLPX,
*************** const struct altivec_builtin_types altiv
*** 1185,1190 ****
--- 1189,1196 ----
    { ALTIVEC_BUILTIN_VEC_AND, ALTIVEC_BUILTIN_VAND,
      RS6000_BTI_unsigned_V2DI, RS6000_BTI_bool_V2DI, RS6000_BTI_unsigned_V2DI, 0 },
    { ALTIVEC_BUILTIN_VEC_AND, ALTIVEC_BUILTIN_VAND,
+     RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, 0 },
+   { ALTIVEC_BUILTIN_VEC_AND, ALTIVEC_BUILTIN_VAND,
      RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V4SI, RS6000_BTI_bool_V4SI, 0 },
    { ALTIVEC_BUILTIN_VEC_AND, ALTIVEC_BUILTIN_VAND,
      RS6000_BTI_V4SI, RS6000_BTI_bool_V4SI, RS6000_BTI_V4SI, 0 },
*************** const struct altivec_builtin_types altiv
*** 1518,1529 ****
--- 1524,1542 ----
      RS6000_BTI_V2DF, RS6000_BTI_unsigned_V2DI, 0, 0 },
    { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V2DF,
      RS6000_BTI_V2DF, RS6000_BTI_INTSI, ~RS6000_BTI_V2DF, 0 },
+   { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V2DF,
+     RS6000_BTI_V2DF, RS6000_BTI_INTSI, ~RS6000_BTI_double, 0 },
    { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V2DI,
      RS6000_BTI_V2DI, RS6000_BTI_INTSI, ~RS6000_BTI_V2DI, 0 },
    { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V2DI,
+     RS6000_BTI_V2DI, RS6000_BTI_INTSI, ~RS6000_BTI_long_long, 0 },
+   { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V2DI,
      RS6000_BTI_unsigned_V2DI, RS6000_BTI_INTSI,
      ~RS6000_BTI_unsigned_V2DI, 0 },
    { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V2DI,
+     RS6000_BTI_unsigned_V2DI, RS6000_BTI_INTSI,
+     ~RS6000_BTI_unsigned_long_long, 0 },
+   { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V2DI,
      RS6000_BTI_bool_V2DI, RS6000_BTI_INTSI, ~RS6000_BTI_bool_V2DI, 0 },
    { ALTIVEC_BUILTIN_VEC_LD, ALTIVEC_BUILTIN_LVX_V4SF,
      RS6000_BTI_V4SF, RS6000_BTI_INTSI, ~RS6000_BTI_V4SF, 0 },
*************** const struct altivec_builtin_types altiv
*** 2535,2540 ****
--- 2548,2565 ----
      RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V8HI, 0 },
    { ALTIVEC_BUILTIN_VEC_SLL, ALTIVEC_BUILTIN_VSL,
      RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
+ 
+   { ALTIVEC_BUILTIN_VEC_SLL, ALTIVEC_BUILTIN_VSL,
+     RS6000_BTI_V2DI, RS6000_BTI_V2DI, RS6000_BTI_unsigned_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SLL, ALTIVEC_BUILTIN_VSL,
+     RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SLL, ALTIVEC_BUILTIN_VSL,
+     RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, RS6000_BTI_unsigned_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SLL, ALTIVEC_BUILTIN_VSL,
+     RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, RS6000_BTI_unsigned_V2DI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SLL, ALTIVEC_BUILTIN_VSL,
+     RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, RS6000_BTI_unsigned_V8HI, 0 },
+ 
    { ALTIVEC_BUILTIN_VEC_SLO, ALTIVEC_BUILTIN_VSLO,
      RS6000_BTI_V4SF, RS6000_BTI_V4SF, RS6000_BTI_V16QI, 0 },
    { ALTIVEC_BUILTIN_VEC_SLO, ALTIVEC_BUILTIN_VSLO,
*************** const struct altivec_builtin_types altiv
*** 2735,2740 ****
--- 2760,2769 ----
      RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V8HI, 0 },
    { ALTIVEC_BUILTIN_VEC_SRL, ALTIVEC_BUILTIN_VSR,
      RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SRL, ALTIVEC_BUILTIN_VSR,
+     RS6000_BTI_V2DI, RS6000_BTI_V2DI, RS6000_BTI_unsigned_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SRL, ALTIVEC_BUILTIN_VSR,
+     RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V16QI, 0 },
    { ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VSRO,
      RS6000_BTI_V4SF, RS6000_BTI_V4SF, RS6000_BTI_V16QI, 0 },
    { ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VSRO,
*************** const struct altivec_builtin_types altiv
*** 2767,2772 ****
--- 2796,2810 ----
      RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_V16QI, 0 },
    { ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VSRO,
      RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_unsigned_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VSRO,
+     RS6000_BTI_V2DI, RS6000_BTI_V2DI, RS6000_BTI_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VSRO,
+     RS6000_BTI_V2DI, RS6000_BTI_V2DI, RS6000_BTI_unsigned_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VSRO,
+     RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_V16QI, 0 },
+   { ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VSRO,
+     RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V16QI, 0 },
+ 
    { ALTIVEC_BUILTIN_VEC_SUB, ALTIVEC_BUILTIN_VSUBUBM,
      RS6000_BTI_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_V16QI, 0 },
    { ALTIVEC_BUILTIN_VEC_SUB, ALTIVEC_BUILTIN_VSUBUBM,
*************** const struct altivec_builtin_types altiv
*** 3438,3453 ****
--- 3476,3511 ----
      RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_bool_V16QI, RS6000_BTI_NOT_OPAQUE },
    { ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VSLDOI_2DF,
      RS6000_BTI_V2DF, RS6000_BTI_V2DF, RS6000_BTI_V2DF, RS6000_BTI_NOT_OPAQUE },
+   { ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VSLDOI_2DI,
+     RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, RS6000_BTI_bool_V2DI, RS6000_BTI_NOT_OPAQUE },
+   { ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VSLDOI_2DI,
+     RS6000_BTI_V2DI, RS6000_BTI_V2DI, RS6000_BTI_V2DI, RS6000_BTI_NOT_OPAQUE },
+   { ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VSLDOI_2DI,
+     RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V2DI, RS6000_BTI_NOT_OPAQUE },
+ 
    { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DF,
      RS6000_BTI_void, RS6000_BTI_V2DF, RS6000_BTI_INTSI, ~RS6000_BTI_V2DF },
+   { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DF,
+     RS6000_BTI_void, RS6000_BTI_V2DF, RS6000_BTI_INTSI, ~RS6000_BTI_double },
    { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI,
      RS6000_BTI_void, RS6000_BTI_V2DI, RS6000_BTI_INTSI, ~RS6000_BTI_V2DI },
    { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI,
+     RS6000_BTI_void, RS6000_BTI_V2DI, RS6000_BTI_INTSI, ~RS6000_BTI_long_long },
+   { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI,
      RS6000_BTI_void, RS6000_BTI_unsigned_V2DI, RS6000_BTI_INTSI,
      ~RS6000_BTI_unsigned_V2DI },
    { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI,
+     RS6000_BTI_void, RS6000_BTI_unsigned_V2DI, RS6000_BTI_INTSI,
+     ~RS6000_BTI_unsigned_long_long },
+   { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI,
      RS6000_BTI_void, RS6000_BTI_bool_V2DI, RS6000_BTI_INTSI,
      ~RS6000_BTI_bool_V2DI },
+   { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI,
+     RS6000_BTI_void, RS6000_BTI_bool_V2DI, RS6000_BTI_INTSI,
+     ~RS6000_BTI_long_long },
+   { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V2DI,
+     RS6000_BTI_void, RS6000_BTI_bool_V2DI, RS6000_BTI_INTSI,
+     ~RS6000_BTI_unsigned_long_long },
    { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V4SF,
      RS6000_BTI_void, RS6000_BTI_V4SF, RS6000_BTI_INTSI, ~RS6000_BTI_V4SF },
    { ALTIVEC_BUILTIN_VEC_ST, ALTIVEC_BUILTIN_STVX_V4SF,
*************** const struct altivec_builtin_types altiv
*** 5050,5055 ****
--- 5108,5118 ----
    { P9V_BUILTIN_VEC_EXTRACT4B, P9V_BUILTIN_EXTRACT4B,
      RS6000_BTI_unsigned_V2DI, RS6000_BTI_unsigned_V16QI, RS6000_BTI_INTSI, 0 },
  
+   { P9V_BUILTIN_VEC_VEXTRACT_FP_FROM_SHORTH, P9V_BUILTIN_VEXTRACT_FP_FROM_SHORTH,
+     RS6000_BTI_V4SF, RS6000_BTI_unsigned_V8HI, 0, 0 },
+   { P9V_BUILTIN_VEC_VEXTRACT_FP_FROM_SHORTL, P9V_BUILTIN_VEXTRACT_FP_FROM_SHORTL,
+     RS6000_BTI_V4SF, RS6000_BTI_unsigned_V8HI, 0, 0 },
+ 
    { P9V_BUILTIN_VEC_VEXTULX, P9V_BUILTIN_VEXTUBLX,
      RS6000_BTI_INTQI, RS6000_BTI_UINTSI,
      RS6000_BTI_V16QI, 0 },
*************** altivec_resolve_overloaded_builtin (loca
*** 5958,5968 ****
  	  tree call = NULL_TREE;
  	  int nunits = GET_MODE_NUNITS (mode);
  
! 	  /* If the second argument is an integer constant, if the value is in
! 	     the expected range, generate the built-in code if we can.  We need
! 	     64-bit and direct move to extract the small integer vectors.  */
! 	  if (TREE_CODE (arg2) == INTEGER_CST && wi::ltu_p (arg2, nunits))
  	    {
  	      switch (mode)
  		{
  		default:
--- 6021,6035 ----
  	  tree call = NULL_TREE;
  	  int nunits = GET_MODE_NUNITS (mode);
  
! 	  /* If the second argument is an integer constant, generate
! 	     the built-in code if we can.  We need 64-bit and direct
! 	     move to extract the small integer vectors.  */
! 	  if (TREE_CODE (arg2) == INTEGER_CST)
  	    {
+ 	      wide_int selector
+ 		= wi::to_wide (arg2, TYPE_PRECISION (TREE_TYPE (arg2)));
+ 	      selector = wi::umod_trunc (selector, nunits);
+ 	      arg2 = wide_int_to_tree (TREE_TYPE (arg2), selector);
  	      switch (mode)
  		{
  		default:
*************** altivec_resolve_overloaded_builtin (loca
*** 6037,6043 ****
  	    }
  
  	  if (call)
! 	    return build_call_expr (call, 2, arg1, arg2);
  	}
  
        /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2). */
--- 6104,6116 ----
  	    }
  
  	  if (call)
! 	    {
! 	      tree result = build_call_expr (call, 2, arg1, arg2);
! 	      /* Coerce the result to vector element type.  May be no-op.  */
! 	      arg1_inner_type = TREE_TYPE (arg1_type);
! 	      result = fold_convert (arg1_inner_type, result);
! 	      return result;
! 	    }
  	}
  
        /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2). */
*************** altivec_resolve_overloaded_builtin (loca
*** 6131,6141 ****
        /* If we can use the VSX xxpermdi instruction, use that for insert.  */
        mode = TYPE_MODE (arg1_type);
        if ((mode == V2DFmode || mode == V2DImode) && VECTOR_UNIT_VSX_P (mode)
! 	  && TREE_CODE (arg2) == INTEGER_CST
! 	  && wi::ltu_p (arg2, 2))
  	{
  	  tree call = NULL_TREE;
  
  	  if (mode == V2DFmode)
  	    call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V2DF];
  	  else if (mode == V2DImode)
--- 6204,6217 ----
        /* If we can use the VSX xxpermdi instruction, use that for insert.  */
        mode = TYPE_MODE (arg1_type);
        if ((mode == V2DFmode || mode == V2DImode) && VECTOR_UNIT_VSX_P (mode)
! 	  && TREE_CODE (arg2) == INTEGER_CST)
  	{
+ 	  wide_int selector
+ 	    = wi::to_wide (arg2, TYPE_PRECISION (TREE_TYPE (arg2)));
+ 	  selector = wi::umod_trunc (selector, 2);
  	  tree call = NULL_TREE;
  
+ 	  arg2 = wide_int_to_tree (TREE_TYPE (arg2), selector);
  	  if (mode == V2DFmode)
  	    call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V2DF];
  	  else if (mode == V2DImode)
*************** altivec_resolve_overloaded_builtin (loca
*** 6147,6157 ****
  	    return build_call_expr (call, 3, arg1, arg0, arg2);
  	}
        else if (mode == V1TImode && VECTOR_UNIT_VSX_P (mode)
! 	       && TREE_CODE (arg2) == INTEGER_CST
! 	       && wi::eq_p (arg2, 0))
  	{
  	  tree call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V1TI];
  
  	  /* Note, __builtin_vec_insert_<xxx> has vector and scalar types
  	     reversed.  */
  	  return build_call_expr (call, 3, arg1, arg0, arg2);
--- 6223,6234 ----
  	    return build_call_expr (call, 3, arg1, arg0, arg2);
  	}
        else if (mode == V1TImode && VECTOR_UNIT_VSX_P (mode)
! 	       && TREE_CODE (arg2) == INTEGER_CST)
  	{
  	  tree call = rs6000_builtin_decls[VSX_BUILTIN_VEC_SET_V1TI];
+ 	  wide_int selector = wi::zero(32);
  
+ 	  arg2 = wide_int_to_tree (TREE_TYPE (arg2), selector);
  	  /* Note, __builtin_vec_insert_<xxx> has vector and scalar types
  	     reversed.  */
  	  return build_call_expr (call, 3, arg1, arg0, arg2);
*************** altivec_resolve_overloaded_builtin (loca
*** 6159,6168 ****
  
        /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2) = arg0. */
        arg1_inner_type = TREE_TYPE (arg1_type);
!       arg2 = build_binary_op (loc, BIT_AND_EXPR, arg2,
! 			      build_int_cst (TREE_TYPE (arg2),
! 					     TYPE_VECTOR_SUBPARTS (arg1_type)
! 					     - 1), 0);
        decl = build_decl (loc, VAR_DECL, NULL_TREE, arg1_type);
        DECL_EXTERNAL (decl) = 0;
        TREE_PUBLIC (decl) = 0;
--- 6236,6248 ----
  
        /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2) = arg0. */
        arg1_inner_type = TREE_TYPE (arg1_type);
!       if (TYPE_VECTOR_SUBPARTS (arg1_type) == 1)
! 	arg2 = build_int_cst (TREE_TYPE (arg2), 0);
!       else
! 	arg2 = build_binary_op (loc, BIT_AND_EXPR, arg2,
! 				build_int_cst (TREE_TYPE (arg2),
! 					       TYPE_VECTOR_SUBPARTS (arg1_type)
! 					       - 1), 0);
        decl = build_decl (loc, VAR_DECL, NULL_TREE, arg1_type);
        DECL_EXTERNAL (decl) = 0;
        TREE_PUBLIC (decl) = 0;
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/rs6000.c gcc-7.5.0/gcc/config/rs6000/rs6000.c
*** gcc-7.4.0/gcc/config/rs6000/rs6000.c	Fri Sep 21 10:06:25 2018
--- gcc-7.5.0/gcc/config/rs6000/rs6000.c	Fri Nov  1 20:30:26 2019
*************** darwin_rs6000_override_options (void)
*** 3834,3843 ****
        rs6000_isa_flags |= OPTION_MASK_POWERPC64;
        warning (0, "-m64 requires PowerPC64 architecture, enabling");
      }
    if (flag_mkernel)
      {
        rs6000_default_long_calls = 1;
!       rs6000_isa_flags |= OPTION_MASK_SOFT_FLOAT;
      }
  
    /* Make -m64 imply -maltivec.  Darwin's 64-bit ABI includes
--- 3834,3855 ----
        rs6000_isa_flags |= OPTION_MASK_POWERPC64;
        warning (0, "-m64 requires PowerPC64 architecture, enabling");
      }
+ 
+   /* The linkers [ld64] that support 64Bit do not need the JBSR longcall
+      optimisation, and will not work with the most generic case (where the
+      symbol is undefined external, but there is no symbl stub).  */
+   if (TARGET_64BIT)
+     rs6000_default_long_calls = 0;
+ 
+   /* ld_classic is (so far) still used for kernel (static) code, and supports
+      the JBSR longcall / branch islands.  */
    if (flag_mkernel)
      {
        rs6000_default_long_calls = 1;
! 
!       /* Allow a kext author to do -mkernel -mhard-float.  */
!       if (! (rs6000_isa_flags_explicit & OPTION_MASK_SOFT_FLOAT))
!         rs6000_isa_flags |= OPTION_MASK_SOFT_FLOAT;
      }
  
    /* Make -m64 imply -maltivec.  Darwin's 64-bit ABI includes
*************** rs6000_option_override_internal (bool gl
*** 4829,4834 ****
--- 4841,4853 ----
        else
  	rs6000_long_double_type_size = RS6000_DEFAULT_LONG_DOUBLE_SIZE;
      }
+   else if (global_options_set.x_rs6000_ieeequad)
+     {
+       if (global_options.x_rs6000_ieeequad)
+ 	error ("%qs requires %qs", "-mabi=ieeelongdouble", "-mlong-double-128");
+       else
+ 	error ("%qs requires %qs", "-mabi=ibmlongdouble", "-mlong-double-128");
+     }
  
    /* Set -mabi=ieeelongdouble on some old targets.  Note, AIX and Darwin
       explicitly redefine TARGET_IEEEQUAD to 0, so those systems will not
*************** rs6000_option_override_internal (bool gl
*** 4838,4843 ****
--- 4857,4867 ----
      rs6000_ieeequad = 1;
  #endif
  
+   if (global_options_set.x_rs6000_ieeequad
+       && global_options.x_rs6000_ieeequad
+       && (!TARGET_POPCNTD || !TARGET_VSX))
+     error ("%qs requires full ISA 2.06 support", "-mabi=ieeelongdouble");
+ 
    /* Enable the default support for IEEE 128-bit floating point on Linux VSX
       sytems, but don't enable the __float128 keyword.  */
    if (TARGET_VSX && TARGET_LONG_DOUBLE_128
*************** rs6000_expand_vector_extract (rtx target
*** 7643,7649 ****
  	default:
  	  break;
  	case V1TImode:
- 	  gcc_assert (INTVAL (elt) == 0 && inner_mode == TImode);
  	  emit_move_insn (target, gen_lowpart (TImode, vec));
  	  break;
  	case V2DFmode:
--- 7667,7672 ----
*************** rs6000_expand_vector_extract (rtx target
*** 7694,7699 ****
--- 7717,7726 ----
  
        switch (mode)
  	{
+ 	case V1TImode:
+ 	  emit_move_insn (target, gen_lowpart (TImode, vec));
+ 	  return;
+ 
  	case V2DFmode:
  	  emit_insn (gen_vsx_extract_v2df_var (target, vec, elt));
  	  return;
*************** rs6000_expand_vector_extract (rtx target
*** 7723,7740 ****
  	}
      }
  
-   gcc_assert (CONST_INT_P (elt));
- 
    /* Allocate mode-sized buffer.  */
    mem = assign_stack_temp (mode, GET_MODE_SIZE (mode));
  
    emit_move_insn (mem, vec);
  
!   /* Add offset to field within buffer matching vector element.  */
!   mem = adjust_address_nv (mem, inner_mode,
! 			   INTVAL (elt) * GET_MODE_SIZE (inner_mode));
  
!   emit_move_insn (target, adjust_address_nv (mem, inner_mode, 0));
  }
  
  /* Helper function to return the register number of a RTX.  */
--- 7750,7781 ----
  	}
      }
  
    /* Allocate mode-sized buffer.  */
    mem = assign_stack_temp (mode, GET_MODE_SIZE (mode));
  
    emit_move_insn (mem, vec);
+   if (CONST_INT_P (elt))
+     {
+       int modulo_elt = INTVAL (elt) % GET_MODE_NUNITS (mode);
  
!       /* Add offset to field within buffer matching vector element.  */
!       mem = adjust_address_nv (mem, inner_mode,
! 			       modulo_elt * GET_MODE_SIZE (inner_mode));
!       emit_move_insn (target, adjust_address_nv (mem, inner_mode, 0));
!     }
!   else
!     {
!       unsigned int ele_size = GET_MODE_SIZE (inner_mode);
!       rtx num_ele_m1 = GEN_INT (GET_MODE_NUNITS (mode) - 1);
!       rtx new_addr = gen_reg_rtx (Pmode);
  
!       elt = gen_rtx_AND (Pmode, elt, num_ele_m1);
!       if (ele_size > 1)
! 	elt = gen_rtx_MULT (Pmode, elt, GEN_INT (ele_size));
!       new_addr = gen_rtx_PLUS (Pmode, XEXP (mem, 0), elt);
!       new_addr = change_address (mem, inner_mode, new_addr);
!       emit_move_insn (target, new_addr);
!     }
  }
  
  /* Helper function to return the register number of a RTX.  */
*************** rs6000_split_vec_extract_var (rtx dest,
*** 7915,7921 ****
  			      rtx tmp_altivec)
  {
    machine_mode mode = GET_MODE (src);
!   machine_mode scalar_mode = GET_MODE (dest);
    unsigned scalar_size = GET_MODE_SIZE (scalar_mode);
    int byte_shift = exact_log2 (scalar_size);
  
--- 7956,7962 ----
  			      rtx tmp_altivec)
  {
    machine_mode mode = GET_MODE (src);
!   machine_mode scalar_mode = GET_MODE_INNER (GET_MODE (src));
    unsigned scalar_size = GET_MODE_SIZE (scalar_mode);
    int byte_shift = exact_log2 (scalar_size);
  
*************** rs6000_split_vec_extract_var (rtx dest,
*** 7926,7931 ****
--- 7967,7976 ----
       systems.  */
    if (MEM_P (src))
      {
+       int num_elements = GET_MODE_NUNITS (mode);
+       rtx num_ele_m1 = GEN_INT (num_elements - 1);
+ 
+       emit_insn (gen_anddi3 (element, element, num_ele_m1));
        gcc_assert (REG_P (tmp_gpr));
        emit_move_insn (dest, rs6000_adjust_vec_address (dest, src, element,
  						       tmp_gpr, scalar_mode));
*************** rs6000_split_vec_extract_var (rtx dest,
*** 7934,7940 ****
  
    else if (REG_P (src) || SUBREG_P (src))
      {
!       int bit_shift = byte_shift + 3;
        rtx element2;
        int dest_regno = regno_or_subregno (dest);
        int src_regno = regno_or_subregno (src);
--- 7979,7987 ----
  
    else if (REG_P (src) || SUBREG_P (src))
      {
!       int num_elements = GET_MODE_NUNITS (mode);
!       int bits_in_element = GET_MODE_BITSIZE (GET_MODE_INNER (mode));
!       int bit_shift = 7 - exact_log2 (num_elements);
        rtx element2;
        int dest_regno = regno_or_subregno (dest);
        int src_regno = regno_or_subregno (src);
*************** rs6000_split_vec_extract_var (rtx dest,
*** 8010,8016 ****
  	{
  	  if (!VECTOR_ELT_ORDER_BIG)
  	    {
! 	      rtx num_ele_m1 = GEN_INT (GET_MODE_NUNITS (mode) - 1);
  
  	      emit_insn (gen_anddi3 (tmp_gpr, element, num_ele_m1));
  	      emit_insn (gen_subdi3 (tmp_gpr, num_ele_m1, tmp_gpr));
--- 8057,8063 ----
  	{
  	  if (!VECTOR_ELT_ORDER_BIG)
  	    {
! 	      rtx num_ele_m1 = GEN_INT (num_elements - 1);
  
  	      emit_insn (gen_anddi3 (tmp_gpr, element, num_ele_m1));
  	      emit_insn (gen_subdi3 (tmp_gpr, num_ele_m1, tmp_gpr));
*************** rs6000_split_vec_extract_var (rtx dest,
*** 8068,8075 ****
  	    emit_insn (gen_vsx_vslo_v2di (tmp_altivec_di, src_v2di,
  					  tmp_altivec));
  	    emit_move_insn (tmp_gpr_di, tmp_altivec_di);
! 	    emit_insn (gen_ashrdi3 (tmp_gpr_di, tmp_gpr_di,
! 				    GEN_INT (64 - (8 * scalar_size))));
  	    return;
  	  }
  
--- 8115,8122 ----
  	    emit_insn (gen_vsx_vslo_v2di (tmp_altivec_di, src_v2di,
  					  tmp_altivec));
  	    emit_move_insn (tmp_gpr_di, tmp_altivec_di);
! 	    emit_insn (gen_lshrdi3 (tmp_gpr_di, tmp_gpr_di,
! 				    GEN_INT (64 - bits_in_element)));
  	    return;
  	  }
  
*************** address_offset (rtx op)
*** 8538,8543 ****
--- 8585,8685 ----
    return NULL_RTX;
  }
  
+ /* This tests that a lo_sum {constant, symbol, symbol+offset} is valid for
+    the mode.  If we can't find (or don't know) the alignment of the symbol
+    we assume (optimistically) that it's sufficiently aligned [??? maybe we
+    should be pessimistic].  Offsets are validated in the same way as for
+    reg + offset.  */
+ static bool
+ darwin_rs6000_legitimate_lo_sum_const_p (rtx x, machine_mode mode)
+ {
+   if (GET_CODE (x) == CONST)
+     x = XEXP (x, 0);
+ 
+   if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_MACHOPIC_OFFSET)
+     x =  XVECEXP (x, 0, 0);
+ 
+   rtx sym = NULL_RTX;
+   unsigned HOST_WIDE_INT offset = 0;
+ 
+   if (GET_CODE (x) == PLUS)
+     {
+       sym = XEXP (x, 0);
+       if (! SYMBOL_REF_P (sym))
+ 	return false;
+       if (!CONST_INT_P (XEXP (x, 1)))
+ 	return false;
+       offset = INTVAL (XEXP (x, 1));
+     }
+   else if (SYMBOL_REF_P (x))
+     sym = x;
+   else if (CONST_INT_P (x))
+     offset = INTVAL (x);
+   else if (GET_CODE (x) == LABEL_REF)
+     offset = 0; // We assume code labels are Pmode aligned
+   else
+     return false; // not sure what we have here.
+ 
+   /* If we don't know the alignment of the thing to which the symbol refers,
+      we assume optimistically it is "enough".
+      ??? maybe we should be pessimistic instead.  */
+   unsigned align = 0;
+ 
+   if (sym)
+     {
+       tree decl = SYMBOL_REF_DECL (sym);
+ #if TARGET_MACHO
+       if (MACHO_SYMBOL_INDIRECTION_P (sym))
+       /* The decl in an indirection symbol is the original one, which might
+ 	 be less aligned than the indirection.  Our indirections are always
+ 	 pointer-aligned.  */
+ 	;
+       else
+ #endif
+       if (decl && DECL_ALIGN (decl))
+ 	align = DECL_ALIGN_UNIT (decl);
+    }
+ 
+   unsigned int extra = 0;
+   switch (mode)
+     {
+     case DFmode:
+     case DDmode:
+     case DImode:
+       /* If we are using VSX scalar loads, restrict ourselves to reg+reg
+ 	 addressing.  */
+       if (VECTOR_MEM_VSX_P (mode))
+ 	return false;
+ 
+       if (!TARGET_POWERPC64)
+ 	extra = 4;
+       else if ((offset & 3) || (align & 3))
+ 	return false;
+       break;
+ 
+     case TFmode:
+     case IFmode:
+     case KFmode:
+     case TDmode:
+     case TImode:
+     case PTImode:
+       extra = 8;
+       if (!TARGET_POWERPC64)
+ 	extra = 12;
+       else if ((offset & 3) || (align & 3))
+ 	return false;
+       break;
+ 
+     default:
+       break;
+     }
+ 
+   /* We only care if the access(es) would cause a change to the high part.  */
+   offset = ((offset & 0xffff) ^ 0x8000) - 0x8000;
+   return IN_RANGE (offset, -(HOST_WIDE_INT_1 << 15),
+                             (HOST_WIDE_INT_1 << 15) - 1 - extra);
+ }
+ 
  /* Return true if the MEM operand is a memory operand suitable for use
     with a (full width, possibly multiple) gpr load/store.  On
     powerpc64 this means the offset must be divisible by 4.
*************** mem_operand_gpr (rtx op, machine_mode mo
*** 8572,8578 ****
        && legitimate_indirect_address_p (XEXP (addr, 0), false))
      return true;
  
!   /* Don't allow non-offsettable addresses.  See PRs 83969 and 84279.  */
    if (!rs6000_offsettable_memref_p (op, mode, false))
      return false;
  
--- 8714,8726 ----
        && legitimate_indirect_address_p (XEXP (addr, 0), false))
      return true;
  
!   /* We need to look through Mach-O PIC unspecs to determine if a lo_sum is
!      really OK.  Doing this early avoids teaching all the other machinery
!      about them.  */
!   if (TARGET_MACHO && GET_CODE (addr) == LO_SUM)
!     return darwin_rs6000_legitimate_lo_sum_const_p (XEXP (addr, 1), mode);
! 
!   /* Only allow offsettable addresses.  See PRs 83969 and 84279.  */
    if (!rs6000_offsettable_memref_p (op, mode, false))
      return false;
  
*************** rs6000_function_arg (cumulative_args_t c
*** 13109,13115 ****
        if (elt_mode == TDmode && (cum->fregno % 2) == 1)
  	cum->fregno++;
  
!       if (USE_FP_FOR_ARG_P (cum, elt_mode))
  	{
  	  rtx rvec[GP_ARG_NUM_REG + AGGR_ARG_NUM_REG + 1];
  	  rtx r, off;
--- 13257,13265 ----
        if (elt_mode == TDmode && (cum->fregno % 2) == 1)
  	cum->fregno++;
  
!       if (USE_FP_FOR_ARG_P (cum, elt_mode)
! 	  && !(TARGET_AIX && !TARGET_ELF
! 	       && type != NULL && AGGREGATE_TYPE_P (type)))
  	{
  	  rtx rvec[GP_ARG_NUM_REG + AGGR_ARG_NUM_REG + 1];
  	  rtx r, off;
*************** rs6000_arg_partial_bytes (cumulative_arg
*** 13245,13251 ****
  
    align_words = rs6000_parm_start (mode, type, cum->words);
  
!   if (USE_FP_FOR_ARG_P (cum, elt_mode))
      {
        unsigned long n_fpreg = (GET_MODE_SIZE (elt_mode) + 7) >> 3;
  
--- 13395,13403 ----
  
    align_words = rs6000_parm_start (mode, type, cum->words);
  
!   if (USE_FP_FOR_ARG_P (cum, elt_mode)
!       && !(TARGET_AIX && !TARGET_ELF
! 	   && type != NULL && AGGREGATE_TYPE_P (type)))
      {
        unsigned long n_fpreg = (GET_MODE_SIZE (elt_mode) + 7) >> 3;
  
*************** altivec_expand_vec_ext_builtin (tree exp
*** 16146,16154 ****
    op0 = expand_normal (arg0);
    op1 = expand_normal (arg1);
  
-   /* Call get_element_number to validate arg1 if it is a constant.  */
    if (TREE_CODE (arg1) == INTEGER_CST)
!     (void) get_element_number (TREE_TYPE (arg0), arg1);
  
    tmode = TYPE_MODE (TREE_TYPE (TREE_TYPE (arg0)));
    mode0 = TYPE_MODE (TREE_TYPE (arg0));
--- 16298,16314 ----
    op0 = expand_normal (arg0);
    op1 = expand_normal (arg1);
  
    if (TREE_CODE (arg1) == INTEGER_CST)
!     {
!       unsigned HOST_WIDE_INT elt;
!       unsigned HOST_WIDE_INT size = TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0));
!       unsigned int truncated_selector;
!       /* Even if !tree_fits_uhwi_p (arg1)), TREE_INT_CST_LOW (arg0)
! 	 returns low-order bits of INTEGER_CST for modulo indexing.  */
!       elt = TREE_INT_CST_LOW (arg1);
!       truncated_selector = elt % size;
!       op1 = GEN_INT (truncated_selector);
!     }
  
    tmode = TYPE_MODE (TREE_TYPE (TREE_TYPE (arg0)));
    mode0 = TYPE_MODE (TREE_TYPE (arg0));
*************** builtin_function_type (machine_mode mode
*** 18806,18811 ****
--- 18966,18972 ----
      {
        /* unsigned 1 argument functions.  */
      case CRYPTO_BUILTIN_VSBOX:
+     case CRYPTO_BUILTIN_VSBOX_BE:
      case P8V_BUILTIN_VGBBD:
      case MISC_BUILTIN_CDTBCD:
      case MISC_BUILTIN_CBCDTD:
*************** builtin_function_type (machine_mode mode
*** 18819,18827 ****
--- 18980,18992 ----
      case ALTIVEC_BUILTIN_VMULOUB:
      case ALTIVEC_BUILTIN_VMULOUH:
      case CRYPTO_BUILTIN_VCIPHER:
+     case CRYPTO_BUILTIN_VCIPHER_BE:
      case CRYPTO_BUILTIN_VCIPHERLAST:
+     case CRYPTO_BUILTIN_VCIPHERLAST_BE:
      case CRYPTO_BUILTIN_VNCIPHER:
+     case CRYPTO_BUILTIN_VNCIPHER_BE:
      case CRYPTO_BUILTIN_VNCIPHERLAST:
+     case CRYPTO_BUILTIN_VNCIPHERLAST_BE:
      case CRYPTO_BUILTIN_VPMSUMB:
      case CRYPTO_BUILTIN_VPMSUMH:
      case CRYPTO_BUILTIN_VPMSUMW:
*************** print_operand (FILE *file, rtx x, int co
*** 23931,23937 ****
  	{
  	  const char *name = XSTR (x, 0);
  #if TARGET_MACHO
! 	  if (darwin_emit_branch_islands
  	      && MACHOPIC_INDIRECT
  	      && machopic_classify_symbol (x) == MACHOPIC_UNDEFINED_FUNCTION)
  	    name = machopic_indirection_name (x, /*stub_p=*/true);
--- 24096,24102 ----
  	{
  	  const char *name = XSTR (x, 0);
  #if TARGET_MACHO
! 	  if (darwin_symbol_stubs
  	      && MACHOPIC_INDIRECT
  	      && machopic_classify_symbol (x) == MACHOPIC_UNDEFINED_FUNCTION)
  	    name = machopic_indirection_name (x, /*stub_p=*/true);
*************** save_reg_p (int r)
*** 26714,26740 ****
  static bool
  rs6000_reg_live_or_pic_offset_p (int reg)
  {
-   /* We need to mark the PIC offset register live for the same conditions
-      as it is set up, or otherwise it won't be saved before we clobber it.  */
- 
    if (reg == RS6000_PIC_OFFSET_TABLE_REGNUM && !TARGET_SINGLE_PIC_BASE)
      {
        if (TARGET_TOC && TARGET_MINIMAL_TOC
! 	  && (crtl->calls_eh_return
! 	      || df_regs_ever_live_p (reg)
! 	      || !constant_pool_empty_p ()))
  	return true;
  
!       if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN)
! 	  && flag_pic)
  	return true;
-     }
  
!   /* If the function calls eh_return, claim used all the registers that would
!      be checked for liveness otherwise.  */
  
!   return ((crtl->calls_eh_return || df_regs_ever_live_p (reg))
! 	  && !call_used_regs[reg]);
  }
  
  /* Return the first fixed-point register that is required to be
--- 26879,26913 ----
  static bool
  rs6000_reg_live_or_pic_offset_p (int reg)
  {
    if (reg == RS6000_PIC_OFFSET_TABLE_REGNUM && !TARGET_SINGLE_PIC_BASE)
      {
+       /* When calling eh_return, we must return true for all the cases
+ 	 where conditional_register_usage marks the PIC offset reg
+ 	 call used or fixed.  */
+       if (crtl->calls_eh_return
+ 	  && ((DEFAULT_ABI == ABI_V4 && flag_pic)
+ 	      || (DEFAULT_ABI == ABI_DARWIN && flag_pic)
+ 	      || (TARGET_TOC && TARGET_MINIMAL_TOC)))
+ 	return true;
+ 
+       /* We need to mark the PIC offset register live for the same
+ 	 conditions as it is set up in rs6000_emit_prologue, or
+ 	 otherwise it won't be saved before we clobber it.  */
        if (TARGET_TOC && TARGET_MINIMAL_TOC
! 	  && !constant_pool_empty_p ())
  	return true;
  
!       if (DEFAULT_ABI == ABI_V4
! 	  && (flag_pic == 1 || (flag_pic && TARGET_SECURE_PLT))
! 	  && df_regs_ever_live_p (RS6000_PIC_OFFSET_TABLE_REGNUM))
  	return true;
  
!       if (DEFAULT_ABI == ABI_DARWIN
! 	  && flag_pic && crtl->uses_pic_offset_table)
! 	return true;
!     }
  
!   return !call_used_regs[reg] && df_regs_ever_live_p (reg);
  }
  
  /* Return the first fixed-point register that is required to be
*************** output_call (rtx_insn *insn, rtx *operan
*** 35852,35858 ****
  	     int cookie_operand_number)
  {
    static char buf[256];
!   if (darwin_emit_branch_islands
        && GET_CODE (operands[dest_operand_number]) == SYMBOL_REF
        && (INTVAL (operands[cookie_operand_number]) & CALL_LONG))
      {
--- 36025,36031 ----
  	     int cookie_operand_number)
  {
    static char buf[256];
!   if (darwin_symbol_stubs
        && GET_CODE (operands[dest_operand_number]) == SYMBOL_REF
        && (INTVAL (operands[cookie_operand_number]) & CALL_LONG))
      {
*************** rs6000_xcoff_asm_init_sections (void)
*** 36409,36414 ****
--- 36582,36591 ----
  			   rs6000_xcoff_output_readwrite_section_asm_op,
  			   &xcoff_private_data_section_name);
  
+   read_only_private_data_section
+     = get_unnamed_section (0, rs6000_xcoff_output_readonly_section_asm_op,
+ 			   &xcoff_private_rodata_section_name);
+ 
    tls_data_section
      = get_unnamed_section (SECTION_TLS,
  			   rs6000_xcoff_output_tls_section_asm_op,
*************** rs6000_xcoff_asm_init_sections (void)
*** 36419,36428 ****
  			   rs6000_xcoff_output_tls_section_asm_op,
  			   &xcoff_private_data_section_name);
  
-   read_only_private_data_section
-     = get_unnamed_section (0, rs6000_xcoff_output_readonly_section_asm_op,
- 			   &xcoff_private_data_section_name);
- 
    toc_section
      = get_unnamed_section (0, rs6000_xcoff_output_toc_section_asm_op, NULL);
  
--- 36596,36601 ----
*************** rs6000_xcoff_file_start (void)
*** 36603,36608 ****
--- 36776,36783 ----
  			   main_input_filename, ".bss_");
    rs6000_gen_section_name (&xcoff_private_data_section_name,
  			   main_input_filename, ".rw_");
+   rs6000_gen_section_name (&xcoff_private_rodata_section_name,
+ 			   main_input_filename, ".rop_");
    rs6000_gen_section_name (&xcoff_read_only_section_name,
  			   main_input_filename, ".ro_");
    rs6000_gen_section_name (&xcoff_tls_data_section_name,
*************** rtx_is_swappable_p (rtx op, unsigned int
*** 41934,41939 ****
--- 42109,42119 ----
  	  case UNSPEC_REDUC_PLUS:
  	  case UNSPEC_REDUC:
  	    return 1;
+ 	  case UNSPEC_VPMSUM:
+ 	    /* vpmsumd is not swappable, but vpmsum[bhw] are.  */
+ 	    if (GET_MODE (op) == V2DImode)
+ 	      return 0;
+ 	    break;
  	  }
        }
  
*************** rs6000_analyze_swaps (function *fun)
*** 43013,43018 ****
--- 43193,43206 ----
    /* Pre-pass to recombine lvx and stvx patterns so we don't lose info.  */
    recombine_lvx_stvx_patterns (fun);
  
+   /* Rebuild ud- and du-chains.  */                                            
+   df_remove_problem (df_chain);
+   df_process_deferred_rescans ();
+   df_set_flags (DF_RD_PRUNE_DEAD_DEFS);
+   df_chain_add_problem (DF_DU_CHAIN | DF_UD_CHAIN);
+   df_analyze ();
+   df_set_flags (DF_DEFER_INSN_RESCAN);
+ 
    /* Allocate structure to represent webs of insns.  */
    insn_entry = XCNEWVEC (swap_web_entry, get_max_uid ());
  
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/rs6000.md gcc-7.5.0/gcc/config/rs6000/rs6000.md
*** gcc-7.4.0/gcc/config/rs6000/rs6000.md	Fri Sep 28 00:32:46 2018
--- gcc-7.5.0/gcc/config/rs6000/rs6000.md	Tue Oct 29 20:20:23 2019
***************
*** 141,146 ****
--- 141,149 ----
     UNSPEC_LSQ
     UNSPEC_FUSION_GPR
     UNSPEC_STACK_CHECK
+    UNSPEC_CMPRB
+    UNSPEC_CMPRB2
+    UNSPEC_CMPEQB
     UNSPEC_FUSION_P9
     UNSPEC_FUSION_ADDIS
     UNSPEC_ROUND_TO_ODD
***************
*** 161,166 ****
--- 164,172 ----
     UNSPECV_EH_RR		; eh_reg_restore
     UNSPECV_ISYNC		; isync instruction
     UNSPECV_MFTB			; move from time base
+    UNSPECV_DARN			; darn 1 (deliver a random number)
+    UNSPECV_DARN_32		; darn 2
+    UNSPECV_DARN_RAW		; darn 0
     UNSPECV_NLGR			; non-local goto receiver
     UNSPECV_MFFS			; Move from FPSCR
     UNSPECV_MTFSF		; Move to FPSCR Fields
***************
*** 6740,6753 ****
  ;; do the load 16-bits at a time.  We could do this by loading from memory,
  ;; and this is even supposed to be faster, but it is simpler not to get
  ;; integers in the TOC.
- (define_insn "movsi_low"
-   [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
-         (mem:SI (lo_sum:SI (match_operand:SI 1 "gpc_reg_operand" "b")
-                            (match_operand 2 "" ""))))]
-   "TARGET_MACHO && ! TARGET_64BIT"
-   "lwz %0,lo16(%2)(%1)"
-   [(set_attr "type" "load")
-    (set_attr "length" "4")])
  
  ;;		MR           LA           LWZ          LFIWZX       LXSIWZX
  ;;		STW          STFIWX       STXSIWX      LI           LIS
--- 6746,6751 ----
***************
*** 8564,8579 ****
  
  (define_insn "*movdi_internal32"
    [(set (match_operand:DI 0 "rs6000_nonimmediate_operand"
!          "=Y,        r,         r,         ^m,        ^d,         ^d,
!           r,         ^wY,       $Z,        ^wb,       $wv,        ^wi,
            *wo,       *wo,       *wv,       *wi,       *wi,        *wv,
            *wv")
  
  	(match_operand:DI 1 "input_operand"
!           "r,        Y,         r,         d,         m,          d,
!            IJKnGHF,  wb,        wv,        wY,        Z,          wi,
!            Oj,       wM,        OjwM,      Oj,        wM,         wS,
!            wB"))]
  
    "! TARGET_POWERPC64
     && (gpc_reg_operand (operands[0], DImode)
--- 8562,8577 ----
  
  (define_insn "*movdi_internal32"
    [(set (match_operand:DI 0 "rs6000_nonimmediate_operand"
!          "=Y,        r,         r,         m,         ^d,         ^d,
!           r,         wY,        Z,         ^wb,       $wv,        ^wi,
            *wo,       *wo,       *wv,       *wi,       *wi,        *wv,
            *wv")
  
  	(match_operand:DI 1 "input_operand"
!          "r,         Y,         r,         ^d,        m,          ^d,
!           IJKnGHF,   ^wb,       $wv,       wY,        Z,          ^wi,
!           Oj,        wM,        OjwM,      Oj,        wM,         wS,
!           wB"))]
  
    "! TARGET_POWERPC64
     && (gpc_reg_operand (operands[0], DImode)
***************
*** 8641,8657 ****
  (define_insn "*movdi_internal64"
    [(set (match_operand:DI 0 "nonimmediate_operand"
                 "=YZ,       r,         r,         r,         r,          r,
!                 ^m,        ^d,        ^d,        ^wY,       $Z,         $wb,
                  $wv,       ^wi,       *wo,       *wo,       *wv,        *wi,
                  *wi,       *wv,       *wv,       r,         *h,         *h,
                  ?*r,       ?*wg,      ?*r,       ?*wj")
  
  	(match_operand:DI 1 "input_operand"
!                 "r,        YZ,        r,         I,         L,          nF,
!                  d,        m,         d,         wb,        wv,         wY,
!                  Z,        wi,        Oj,        wM,        OjwM,       Oj,
!                  wM,       wS,        wB,        *h,        r,          0,
!                  wg,       r,         wj,        r"))]
  
    "TARGET_POWERPC64
     && (gpc_reg_operand (operands[0], DImode)
--- 8639,8655 ----
  (define_insn "*movdi_internal64"
    [(set (match_operand:DI 0 "nonimmediate_operand"
                 "=YZ,       r,         r,         r,         r,          r,
!                 m,         ^d,        ^d,        wY,        Z,          $wb,
                  $wv,       ^wi,       *wo,       *wo,       *wv,        *wi,
                  *wi,       *wv,       *wv,       r,         *h,         *h,
                  ?*r,       ?*wg,      ?*r,       ?*wj")
  
  	(match_operand:DI 1 "input_operand"
!                "r,         YZ,        r,         I,         L,          nF,
!                 ^d,        m,         ^d,        ^wb,       $wv,        wY,
!                 Z,         ^wi,       Oj,        wM,        OjwM,       Oj,
!                 wM,        wS,        wB,        *h,        r,          0,
!                 wg,        r,         wj,        r"))]
  
    "TARGET_POWERPC64
     && (gpc_reg_operand (operands[0], DImode)
***************
*** 14945,14951 ****
--- 14943,15167 ----
     "xscmpuqp %0,%1,%2"
    [(set_attr "type" "veccmp")
     (set_attr "size" "128")])
+ 
+ ;; Miscellaneous ISA 3.0 (power9) instructions
+ 
+ (define_insn "darn_32"
+   [(set (match_operand:SI 0 "register_operand" "=r")
+         (unspec_volatile:SI [(const_int 0)] UNSPECV_DARN_32))]
+   "TARGET_P9_MISC"
+   "darn %0,0"
+   [(set_attr "type" "integer")])
+ 
+ (define_insn "darn_raw"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN_RAW))]
+   "TARGET_P9_MISC && TARGET_64BIT"
+   "darn %0,2"
+   [(set_attr "type" "integer")])
+ 
+ (define_insn "darn"
+   [(set (match_operand:DI 0 "register_operand" "=r")
+         (unspec_volatile:DI [(const_int 0)] UNSPECV_DARN))]
+   "TARGET_P9_MISC && TARGET_64BIT"
+   "darn %0,1"
+   [(set_attr "type" "integer")])
+ 
+ ;; Test byte within range.
+ ;;
+ ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
+ ;; represents a byte whose value is ignored in this context and
+ ;; vv, the least significant byte, holds the byte value that is to
+ ;; be tested for membership within the range specified by operand 2.
+ ;; The bytes of operand 2 are organized as xx:xx:hi:lo.
+ ;;
+ ;; Return in target register operand 0 a value of 1 if lo <= vv and
+ ;; vv <= hi.  Otherwise, set register operand 0 to 0.
+ ;;
+ ;; Though the instructions to which this expansion maps operate on
+ ;; 64-bit registers, the current implementation only operates on
+ ;; SI-mode operands as the high-order bits provide no information
+ ;; that is not already available in the low-order bits.  To avoid the
+ ;; costs of data widening operations, future enhancements might allow
+ ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
+ (define_expand "cmprb"
+   [(set (match_dup 3)
+ 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
+ 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
+ 	 UNSPEC_CMPRB))
+    (set (match_operand:SI 0 "gpc_reg_operand" "=r")
+ 	(if_then_else:SI (lt (match_dup 3)
+ 			     (const_int 0))
+ 			 (const_int -1)
+ 			 (if_then_else (gt (match_dup 3)
+ 					   (const_int 0))
+ 				       (const_int 1)
+ 				       (const_int 0))))]
+   "TARGET_P9_MISC"
+ {
+   operands[3] = gen_reg_rtx (CCmode);
+ })
+ 
+ ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
+ ;; represents a byte whose value is ignored in this context and
+ ;; vv, the least significant byte, holds the byte value that is to
+ ;; be tested for membership within the range specified by operand 2.
+ ;; The bytes of operand 2 are organized as xx:xx:hi:lo.
+ ;;
+ ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
+ ;; lo <= vv and vv <= hi.  Otherwise, set the GT bit to 0.  The other
+ ;; 3 bits of the target CR register are all set to 0.
+ (define_insn "*cmprb_internal"
+   [(set (match_operand:CC 0 "cc_reg_operand" "=y")
+ 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
+ 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
+ 	 UNSPEC_CMPRB))]
+   "TARGET_P9_MISC"
+   "cmprb %0,0,%1,%2"
+   [(set_attr "type" "logical")])
+ 
+ ;; Set operand 0 register to -1 if the LT bit (0x8) of condition
+ ;; register operand 1 is on.  Otherwise, set operand 0 register to 1
+ ;; if the GT bit (0x4) of condition register operand 1 is on.
+ ;; Otherwise, set operand 0 to 0.  Note that the result stored into
+ ;; register operand 0 is non-zero iff either the LT or GT bits are on
+ ;; within condition register operand 1.
+ (define_insn "setb_signed"
+    [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+ 	 (if_then_else:SI (lt (match_operand:CC 1 "cc_reg_operand" "y")
+ 			      (const_int 0))
+ 			  (const_int -1)
+ 			  (if_then_else (gt (match_dup 1)
+ 					    (const_int 0))
+ 					(const_int 1)
+ 					(const_int 0))))]
+   "TARGET_P9_MISC"
+   "setb %0,%1"
+   [(set_attr "type" "logical")])
+ 
+ (define_insn "setb_unsigned"
+    [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
+ 	 (if_then_else:SI (ltu (match_operand:CCUNS 1 "cc_reg_operand" "y")
+ 			      (const_int 0))
+ 			  (const_int -1)
+ 			  (if_then_else (gtu (match_dup 1)
+ 					    (const_int 0))
+ 					(const_int 1)
+ 					(const_int 0))))]
+   "TARGET_P9_MISC"
+   "setb %0,%1"
+   [(set_attr "type" "logical")])
+ 
+ ;; Test byte within two ranges.
+ ;;
+ ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
+ ;; represents a byte whose value is ignored in this context and
+ ;; vv, the least significant byte, holds the byte value that is to
+ ;; be tested for membership within the range specified by operand 2.
+ ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
+ ;;
+ ;; Return in target register operand 0 a value of 1 if (lo_1 <= vv and
+ ;; vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2).  Otherwise, set register
+ ;; operand 0 to 0.
+ ;;
+ ;; Though the instructions to which this expansion maps operate on
+ ;; 64-bit registers, the current implementation only operates on
+ ;; SI-mode operands as the high-order bits provide no information
+ ;; that is not already available in the low-order bits.  To avoid the
+ ;; costs of data widening operations, future enhancements might allow
+ ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
+ (define_expand "cmprb2"
+   [(set (match_dup 3)
+ 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
+ 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
+ 	 UNSPEC_CMPRB2))
+    (set (match_operand:SI 0 "gpc_reg_operand" "=r")
+ 	(if_then_else:SI (lt (match_dup 3)
+ 			     (const_int 0))
+ 			 (const_int -1)
+ 			 (if_then_else (gt (match_dup 3)
+ 					   (const_int 0))
+ 				       (const_int 1)
+ 				       (const_int 0))))]
+   "TARGET_P9_MISC"
+ {
+   operands[3] = gen_reg_rtx (CCmode);
+ })
+ 
+ ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
+ ;; represents a byte whose value is ignored in this context and
+ ;; vv, the least significant byte, holds the byte value that is to
+ ;; be tested for membership within the ranges specified by operand 2.
+ ;; The bytes of operand 2 are organized as hi_1:lo_1:hi_2:lo_2.
+ ;;
+ ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if
+ ;; (lo_1 <= vv and vv <= hi_1) or if (lo_2 <= vv and vv <= hi_2).
+ ;; Otherwise, set the GT bit to 0.  The other 3 bits of the target
+ ;; CR register are all set to 0.
+ (define_insn "*cmprb2_internal"
+   [(set (match_operand:CC 0 "cc_reg_operand" "=y")
+ 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
+ 		    (match_operand:SI 2 "gpc_reg_operand" "r")]
+ 	 UNSPEC_CMPRB2))]
+   "TARGET_P9_MISC"
+   "cmprb %0,1,%1,%2"
+   [(set_attr "type" "logical")])
+ 
+ ;; Test byte membership within set of 8 bytes.
+ ;;
+ ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
+ ;; represents a byte whose value is ignored in this context and
+ ;; vv, the least significant byte, holds the byte value that is to
+ ;; be tested for membership within the set specified by operand 2.
+ ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
+ ;;
+ ;; Return in target register operand 0 a value of 1 if vv equals one
+ ;; of the values e0, e1, e2, e3, e4, e5, e6, or e7.  Otherwise, set
+ ;; register operand 0 to 0.  Note that the 8 byte values held within
+ ;; operand 2 need not be unique.
+ ;;
+ ;; Though the instructions to which this expansion maps operate on
+ ;; 64-bit registers, the current implementation requires that operands
+ ;; 0 and 1 have mode SI as the high-order bits provide no information
+ ;; that is not already available in the low-order bits.  To avoid the
+ ;; costs of data widening operations, future enhancements might allow
+ ;; DI mode for operand 0 and/or might allow operand 1 to be QI mode.
+ (define_expand "cmpeqb"
+   [(set (match_dup 3)
+ 	(unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
+ 		    (match_operand:DI 2 "gpc_reg_operand" "r")]
+ 	 UNSPEC_CMPEQB))
+    (set (match_operand:SI 0 "gpc_reg_operand" "=r")
+ 	(if_then_else:SI (lt (match_dup 3)
+ 			     (const_int 0))
+ 			 (const_int -1)
+ 			 (if_then_else (gt (match_dup 3)
+ 					   (const_int 0))
+ 				       (const_int 1)
+ 				       (const_int 0))))]
+   "TARGET_P9_MISC && TARGET_64BIT"
+ {
+   operands[3] = gen_reg_rtx (CCmode);
+ })
  
+ ;; The bytes of operand 1 are organized as xx:xx:xx:vv, where xx
+ ;; represents a byte whose value is ignored in this context and
+ ;; vv, the least significant byte, holds the byte value that is to
+ ;; be tested for membership within the set specified by operand 2.
+ ;; The bytes of operand 2 are organized as e0:e1:e2:e3:e4:e5:e6:e7.
+ ;;
+ ;; Set bit 1 (the GT bit, 0x4) of CR register operand 0 to 1 if vv
+ ;; equals one of the values e0, e1, e2, e3, e4, e5, e6, or e7.  Otherwise,
+ ;; set the GT bit to zero.  The other 3 bits of the target CR register
+ ;; are all set to 0.
+ (define_insn "*cmpeqb_internal"
+   [(set (match_operand:CC 0 "cc_reg_operand" "=y")
+ 	 (unspec:CC [(match_operand:SI 1 "gpc_reg_operand" "r")
+ 		     (match_operand:DI 2 "gpc_reg_operand" "r")]
+ 	  UNSPEC_CMPEQB))]
+   "TARGET_P9_MISC && TARGET_64BIT"
+   "cmpeqb %0,%1,%2"
+   [(set_attr "type" "logical")])
  
  
  (include "sync.md")
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/t-darwin32-biarch gcc-7.5.0/gcc/config/rs6000/t-darwin32-biarch
*** gcc-7.4.0/gcc/config/rs6000/t-darwin32-biarch	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/rs6000/t-darwin32-biarch	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,3 ----
+ # 64-bit libraries can only be built in Darwin 8.x or later.
+ MULTILIB_OPTIONS = m64
+ MULTILIB_DIRNAMES = ppc64
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/t-darwin64 gcc-7.5.0/gcc/config/rs6000/t-darwin64
*** gcc-7.4.0/gcc/config/rs6000/t-darwin64	Wed Nov  2 15:23:48 2011
--- gcc-7.5.0/gcc/config/rs6000/t-darwin64	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- MULTILIB_OPTIONS = m32
- MULTILIB_DIRNAMES = ppc
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/t-darwin64-biarch gcc-7.5.0/gcc/config/rs6000/t-darwin64-biarch
*** gcc-7.4.0/gcc/config/rs6000/t-darwin64-biarch	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/config/rs6000/t-darwin64-biarch	Thu Sep  5 19:14:35 2019
***************
*** 0 ****
--- 1,2 ----
+ MULTILIB_OPTIONS = m32
+ MULTILIB_DIRNAMES = ppc
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/t-darwin8 gcc-7.5.0/gcc/config/rs6000/t-darwin8
*** gcc-7.4.0/gcc/config/rs6000/t-darwin8	Thu Sep 29 00:42:21 2005
--- gcc-7.5.0/gcc/config/rs6000/t-darwin8	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- # 64-bit libraries can only be built in Darwin 8.x or later.
- MULTILIB_OPTIONS = m64
- MULTILIB_DIRNAMES = ppc64
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/t-linux gcc-7.5.0/gcc/config/rs6000/t-linux
*** gcc-7.4.0/gcc/config/rs6000/t-linux	Tue Mar 10 13:43:44 2015
--- gcc-7.5.0/gcc/config/rs6000/t-linux	Fri Aug 30 12:12:56 2019
*************** ifneq (,$(findstring powerpc64,$(target)
*** 5,13 ****
  MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
  else
  ifneq (,$(findstring spe,$(target)))
! MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1)
  else
! MULTIARCH_DIRNAME := powerpc-linux-gnu
  endif
  endif
  ifneq (,$(findstring powerpcle,$(target)))
--- 5,13 ----
  MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu)
  else
  ifneq (,$(findstring spe,$(target)))
! MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1))
  else
! MULTIARCH_DIRNAME := $(call if_multiarch,powerpc-linux-gnu)
  endif
  endif
  ifneq (,$(findstring powerpcle,$(target)))
diff -Nrcpad gcc-7.4.0/gcc/config/rs6000/vsx.md gcc-7.5.0/gcc/config/rs6000/vsx.md
*** gcc-7.4.0/gcc/config/rs6000/vsx.md	Tue Jul 10 17:33:40 2018
--- gcc-7.5.0/gcc/config/rs6000/vsx.md	Mon Apr 22 16:09:13 2019
***************
*** 339,344 ****
--- 339,345 ----
     UNSPEC_VSX_CVDPSXWS
     UNSPEC_VSX_CVDPUXWS
     UNSPEC_VSX_CVSPDP
+    UNSPEC_VSX_CVHPSP
     UNSPEC_VSX_CVSPDPN
     UNSPEC_VSX_CVDPSPN
     UNSPEC_VSX_CVSXWDP
***************
*** 353,358 ****
--- 354,361 ----
     UNSPEC_VSX_ROUND_I
     UNSPEC_VSX_ROUND_IC
     UNSPEC_VSX_SLDWI
+    UNSPEC_VSX_XXPERM
+ 
     UNSPEC_VSX_XXSPLTW
     UNSPEC_VSX_XXSPLTD
     UNSPEC_VSX_DIVSD
***************
*** 370,375 ****
--- 373,380 ----
     UNSPEC_VSX_SIEXPDP
     UNSPEC_VSX_SCMPEXPDP
     UNSPEC_VSX_STSTDC
+    UNSPEC_VSX_VEXTRACT_FP_FROM_SHORTH
+    UNSPEC_VSX_VEXTRACT_FP_FROM_SHORTL
     UNSPEC_VSX_VXEXP
     UNSPEC_VSX_VXSIG
     UNSPEC_VSX_VIEXP
***************
*** 1779,1784 ****
--- 1784,1798 ----
    "xscvspdp %x0,%x1"
    [(set_attr "type" "fp")])
  
+ ;; Generate xvcvhpsp instruction
+ (define_insn "vsx_xvcvhpsp"
+   [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa")
+ 	(unspec:V4SF [(match_operand: V16QI 1 "vsx_register_operand" "wa")]
+ 		     UNSPEC_VSX_CVHPSP))]
+   "TARGET_P9_VECTOR"
+   "xvcvhpsp %x0,%x1"
+   [(set_attr "type" "vecfloat")])
+ 
  ;; xscvdpsp used for splat'ing a scalar to V4SF, knowing that the internal SF
  ;; format of scalars is actually DF.
  (define_insn "vsx_xscvdpsp_scalar"
***************
*** 2438,2444 ****
  	 (match_operand:VSX_D 1 "memory_operand" "m,m")
  	 (parallel [(match_operand:QI 2 "const_0_to_1_operand" "n,n")])))
     (clobber (match_scratch:P 3 "=&b,&b"))]
!   "VECTOR_MEM_VSX_P (<VSX_D:MODE>mode)"
    "#"
    "&& reload_completed"
    [(set (match_dup 0) (match_dup 4))]
--- 2452,2458 ----
  	 (match_operand:VSX_D 1 "memory_operand" "m,m")
  	 (parallel [(match_operand:QI 2 "const_0_to_1_operand" "n,n")])))
     (clobber (match_scratch:P 3 "=&b,&b"))]
!   "TARGET_POWERPC64 && VECTOR_MEM_VSX_P (<VSX_D:MODE>mode)"
    "#"
    "&& reload_completed"
    [(set (match_dup 0) (match_dup 4))]
***************
*** 2947,2955 ****
    DONE;
  })
  
! (define_insn_and_split "*vsx_extract_<VSX_EXTRACT_I:mode>_<SDI:mode>_var"
!   [(set (match_operand:SDI 0 "gpc_reg_operand" "=r,r,r")
! 	(zero_extend:SDI
  	 (unspec:<VSX_EXTRACT_I:VS_scalar>
  	  [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,m")
  	   (match_operand:DI 2 "gpc_reg_operand" "r,r,r")]
--- 2961,2969 ----
    DONE;
  })
  
! (define_insn_and_split "*vsx_extract_<mode>_<VS_scalar>mode_var"
!   [(set (match_operand:<VS_scalar> 0 "gpc_reg_operand" "=r,r,r")
! 	(zero_extend:<VS_scalar>
  	 (unspec:<VSX_EXTRACT_I:VS_scalar>
  	  [(match_operand:VSX_EXTRACT_I 1 "input_operand" "wK,v,m")
  	   (match_operand:DI 2 "gpc_reg_operand" "r,r,r")]
***************
*** 2961,2967 ****
    "&& reload_completed"
    [(const_int 0)]
  {
!   machine_mode smode = <VSX_EXTRACT_I:MODE>mode;
    rs6000_split_vec_extract_var (gen_rtx_REG (smode, REGNO (operands[0])),
  				operands[1], operands[2],
  				operands[3], operands[4]);
--- 2975,2981 ----
    "&& reload_completed"
    [(const_int 0)]
  {
!   machine_mode smode = <VS_scalar>mode;
    rs6000_split_vec_extract_var (gen_rtx_REG (smode, REGNO (operands[0])),
  				operands[1], operands[2],
  				operands[3], operands[4]);
***************
*** 3585,3591 ****
  	  (match_dup 1))
  	 (parallel [(const_int 1)])))
     (clobber (match_scratch:DF 2 "=0,0,&wd,&wa"))]
!   "VECTOR_UNIT_VSX_P (V2DFmode)"
    "#"
    ""
    [(const_int 0)]
--- 3599,3605 ----
  	  (match_dup 1))
  	 (parallel [(const_int 1)])))
     (clobber (match_scratch:DF 2 "=0,0,&wd,&wa"))]
!   "BYTES_BIG_ENDIAN && VECTOR_UNIT_VSX_P (V2DFmode)"
    "#"
    ""
    [(const_int 0)]
***************
*** 3613,3619 ****
     (clobber (match_scratch:V4SF 2 "=&wf,&wa"))
     (clobber (match_scratch:V4SF 3 "=&wf,&wa"))
     (clobber (match_scratch:V4SF 4 "=0,0"))]
!   "VECTOR_UNIT_VSX_P (V4SFmode)"
    "#"
    ""
    [(const_int 0)]
--- 3627,3633 ----
     (clobber (match_scratch:V4SF 2 "=&wf,&wa"))
     (clobber (match_scratch:V4SF 3 "=&wf,&wa"))
     (clobber (match_scratch:V4SF 4 "=0,0"))]
!   "BYTES_BIG_ENDIAN && VECTOR_UNIT_VSX_P (V4SFmode)"
    "#"
    ""
    [(const_int 0)]
***************
*** 4180,4186 ****
  }
    [(set_attr "type" "vecperm")])
  
! 
  ;; Support for ISA 3.0 vector byte reverse
  
  ;; Swap all bytes with in a vector
--- 4194,4258 ----
  }
    [(set_attr "type" "vecperm")])
  
! ;; Generate vector extract four float 32 values from left four elements
! ;; of eight element vector of float 16 values.
! (define_expand "vextract_fp_from_shorth"
!   [(set (match_operand:V4SF 0 "register_operand" "=wa")
! 	(unspec:V4SF [(match_operand:V8HI 1 "register_operand" "wa")]
!    UNSPEC_VSX_VEXTRACT_FP_FROM_SHORTH))]
!   "TARGET_P9_VECTOR"
! {
!   int vals[16] = {15, 14, 0, 0, 13, 12, 0, 0, 11, 10, 0, 0, 9, 8, 0, 0};
!   int i;
! 
!   rtx rvals[16];
!   rtx mask = gen_reg_rtx (V16QImode);
!   rtx tmp = gen_reg_rtx (V16QImode);
!   rtvec v;
! 
!   for (i = 0; i < 16; i++)
!     rvals[i] = GEN_INT (vals[i]);
! 
!   /* xvcvhpsp - vector convert F16 to vector F32 requires the four F16
!      inputs in half words 1,3,5,7 (IBM numbering).  Use xxperm to move
!      src half words 0,1,2,3 for the conversion instruction.  */
!   v = gen_rtvec_v (16, rvals);
!   emit_insn (gen_vec_initv16qi (mask, gen_rtx_PARALLEL (V16QImode, v)));
!   emit_insn (gen_altivec_vperm_v8hiv16qi (tmp, operands[1],
! 					  operands[1], mask));
!   emit_insn (gen_vsx_xvcvhpsp (operands[0], tmp));
!   DONE;
! })
! 
! ;; Generate vector extract four float 32 values from right four elements
! ;; of eight element vector of float 16 values.
! (define_expand "vextract_fp_from_shortl"
!   [(set (match_operand:V4SF 0 "register_operand" "=wa")
! 	(unspec:V4SF [(match_operand:V8HI 1 "register_operand" "wa")]
! 	UNSPEC_VSX_VEXTRACT_FP_FROM_SHORTL))]
!   "TARGET_P9_VECTOR"
! {
!   int vals[16] = {7, 6, 0, 0, 5, 4, 0, 0, 3, 2, 0, 0, 1, 0, 0, 0};
!   int i;
!   rtx rvals[16];
!   rtx mask = gen_reg_rtx (V16QImode);
!   rtx tmp = gen_reg_rtx (V16QImode);
!   rtvec v;
! 
!   for (i = 0; i < 16; i++)
!     rvals[i] = GEN_INT (vals[i]);
! 
!   /* xvcvhpsp - vector convert F16 to vector F32 requires the four F16
!      inputs in half words 1,3,5,7 (IBM numbering).  Use xxperm to move
!      src half words 4,5,6,7 for the conversion instruction.  */
!   v = gen_rtvec_v (16, rvals);
!   emit_insn (gen_vec_initv16qi (mask, gen_rtx_PARALLEL (V16QImode, v)));
!   emit_insn (gen_altivec_vperm_v8hiv16qi (tmp, operands[1],
! 					  operands[1], mask));
!   emit_insn (gen_vsx_xvcvhpsp (operands[0], tmp));
!   DONE;
! })
! 
  ;; Support for ISA 3.0 vector byte reverse
  
  ;; Swap all bytes with in a vector
diff -Nrcpad gcc-7.4.0/gcc/config/s390/s390-builtins.def gcc-7.5.0/gcc/config/s390/s390-builtins.def
*** gcc-7.4.0/gcc/config/s390/s390-builtins.def	Tue Jun  5 08:21:57 2018
--- gcc-7.5.0/gcc/config/s390/s390-builtins.def	Thu Dec 13 12:07:58 2018
*************** B_DEF      (s390_vfsqsb,
*** 2804,2811 ****
  B_DEF      (s390_vfsqdb,                sqrtv2df2,          0,                  B_VX,               0,                  BT_FN_V2DF_V2DF)
  
  OB_DEF     (s390_vec_double,            s390_vec_double_s64,s390_vec_double_u64,B_VX,               BT_FN_OV4SI_OV4SI)
! OB_DEF_VAR (s390_vec_double_s64,        s390_vcdgb,         0,                  0,                  BT_OV_V2DF_V2DI)
! OB_DEF_VAR (s390_vec_double_u64,        s390_vcdlgb,        0,                  0,                  BT_OV_V2DF_UV2DI)
  
  B_DEF      (s390_vec_double_s64,        vec_double_s64,     0,                  B_INT | B_VX,       0,                  BT_FN_V2DF_V2DI)  /* vcdgb */
  B_DEF      (s390_vec_double_u64,        vec_double_u64,     0,                  B_INT | B_VX,       0,                  BT_FN_V2DF_UV2DI) /* vcdlgb */
--- 2804,2811 ----
  B_DEF      (s390_vfsqdb,                sqrtv2df2,          0,                  B_VX,               0,                  BT_FN_V2DF_V2DF)
  
  OB_DEF     (s390_vec_double,            s390_vec_double_s64,s390_vec_double_u64,B_VX,               BT_FN_OV4SI_OV4SI)
! OB_DEF_VAR (s390_vec_double_s64,        s390_vec_double_s64,0,                  0,                  BT_OV_V2DF_V2DI)
! OB_DEF_VAR (s390_vec_double_u64,        s390_vec_double_u64,0,                  0,                  BT_OV_V2DF_UV2DI)
  
  B_DEF      (s390_vec_double_s64,        vec_double_s64,     0,                  B_INT | B_VX,       0,                  BT_FN_V2DF_V2DI)  /* vcdgb */
  B_DEF      (s390_vec_double_u64,        vec_double_u64,     0,                  B_INT | B_VX,       0,                  BT_FN_V2DF_UV2DI) /* vcdlgb */
diff -Nrcpad gcc-7.4.0/gcc/config/s390/s390.c gcc-7.5.0/gcc/config/s390/s390.c
*** gcc-7.4.0/gcc/config/s390/s390.c	Fri Oct 19 08:55:27 2018
--- gcc-7.5.0/gcc/config/s390/s390.c	Fri Aug 30 12:05:07 2019
*************** s390_valid_target_attribute_p (tree fnde
*** 15498,15503 ****
--- 15498,15504 ----
      }
    return ret;
  }
+ #endif
  
  /* Set VAL to correct enum value according to the indirect-branch or
     function-return attribute in ATTR.  */
*************** s390_indirect_branch_settings (tree fnde
*** 15572,15577 ****
--- 15573,15579 ----
  }
  
  
+ #if S390_USE_TARGET_ATTRIBUTE
  /* Restore targets globals from NEW_TREE and invalidate s390_previous_fndecl
     cache.  */
  
*************** s390_activate_target_options (tree new_t
*** 15587,15592 ****
--- 15589,15595 ----
      TREE_TARGET_GLOBALS (new_tree) = save_target_globals_default_opts ();
    s390_previous_fndecl = NULL_TREE;
  }
+ #endif
  
  /* Establish appropriate back-end context for processing the function
     FNDECL.  The argument might be NULL to indicate processing at top
*************** s390_activate_target_options (tree new_t
*** 15594,15599 ****
--- 15597,15603 ----
  static void
  s390_set_current_function (tree fndecl)
  {
+ #if S390_USE_TARGET_ATTRIBUTE
    /* Only change the context if the function changes.  This hook is called
       several times in the course of compiling a function, and we don't want to
       slow things down too much or call target_reinit when it isn't safe.  */
*************** s390_set_current_function (tree fndecl)
*** 15625,15634 ****
    if (old_tree != new_tree)
      s390_activate_target_options (new_tree);
    s390_previous_fndecl = fndecl;
! 
    s390_indirect_branch_settings (fndecl);
  }
- #endif
  
  /* Implement TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.  */
  
--- 15629,15637 ----
    if (old_tree != new_tree)
      s390_activate_target_options (new_tree);
    s390_previous_fndecl = fndecl;
! #endif
    s390_indirect_branch_settings (fndecl);
  }
  
  /* Implement TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.  */
  
*************** s390_case_values_threshold (void)
*** 16333,16342 ****
  #undef TARGET_ASM_FILE_END
  #define TARGET_ASM_FILE_END s390_asm_file_end
  
- #if S390_USE_TARGET_ATTRIBUTE
  #undef TARGET_SET_CURRENT_FUNCTION
  #define TARGET_SET_CURRENT_FUNCTION s390_set_current_function
  
  #undef TARGET_OPTION_VALID_ATTRIBUTE_P
  #define TARGET_OPTION_VALID_ATTRIBUTE_P s390_valid_target_attribute_p
  #endif
--- 16336,16345 ----
  #undef TARGET_ASM_FILE_END
  #define TARGET_ASM_FILE_END s390_asm_file_end
  
  #undef TARGET_SET_CURRENT_FUNCTION
  #define TARGET_SET_CURRENT_FUNCTION s390_set_current_function
  
+ #if S390_USE_TARGET_ATTRIBUTE
  #undef TARGET_OPTION_VALID_ATTRIBUTE_P
  #define TARGET_OPTION_VALID_ATTRIBUTE_P s390_valid_target_attribute_p
  #endif
diff -Nrcpad gcc-7.4.0/gcc/config/s390/s390.md gcc-7.5.0/gcc/config/s390/s390.md
*** gcc-7.4.0/gcc/config/s390/s390.md	Mon Nov 26 15:29:27 2018
--- gcc-7.5.0/gcc/config/s390/s390.md	Tue Feb  5 17:19:26 2019
***************
*** 1332,1341 ****
  ; (TF|DF|SF|TD|DD|SD) instructions
  
  
! ; load and test instructions turn SNaN into QNaN what is not
  ; acceptable if the target will be used afterwards.  On the other hand
  ; they are quite convenient for implementing comparisons with 0.0. So
! ; try to enable them via splitter if the value isn't needed anymore.
  
  ; ltxbr, ltdbr, ltebr, ltxtr, ltdtr
  (define_insn "*cmp<mode>_ccs_0"
--- 1332,1342 ----
  ; (TF|DF|SF|TD|DD|SD) instructions
  
  
! ; FIXME: load and test instructions turn SNaN into QNaN what is not
  ; acceptable if the target will be used afterwards.  On the other hand
  ; they are quite convenient for implementing comparisons with 0.0. So
! ; try to enable them via splitter/peephole if the value isn't needed anymore.
! ; See testcases: load-and-test-fp-1.c and load-and-test-fp-2.c
  
  ; ltxbr, ltdbr, ltebr, ltxtr, ltdtr
  (define_insn "*cmp<mode>_ccs_0"
***************
*** 1348,1369 ****
     [(set_attr "op_type" "RRE")
      (set_attr "type"  "fsimp<mode>")])
  
- (define_split
-   [(set (match_operand 0 "cc_reg_operand")
- 	(compare (match_operand:FP 1 "register_operand")
- 		 (match_operand:FP 2 "const0_operand")))]
-   "TARGET_HARD_FLOAT && REG_P (operands[1]) && dead_or_set_p (insn, operands[1])"
-   [(parallel
-     [(set (match_dup 0) (match_dup 3))
-      (clobber (match_dup 1))])]
-  {
-    /* s390_match_ccmode requires the compare to have the same CC mode
-       as the CC destination register.  */
-    operands[3] = gen_rtx_COMPARE (GET_MODE (operands[0]),
- 				  operands[1], operands[2]);
-  })
- 
- 
  ; VX: TFmode in FPR pairs: use cxbr instead of wfcxb
  ; cxtr, cdtr, cxbr, cdbr, cebr, cdb, ceb, wfcsb, wfcdb
  (define_insn "*cmp<mode>_ccs"
--- 1349,1354 ----
diff -Nrcpad gcc-7.4.0/gcc/config/s390/vector.md gcc-7.5.0/gcc/config/s390/vector.md
*** gcc-7.4.0/gcc/config/s390/vector.md	Tue Apr 25 11:18:52 2017
--- gcc-7.5.0/gcc/config/s390/vector.md	Mon Jul 15 14:31:37 2019
***************
*** 933,939 ****
  	(VEC_SHIFTS:VI (match_operand:VI 1 "register_operand"   "v")
  		       (match_operand:SI 2 "nonmemory_operand" "an")))]
    "TARGET_VX"
!   "<vec_shifts_mnem><bhfgq>\t%v0,%v1,%Y2"
    [(set_attr "op_type" "VRS")])
  
  ; Shift each element by corresponding vector element
--- 933,939 ----
  	(VEC_SHIFTS:VI (match_operand:VI 1 "register_operand"   "v")
  		       (match_operand:SI 2 "nonmemory_operand" "an")))]
    "TARGET_VX"
!   "<vec_shifts_mnem><bhfgq>\t%v0,%v1,<addr_style_op_ops>"
    [(set_attr "op_type" "VRS")])
  
  ; Shift each element by corresponding vector element
diff -Nrcpad gcc-7.4.0/gcc/config/s390/vx-builtins.md gcc-7.5.0/gcc/config/s390/vx-builtins.md
*** gcc-7.4.0/gcc/config/s390/vx-builtins.md	Fri Mar 24 14:04:12 2017
--- gcc-7.5.0/gcc/config/s390/vx-builtins.md	Thu Dec 13 12:06:40 2018
***************
*** 1607,1613 ****
  (define_expand "vec_ctd_s64"
    [(set (match_operand:V2DF               0 "register_operand" "")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand" "")
! 		      (const_int 4) ; inexact suppressed
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDGB))
     (use (match_operand:QI 2 "const_int_operand" ""))
--- 1607,1613 ----
  (define_expand "vec_ctd_s64"
    [(set (match_operand:V2DF               0 "register_operand" "")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand" "")
! 		      (const_int VEC_NOINEXACT)
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDGB))
     (use (match_operand:QI 2 "const_int_operand" ""))
***************
*** 1638,1644 ****
  (define_expand "vec_ctd_u64"
    [(set (match_operand:V2DF               0 "register_operand" "")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand" "")
! 		      (const_int 4) ; inexact suppressed
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDLGB))
     (use (match_operand:QI 2 "const_int_operand" ""))
--- 1638,1644 ----
  (define_expand "vec_ctd_u64"
    [(set (match_operand:V2DF               0 "register_operand" "")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand" "")
! 		      (const_int VEC_NOINEXACT)
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDLGB))
     (use (match_operand:QI 2 "const_int_operand" ""))
***************
*** 1672,1678 ****
  				 (match_dup 3)))
     (set (match_operand:V2DI 0 "register_operand" "")
  	(unspec:V2DI [(match_dup 4)
! 		      (const_int 4) ; inexact suppressed
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCGDB))]
    "TARGET_VX"
--- 1672,1678 ----
  				 (match_dup 3)))
     (set (match_operand:V2DI 0 "register_operand" "")
  	(unspec:V2DI [(match_dup 4)
! 		      (const_int VEC_NOINEXACT)
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCGDB))]
    "TARGET_VX"
***************
*** 1705,1711 ****
  				 (match_dup 3)))
     (set (match_operand:V2DI 0 "register_operand" "")
  	(unspec:V2DI [(match_dup 4)
! 		      (const_int 4) ; inexact suppressed
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCLGDB))]
    "TARGET_VX"
--- 1705,1711 ----
  				 (match_dup 3)))
     (set (match_operand:V2DI 0 "register_operand" "")
  	(unspec:V2DI [(match_dup 4)
! 		      (const_int VEC_NOINEXACT)
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCLGDB))]
    "TARGET_VX"
***************
*** 2026,2032 ****
  (define_expand "vec_double_s64"
    [(set (match_operand:V2DF               0 "register_operand")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand")
! 		      (const_int 0)  ; inexact suppression disabled
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDGB))]
    "TARGET_VX")
--- 2026,2032 ----
  (define_expand "vec_double_s64"
    [(set (match_operand:V2DF               0 "register_operand")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand")
! 		      (const_int VEC_INEXACT)
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDGB))]
    "TARGET_VX")
***************
*** 2034,2040 ****
  (define_expand "vec_double_u64"
    [(set (match_operand:V2DF               0 "register_operand")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand")
! 		      (const_int 0)  ; inexact suppression disabled
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDLGB))]
    "TARGET_VX")
--- 2034,2040 ----
  (define_expand "vec_double_u64"
    [(set (match_operand:V2DF               0 "register_operand")
  	(unspec:V2DF [(match_operand:V2DI 1 "register_operand")
! 		      (const_int VEC_INEXACT)
  		      (const_int VEC_RND_CURRENT)]
  		     UNSPEC_VEC_VCDLGB))]
    "TARGET_VX")
diff -Nrcpad gcc-7.4.0/gcc/config/sh/sh.c gcc-7.5.0/gcc/config/sh/sh.c
*** gcc-7.4.0/gcc/config/sh/sh.c	Mon Apr  3 22:30:56 2017
--- gcc-7.5.0/gcc/config/sh/sh.c	Fri Oct 11 11:12:28 2019
*************** got_mode_name:;
*** 713,719 ****
      {
        if (tokens[i] == "strict")
  	ret.strict = true;
!       else if (tokens[i].find ("gbr-offset=") == 0)
  	{
  	  std::string offset_str = tokens[i].substr (strlen ("gbr-offset="));
  	  ret.tcb_gbr_offset = integral_argument (offset_str.c_str ());
--- 713,719 ----
      {
        if (tokens[i] == "strict")
  	ret.strict = true;
!       else if (!tokens[i].compare (0, strlen ("gbr-offset="), "gbr-offset="))
  	{
  	  std::string offset_str = tokens[i].substr (strlen ("gbr-offset="));
  	  ret.tcb_gbr_offset = integral_argument (offset_str.c_str ());
*************** sh_option_override (void)
*** 934,944 ****
    if (flag_unsafe_math_optimizations)
      {
        /* Enable fsca insn for SH4A if not otherwise specified by the user.  */
!       if (global_options_set.x_TARGET_FSCA == 0 && TARGET_SH4A_FP)
  	TARGET_FSCA = 1;
  
        /* Enable fsrra insn for SH4A if not otherwise specified by the user.  */
!       if (global_options_set.x_TARGET_FSRRA == 0 && TARGET_SH4A_FP)
  	TARGET_FSRRA = 1;
      }
  
--- 934,946 ----
    if (flag_unsafe_math_optimizations)
      {
        /* Enable fsca insn for SH4A if not otherwise specified by the user.  */
!       if (global_options_set.x_TARGET_FSCA == 0
! 	  && (TARGET_SH4A_FP || TARGET_FPU_SH4_300))
  	TARGET_FSCA = 1;
  
        /* Enable fsrra insn for SH4A if not otherwise specified by the user.  */
!       if (global_options_set.x_TARGET_FSRRA == 0
! 	  && (TARGET_SH4A_FP || TARGET_FPU_SH4_300))
  	TARGET_FSRRA = 1;
      }
  
*************** sh_output_mi_thunk (FILE *file, tree thu
*** 10814,10825 ****
  	  emit_insn (gen_add2_insn (scratch0, GEN_INT (vcall_offset)));
  	  offset_addr = scratch0;
  	}
-       else if (scratch0 != scratch1)
- 	{
- 	  emit_move_insn (scratch1, GEN_INT (vcall_offset));
- 	  emit_insn (gen_add2_insn (scratch0, scratch1));
- 	  offset_addr = scratch0;
- 	}
        else
  	gcc_unreachable (); /* FIXME */
        emit_load_ptr (scratch0, offset_addr);
--- 10816,10821 ----
*************** sh_extending_set_of_reg::use_as_extended
*** 12014,12022 ****
  	rtx r = gen_reg_rtx (SImode);
  	rtx_insn* i0;
  	if (from_mode == QImode)
! 	  i0 = emit_insn_after (gen_extendqisi2 (r, set_src), insn);
  	else if (from_mode == HImode)
! 	  i0 = emit_insn_after (gen_extendhisi2 (r, set_src), insn);
  	else
  	  gcc_unreachable ();
  
--- 12010,12020 ----
  	rtx r = gen_reg_rtx (SImode);
  	rtx_insn* i0;
  	if (from_mode == QImode)
! 	  i0 = sh_check_add_incdec_notes (
! 			emit_insn_after (gen_extendqisi2 (r, set_src), insn));
  	else if (from_mode == HImode)
! 	  i0 = sh_check_add_incdec_notes (
! 			emit_insn_after (gen_extendhisi2 (r, set_src), insn));
  	else
  	  gcc_unreachable ();
  
*************** static void
*** 12434,12440 ****
  sh_emit_mode_set (int entity ATTRIBUTE_UNUSED, int mode,
  		  int prev_mode, HARD_REG_SET regs_live ATTRIBUTE_UNUSED)
  {
!   if ((TARGET_SH4A_FP || TARGET_SH4_300)
        && prev_mode != FP_MODE_NONE && prev_mode != mode)
      {
        emit_insn (gen_toggle_pr ());
--- 12432,12438 ----
  sh_emit_mode_set (int entity ATTRIBUTE_UNUSED, int mode,
  		  int prev_mode, HARD_REG_SET regs_live ATTRIBUTE_UNUSED)
  {
!   if ((TARGET_SH4A_FP || TARGET_FPU_SH4_300)
        && prev_mode != FP_MODE_NONE && prev_mode != mode)
      {
        emit_insn (gen_toggle_pr ());
diff -Nrcpad gcc-7.4.0/gcc/config/sh/sh.h gcc-7.5.0/gcc/config/sh/sh.h
*** gcc-7.4.0/gcc/config/sh/sh.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/config/sh/sh.h	Fri Oct 11 11:12:28 2019
*************** extern int code_for_indirect_jump_scratc
*** 69,74 ****
--- 69,76 ----
     FPU is disabled (which makes it compatible with SH4al-dsp).  */
  #define TARGET_SH4A_FP (TARGET_SH4A && TARGET_FPU_ANY)
  
+ /* True if the FPU is a SH4-300 variant.  */
+ #define TARGET_FPU_SH4_300 (TARGET_FPU_ANY && TARGET_SH4_300)
  
  /* This is not used by the SH2E calling convention  */
  #define TARGET_VARARGS_PRETEND_ARGS(FUN_DECL) \
diff -Nrcpad gcc-7.4.0/gcc/config/sh/sh.md gcc-7.5.0/gcc/config/sh/sh.md
*** gcc-7.4.0/gcc/config/sh/sh.md	Thu Nov 23 14:08:12 2017
--- gcc-7.5.0/gcc/config/sh/sh.md	Fri Oct 11 11:12:28 2019
***************
*** 9161,9167 ****
  	(xor:SI (reg:SI FPSCR_REG) (const_int FPSCR_PR)))
     (set (reg:SI FPSCR_MODES_REG)
  	(unspec_volatile:SI [(const_int 0)] UNSPECV_FPSCR_MODES))]
!   "TARGET_SH4A_FP"
    "fpchg"
    [(set_attr "type" "fpscr_toggle")])
  
--- 9161,9167 ----
  	(xor:SI (reg:SI FPSCR_REG) (const_int FPSCR_PR)))
     (set (reg:SI FPSCR_MODES_REG)
  	(unspec_volatile:SI [(const_int 0)] UNSPECV_FPSCR_MODES))]
!   "TARGET_SH4A_FP || TARGET_FPU_SH4_300"
    "fpchg"
    [(set_attr "type" "fpscr_toggle")])
  
***************
*** 9389,9403 ****
  (define_expand "negsf2"
    [(set (match_operand:SF 0 "fp_arith_reg_operand")
  	(neg:SF (match_operand:SF 1 "fp_arith_reg_operand")))]
!   "TARGET_SH2E")
  
! (define_insn "*negsf2_i"
    [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
  	(neg:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_SH2E"
    "fneg	%0"
    [(set_attr "type" "fmove")])
  
  (define_expand "sqrtsf2"
    [(set (match_operand:SF 0 "fp_arith_reg_operand" "")
  	(sqrt:SF (match_operand:SF 1 "fp_arith_reg_operand" "")))]
--- 9389,9419 ----
  (define_expand "negsf2"
    [(set (match_operand:SF 0 "fp_arith_reg_operand")
  	(neg:SF (match_operand:SF 1 "fp_arith_reg_operand")))]
!   "TARGET_FPU_ANY"
! {
!   if (TARGET_FPU_SH4_300)
!     emit_insn (gen_negsf2_fpscr (operands[0], operands[1]));
!   else
!     emit_insn (gen_negsf2_no_fpscr (operands[0], operands[1]));
!   DONE;
! })
  
! (define_insn "negsf2_no_fpscr"
    [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
  	(neg:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_FPU_ANY && !TARGET_FPU_SH4_300"
    "fneg	%0"
    [(set_attr "type" "fmove")])
  
+ (define_insn "negsf2_fpscr"
+   [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
+ 	(neg:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))
+    (use (reg:SI FPSCR_MODES_REG))]
+   "TARGET_FPU_SH4_300"
+   "fneg	%0"
+   [(set_attr "type" "fmove")
+    (set_attr "fp_mode" "single")])
+ 
  (define_expand "sqrtsf2"
    [(set (match_operand:SF 0 "fp_arith_reg_operand" "")
  	(sqrt:SF (match_operand:SF 1 "fp_arith_reg_operand" "")))]
***************
*** 9487,9501 ****
  (define_expand "abssf2"
    [(set (match_operand:SF 0 "fp_arith_reg_operand")
  	(abs:SF (match_operand:SF 1 "fp_arith_reg_operand")))]
!   "TARGET_SH2E")
  
! (define_insn "*abssf2_i"
    [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
  	(abs:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_SH2E"
    "fabs	%0"
    [(set_attr "type" "fmove")])
  
  (define_expand "adddf3"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "")
  	(plus:DF (match_operand:DF 1 "fp_arith_reg_operand" "")
--- 9503,9533 ----
  (define_expand "abssf2"
    [(set (match_operand:SF 0 "fp_arith_reg_operand")
  	(abs:SF (match_operand:SF 1 "fp_arith_reg_operand")))]
!   "TARGET_FPU_ANY"
! {
!   if (TARGET_FPU_SH4_300)
!     emit_insn (gen_abssf2_fpscr (operands[0], operands[1]));
!   else
!     emit_insn (gen_abssf2_no_fpscr (operands[0], operands[1]));
!   DONE;
! })
  
! (define_insn "abssf2_no_fpscr"
    [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
  	(abs:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_FPU_ANY && !TARGET_FPU_SH4_300"
    "fabs	%0"
    [(set_attr "type" "fmove")])
  
+ (define_insn "abssf2_fpscr"
+   [(set (match_operand:SF 0 "fp_arith_reg_operand" "=f")
+ 	(abs:SF (match_operand:SF 1 "fp_arith_reg_operand" "0")))
+    (use (reg:SI FPSCR_MODES_REG))]
+   "TARGET_FPU_SH4_300"
+   "fabs	%0"
+   [(set_attr "type" "fmove")
+    (set_attr "fp_mode" "single")])
+ 
  (define_expand "adddf3"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "")
  	(plus:DF (match_operand:DF 1 "fp_arith_reg_operand" "")
***************
*** 9671,9682 ****
  (define_expand "negdf2"
    [(set (match_operand:DF 0 "fp_arith_reg_operand")
  	(neg:DF (match_operand:DF 1 "fp_arith_reg_operand")))]
!   "TARGET_FPU_DOUBLE")
  
! (define_insn "*negdf2_i"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f")
  	(neg:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_FPU_DOUBLE"
    "fneg	%0"
    [(set_attr "type" "fmove")])
  
--- 9703,9730 ----
  (define_expand "negdf2"
    [(set (match_operand:DF 0 "fp_arith_reg_operand")
  	(neg:DF (match_operand:DF 1 "fp_arith_reg_operand")))]
!   "TARGET_FPU_DOUBLE"
! {
!   if (TARGET_FPU_SH4_300)
!     emit_insn (gen_negdf2_fpscr (operands[0], operands[1]));
!   else
!     emit_insn (gen_negdf2_no_fpscr (operands[0], operands[1]));
!   DONE;
! })
  
! (define_insn "negdf2_fpscr"
!   [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f")
! 	(neg:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))
!    (use (reg:SI FPSCR_MODES_REG))]
!   "TARGET_FPU_SH4_300"
!   "fneg	%0"
!   [(set_attr "type" "fmove")
!    (set_attr "fp_mode" "double")])
! 
! (define_insn "negdf2_no_fpscr"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f")
  	(neg:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_FPU_DOUBLE && !TARGET_FPU_SH4_300"
    "fneg	%0"
    [(set_attr "type" "fmove")])
  
***************
*** 9702,9716 ****
  (define_expand "absdf2"
    [(set (match_operand:DF 0 "fp_arith_reg_operand")
  	(abs:DF (match_operand:DF 1 "fp_arith_reg_operand")))]
!   "TARGET_FPU_DOUBLE")
  
! (define_insn "*absdf2_i"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f")
  	(abs:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_FPU_DOUBLE"
    "fabs	%0"
    [(set_attr "type" "fmove")])
  
  (define_expand "extendsfdf2"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "")
  	(float_extend:DF (match_operand:SF 1 "fpul_operand" "")))]
--- 9750,9780 ----
  (define_expand "absdf2"
    [(set (match_operand:DF 0 "fp_arith_reg_operand")
  	(abs:DF (match_operand:DF 1 "fp_arith_reg_operand")))]
!   "TARGET_FPU_DOUBLE"
! {
!   if (TARGET_FPU_SH4_300)
!     emit_insn (gen_absdf2_fpscr (operands[0], operands[1]));
!   else
!     emit_insn (gen_absdf2_no_fpscr (operands[0], operands[1]));
!   DONE;
! })
  
! (define_insn "absdf2_no_fpscr"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f")
  	(abs:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))]
!   "TARGET_FPU_DOUBLE && !TARGET_FPU_SH4_300"
    "fabs	%0"
    [(set_attr "type" "fmove")])
  
+ (define_insn "absdf2_fpscr"
+   [(set (match_operand:DF 0 "fp_arith_reg_operand" "=f")
+ 	(abs:DF (match_operand:DF 1 "fp_arith_reg_operand" "0")))
+    (use (reg:SI FPSCR_MODES_REG))]
+   "TARGET_FPU_SH4_300"
+   "fabs	%0"
+   [(set_attr "type" "fmove")
+    (set_attr "fp_mode" "double")])
+ 
  (define_expand "extendsfdf2"
    [(set (match_operand:DF 0 "fp_arith_reg_operand" "")
  	(float_extend:DF (match_operand:SF 1 "fpul_operand" "")))]
diff -Nrcpad gcc-7.4.0/gcc/config/sparc/sparc.c gcc-7.5.0/gcc/config/sparc/sparc.c
*** gcc-7.4.0/gcc/config/sparc/sparc.c	Fri Apr  6 22:32:39 2018
--- gcc-7.5.0/gcc/config/sparc/sparc.c	Wed Jan  9 14:41:55 2019
*************** sparc_legitimize_tls_address (rtx addr)
*** 4531,4560 ****
    gcc_assert (can_create_pseudo_p ());
  
    if (GET_CODE (addr) == SYMBOL_REF)
      switch (SYMBOL_REF_TLS_MODEL (addr))
        {
        case TLS_MODEL_GLOBAL_DYNAMIC:
  	start_sequence ();
! 	temp1 = gen_reg_rtx (SImode);
! 	temp2 = gen_reg_rtx (SImode);
  	ret = gen_reg_rtx (Pmode);
  	o0 = gen_rtx_REG (Pmode, 8);
  	got = sparc_tls_got ();
- 	emit_insn (gen_tgd_hi22 (temp1, addr));
- 	emit_insn (gen_tgd_lo10 (temp2, temp1, addr));
  	if (TARGET_ARCH32)
  	  {
! 	    emit_insn (gen_tgd_add32 (o0, got, temp2, addr));
! 	    insn = emit_call_insn (gen_tgd_call32 (o0, sparc_tls_get_addr (),
  						   addr, const1_rtx));
  	  }
  	else
  	  {
! 	    emit_insn (gen_tgd_add64 (o0, got, temp2, addr));
! 	    insn = emit_call_insn (gen_tgd_call64 (o0, sparc_tls_get_addr (),
  						   addr, const1_rtx));
  	  }
  	use_reg (&CALL_INSN_FUNCTION_USAGE (insn), o0);
  	insn = get_insns ();
  	end_sequence ();
  	emit_libcall_block (insn, ret, o0, addr);
--- 4531,4568 ----
    gcc_assert (can_create_pseudo_p ());
  
    if (GET_CODE (addr) == SYMBOL_REF)
+     /* Although the various sethi/or sequences generate SImode values, many of
+        them can be transformed by the linker when relaxing and, if relaxing to
+        local-exec, will become a sethi/xor pair, which is signed and therefore
+        a full DImode value in 64-bit mode.  Thus we must use Pmode, lest these
+        values be spilled onto the stack in 64-bit mode.  */
      switch (SYMBOL_REF_TLS_MODEL (addr))
        {
        case TLS_MODEL_GLOBAL_DYNAMIC:
  	start_sequence ();
! 	temp1 = gen_reg_rtx (Pmode);
! 	temp2 = gen_reg_rtx (Pmode);
  	ret = gen_reg_rtx (Pmode);
  	o0 = gen_rtx_REG (Pmode, 8);
  	got = sparc_tls_got ();
  	if (TARGET_ARCH32)
  	  {
! 	    emit_insn (gen_tgd_hi22si (temp1, addr));
! 	    emit_insn (gen_tgd_lo10si (temp2, temp1, addr));
! 	    emit_insn (gen_tgd_addsi (o0, got, temp2, addr));
! 	    insn = emit_call_insn (gen_tgd_callsi (o0, sparc_tls_get_addr (),
  						   addr, const1_rtx));
  	  }
  	else
  	  {
! 	    emit_insn (gen_tgd_hi22di (temp1, addr));
! 	    emit_insn (gen_tgd_lo10di (temp2, temp1, addr));
! 	    emit_insn (gen_tgd_adddi (o0, got, temp2, addr));
! 	    insn = emit_call_insn (gen_tgd_calldi (o0, sparc_tls_get_addr (),
  						   addr, const1_rtx));
  	  }
  	use_reg (&CALL_INSN_FUNCTION_USAGE (insn), o0);
+ 	RTL_CONST_CALL_P (insn) = 1;
  	insn = get_insns ();
  	end_sequence ();
  	emit_libcall_block (insn, ret, o0, addr);
*************** sparc_legitimize_tls_address (rtx addr)
*** 4562,4622 ****
  
        case TLS_MODEL_LOCAL_DYNAMIC:
  	start_sequence ();
! 	temp1 = gen_reg_rtx (SImode);
! 	temp2 = gen_reg_rtx (SImode);
  	temp3 = gen_reg_rtx (Pmode);
  	ret = gen_reg_rtx (Pmode);
  	o0 = gen_rtx_REG (Pmode, 8);
  	got = sparc_tls_got ();
- 	emit_insn (gen_tldm_hi22 (temp1));
- 	emit_insn (gen_tldm_lo10 (temp2, temp1));
  	if (TARGET_ARCH32)
  	  {
! 	    emit_insn (gen_tldm_add32 (o0, got, temp2));
! 	    insn = emit_call_insn (gen_tldm_call32 (o0, sparc_tls_get_addr (),
  						    const1_rtx));
  	  }
  	else
  	  {
! 	    emit_insn (gen_tldm_add64 (o0, got, temp2));
! 	    insn = emit_call_insn (gen_tldm_call64 (o0, sparc_tls_get_addr (),
  						    const1_rtx));
  	  }
  	use_reg (&CALL_INSN_FUNCTION_USAGE (insn), o0);
  	insn = get_insns ();
  	end_sequence ();
  	emit_libcall_block (insn, temp3, o0,
  			    gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx),
  					    UNSPEC_TLSLD_BASE));
! 	temp1 = gen_reg_rtx (SImode);
! 	temp2 = gen_reg_rtx (SImode);
! 	emit_insn (gen_tldo_hix22 (temp1, addr));
! 	emit_insn (gen_tldo_lox10 (temp2, temp1, addr));
  	if (TARGET_ARCH32)
! 	  emit_insn (gen_tldo_add32 (ret, temp3, temp2, addr));
  	else
! 	  emit_insn (gen_tldo_add64 (ret, temp3, temp2, addr));
  	break;
  
        case TLS_MODEL_INITIAL_EXEC:
! 	temp1 = gen_reg_rtx (SImode);
! 	temp2 = gen_reg_rtx (SImode);
  	temp3 = gen_reg_rtx (Pmode);
  	got = sparc_tls_got ();
- 	emit_insn (gen_tie_hi22 (temp1, addr));
- 	emit_insn (gen_tie_lo10 (temp2, temp1, addr));
  	if (TARGET_ARCH32)
! 	  emit_insn (gen_tie_ld32 (temp3, got, temp2, addr));
  	else
! 	  emit_insn (gen_tie_ld64 (temp3, got, temp2, addr));
          if (TARGET_SUN_TLS)
  	  {
  	    ret = gen_reg_rtx (Pmode);
  	    if (TARGET_ARCH32)
! 	      emit_insn (gen_tie_add32 (ret, gen_rtx_REG (Pmode, 7),
  					temp3, addr));
  	    else
! 	      emit_insn (gen_tie_add64 (ret, gen_rtx_REG (Pmode, 7),
  					temp3, addr));
  	  }
  	else
--- 4570,4647 ----
  
        case TLS_MODEL_LOCAL_DYNAMIC:
  	start_sequence ();
! 	temp1 = gen_reg_rtx (Pmode);
! 	temp2 = gen_reg_rtx (Pmode);
  	temp3 = gen_reg_rtx (Pmode);
  	ret = gen_reg_rtx (Pmode);
  	o0 = gen_rtx_REG (Pmode, 8);
  	got = sparc_tls_got ();
  	if (TARGET_ARCH32)
  	  {
! 	    emit_insn (gen_tldm_hi22si (temp1));
! 	    emit_insn (gen_tldm_lo10si (temp2, temp1));
! 	    emit_insn (gen_tldm_addsi (o0, got, temp2));
! 	    insn = emit_call_insn (gen_tldm_callsi (o0, sparc_tls_get_addr (),
  						    const1_rtx));
  	  }
  	else
  	  {
! 	    emit_insn (gen_tldm_hi22di (temp1));
! 	    emit_insn (gen_tldm_lo10di (temp2, temp1));
! 	    emit_insn (gen_tldm_adddi (o0, got, temp2));
! 	    insn = emit_call_insn (gen_tldm_calldi (o0, sparc_tls_get_addr (),
  						    const1_rtx));
  	  }
  	use_reg (&CALL_INSN_FUNCTION_USAGE (insn), o0);
+ 	RTL_CONST_CALL_P (insn) = 1;
  	insn = get_insns ();
  	end_sequence ();
+ 	/* Attach a unique REG_EQUAL, to allow the RTL optimizers to
+ 	  share the LD_BASE result with other LD model accesses.  */
  	emit_libcall_block (insn, temp3, o0,
  			    gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx),
  					    UNSPEC_TLSLD_BASE));
! 	temp1 = gen_reg_rtx (Pmode);
! 	temp2 = gen_reg_rtx (Pmode);
  	if (TARGET_ARCH32)
! 	  {
! 	    emit_insn (gen_tldo_hix22si (temp1, addr));
! 	    emit_insn (gen_tldo_lox10si (temp2, temp1, addr));
! 	    emit_insn (gen_tldo_addsi (ret, temp3, temp2, addr));
! 	  }
  	else
! 	  {
! 	    emit_insn (gen_tldo_hix22di (temp1, addr));
! 	    emit_insn (gen_tldo_lox10di (temp2, temp1, addr));
! 	    emit_insn (gen_tldo_adddi (ret, temp3, temp2, addr));
! 	  }
  	break;
  
        case TLS_MODEL_INITIAL_EXEC:
! 	temp1 = gen_reg_rtx (Pmode);
! 	temp2 = gen_reg_rtx (Pmode);
  	temp3 = gen_reg_rtx (Pmode);
  	got = sparc_tls_got ();
  	if (TARGET_ARCH32)
! 	  {
! 	    emit_insn (gen_tie_hi22si (temp1, addr));
! 	    emit_insn (gen_tie_lo10si (temp2, temp1, addr));
! 	    emit_insn (gen_tie_ld32 (temp3, got, temp2, addr));
! 	  }
  	else
! 	  {
! 	    emit_insn (gen_tie_hi22di (temp1, addr));
! 	    emit_insn (gen_tie_lo10di (temp2, temp1, addr));
! 	    emit_insn (gen_tie_ld64 (temp3, got, temp2, addr));
! 	  }
          if (TARGET_SUN_TLS)
  	  {
  	    ret = gen_reg_rtx (Pmode);
  	    if (TARGET_ARCH32)
! 	      emit_insn (gen_tie_addsi (ret, gen_rtx_REG (Pmode, 7),
  					temp3, addr));
  	    else
! 	      emit_insn (gen_tie_adddi (ret, gen_rtx_REG (Pmode, 7),
  					temp3, addr));
  	  }
  	else
*************** sparc_legitimize_tls_address (rtx addr)
*** 4628,4640 ****
  	temp2 = gen_reg_rtx (Pmode);
  	if (TARGET_ARCH32)
  	  {
! 	    emit_insn (gen_tle_hix22_sp32 (temp1, addr));
! 	    emit_insn (gen_tle_lox10_sp32 (temp2, temp1, addr));
  	  }
  	else
  	  {
! 	    emit_insn (gen_tle_hix22_sp64 (temp1, addr));
! 	    emit_insn (gen_tle_lox10_sp64 (temp2, temp1, addr));
  	  }
  	ret = gen_rtx_PLUS (Pmode, gen_rtx_REG (Pmode, 7), temp2);
  	break;
--- 4653,4665 ----
  	temp2 = gen_reg_rtx (Pmode);
  	if (TARGET_ARCH32)
  	  {
! 	    emit_insn (gen_tle_hix22si (temp1, addr));
! 	    emit_insn (gen_tle_lox10si (temp2, temp1, addr));
  	  }
  	else
  	  {
! 	    emit_insn (gen_tle_hix22di (temp1, addr));
! 	    emit_insn (gen_tle_lox10di (temp2, temp1, addr));
  	  }
  	ret = gen_rtx_PLUS (Pmode, gen_rtx_REG (Pmode, 7), temp2);
  	break;
diff -Nrcpad gcc-7.4.0/gcc/config/sparc/sparc.md gcc-7.5.0/gcc/config/sparc/sparc.md
*** gcc-7.4.0/gcc/config/sparc/sparc.md	Fri Apr  6 22:32:39 2018
--- gcc-7.5.0/gcc/config/sparc/sparc.md	Wed Jan  9 14:41:55 2019
*************** visl")
*** 7961,8118 ****
  
  ;; TLS support instructions.
  
! (define_insn "tgd_hi22"
!   [(set (match_operand:SI 0 "register_operand" "=r")
!         (high:SI (unspec:SI [(match_operand 1 "tgd_symbolic_operand" "")]
! 			    UNSPEC_TLSGD)))]
    "TARGET_TLS"
    "sethi\\t%%tgd_hi22(%a1), %0")
  
! (define_insn "tgd_lo10"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(lo_sum:SI (match_operand:SI 1 "register_operand" "r")
! 		   (unspec:SI [(match_operand 2 "tgd_symbolic_operand" "")]
! 			      UNSPEC_TLSGD)))]
    "TARGET_TLS"
    "add\\t%1, %%tgd_lo10(%a2), %0")
  
! (define_insn "tgd_add32"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(plus:SI (match_operand:SI 1 "register_operand" "r")
! 		 (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 			     (match_operand 3 "tgd_symbolic_operand" "")]
! 			    UNSPEC_TLSGD)))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "add\\t%1, %2, %0, %%tgd_add(%a3)")
! 
! (define_insn "tgd_add64"
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(plus:DI (match_operand:DI 1 "register_operand" "r")
! 		 (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 			     (match_operand 3 "tgd_symbolic_operand" "")]
! 			    UNSPEC_TLSGD)))]
!   "TARGET_TLS && TARGET_ARCH64"
    "add\\t%1, %2, %0, %%tgd_add(%a3)")
  
! (define_insn "tgd_call32"
!   [(set (match_operand 0 "register_operand" "=r")
! 	(call (mem:SI (unspec:SI [(match_operand:SI 1 "symbolic_operand" "s")
! 				  (match_operand 2 "tgd_symbolic_operand" "")]
! 				 UNSPEC_TLSGD))
! 	      (match_operand 3 "" "")))
!    (clobber (reg:SI O7_REG))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "call\t%a1, %%tgd_call(%a2)%#"
!   [(set_attr "type" "call")])
! 
! (define_insn "tgd_call64"
    [(set (match_operand 0 "register_operand" "=r")
! 	(call (mem:DI (unspec:DI [(match_operand:DI 1 "symbolic_operand" "s")
! 				  (match_operand 2 "tgd_symbolic_operand" "")]
! 				 UNSPEC_TLSGD))
  	      (match_operand 3 "" "")))
!    (clobber (reg:DI O7_REG))]
!   "TARGET_TLS && TARGET_ARCH64"
    "call\t%a1, %%tgd_call(%a2)%#"
    [(set_attr "type" "call")])
  
! (define_insn "tldm_hi22"
!   [(set (match_operand:SI 0 "register_operand" "=r")
!         (high:SI (unspec:SI [(const_int 0)] UNSPEC_TLSLDM)))]
    "TARGET_TLS"
    "sethi\\t%%tldm_hi22(%&), %0")
  
! (define_insn "tldm_lo10"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(lo_sum:SI (match_operand:SI 1 "register_operand" "r")
! 		    (unspec:SI [(const_int 0)] UNSPEC_TLSLDM)))]
    "TARGET_TLS"
    "add\\t%1, %%tldm_lo10(%&), %0")
  
! (define_insn "tldm_add32"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(plus:SI (match_operand:SI 1 "register_operand" "r")
! 		 (unspec:SI [(match_operand:SI 2 "register_operand" "r")]
! 			    UNSPEC_TLSLDM)))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "add\\t%1, %2, %0, %%tldm_add(%&)")
! 
! (define_insn "tldm_add64"
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(plus:DI (match_operand:DI 1 "register_operand" "r")
! 		 (unspec:DI [(match_operand:SI 2 "register_operand" "r")]
! 			    UNSPEC_TLSLDM)))]
!   "TARGET_TLS && TARGET_ARCH64"
    "add\\t%1, %2, %0, %%tldm_add(%&)")
  
! (define_insn "tldm_call32"
!   [(set (match_operand 0 "register_operand" "=r")
! 	(call (mem:SI (unspec:SI [(match_operand:SI 1 "symbolic_operand" "s")]
! 				 UNSPEC_TLSLDM))
! 	      (match_operand 2 "" "")))
!    (clobber (reg:SI O7_REG))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "call\t%a1, %%tldm_call(%&)%#"
!   [(set_attr "type" "call")])
! 
! (define_insn "tldm_call64"
    [(set (match_operand 0 "register_operand" "=r")
! 	(call (mem:DI (unspec:DI [(match_operand:DI 1 "symbolic_operand" "s")]
! 				 UNSPEC_TLSLDM))
  	      (match_operand 2 "" "")))
!    (clobber (reg:DI O7_REG))]
!   "TARGET_TLS && TARGET_ARCH64"
    "call\t%a1, %%tldm_call(%&)%#"
    [(set_attr "type" "call")])
  
! (define_insn "tldo_hix22"
!   [(set (match_operand:SI 0 "register_operand" "=r")
!         (high:SI (unspec:SI [(match_operand 1 "tld_symbolic_operand" "")]
! 			    UNSPEC_TLSLDO)))]
    "TARGET_TLS"
    "sethi\\t%%tldo_hix22(%a1), %0")
  
! (define_insn "tldo_lox10"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(lo_sum:SI (match_operand:SI 1 "register_operand" "r")
! 		   (unspec:SI [(match_operand 2 "tld_symbolic_operand" "")]
! 			      UNSPEC_TLSLDO)))]
    "TARGET_TLS"
    "xor\\t%1, %%tldo_lox10(%a2), %0")
  
! (define_insn "tldo_add32"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(plus:SI (match_operand:SI 1 "register_operand" "r")
! 		 (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 			     (match_operand 3 "tld_symbolic_operand" "")]
! 			    UNSPEC_TLSLDO)))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "add\\t%1, %2, %0, %%tldo_add(%a3)")
! 
! (define_insn "tldo_add64"
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(plus:DI (match_operand:DI 1 "register_operand" "r")
! 		 (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 			     (match_operand 3 "tld_symbolic_operand" "")]
! 			    UNSPEC_TLSLDO)))]
!   "TARGET_TLS && TARGET_ARCH64"
    "add\\t%1, %2, %0, %%tldo_add(%a3)")
  
! (define_insn "tie_hi22"
!   [(set (match_operand:SI 0 "register_operand" "=r")
!         (high:SI (unspec:SI [(match_operand 1 "tie_symbolic_operand" "")]
! 			    UNSPEC_TLSIE)))]
    "TARGET_TLS"
    "sethi\\t%%tie_hi22(%a1), %0")
  
! (define_insn "tie_lo10"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(lo_sum:SI (match_operand:SI 1 "register_operand" "r")
! 		   (unspec:SI [(match_operand 2 "tie_symbolic_operand" "")]
! 			      UNSPEC_TLSIE)))]
    "TARGET_TLS"
    "add\\t%1, %%tie_lo10(%a2), %0")
  
  (define_insn "tie_ld32"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "register_operand" "r")
--- 7961,8072 ----
  
  ;; TLS support instructions.
  
! (define_insn "tgd_hi22<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
!         (high:P (unspec:P [(match_operand 1 "tgd_symbolic_operand" "")]
! 			  UNSPEC_TLSGD)))]
    "TARGET_TLS"
    "sethi\\t%%tgd_hi22(%a1), %0")
  
! (define_insn "tgd_lo10<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(lo_sum:P (match_operand:P 1 "register_operand" "r")
! 		  (unspec:P [(match_operand 2 "tgd_symbolic_operand" "")]
! 			    UNSPEC_TLSGD)))]
    "TARGET_TLS"
    "add\\t%1, %%tgd_lo10(%a2), %0")
  
! (define_insn "tgd_add<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(plus:P (match_operand:P 1 "register_operand" "r")
! 		(unspec:P [(match_operand:P 2 "register_operand" "r")
! 			   (match_operand 3 "tgd_symbolic_operand" "")]
! 			  UNSPEC_TLSGD)))]
!   "TARGET_TLS"
    "add\\t%1, %2, %0, %%tgd_add(%a3)")
  
! (define_insn "tgd_call<P:mode>"
    [(set (match_operand 0 "register_operand" "=r")
! 	(call (mem:P (unspec:P [(match_operand:P 1 "symbolic_operand" "s")
! 				(match_operand 2 "tgd_symbolic_operand" "")]
! 			       UNSPEC_TLSGD))
  	      (match_operand 3 "" "")))
!    (clobber (reg:P O7_REG))]
!   "TARGET_TLS"
    "call\t%a1, %%tgd_call(%a2)%#"
    [(set_attr "type" "call")])
  
! (define_insn "tldm_hi22<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
!         (high:P (unspec:P [(const_int 0)] UNSPEC_TLSLDM)))]
    "TARGET_TLS"
    "sethi\\t%%tldm_hi22(%&), %0")
  
! (define_insn "tldm_lo10<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(lo_sum:P (match_operand:P 1 "register_operand" "r")
! 		  (unspec:P [(const_int 0)] UNSPEC_TLSLDM)))]
    "TARGET_TLS"
    "add\\t%1, %%tldm_lo10(%&), %0")
  
! (define_insn "tldm_add<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(plus:P (match_operand:P 1 "register_operand" "r")
! 		(unspec:P [(match_operand:P 2 "register_operand" "r")]
! 			  UNSPEC_TLSLDM)))]
!   "TARGET_TLS"
    "add\\t%1, %2, %0, %%tldm_add(%&)")
  
! (define_insn "tldm_call<P:mode>"
    [(set (match_operand 0 "register_operand" "=r")
! 	(call (mem:P (unspec:P [(match_operand:P 1 "symbolic_operand" "s")]
! 			       UNSPEC_TLSLDM))
  	      (match_operand 2 "" "")))
!    (clobber (reg:P O7_REG))]
!   "TARGET_TLS"
    "call\t%a1, %%tldm_call(%&)%#"
    [(set_attr "type" "call")])
  
! (define_insn "tldo_hix22<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
!         (high:P (unspec:P [(match_operand 1 "tld_symbolic_operand" "")]
! 			  UNSPEC_TLSLDO)))]
    "TARGET_TLS"
    "sethi\\t%%tldo_hix22(%a1), %0")
  
! (define_insn "tldo_lox10<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(lo_sum:P (match_operand:P 1 "register_operand" "r")
! 		  (unspec:P [(match_operand 2 "tld_symbolic_operand" "")]
! 			    UNSPEC_TLSLDO)))]
    "TARGET_TLS"
    "xor\\t%1, %%tldo_lox10(%a2), %0")
  
! (define_insn "tldo_add<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(plus:P (match_operand:P 1 "register_operand" "r")
! 		(unspec:P [(match_operand:P 2 "register_operand" "r")
! 			   (match_operand 3 "tld_symbolic_operand" "")]
! 			  UNSPEC_TLSLDO)))]
!   "TARGET_TLS"
    "add\\t%1, %2, %0, %%tldo_add(%a3)")
  
! (define_insn "tie_hi22<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
!         (high:P (unspec:P [(match_operand 1 "tie_symbolic_operand" "")]
! 			  UNSPEC_TLSIE)))]
    "TARGET_TLS"
    "sethi\\t%%tie_hi22(%a1), %0")
  
! (define_insn "tie_lo10<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(lo_sum:P (match_operand:P 1 "register_operand" "r")
! 		  (unspec:P [(match_operand 2 "tie_symbolic_operand" "")]
! 			    UNSPEC_TLSIE)))]
    "TARGET_TLS"
    "add\\t%1, %%tie_lo10(%a2), %0")
  
+ ; Note the %%tie_ld operator
  (define_insn "tie_ld32"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(unspec:SI [(match_operand:SI 1 "register_operand" "r")
*************** visl")
*** 8124,8133 ****
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
  (define_insn "tie_ld64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "register_operand" "r")
! 		    (match_operand:SI 2 "register_operand" "r")
  		    (match_operand 3 "tie_symbolic_operand" "")]
  		   UNSPEC_TLSIE))]
    "TARGET_TLS && TARGET_ARCH64"
--- 8078,8088 ----
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
+ ; Note the %%tie_ldx operator
  (define_insn "tie_ld64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(unspec:DI [(match_operand:DI 1 "register_operand" "r")
! 		    (match_operand:DI 2 "register_operand" "r")
  		    (match_operand 3 "tie_symbolic_operand" "")]
  		   UNSPEC_TLSIE))]
    "TARGET_TLS && TARGET_ARCH64"
*************** visl")
*** 8135,8293 ****
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
! (define_insn "tie_add32"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(plus:SI (match_operand:SI 1 "register_operand" "r")
! 		 (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 			     (match_operand 3 "tie_symbolic_operand" "")]
! 			    UNSPEC_TLSIE)))]
!   "TARGET_SUN_TLS && TARGET_ARCH32"
!   "add\\t%1, %2, %0, %%tie_add(%a3)")
! 
! (define_insn "tie_add64"
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(plus:DI (match_operand:DI 1 "register_operand" "r")
! 		 (unspec:DI [(match_operand:DI 2 "register_operand" "r")
! 			     (match_operand 3 "tie_symbolic_operand" "")]
! 			    UNSPEC_TLSIE)))]
!   "TARGET_SUN_TLS && TARGET_ARCH64"
    "add\\t%1, %2, %0, %%tie_add(%a3)")
  
! (define_insn "tle_hix22_sp32"
!   [(set (match_operand:SI 0 "register_operand" "=r")
!         (high:SI (unspec:SI [(match_operand 1 "tle_symbolic_operand" "")]
! 			    UNSPEC_TLSLE)))]
!   "TARGET_TLS && TARGET_ARCH32"
    "sethi\\t%%tle_hix22(%a1), %0")
  
! (define_insn "tle_lox10_sp32"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(lo_sum:SI (match_operand:SI 1 "register_operand" "r")
! 		   (unspec:SI [(match_operand 2 "tle_symbolic_operand" "")]
! 			      UNSPEC_TLSLE)))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "xor\\t%1, %%tle_lox10(%a2), %0")
! 
! (define_insn "tle_hix22_sp64"
!   [(set (match_operand:DI 0 "register_operand" "=r")
!         (high:DI (unspec:DI [(match_operand 1 "tle_symbolic_operand" "")]
  			    UNSPEC_TLSLE)))]
!   "TARGET_TLS && TARGET_ARCH64"
!   "sethi\\t%%tle_hix22(%a1), %0")
! 
! (define_insn "tle_lox10_sp64"
!   [(set (match_operand:DI 0 "register_operand" "=r")
! 	(lo_sum:DI (match_operand:DI 1 "register_operand" "r")
! 		   (unspec:DI [(match_operand 2 "tle_symbolic_operand" "")]
! 			      UNSPEC_TLSLE)))]
!   "TARGET_TLS && TARGET_ARCH64"
    "xor\\t%1, %%tle_lox10(%a2), %0")
  
! ;; Now patterns combining tldo_add{32,64} with some integer loads or stores
! (define_insn "*tldo_ldub_sp32"
    [(set (match_operand:QI 0 "register_operand" "=r")
! 	(mem:QI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:SI 1 "register_operand" "r"))))]
!   "TARGET_TLS && TARGET_ARCH32"
    "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldub1_sp32"
    [(set (match_operand:HI 0 "register_operand" "=r")
  	(zero_extend:HI
! 	  (mem:QI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:SI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH32"
    "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldub2_sp32"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(zero_extend:SI
! 	  (mem:QI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:SI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH32"
    "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldsb1_sp32"
    [(set (match_operand:HI 0 "register_operand" "=r")
  	(sign_extend:HI
! 	  (mem:QI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:SI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH32"
    "ldsb\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldsb2_sp32"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(sign_extend:SI
! 	  (mem:QI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:SI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "ldsb\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "sload")
!    (set_attr "us3load_type" "3cycle")])
! 
! (define_insn "*tldo_ldub_sp64"
!   [(set (match_operand:QI 0 "register_operand" "=r")
! 	(mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
! 			 (match_operand:DI 1 "register_operand" "r"))))]
!   "TARGET_TLS && TARGET_ARCH64"
!   "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "load")
!    (set_attr "subtype" "regular")
!    (set_attr "us3load_type" "3cycle")])
! 
! (define_insn "*tldo_ldub1_sp64"
!   [(set (match_operand:HI 0 "register_operand" "=r")
! 	(zero_extend:HI
! 	  (mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:DI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH64"
!   "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "load")
!    (set_attr "subtype" "regular")
!    (set_attr "us3load_type" "3cycle")])
! 
! (define_insn "*tldo_ldub2_sp64"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(zero_extend:SI
! 	  (mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:DI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH64"
!   "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "load")
!    (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
  (define_insn "*tldo_ldub3_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(zero_extend:DI
! 	  (mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
--- 8090,8186 ----
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
! (define_insn "tie_add<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(plus:P (match_operand:P 1 "register_operand" "r")
! 		(unspec:P [(match_operand:P 2 "register_operand" "r")
! 			   (match_operand 3 "tie_symbolic_operand" "")]
! 			  UNSPEC_TLSIE)))]
!   "TARGET_SUN_TLS"
    "add\\t%1, %2, %0, %%tie_add(%a3)")
  
! (define_insn "tle_hix22<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
!         (high:P (unspec:P [(match_operand 1 "tle_symbolic_operand" "")]
! 			  UNSPEC_TLSLE)))]
!   "TARGET_TLS"
    "sethi\\t%%tle_hix22(%a1), %0")
  
! (define_insn "tle_lox10<P:mode>"
!   [(set (match_operand:P 0 "register_operand" "=r")
! 	(lo_sum:P (match_operand:P 1 "register_operand" "r")
! 		  (unspec:P [(match_operand 2 "tle_symbolic_operand" "")]
  			    UNSPEC_TLSLE)))]
!   "TARGET_TLS"
    "xor\\t%1, %%tle_lox10(%a2), %0")
  
! ;; Now patterns combining tldo_add with some integer loads or stores
! (define_insn "*tldo_ldub<P:mode>"
    [(set (match_operand:QI 0 "register_operand" "=r")
! 	(mem:QI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				   (match_operand 3 "tld_symbolic_operand" "")]
! 				  UNSPEC_TLSLDO)
! 			(match_operand:P 1 "register_operand" "r"))))]
!   "TARGET_TLS"
    "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldub1<P:mode>"
    [(set (match_operand:HI 0 "register_operand" "=r")
  	(zero_extend:HI
! 	  (mem:QI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			  (match_operand:P 1 "register_operand" "r")))))]
!   "TARGET_TLS"
    "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldub2<P:mode>"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(zero_extend:SI
! 	  (mem:QI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			  (match_operand:P 1 "register_operand" "r")))))]
!   "TARGET_TLS"
    "ldub\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldsb1<P:mode>"
    [(set (match_operand:HI 0 "register_operand" "=r")
  	(sign_extend:HI
! 	  (mem:QI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			  (match_operand:P 1 "register_operand" "r")))))]
!   "TARGET_TLS"
    "ldsb\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldsb2<P:mode>"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(sign_extend:SI
! 	  (mem:QI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
! 			  (match_operand:P 1 "register_operand" "r")))))]
!   "TARGET_TLS"
!   "ldsb\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
  (define_insn "*tldo_ldub3_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(zero_extend:DI
! 	  (mem:QI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
*************** visl")
*** 8297,8330 ****
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
- (define_insn "*tldo_ldsb1_sp64"
-   [(set (match_operand:HI 0 "register_operand" "=r")
- 	(sign_extend:HI
- 	  (mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
- 				       (match_operand 3 "tld_symbolic_operand" "")]
- 				      UNSPEC_TLSLDO)
- 			   (match_operand:DI 1 "register_operand" "r")))))]
-   "TARGET_TLS && TARGET_ARCH64"
-   "ldsb\t[%1 + %2], %0, %%tldo_add(%3)"
-   [(set_attr "type" "sload")
-    (set_attr "us3load_type" "3cycle")])
- 
- (define_insn "*tldo_ldsb2_sp64"
-   [(set (match_operand:SI 0 "register_operand" "=r")
- 	(sign_extend:SI
- 	  (mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
- 				       (match_operand 3 "tld_symbolic_operand" "")]
- 				      UNSPEC_TLSLDO)
- 			   (match_operand:DI 1 "register_operand" "r")))))]
-   "TARGET_TLS && TARGET_ARCH64"
-   "ldsb\t[%1 + %2], %0, %%tldo_add(%3)"
-   [(set_attr "type" "sload")
-    (set_attr "us3load_type" "3cycle")])
- 
  (define_insn "*tldo_ldsb3_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(sign_extend:DI
! 	  (mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
--- 8190,8199 ----
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
  (define_insn "*tldo_ldsb3_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(sign_extend:DI
! 	  (mem:QI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
*************** visl")
*** 8333,8404 ****
    [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_lduh_sp32"
    [(set (match_operand:HI 0 "register_operand" "=r")
! 	(mem:HI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:SI 1 "register_operand" "r"))))]
!   "TARGET_TLS && TARGET_ARCH32"
    "lduh\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_lduh1_sp32"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(zero_extend:SI
! 	  (mem:HI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:SI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH32"
    "lduh\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldsh1_sp32"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(sign_extend:SI
! 	  (mem:HI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:SI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "ldsh\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "sload")
!    (set_attr "us3load_type" "3cycle")])
! 
! (define_insn "*tldo_lduh_sp64"
!   [(set (match_operand:HI 0 "register_operand" "=r")
! 	(mem:HI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
! 			 (match_operand:DI 1 "register_operand" "r"))))]
!   "TARGET_TLS && TARGET_ARCH64"
!   "lduh\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "load")
!    (set_attr "subtype" "regular")
!    (set_attr "us3load_type" "3cycle")])
! 
! (define_insn "*tldo_lduh1_sp64"
!   [(set (match_operand:SI 0 "register_operand" "=r")
! 	(zero_extend:SI
! 	  (mem:HI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
! 				      UNSPEC_TLSLDO)
! 			   (match_operand:DI 1 "register_operand" "r")))))]
!   "TARGET_TLS && TARGET_ARCH64"
!   "lduh\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "load")
!    (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
  (define_insn "*tldo_lduh2_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(zero_extend:DI
! 	  (mem:HI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
--- 8202,8248 ----
    [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_lduh<P:mode>"
    [(set (match_operand:HI 0 "register_operand" "=r")
! 	(mem:HI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				   (match_operand 3 "tld_symbolic_operand" "")]
! 				  UNSPEC_TLSLDO)
! 			(match_operand:P 1 "register_operand" "r"))))]
!   "TARGET_TLS"
    "lduh\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_lduh1<P:mode>"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(zero_extend:SI
! 	  (mem:HI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			  (match_operand:P 1 "register_operand" "r")))))]
!   "TARGET_TLS"
    "lduh\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_ldsh1<P:mode>"
    [(set (match_operand:SI 0 "register_operand" "=r")
  	(sign_extend:SI
! 	  (mem:HI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
! 			  (match_operand:P 1 "register_operand" "r")))))]
!   "TARGET_TLS"
!   "ldsh\t[%1 + %2], %0, %%tldo_add(%3)"
!   [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
  (define_insn "*tldo_lduh2_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(zero_extend:DI
! 	  (mem:HI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
*************** visl")
*** 8408,8429 ****
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
- (define_insn "*tldo_ldsh1_sp64"
-   [(set (match_operand:SI 0 "register_operand" "=r")
- 	(sign_extend:SI
- 	  (mem:HI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
- 				       (match_operand 3 "tld_symbolic_operand" "")]
- 				      UNSPEC_TLSLDO)
- 			   (match_operand:DI 1 "register_operand" "r")))))]
-   "TARGET_TLS && TARGET_ARCH64"
-   "ldsh\t[%1 + %2], %0, %%tldo_add(%3)"
-   [(set_attr "type" "sload")
-    (set_attr "us3load_type" "3cycle")])
- 
  (define_insn "*tldo_ldsh2_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(sign_extend:DI
! 	  (mem:HI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
--- 8252,8261 ----
     (set_attr "subtype" "regular")
     (set_attr "us3load_type" "3cycle")])
  
  (define_insn "*tldo_ldsh2_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(sign_extend:DI
! 	  (mem:HI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
*************** visl")
*** 8432,8463 ****
    [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_lduw_sp32"
    [(set (match_operand:SI 0 "register_operand" "=r")
! 	(mem:SI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:SI 1 "register_operand" "r"))))]
!   "TARGET_TLS && TARGET_ARCH32"
    "ld\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
- (define_insn "*tldo_lduw_sp64"
-   [(set (match_operand:SI 0 "register_operand" "=r")
- 	(mem:SI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
- 				     (match_operand 3 "tld_symbolic_operand" "")]
- 				    UNSPEC_TLSLDO)
- 			 (match_operand:DI 1 "register_operand" "r"))))]
-   "TARGET_TLS && TARGET_ARCH64"
-   "lduw\t[%1 + %2], %0, %%tldo_add(%3)"
-   [(set_attr "type" "load")
-    (set_attr "subtype" "regular")])
- 
  (define_insn "*tldo_lduw1_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(zero_extend:DI
! 	  (mem:SI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
--- 8264,8284 ----
    [(set_attr "type" "sload")
     (set_attr "us3load_type" "3cycle")])
  
! (define_insn "*tldo_lduw<P:mode>"
    [(set (match_operand:SI 0 "register_operand" "=r")
! 	(mem:SI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				   (match_operand 3 "tld_symbolic_operand" "")]
! 				  UNSPEC_TLSLDO)
! 			(match_operand:P 1 "register_operand" "r"))))]
!   "TARGET_TLS"
    "ld\t[%1 + %2], %0, %%tldo_add(%3)"
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
  (define_insn "*tldo_lduw1_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(zero_extend:DI
! 	  (mem:SI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
  				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
*************** visl")
*** 8469,8476 ****
  (define_insn "*tldo_ldsw1_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(sign_extend:DI
! 	  (mem:SI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 					(match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
    "TARGET_TLS && TARGET_ARCH64"
--- 8290,8297 ----
  (define_insn "*tldo_ldsw1_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
  	(sign_extend:DI
! 	  (mem:SI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
! 				       (match_operand 3 "tld_symbolic_operand" "")]
  				      UNSPEC_TLSLDO)
  			   (match_operand:DI 1 "register_operand" "r")))))]
    "TARGET_TLS && TARGET_ARCH64"
*************** visl")
*** 8480,8486 ****
  
  (define_insn "*tldo_ldx_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
! 	(mem:DI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
  			 (match_operand:DI 1 "register_operand" "r"))))]
--- 8301,8307 ----
  
  (define_insn "*tldo_ldx_sp64"
    [(set (match_operand:DI 0 "register_operand" "=r")
! 	(mem:DI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
  			 (match_operand:DI 1 "register_operand" "r"))))]
*************** visl")
*** 8489,8556 ****
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
! (define_insn "*tldo_stb_sp32"
!   [(set (mem:QI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:SI 1 "register_operand" "r")))
! 	(match_operand:QI 0 "register_operand" "r"))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "stb\t%0, [%1 + %2], %%tldo_add(%3)"
!   [(set_attr "type" "store")])
! 
! (define_insn "*tldo_stb_sp64"
!   [(set (mem:QI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:DI 1 "register_operand" "r")))
  	(match_operand:QI 0 "register_operand" "r"))]
!   "TARGET_TLS && TARGET_ARCH64"
    "stb\t%0, [%1 + %2], %%tldo_add(%3)"
    [(set_attr "type" "store")])
  
! (define_insn "*tldo_sth_sp32"
!   [(set (mem:HI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:SI 1 "register_operand" "r")))
! 	(match_operand:HI 0 "register_operand" "r"))]
!   "TARGET_TLS && TARGET_ARCH32"
!   "sth\t%0, [%1 + %2], %%tldo_add(%3)"
!   [(set_attr "type" "store")])
! 
! (define_insn "*tldo_sth_sp64"
!   [(set (mem:HI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:DI 1 "register_operand" "r")))
  	(match_operand:HI 0 "register_operand" "r"))]
!   "TARGET_TLS && TARGET_ARCH64"
    "sth\t%0, [%1 + %2], %%tldo_add(%3)"
    [(set_attr "type" "store")])
  
! (define_insn "*tldo_stw_sp32"
!   [(set (mem:SI (plus:SI (unspec:SI [(match_operand:SI 2 "register_operand" "r")
! 				     (match_operand 3 "tld_symbolic_operand" "")]
! 				    UNSPEC_TLSLDO)
! 			 (match_operand:SI 1 "register_operand" "r")))
  	(match_operand:SI 0 "register_operand" "r"))]
!   "TARGET_TLS && TARGET_ARCH32"
    "st\t%0, [%1 + %2], %%tldo_add(%3)"
    [(set_attr "type" "store")])
  
- (define_insn "*tldo_stw_sp64"
-   [(set (mem:SI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
- 				     (match_operand 3 "tld_symbolic_operand" "")]
- 				    UNSPEC_TLSLDO)
- 			 (match_operand:DI 1 "register_operand" "r")))
- 	(match_operand:SI 0 "register_operand" "r"))]
-   "TARGET_TLS && TARGET_ARCH64"
-   "stw\t%0, [%1 + %2], %%tldo_add(%3)"
-   [(set_attr "type" "store")])
- 
  (define_insn "*tldo_stx_sp64"
!   [(set (mem:DI (plus:DI (unspec:DI [(match_operand:SI 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
  			 (match_operand:DI 1 "register_operand" "r")))
--- 8310,8347 ----
    [(set_attr "type" "load")
     (set_attr "subtype" "regular")])
  
! (define_insn "*tldo_stb<P:mode>"
!   [(set (mem:QI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				   (match_operand 3 "tld_symbolic_operand" "")]
! 				  UNSPEC_TLSLDO)
! 			(match_operand:P 1 "register_operand" "r")))
  	(match_operand:QI 0 "register_operand" "r"))]
!   "TARGET_TLS"
    "stb\t%0, [%1 + %2], %%tldo_add(%3)"
    [(set_attr "type" "store")])
  
! (define_insn "*tldo_sth<P:mode>"
!   [(set (mem:HI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				   (match_operand 3 "tld_symbolic_operand" "")]
! 				   UNSPEC_TLSLDO)
! 			(match_operand:P 1 "register_operand" "r")))
  	(match_operand:HI 0 "register_operand" "r"))]
!   "TARGET_TLS"
    "sth\t%0, [%1 + %2], %%tldo_add(%3)"
    [(set_attr "type" "store")])
  
! (define_insn "*tldo_stw<P:mode>"
!   [(set (mem:SI (plus:P (unspec:P [(match_operand:P 2 "register_operand" "r")
! 				   (match_operand 3 "tld_symbolic_operand" "")]
! 				  UNSPEC_TLSLDO)
! 			(match_operand:P 1 "register_operand" "r")))
  	(match_operand:SI 0 "register_operand" "r"))]
!   "TARGET_TLS"
    "st\t%0, [%1 + %2], %%tldo_add(%3)"
    [(set_attr "type" "store")])
  
  (define_insn "*tldo_stx_sp64"
!   [(set (mem:DI (plus:DI (unspec:DI [(match_operand:DI 2 "register_operand" "r")
  				     (match_operand 3 "tld_symbolic_operand" "")]
  				    UNSPEC_TLSLDO)
  			 (match_operand:DI 1 "register_operand" "r")))
diff -Nrcpad gcc-7.4.0/gcc/config/xtensa/xtensa.c gcc-7.5.0/gcc/config/xtensa/xtensa.c
*** gcc-7.4.0/gcc/config/xtensa/xtensa.c	Tue Sep  4 17:59:04 2018
--- gcc-7.5.0/gcc/config/xtensa/xtensa.c	Mon Sep 23 07:50:40 2019
*************** xtensa_expand_prologue (void)
*** 2802,2808 ****
  			    gen_rtx_SET (mem, reg));
  	    }
  	}
!       if (total_size > 1024)
  	{
  	  rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
  	  emit_move_insn (tmp_reg, GEN_INT (total_size -
--- 2802,2809 ----
  			    gen_rtx_SET (mem, reg));
  	    }
  	}
!       if (total_size > 1024
! 	  || (!callee_save_size && total_size > 128))
  	{
  	  rtx tmp_reg = gen_rtx_REG (Pmode, A9_REG);
  	  emit_move_insn (tmp_reg, GEN_INT (total_size -
diff -Nrcpad gcc-7.4.0/gcc/config.gcc gcc-7.5.0/gcc/config.gcc
*** gcc-7.4.0/gcc/config.gcc	Thu Jun 21 09:36:40 2018
--- gcc-7.5.0/gcc/config.gcc	Fri Nov  1 20:20:47 2019
*************** x86_cpus="generic intel"
*** 616,622 ****
  # Common parts for widely ported systems.
  case ${target} in
  *-*-darwin*)
!   tmake_file="t-darwin ${cpu_type}/t-darwin"
    tm_file="${tm_file} darwin.h"
    case ${target} in
    *-*-darwin9*)
--- 616,622 ----
  # Common parts for widely ported systems.
  case ${target} in
  *-*-darwin*)
!   tmake_file="t-darwin "
    tm_file="${tm_file} darwin.h"
    case ${target} in
    *-*-darwin9*)
*************** hppa[12]*-*-hpux11*)
*** 1440,1455 ****
  		dwarf2=no
  	fi
  	;;
  i[34567]86-*-darwin*)
  	need_64bit_isa=yes
  	# Baseline choice for a machine that allows m64 support.
  	with_cpu=${with_cpu:-core2}
  	tmake_file="${tmake_file} t-slibgcc"
  	;;
  x86_64-*-darwin*)
  	with_cpu=${with_cpu:-core2}
! 	tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
! 	tm_file="${tm_file} ${cpu_type}/darwin64.h"
  	;;
  i[34567]86-*-elfiamcu)
  	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
--- 1440,1464 ----
  		dwarf2=no
  	fi
  	;;
+ i[34567]86-*-darwin1[89]*)
+ 	echo "Error: 32bit target is not supported after Darwin17" 1>&2
+ 	;;
  i[34567]86-*-darwin*)
  	need_64bit_isa=yes
  	# Baseline choice for a machine that allows m64 support.
  	with_cpu=${with_cpu:-core2}
+ 	tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc"
+ 	tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
+ 	;;
+ x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
+ 	# Only 64b from now
+ 	with_cpu=${with_cpu:-core2}
  	tmake_file="${tmake_file} t-slibgcc"
  	;;
  x86_64-*-darwin*)
  	with_cpu=${with_cpu:-core2}
! 	tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
! 	tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
  	;;
  i[34567]86-*-elfiamcu)
  	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
*************** pdp11-*-*)
*** 2346,2371 ****
  #	extra_headers=
  #	;;
  powerpc-*-darwin*)
! 	extra_options="${extra_options} rs6000/darwin.opt"
  	case ${target} in
! 	  *-darwin1[0-9]* | *-darwin[8-9]*)
! 	    tmake_file="${tmake_file} rs6000/t-darwin8"
! 	    tm_file="${tm_file} rs6000/darwin8.h"
  	    ;;
  	  *-darwin7*)
! 	    tm_file="${tm_file} rs6000/darwin7.h"
  	    ;;
! 	  *-darwin[0-6]*)
  	    ;;
  	esac
  	tmake_file="${tmake_file} t-slibgcc"
- 	extra_headers=altivec.h
  	;;
  powerpc64-*-darwin*)
  	extra_options="${extra_options} ${cpu_type}/darwin.opt"
! 	tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
! 	tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
! 	extra_headers=altivec.h
  	;;
  powerpc*-*-freebsd*)
  	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
--- 2355,2385 ----
  #	extra_headers=
  #	;;
  powerpc-*-darwin*)
! 	extra_options="${extra_options} ${cpu_type}/darwin.opt"
  	case ${target} in
! 	  *-darwin1[0-9]* | *-darwin9*)
! 	    tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
! 	    tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
! 	    ;;
! 	  *-darwin8*)
! 	    tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
! 	    tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h"
! 	    tm_file="${tm_file} ${cpu_type}/darwin8.h"
  	    ;;
  	  *-darwin7*)
! 	    tm_file="${tm_file} ${cpu_type}/darwin7.h"
  	    ;;
! 	  *-darwin[456]*)
! 	    # Earlier - single arch, with 32b only
! 	    # OS X 10.0, the first edition is Darwin4
  	    ;;
  	esac
  	tmake_file="${tmake_file} t-slibgcc"
  	;;
  powerpc64-*-darwin*)
  	extra_options="${extra_options} ${cpu_type}/darwin.opt"
! 	tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
! 	tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
  	;;
  powerpc*-*-freebsd*)
  	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
*************** case "${target}" in
*** 4316,4329 ****
  			 echo "#undef  LINK_OS_EXTRA_SPEC32"
  			 echo "#define LINK_OS_EXTRA_SPEC32" \
  			      "\"%(link_os_new_dtags)" \
! 			      "-rpath $prefix/lib -rpath $at/lib" \
! 			      "-L $prefix/lib -L $at/lib\""
  			 echo
  			 echo "#undef  LINK_OS_EXTRA_SPEC64"
  			 echo "#define LINK_OS_EXTRA_SPEC64" \
  			      "\"%(link_os_new_dtags)" \
! 			      "-rpath $prefix/lib64 -rpath $at/lib64" \
! 			      "-L $prefix/lib64 -L $at/lib64\""
  			 echo
  			 echo "#undef  LINK_OS_NEW_DTAGS_SPEC"
  			 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
--- 4330,4341 ----
  			 echo "#undef  LINK_OS_EXTRA_SPEC32"
  			 echo "#define LINK_OS_EXTRA_SPEC32" \
  			      "\"%(link_os_new_dtags)" \
! 			      "-rpath $prefix/lib -rpath $at/lib\""
  			 echo
  			 echo "#undef  LINK_OS_EXTRA_SPEC64"
  			 echo "#define LINK_OS_EXTRA_SPEC64" \
  			      "\"%(link_os_new_dtags)" \
! 			      "-rpath $prefix/lib64 -rpath $at/lib64\""
  			 echo
  			 echo "#undef  LINK_OS_NEW_DTAGS_SPEC"
  			 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
*************** case "${target}" in
*** 4336,4342 ****
  			 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
  			 echo
  			 echo "#undef  MD_STARTFILE_PREFIX"
! 			 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \
  			    > advance-toolchain.h
  		    else
  			echo "Unknown advance-toolchain $with_advance_toolchain"
--- 4348,4357 ----
  			 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
  			 echo
  			 echo "#undef  MD_STARTFILE_PREFIX"
! 			 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\""
! 			 echo
! 			 echo "#undef  MD_STARTFILE_PREFIX_1"
! 			 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \
  			    > advance-toolchain.h
  		    else
  			echo "Unknown advance-toolchain $with_advance_toolchain"
diff -Nrcpad gcc-7.4.0/gcc/convert.c gcc-7.5.0/gcc/convert.c
*** gcc-7.4.0/gcc/convert.c	Tue Jan  9 08:53:14 2018
--- gcc-7.5.0/gcc/convert.c	Fri Aug 30 12:11:06 2019
*************** convert_to_real_1 (tree type, tree expr,
*** 190,201 ****
  	  CASE_MATHFN (FABS)
  	  CASE_MATHFN (LOGB)
  #undef CASE_MATHFN
  	    {
  	      tree arg0 = strip_float_extensions (CALL_EXPR_ARG (expr, 0));
  	      tree newtype = type;
  
! 	      /* We have (outertype)sqrt((innertype)x).  Choose the wider mode from
! 		 the both as the safe type for operation.  */
  	      if (TYPE_PRECISION (TREE_TYPE (arg0)) > TYPE_PRECISION (type))
  		newtype = TREE_TYPE (arg0);
  
--- 190,204 ----
  	  CASE_MATHFN (FABS)
  	  CASE_MATHFN (LOGB)
  #undef CASE_MATHFN
+ 	    if (call_expr_nargs (expr) != 1
+ 		|| !SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (expr, 0))))
+ 	      break;
  	    {
  	      tree arg0 = strip_float_extensions (CALL_EXPR_ARG (expr, 0));
  	      tree newtype = type;
  
! 	      /* We have (outertype)sqrt((innertype)x).  Choose the wider mode
! 		 from the both as the safe type for operation.  */
  	      if (TYPE_PRECISION (TREE_TYPE (arg0)) > TYPE_PRECISION (type))
  		newtype = TREE_TYPE (arg0);
  
*************** convert_to_integer_1 (tree type, tree ex
*** 579,585 ****
  
  	CASE_FLT_FN (BUILT_IN_ROUND):
  	  /* Only convert in ISO C99 mode and with -fno-math-errno.  */
! 	  if (!targetm.libc_has_function (function_c99_misc) || flag_errno_math)
  	    break;
  	  if (outprec < TYPE_PRECISION (integer_type_node)
  	      || (outprec == TYPE_PRECISION (integer_type_node)
--- 582,589 ----
  
  	CASE_FLT_FN (BUILT_IN_ROUND):
  	  /* Only convert in ISO C99 mode and with -fno-math-errno.  */
! 	  if (!targetm.libc_has_function (function_c99_misc)
! 	      || flag_errno_math)
  	    break;
  	  if (outprec < TYPE_PRECISION (integer_type_node)
  	      || (outprec == TYPE_PRECISION (integer_type_node)
*************** convert_to_integer_1 (tree type, tree ex
*** 600,606 ****
  	  gcc_fallthrough ();
  	CASE_FLT_FN (BUILT_IN_RINT):
  	  /* Only convert in ISO C99 mode and with -fno-math-errno.  */
! 	  if (!targetm.libc_has_function (function_c99_misc) || flag_errno_math)
  	    break;
  	  if (outprec < TYPE_PRECISION (integer_type_node)
  	      || (outprec == TYPE_PRECISION (integer_type_node)
--- 604,611 ----
  	  gcc_fallthrough ();
  	CASE_FLT_FN (BUILT_IN_RINT):
  	  /* Only convert in ISO C99 mode and with -fno-math-errno.  */
! 	  if (!targetm.libc_has_function (function_c99_misc)
! 	      || flag_errno_math)
  	    break;
  	  if (outprec < TYPE_PRECISION (integer_type_node)
  	      || (outprec == TYPE_PRECISION (integer_type_node)
*************** convert_to_integer_1 (tree type, tree ex
*** 615,627 ****
  	  break;
  
  	CASE_FLT_FN (BUILT_IN_TRUNC):
! 	  return convert_to_integer_1 (type, CALL_EXPR_ARG (s_expr, 0), dofold);
  
  	default:
  	  break;
  	}
  
!       if (fn)
          {
  	  tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0));
  	  return convert_to_integer_1 (type, newexpr, dofold);
--- 620,638 ----
  	  break;
  
  	CASE_FLT_FN (BUILT_IN_TRUNC):
! 	  if (call_expr_nargs (s_expr) != 1
! 	      || !SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (s_expr, 0))))
! 	    break;
! 	  return convert_to_integer_1 (type, CALL_EXPR_ARG (s_expr, 0),
! 				       dofold);
  
  	default:
  	  break;
  	}
  
!       if (fn
! 	  && call_expr_nargs (s_expr) == 1
! 	  && SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (s_expr, 0))))
          {
  	  tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0));
  	  return convert_to_integer_1 (type, newexpr, dofold);
*************** convert_to_integer_1 (tree type, tree ex
*** 652,658 ****
  	  break;
  	}
  
!       if (fn)
          {
  	  tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0));
  	  return convert_to_integer_1 (type, newexpr, dofold);
--- 663,671 ----
  	  break;
  	}
  
!       if (fn
! 	  && call_expr_nargs (s_expr) == 1
! 	  && SCALAR_FLOAT_TYPE_P (TREE_TYPE (CALL_EXPR_ARG (s_expr, 0))))
          {
  	  tree newexpr = build_call_expr (fn, 1, CALL_EXPR_ARG (s_expr, 0));
  	  return convert_to_integer_1 (type, newexpr, dofold);
diff -Nrcpad gcc-7.4.0/gcc/cp/ChangeLog gcc-7.5.0/gcc/cp/ChangeLog
*** gcc-7.4.0/gcc/cp/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/cp/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,202 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backported from mainline
+ 	2019-08-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR pch/61250
+ 	* parser.c (cp_parser_initial_pragma): Call c_common_no_more_pch ()
+ 	after determining that the first token is not
+ 	PRAGMA_GCC_PCH_PREPROCESS.
+ 
+ 2019-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-02-21  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89392
+ 	* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
+ 	make symtab process new functions here.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/90950
+ 	* semantics.c (finish_omp_clauses): Don't reject references to
+ 	incomplete types if processing_template_decl.
+ 
+ 	2019-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR pch/90326
+ 	* config-lang.in (gtfiles): Remove c-family/c-lex.c, add
+ 	c-family/c-cppbuiltin.c.
+ 
+ 	2019-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/90108
+ 	* decl.c (duplicate_decls): If remove is main variant and
+ 	DECL_ORIGINAL_TYPE is some other type, remove a DECL_ORIGINAL_TYPE
+ 	variant that has newdecl as TYPE_NAME if any.
+ 
+ 	2019-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/89933
+ 	* decl.c (duplicate_decls): When newdecl's type is its main variant,
+ 	don't try to remove it from the variant list, but instead assert
+ 	it has no variants.
+ 
+ 	2019-03-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/89869
+ 	* typeck.c: Include gimplify.h.
+ 	(cp_build_modify_expr) <case COND_EXPR>: Unshare rhs before using it
+ 	for second time.  Formatting fixes.
+ 
+ 	2019-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89796
+ 	* semantics.c (finish_omp_atomic): Add warning_sentinel for
+ 	-Wunused-value around finish_expr_stmt call.
+ 
+ 	2019-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/60702
+ 	* cp-tree.h (get_tls_wrapper_fn): Remove declaration.
+ 	(maybe_get_tls_wrapper_call): Declare.
+ 	* decl2.c (get_tls_wrapper_fn): Make static.
+ 	(maybe_get_tls_wrapper_call): New function.
+ 	* typeck.c (build_class_member_access_expr): Handle accesses to TLS
+ 	variables.
+ 	* semantics.c (finish_qualified_id_expr): Likewise.
+ 	(finish_id_expression_1): Use maybe_get_tls_wrapper_call.
+ 	* pt.c (tsubst_copy_and_build): Likewise.
+ 
+ 	2019-03-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89767
+ 	* parser.c (cp_parser_lambda_introducer): Add ids and first_capture_id
+ 	variables, check for duplicates in this function.
+ 	* lambda.c (add_capture): Don't check for duplicates nor use
+ 	IDENTIFIER_MARKED.
+ 	(register_capture_members): Don't clear IDENTIFIER_MARKED here.
+ 
+ 	2019-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89512
+ 	* semantics.c (finish_qualified_id_expr): Reject variable templates.
+ 
+ 	2019-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/87148
+ 	* init.c (build_value_init_noctor): Ignore flexible array members.
+ 
+ 	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89403
+ 	* decl2.c (c_parse_final_cleanups): Move TREE_ASM_WRITTEN setting
+ 	for flag_syntax_only from here...
+ 	* semantics.c (expand_or_defer_fn_1): ... here.
+ 
+ 	2019-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89187
+ 	* optimize.c (maybe_thunk_body): Clear TREE_ADDRESSABLE on
+ 	PARM_DECLs of the thunk.
+ 	* lambda.c (maybe_add_lambda_conv_op): Likewise.
+ 
+ 	2019-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88976
+ 	* semantics.c (finish_omp_cancel): Use maybe_convert_cond when not in
+ 	template or build_x_binary_op otherwise.
+ 
+ 	2019-01-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88949
+ 	* optimize.c (cxx_copy_decl): New function.
+ 	(clone_body): Use it instead of copy_decl_no_change.
+ 
+ 	2018-12-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/86669
+ 	* call.c (make_temporary_var_for_ref_to_temp): Call pushdecl even for
+ 	automatic vars.
+ 
+ 	PR c++/87506
+ 	* constexpr.c (adjust_temp_type): Handle EMPTY_CLASS_EXPR.
+ 
+ 	2018-12-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88103
+ 	* typeck.c (build_class_member_access_expr): If unary_complex_lvalue
+ 	turned xvalue_p into non-xvalue_p, call move on it.
+ 
+ 	2018-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88181
+ 	* class.c (fixup_attribute_variants): Also propagate TYPE_PACKED
+ 	to variants.
+ 
+ 2019-04-10  Matthias Klose  <doko@ubuntu.com>
+ 
+ 	Backport from the gcc-8 branch
+ 	2019-03-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89585
+ 	* parser.c (cp_parser_asm_definition): Parse asm qualifiers even
+ 	at toplevel, but diagnose them.
+ 
+ 2018-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR inline-asm/55681
+ 	* parser.c (cp_parser_asm_definition): Update grammar.  Allow any
+ 	combination of volatile and goto, in any order, without repetitions.
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* cp-tree.h (finish_asm_stmt): Update declaration.
+ 	* parser.c (cp_parser_asm_definition): Detect the inline keyword
+ 	after asm.  Pass a flag for it to finish_asm_stmt.
+ 	* pt.c (tsubst_expr): Pass the ASM_INLINE_P flag to finish_asm_stmt.
+ 	* semantics.c (finish_asm_stmt): Add inline_p parameter.  Use it to
+ 	set ASM_INLINE_P.
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* parser.c (cp_parser_asm_definition): Rewrite the loop to work without
+ 	"done" boolean variable.
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* parser.c (cp_parser_asm_definition): Rewrite the loop to work without
+ 	"done" boolean variable.
+ 	* parser.c (cp_parser_asm_definition): Keep track of the location each
+ 	asm qualifier is first seen; use that to give nicer "duplicate asm
+ 	qualifier" messages.
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* parser.c (cp_parser_asm_definition) <RID_CONST, RID_RESTRICT>: Give
+ 	a more specific error message (instead of just falling through).
+ 
+ 	Backport from trunk
+ 	2018-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* parser.c (cp_parser_asm_definition): Do not allow any asm qualifiers
+ 	on top-level asm.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/cp/call.c gcc-7.5.0/gcc/cp/call.c
*** gcc-7.4.0/gcc/cp/call.c	Fri Jun 22 20:34:33 2018
--- gcc-7.5.0/gcc/cp/call.c	Fri Aug 30 11:20:08 2019
*************** make_temporary_var_for_ref_to_temp (tree
*** 10301,10308 ****
        var = pushdecl_top_level (var);
      }
    else
!     /* Create a new cleanup level if necessary.  */
!     maybe_push_cleanup_level (type);
  
    return var;
  }
--- 10301,10311 ----
        var = pushdecl_top_level (var);
      }
    else
!     {
!       /* Create a new cleanup level if necessary.  */
!       maybe_push_cleanup_level (type);
!       var = pushdecl (var);
!     }
  
    return var;
  }
diff -Nrcpad gcc-7.4.0/gcc/cp/class.c gcc-7.5.0/gcc/cp/class.c
*** gcc-7.4.0/gcc/cp/class.c	Fri Aug 17 14:17:10 2018
--- gcc-7.5.0/gcc/cp/class.c	Fri Aug 30 11:14:56 2019
*************** fixup_attribute_variants (tree t)
*** 2088,2093 ****
--- 2088,2094 ----
    unsigned align = TYPE_ALIGN (t);
    bool user_align = TYPE_USER_ALIGN (t);
    bool may_alias = lookup_attribute ("may_alias", attrs);
+   bool packed = TYPE_PACKED (t);
  
    if (may_alias)
      fixup_may_alias (t);
*************** fixup_attribute_variants (tree t)
*** 2105,2110 ****
--- 2106,2112 ----
        else
  	TYPE_USER_ALIGN (variants) = user_align;
        SET_TYPE_ALIGN (variants, valign);
+       TYPE_PACKED (variants) = packed;
        if (may_alias)
  	fixup_may_alias (variants);
      }
diff -Nrcpad gcc-7.4.0/gcc/cp/config-lang.in gcc-7.5.0/gcc/cp/config-lang.in
*** gcc-7.4.0/gcc/cp/config-lang.in	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/cp/config-lang.in	Fri Aug 30 12:45:01 2019
*************** compilers="cc1plus\$(exeext)"
*** 29,32 ****
  
  target_libs="target-libstdc++-v3"
  
! gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.h \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/c-family/c-lex.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/cp-lang.c \$(srcdir)/cp/except.c \$(srcdir)/cp/vtable-class-hierarchy.c \$(srcdir)/cp/constexpr.c \$(srcdir)/cp/cp-gimplify.c"
--- 29,32 ----
  
  target_libs="target-libstdc++-v3"
  
! gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.h \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/c-family/c-cppbuiltin.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/cp-lang.c \$(srcdir)/cp/except.c \$(srcdir)/cp/vtable-class-hierarchy.c \$(srcdir)/cp/constexpr.c \$(srcdir)/cp/cp-gimplify.c"
diff -Nrcpad gcc-7.4.0/gcc/cp/constexpr.c gcc-7.5.0/gcc/cp/constexpr.c
*** gcc-7.4.0/gcc/cp/constexpr.c	Mon Nov 26 15:53:48 2018
--- gcc-7.5.0/gcc/cp/constexpr.c	Fri Aug 30 11:17:41 2019
*************** adjust_temp_type (tree type, tree temp)
*** 1212,1217 ****
--- 1212,1219 ----
    /* Avoid wrapping an aggregate value in a NOP_EXPR.  */
    if (TREE_CODE (temp) == CONSTRUCTOR)
      return build_constructor (type, CONSTRUCTOR_ELTS (temp));
+   if (TREE_CODE (temp) == EMPTY_CLASS_EXPR)
+     return build0 (EMPTY_CLASS_EXPR, type);
    gcc_assert (scalarish_type_p (type));
    return cp_fold_convert (type, temp);
  }
diff -Nrcpad gcc-7.4.0/gcc/cp/cp-tree.h gcc-7.5.0/gcc/cp/cp-tree.h
*** gcc-7.4.0/gcc/cp/cp-tree.h	Fri Jun 22 21:25:04 2018
--- gcc-7.5.0/gcc/cp/cp-tree.h	Fri Aug 30 12:30:48 2019
*************** extern tree cp_build_parm_decl			(tree,
*** 5962,5968 ****
  extern tree get_guard				(tree);
  extern tree get_guard_cond			(tree, bool);
  extern tree set_guard				(tree);
! extern tree get_tls_wrapper_fn			(tree);
  extern void mark_needed				(tree);
  extern bool decl_needed_p			(tree);
  extern void note_vague_linkage_fn		(tree);
--- 5962,5968 ----
  extern tree get_guard				(tree);
  extern tree get_guard_cond			(tree, bool);
  extern tree set_guard				(tree);
! extern tree maybe_get_tls_wrapper_call		(tree);
  extern void mark_needed				(tree);
  extern bool decl_needed_p			(tree);
  extern void note_vague_linkage_fn		(tree);
*************** extern tree begin_compound_stmt			(unsig
*** 6455,6461 ****
  
  extern void finish_compound_stmt		(tree);
  extern tree finish_asm_stmt			(int, tree, tree, tree, tree,
! 						 tree);
  extern tree finish_label_stmt			(tree);
  extern void finish_label_decl			(tree);
  extern cp_expr finish_parenthesized_expr	(cp_expr);
--- 6455,6461 ----
  
  extern void finish_compound_stmt		(tree);
  extern tree finish_asm_stmt			(int, tree, tree, tree, tree,
! 						 tree, bool);
  extern tree finish_label_stmt			(tree);
  extern void finish_label_decl			(tree);
  extern cp_expr finish_parenthesized_expr	(cp_expr);
diff -Nrcpad gcc-7.4.0/gcc/cp/decl.c gcc-7.5.0/gcc/cp/decl.c
*** gcc-7.4.0/gcc/cp/decl.c	Fri Jun 22 21:06:41 2018
--- gcc-7.5.0/gcc/cp/decl.c	Fri Aug 30 12:38:31 2019
*************** duplicate_decls (tree newdecl, tree oldd
*** 2130,2142 ****
  	  if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl)
  	    {
  	      tree remove = TREE_TYPE (newdecl);
! 	      for (tree t = TYPE_MAIN_VARIANT (remove); ;
! 		   t = TYPE_NEXT_VARIANT (t))
! 		if (TYPE_NEXT_VARIANT (t) == remove)
! 		  {
! 		    TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove);
! 		    break;
! 		  }
  	    }
  	}
        else
--- 2130,2162 ----
  	  if (TYPE_NAME (TREE_TYPE (newdecl)) == newdecl)
  	    {
  	      tree remove = TREE_TYPE (newdecl);
! 	      if (TYPE_MAIN_VARIANT (remove) == remove)
! 		{
! 		  gcc_assert (TYPE_NEXT_VARIANT (remove) == NULL_TREE);
! 		  /* If remove is the main variant, no need to remove that
! 		     from the list.  One of the DECL_ORIGINAL_TYPE
! 		     variants, e.g. created for aligned attribute, might still
! 		     refer to the newdecl TYPE_DECL though, so remove that one
! 		     in that case.  */
! 		  if (tree orig = DECL_ORIGINAL_TYPE (newdecl))
! 		    if (orig != remove)
! 		      for (tree t = TYPE_MAIN_VARIANT (orig); t;
! 			   t = TYPE_MAIN_VARIANT (t))
! 			if (TYPE_NAME (TYPE_NEXT_VARIANT (t)) == newdecl)
! 			  {
! 			    TYPE_NEXT_VARIANT (t)
! 			      = TYPE_NEXT_VARIANT (TYPE_NEXT_VARIANT (t));
! 			    break;
! 			  }
! 		}	    
! 	      else
! 		for (tree t = TYPE_MAIN_VARIANT (remove); ;
! 		     t = TYPE_NEXT_VARIANT (t))
! 		  if (TYPE_NEXT_VARIANT (t) == remove)
! 		    {
! 		      TYPE_NEXT_VARIANT (t) = TYPE_NEXT_VARIANT (remove);
! 		      break;
! 		    }
  	    }
  	}
        else
diff -Nrcpad gcc-7.4.0/gcc/cp/decl2.c gcc-7.5.0/gcc/cp/decl2.c
*** gcc-7.4.0/gcc/cp/decl2.c	Wed May  9 02:34:03 2018
--- gcc-7.5.0/gcc/cp/decl2.c	Fri Aug 30 12:30:48 2019
*************** get_tls_init_fn (tree var)
*** 3255,3261 ****
     VAR and then returns a reference to VAR.  The wrapper function is used
     in place of VAR everywhere VAR is mentioned.  */
  
! tree
  get_tls_wrapper_fn (tree var)
  {
    /* Only C++11 TLS vars need this wrapper fn.  */
--- 3255,3261 ----
     VAR and then returns a reference to VAR.  The wrapper function is used
     in place of VAR everywhere VAR is mentioned.  */
  
! static tree
  get_tls_wrapper_fn (tree var)
  {
    /* Only C++11 TLS vars need this wrapper fn.  */
*************** get_tls_wrapper_fn (tree var)
*** 3307,3312 ****
--- 3307,3328 ----
    return fn;
  }
  
+ /* If EXPR is a thread_local variable that should be wrapped by init
+    wrapper function, return a call to that function, otherwise return
+    NULL.  */
+ 
+ tree
+ maybe_get_tls_wrapper_call (tree expr)
+ {
+   if (VAR_P (expr)
+       && !processing_template_decl
+       && !cp_unevaluated_operand
+       && CP_DECL_THREAD_LOCAL_P (expr))
+     if (tree wrap = get_tls_wrapper_fn (expr))
+       return build_cxx_call (wrap, 0, NULL, tf_warning_or_error);
+   return NULL;
+ }
+ 
  /* At EOF, generate the definition for the TLS wrapper function FN:
  
     T& var_wrapper() {
*************** c_parse_final_cleanups (void)
*** 4725,4735 ****
  	      /* Generate RTL for this function now that we know we
  		 need it.  */
  	      expand_or_defer_fn (decl);
- 	      /* If we're compiling -fsyntax-only pretend that this
- 		 function has been written out so that we don't try to
- 		 expand it again.  */
- 	      if (flag_syntax_only)
- 		TREE_ASM_WRITTEN (decl) = 1;
  	      reconsider = true;
  	    }
  	}
--- 4741,4746 ----
diff -Nrcpad gcc-7.4.0/gcc/cp/init.c gcc-7.5.0/gcc/cp/init.c
*** gcc-7.4.0/gcc/cp/init.c	Fri Jun 22 21:27:41 2018
--- gcc-7.5.0/gcc/cp/init.c	Fri Aug 30 12:13:40 2019
*************** build_value_init_noctor (tree type, tsub
*** 409,414 ****
--- 409,423 ----
  	      if (ftype == error_mark_node)
  		continue;
  
+ 	      /* Ignore flexible array members for value initialization.  */
+ 	      if (TREE_CODE (ftype) == ARRAY_TYPE
+ 		  && !COMPLETE_TYPE_P (ftype)
+ 		  && !TYPE_DOMAIN (ftype)
+ 		  && COMPLETE_TYPE_P (TREE_TYPE (ftype))
+ 		  && (next_initializable_field (DECL_CHAIN (field))
+ 		      == NULL_TREE))
+ 		continue;
+ 
  	      /* We could skip vfields and fields of types with
  		 user-defined constructors, but I think that won't improve
  		 performance at all; it should be simpler in general just
diff -Nrcpad gcc-7.4.0/gcc/cp/lambda.c gcc-7.5.0/gcc/cp/lambda.c
*** gcc-7.4.0/gcc/cp/lambda.c	Tue Feb 27 02:47:25 2018
--- gcc-7.5.0/gcc/cp/lambda.c	Fri Aug 30 12:29:13 2019
*************** add_capture (tree lambda, tree id, tree
*** 567,585 ****
  	  IDENTIFIER_LENGTH (id) + 1);
    name = get_identifier (buf);
  
-   /* If TREE_TYPE isn't set, we're still in the introducer, so check
-      for duplicates.  */
-   if (!LAMBDA_EXPR_CLOSURE (lambda))
-     {
-       if (IDENTIFIER_MARKED (name))
- 	{
- 	  pedwarn (input_location, 0,
- 		   "already captured %qD in lambda expression", id);
- 	  return NULL_TREE;
- 	}
-       IDENTIFIER_MARKED (name) = true;
-     }
- 
    if (variadic)
      type = make_pack_expansion (type);
  
--- 567,572 ----
*************** register_capture_members (tree captures)
*** 634,641 ****
    if (PACK_EXPANSION_P (field))
      field = PACK_EXPANSION_PATTERN (field);
  
-   /* We set this in add_capture to avoid duplicates.  */
-   IDENTIFIER_MARKED (DECL_NAME (field)) = false;
    finish_member_declaration (field);
  }
  
--- 621,626 ----
*************** maybe_add_lambda_conv_op (tree type)
*** 1045,1050 ****
--- 1030,1038 ----
        {
  	tree new_node = copy_node (src);
  
+ 	/* Clear TREE_ADDRESSABLE on thunk arguments.  */
+ 	TREE_ADDRESSABLE (new_node) = 0;
+ 
  	if (!fn_args)
  	  fn_args = tgt = new_node;
  	else
diff -Nrcpad gcc-7.4.0/gcc/cp/optimize.c gcc-7.5.0/gcc/cp/optimize.c
*** gcc-7.4.0/gcc/cp/optimize.c	Tue Oct 23 15:06:17 2018
--- gcc-7.5.0/gcc/cp/optimize.c	Fri Aug 30 11:43:53 2019
*************** update_cloned_parm (tree parm, tree clon
*** 61,66 ****
--- 61,85 ----
    DECL_GIMPLE_REG_P (cloned_parm) = DECL_GIMPLE_REG_P (parm);
  }
  
+ /* Like copy_decl_no_change, but handle DECL_OMP_PRIVATIZED_MEMBER
+    properly.  */
+ 
+ static tree
+ cxx_copy_decl (tree decl, copy_body_data *id)
+ {
+   tree copy = copy_decl_no_change (decl, id);
+   if (VAR_P (decl)
+       && DECL_HAS_VALUE_EXPR_P (decl)
+       && DECL_ARTIFICIAL (decl)
+       && DECL_LANG_SPECIFIC (decl)
+       && DECL_OMP_PRIVATIZED_MEMBER (decl))
+     {
+       tree expr = DECL_VALUE_EXPR (copy);
+       walk_tree (&expr, copy_tree_body_r, id, NULL);
+       SET_DECL_VALUE_EXPR (copy, expr);
+     }
+   return copy;
+ }
  
  /* FN is a function in High GIMPLE form that has a complete body and no
     CFG.  CLONE is a function whose body is to be set to a copy of FN,
*************** clone_body (tree clone, tree fn, void *a
*** 80,86 ****
    id.src_cfun = DECL_STRUCT_FUNCTION (fn);
    id.decl_map = static_cast<hash_map<tree, tree> *> (arg_map);
  
!   id.copy_decl = copy_decl_no_change;
    id.transform_call_graph_edges = CB_CGE_DUPLICATE;
    id.transform_new_cfg = true;
    id.transform_return_to_modify = false;
--- 99,105 ----
    id.src_cfun = DECL_STRUCT_FUNCTION (fn);
    id.decl_map = static_cast<hash_map<tree, tree> *> (arg_map);
  
!   id.copy_decl = cxx_copy_decl;
    id.transform_call_graph_edges = CB_CGE_DUPLICATE;
    id.transform_new_cfg = true;
    id.transform_return_to_modify = false;
*************** maybe_thunk_body (tree fn, bool force)
*** 384,389 ****
--- 403,410 ----
  		  gcc_assert (clone_parm);
  		  DECL_ABSTRACT_ORIGIN (clone_parm) = NULL;
  		  args[parmno] = clone_parm;
+ 		  /* Clear TREE_ADDRESSABLE on thunk arguments.  */
+ 		  TREE_ADDRESSABLE (clone_parm) = 0;
  		  clone_parm = TREE_CHAIN (clone_parm);
  		}
  	      if (fn_parm_typelist)
diff -Nrcpad gcc-7.4.0/gcc/cp/parser.c gcc-7.5.0/gcc/cp/parser.c
*** gcc-7.4.0/gcc/cp/parser.c	Sat Aug 11 11:02:22 2018
--- gcc-7.5.0/gcc/cp/parser.c	Thu Sep  5 19:27:31 2019
*************** cp_parser_lambda_introducer (cp_parser*
*** 10010,10015 ****
--- 10010,10020 ----
        first = false;
      }
  
+   hash_set<tree> *ids = NULL;
+ #if GCC_VERSION >= 7000
+   char ids_buf[sizeof (hash_set<tree>) + __alignof__ (hash_set<tree>) - 1];
+ #endif
+   tree first_capture_id = NULL_TREE;
    while (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_SQUARE))
      {
        cp_token* capture_token;
*************** cp_parser_lambda_introducer (cp_parser*
*** 10044,10054 ****
  	    pedwarn (loc, 0, "explicit by-copy capture of %<this%> redundant "
  		     "with by-copy capture default");
  	  cp_lexer_consume_token (parser->lexer);
! 	  add_capture (lambda_expr,
! 		       /*id=*/this_identifier,
! 		       /*initializer=*/finish_this_expr (),
! 		       /*by_reference_p=*/true,
! 		       explicit_init_p);
  	  continue;
  	}
  
--- 10049,10062 ----
  	    pedwarn (loc, 0, "explicit by-copy capture of %<this%> redundant "
  		     "with by-copy capture default");
  	  cp_lexer_consume_token (parser->lexer);
! 	  if (LAMBDA_EXPR_THIS_CAPTURE (lambda_expr))
! 	    pedwarn (input_location, 0,
! 		     "already captured %qD in lambda expression",
! 		     this_identifier);
! 	  else
! 	    add_capture (lambda_expr, /*id=*/this_identifier,
! 			 /*initializer=*/finish_this_expr (),
! 			 /*by_reference_p=*/true, explicit_init_p);
  	  continue;
  	}
  
*************** cp_parser_lambda_introducer (cp_parser*
*** 10062,10072 ****
  			     "-std=c++1z or -std=gnu++1z");
  	  cp_lexer_consume_token (parser->lexer);
  	  cp_lexer_consume_token (parser->lexer);
! 	  add_capture (lambda_expr,
! 		       /*id=*/this_identifier,
! 		       /*initializer=*/finish_this_expr (),
! 		       /*by_reference_p=*/false,
! 		       explicit_init_p);
  	  continue;
  	}
  
--- 10070,10083 ----
  			     "-std=c++1z or -std=gnu++1z");
  	  cp_lexer_consume_token (parser->lexer);
  	  cp_lexer_consume_token (parser->lexer);
! 	  if (LAMBDA_EXPR_THIS_CAPTURE (lambda_expr))
! 	    pedwarn (input_location, 0,
! 		     "already captured %qD in lambda expression",
! 		     this_identifier);
! 	  else
! 	    add_capture (lambda_expr, /*id=*/this_identifier,
! 			 /*initializer=*/finish_this_expr (),
! 			 /*by_reference_p=*/false, explicit_init_p);
  	  continue;
  	}
  
*************** cp_parser_lambda_introducer (cp_parser*
*** 10190,10202 ****
  		     "default", capture_id);
  	}
  
!       add_capture (lambda_expr,
! 		   capture_id,
! 		   capture_init_expr,
! 		   /*by_reference_p=*/capture_kind == BY_REFERENCE,
! 		   explicit_init_p);
      }
  
    cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE);
  }
  
--- 10201,10244 ----
  		     "default", capture_id);
  	}
  
!       /* Check for duplicates.
! 	 Optimize for the zero or one explicit captures cases and only create
! 	 the hash_set after adding second capture.  */
!       bool found = false;
!       if (ids && ids->elements ())
! 	found = ids->add (capture_id);
!       else if (first_capture_id == NULL_TREE)
! 	first_capture_id = capture_id;
!       else if (capture_id == first_capture_id)
! 	found = true;
!       else
! 	{
! #if GCC_VERSION >= 7000
! 	  ids = new (ids_buf
! 		     + (-(uintptr_t) ids_buf
! 			& (__alignof__ (hash_set <tree>) - 1))) hash_set <tree>;
! #else
! 	  ids = new hash_set <tree>;
! #endif
! 	  ids->add (first_capture_id);
! 	  ids->add (capture_id);
! 	}
!       if (found)
! 	pedwarn (input_location, 0,
! 		 "already captured %qD in lambda expression", capture_id);
!       else
! 	add_capture (lambda_expr, capture_id, capture_init_expr,
! 		     /*by_reference_p=*/capture_kind == BY_REFERENCE,
! 		     explicit_init_p);
      }
  
+   if (ids)
+ #if GCC_VERSION >= 7000
+     ids->~hash_set <tree> ();
+ #else
+     delete ids;
+ #endif
+ 
    cp_parser_require (parser, CPP_CLOSE_SQUARE, RT_CLOSE_SQUARE);
  }
  
*************** cp_parser_using_directive (cp_parser* pa
*** 18789,18810 ****
  
  /* Parse an asm-definition.
  
     asm-definition:
       asm ( string-literal ) ;
  
     GNU Extension:
  
     asm-definition:
!      asm volatile [opt] ( string-literal ) ;
!      asm volatile [opt] ( string-literal : asm-operand-list [opt] ) ;
!      asm volatile [opt] ( string-literal : asm-operand-list [opt]
! 			  : asm-operand-list [opt] ) ;
!      asm volatile [opt] ( string-literal : asm-operand-list [opt]
! 			  : asm-operand-list [opt]
  			  : asm-clobber-list [opt] ) ;
!      asm volatile [opt] goto ( string-literal : : asm-operand-list [opt]
! 			       : asm-clobber-list [opt]
! 			       : asm-goto-list ) ;  */
  
  static void
  cp_parser_asm_definition (cp_parser* parser)
--- 18831,18865 ----
  
  /* Parse an asm-definition.
  
+   asm-qualifier:
+     volatile
+     inline
+     goto
+ 
+   asm-qualifier-list:
+     asm-qualifier
+     asm-qualifier-list asm-qualifier
+ 
     asm-definition:
       asm ( string-literal ) ;
  
     GNU Extension:
  
     asm-definition:
!      asm asm-qualifier-list [opt] ( string-literal ) ;
!      asm asm-qualifier-list [opt] ( string-literal : asm-operand-list [opt] ) ;
!      asm asm-qualifier-list [opt] ( string-literal : asm-operand-list [opt]
! 				    : asm-operand-list [opt] ) ;
!      asm asm-qualifier-list [opt] ( string-literal : asm-operand-list [opt]
! 				    : asm-operand-list [opt]
  			  : asm-clobber-list [opt] ) ;
!      asm asm-qualifier-list [opt] ( string-literal : : asm-operand-list [opt]
! 				    : asm-clobber-list [opt]
! 				    : asm-goto-list ) ;
! 
!   The form with asm-goto-list is valid if and only if the asm-qualifier-list
!   contains goto, and is the only allowed form in that case.  No duplicates are
!   allowed in an asm-qualifier-list.  */
  
  static void
  cp_parser_asm_definition (cp_parser* parser)
*************** cp_parser_asm_definition (cp_parser* par
*** 18815,18825 ****
    tree clobbers = NULL_TREE;
    tree labels = NULL_TREE;
    tree asm_stmt;
-   bool volatile_p = false;
    bool extended_p = false;
    bool invalid_inputs_p = false;
    bool invalid_outputs_p = false;
-   bool goto_p = false;
    required_token missing = RT_NONE;
  
    /* Look for the `asm' keyword.  */
--- 18870,18878 ----
*************** cp_parser_asm_definition (cp_parser* par
*** 18832,18855 ****
        cp_function_chain->invalid_constexpr = true;
      }
  
!   /* See if the next token is `volatile'.  */
!   if (cp_parser_allow_gnu_extensions_p (parser)
!       && cp_lexer_next_token_is_keyword (parser->lexer, RID_VOLATILE))
!     {
!       /* Remember that we saw the `volatile' keyword.  */
!       volatile_p = true;
!       /* Consume the token.  */
!       cp_lexer_consume_token (parser->lexer);
!     }
!   if (cp_parser_allow_gnu_extensions_p (parser)
!       && parser->in_function_body
!       && cp_lexer_next_token_is_keyword (parser->lexer, RID_GOTO))
      {
!       /* Remember that we saw the `goto' keyword.  */
!       goto_p = true;
!       /* Consume the token.  */
!       cp_lexer_consume_token (parser->lexer);
      }
    /* Look for the opening `('.  */
    if (!cp_parser_require (parser, CPP_OPEN_PAREN, RT_OPEN_PAREN))
      return;
--- 18885,18962 ----
        cp_function_chain->invalid_constexpr = true;
      }
  
!   /* Handle the asm-qualifier-list.  */
!   location_t volatile_loc = UNKNOWN_LOCATION;
!   location_t inline_loc = UNKNOWN_LOCATION;
!   location_t goto_loc = UNKNOWN_LOCATION;
!   location_t first_loc = UNKNOWN_LOCATION;
! 
!   if (cp_parser_allow_gnu_extensions_p (parser))
!     for (;;)
!       {
! 	cp_token *token = cp_lexer_peek_token (parser->lexer);
! 	location_t loc = token->location;
! 	switch (cp_lexer_peek_token (parser->lexer)->keyword)
! 	  {
! 	  case RID_VOLATILE:
! 	    if (volatile_loc)
! 	      {
! 		error_at (loc, "duplicate asm qualifier %qT", token->u.value);
! 		inform (volatile_loc, "first seen here");
! 	      }
! 	    else
! 	      volatile_loc = loc;
! 	    cp_lexer_consume_token (parser->lexer);
! 	    continue;
! 
! 	  case RID_INLINE:
! 	    if (inline_loc)
! 	      {
! 		error_at (loc, "duplicate asm qualifier %qT", token->u.value);
! 		inform (inline_loc, "first seen here");
! 	      }
! 	    else
! 	      inline_loc = loc;
! 	    if (!first_loc)
! 	      first_loc = loc;
! 	    cp_lexer_consume_token (parser->lexer);
! 	    continue;
! 
! 	  case RID_GOTO:
! 	    if (goto_loc)
! 	      {
! 		error_at (loc, "duplicate asm qualifier %qT", token->u.value);
! 		inform (goto_loc, "first seen here");
! 	      }
! 	    else
! 	      goto_loc = loc;
! 	    if (!first_loc)
! 	      first_loc = loc;
! 	    cp_lexer_consume_token (parser->lexer);
! 	    continue;
! 
! 	  case RID_CONST:
! 	  case RID_RESTRICT:
! 	    error_at (loc, "%qT is not an asm qualifier", token->u.value);
! 	    cp_lexer_consume_token (parser->lexer);
! 	    continue;
! 
! 	  default:
! 	    break;
! 	  }
! 	break;
!       }
! 
!   bool volatile_p = (volatile_loc != UNKNOWN_LOCATION);
!   bool inline_p = (inline_loc != UNKNOWN_LOCATION);
!   bool goto_p = (goto_loc != UNKNOWN_LOCATION);
! 
!   if (!parser->in_function_body && (inline_p || goto_p))
      {
!       error_at (first_loc, "asm qualifier outside of function body");
!       inline_p = goto_p = false;
      }
+ 
    /* Look for the opening `('.  */
    if (!cp_parser_require (parser, CPP_OPEN_PAREN, RT_OPEN_PAREN))
      return;
*************** cp_parser_asm_definition (cp_parser* par
*** 18941,18948 ****
  					     CPP_CLOSE_PAREN))
  	    clobbers = cp_parser_asm_clobber_list (parser);
  	}
!       else if (goto_p
! 	       && cp_lexer_next_token_is (parser->lexer, CPP_SCOPE))
  	/* The labels are coming next.  */
  	labels_p = true;
  
--- 19048,19054 ----
  					     CPP_CLOSE_PAREN))
  	    clobbers = cp_parser_asm_clobber_list (parser);
  	}
!       else if (goto_p && cp_lexer_next_token_is (parser->lexer, CPP_SCOPE))
  	/* The labels are coming next.  */
  	labels_p = true;
  
*************** cp_parser_asm_definition (cp_parser* par
*** 18976,18982 ****
        if (parser->in_function_body)
  	{
  	  asm_stmt = finish_asm_stmt (volatile_p, string, outputs,
! 				      inputs, clobbers, labels);
  	  /* If the extended syntax was not used, mark the ASM_EXPR.  */
  	  if (!extended_p)
  	    {
--- 19082,19088 ----
        if (parser->in_function_body)
  	{
  	  asm_stmt = finish_asm_stmt (volatile_p, string, outputs,
! 				      inputs, clobbers, labels, inline_p);
  	  /* If the extended syntax was not used, mark the ASM_EXPR.  */
  	  if (!extended_p)
  	    {
*************** cp_parser_initial_pragma (cp_token *firs
*** 38126,38132 ****
  
    cp_lexer_get_preprocessor_token (NULL, first_token);
    if (cp_parser_pragma_kind (first_token) != PRAGMA_GCC_PCH_PREPROCESS)
!     return;
  
    cp_lexer_get_preprocessor_token (NULL, first_token);
    if (first_token->type == CPP_STRING)
--- 38232,38241 ----
  
    cp_lexer_get_preprocessor_token (NULL, first_token);
    if (cp_parser_pragma_kind (first_token) != PRAGMA_GCC_PCH_PREPROCESS)
!     {
!       c_common_no_more_pch ();
!       return;
!     }
  
    cp_lexer_get_preprocessor_token (NULL, first_token);
    if (first_token->type == CPP_STRING)
diff -Nrcpad gcc-7.4.0/gcc/cp/pt.c gcc-7.5.0/gcc/cp/pt.c
*** gcc-7.4.0/gcc/cp/pt.c	Thu Jun 28 00:25:21 2018
--- gcc-7.5.0/gcc/cp/pt.c	Fri Aug 30 12:30:48 2019
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 16159,16165 ****
  	tree labels = tsubst_copy_asm_operands (ASM_LABELS (t), args,
  						complain, in_decl);
  	tmp = finish_asm_stmt (ASM_VOLATILE_P (t), string, outputs, inputs,
! 			       clobbers, labels);
  	tree asm_expr = tmp;
  	if (TREE_CODE (asm_expr) == CLEANUP_POINT_EXPR)
  	  asm_expr = TREE_OPERAND (asm_expr, 0);
--- 16159,16165 ----
  	tree labels = tsubst_copy_asm_operands (ASM_LABELS (t), args,
  						complain, in_decl);
  	tmp = finish_asm_stmt (ASM_VOLATILE_P (t), string, outputs, inputs,
! 			       clobbers, labels, ASM_INLINE_P (t));
  	tree asm_expr = tmp;
  	if (TREE_CODE (asm_expr) == CLEANUP_POINT_EXPR)
  	  asm_expr = TREE_OPERAND (asm_expr, 0);
*************** tsubst_copy_and_build (tree t,
*** 17897,17913 ****
        {
  	tree r = tsubst_copy (t, args, complain, in_decl);
  	/* ??? We're doing a subset of finish_id_expression here.  */
! 	if (VAR_P (r)
! 	    && !processing_template_decl
! 	    && !cp_unevaluated_operand
! 	    && (TREE_STATIC (r) || DECL_EXTERNAL (r))
! 	    && CP_DECL_THREAD_LOCAL_P (r))
! 	  {
! 	    if (tree wrap = get_tls_wrapper_fn (r))
! 	      /* Replace an evaluated use of the thread_local variable with
! 		 a call to its wrapper.  */
! 	      r = build_cxx_call (wrap, 0, NULL, tf_warning_or_error);
! 	  }
  	else if (outer_automatic_var_p (r))
  	  {
  	    r = process_outer_var_ref (r, complain);
--- 17897,17906 ----
        {
  	tree r = tsubst_copy (t, args, complain, in_decl);
  	/* ??? We're doing a subset of finish_id_expression here.  */
! 	if (tree wrap = maybe_get_tls_wrapper_call (r))
! 	  /* Replace an evaluated use of the thread_local variable with
! 	     a call to its wrapper.  */
! 	  r = wrap;
  	else if (outer_automatic_var_p (r))
  	  {
  	    r = process_outer_var_ref (r, complain);
diff -Nrcpad gcc-7.4.0/gcc/cp/semantics.c gcc-7.5.0/gcc/cp/semantics.c
*** gcc-7.4.0/gcc/cp/semantics.c	Fri Jun 22 21:25:04 2018
--- gcc-7.5.0/gcc/cp/semantics.c	Fri Aug 30 12:46:52 2019
*************** finish_compound_stmt (tree stmt)
*** 1429,1439 ****
  /* Finish an asm-statement, whose components are a STRING, some
     OUTPUT_OPERANDS, some INPUT_OPERANDS, some CLOBBERS and some
     LABELS.  Also note whether the asm-statement should be
!    considered volatile.  */
  
  tree
  finish_asm_stmt (int volatile_p, tree string, tree output_operands,
! 		 tree input_operands, tree clobbers, tree labels)
  {
    tree r;
    tree t;
--- 1429,1439 ----
  /* Finish an asm-statement, whose components are a STRING, some
     OUTPUT_OPERANDS, some INPUT_OPERANDS, some CLOBBERS and some
     LABELS.  Also note whether the asm-statement should be
!    considered volatile, and whether it is asm inline.  */
  
  tree
  finish_asm_stmt (int volatile_p, tree string, tree output_operands,
! 		 tree input_operands, tree clobbers, tree labels, bool inline_p)
  {
    tree r;
    tree t;
*************** finish_asm_stmt (int volatile_p, tree st
*** 1587,1592 ****
--- 1587,1593 ----
  		  output_operands, input_operands,
  		  clobbers, labels);
    ASM_VOLATILE_P (r) = volatile_p || noutputs == 0;
+   ASM_INLINE_P (r) = inline_p;
    r = maybe_cleanup_point_expr_void (r);
    return add_stmt (r);
  }
*************** finish_qualified_id_expr (tree qualifyin
*** 2066,2071 ****
--- 2067,2080 ----
      }
    else if (BASELINK_P (expr))
      ;
+   else if (!template_p
+ 	   && TREE_CODE (expr) == TEMPLATE_DECL
+ 	   && !DECL_FUNCTION_TEMPLATE_P (expr))
+     {
+       if (complain & tf_error)
+ 	error ("%qE missing template arguments", expr);
+       return error_mark_node;
+     }
    else
      {
        /* In a template, return a SCOPE_REF for most qualified-ids
*************** finish_qualified_id_expr (tree qualifyin
*** 2078,2083 ****
--- 2087,2094 ----
  	expr = build_qualified_name (TREE_TYPE (expr),
  				     qualifying_class, expr,
  				     template_p);
+       else if (tree wrap = maybe_get_tls_wrapper_call (expr))
+ 	expr = wrap;
  
        expr = convert_from_reference (expr);
      }
*************** finish_id_expression (tree id_expression
*** 3737,3754 ****
  	  *non_integral_constant_expression_p = true;
  	}
  
!       tree wrap;
!       if (VAR_P (decl)
! 	  && !cp_unevaluated_operand
! 	  && !processing_template_decl
! 	  && (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
! 	  && CP_DECL_THREAD_LOCAL_P (decl)
! 	  && (wrap = get_tls_wrapper_fn (decl)))
! 	{
! 	  /* Replace an evaluated use of the thread_local variable with
! 	     a call to its wrapper.  */
! 	  decl = build_cxx_call (wrap, 0, NULL, tf_warning_or_error);
! 	}
        else if (TREE_CODE (decl) == TEMPLATE_ID_EXPR
  	       && variable_template_p (TREE_OPERAND (decl, 0)))
  	{
--- 3748,3757 ----
  	  *non_integral_constant_expression_p = true;
  	}
  
!       if (tree wrap = maybe_get_tls_wrapper_call (decl))
! 	/* Replace an evaluated use of the thread_local variable with
! 	   a call to its wrapper.  */
! 	decl = wrap;
        else if (TREE_CODE (decl) == TEMPLATE_ID_EXPR
  	       && variable_template_p (TREE_OPERAND (decl, 0)))
  	{
*************** expand_or_defer_fn_1 (tree fn)
*** 4297,4303 ****
    /* There's no reason to do any of the work here if we're only doing
       semantic analysis; this code just generates RTL.  */
    if (flag_syntax_only)
!     return false;
  
    return true;
  }
--- 4300,4311 ----
    /* There's no reason to do any of the work here if we're only doing
       semantic analysis; this code just generates RTL.  */
    if (flag_syntax_only)
!     {
!       /* Pretend that this function has been written out so that we don't try
! 	 to expand it again.  */
!       TREE_ASM_WRITTEN (fn) = 1;
!       return false;
!     }
  
    return true;
  }
*************** finish_omp_clauses (tree clauses, enum c
*** 7361,7367 ****
  	  t = require_complete_type (t);
  	  if (t == error_mark_node)
  	    remove = true;
! 	  else if (TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE
  		   && !complete_type_or_else (TREE_TYPE (TREE_TYPE (t)), t))
  	    remove = true;
  	}
--- 7369,7376 ----
  	  t = require_complete_type (t);
  	  if (t == error_mark_node)
  	    remove = true;
! 	  else if (!processing_template_decl
! 		   && TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE
  		   && !complete_type_or_else (TREE_TYPE (TREE_TYPE (t)), t))
  	    remove = true;
  	}
*************** finish_omp_atomic (enum tree_code code,
*** 8624,8629 ****
--- 8633,8643 ----
        stmt = build2 (OMP_ATOMIC, void_type_node, integer_zero_node, stmt);
        OMP_ATOMIC_SEQ_CST (stmt) = seq_cst;
      }
+ 
+   /* Avoid -Wunused-value warnings here, the whole construct has side-effects
+      and even if it might be wrapped from fold-const.c or c-omp.c wrapped
+      in some tree that appears to be unused, the value is not unused.  */
+   warning_sentinel w (warn_unused_value);
    finish_expr_stmt (stmt);
  }
  
*************** finish_omp_cancel (tree clauses)
*** 8690,8699 ****
    tree ifc = omp_find_clause (clauses, OMP_CLAUSE_IF);
    if (ifc != NULL_TREE)
      {
!       tree type = TREE_TYPE (OMP_CLAUSE_IF_EXPR (ifc));
!       ifc = fold_build2_loc (OMP_CLAUSE_LOCATION (ifc), NE_EXPR,
! 			     boolean_type_node, OMP_CLAUSE_IF_EXPR (ifc),
! 			     build_zero_cst (type));
      }
    else
      ifc = boolean_true_node;
--- 8704,8716 ----
    tree ifc = omp_find_clause (clauses, OMP_CLAUSE_IF);
    if (ifc != NULL_TREE)
      {
!       if (!processing_template_decl)
! 	ifc = maybe_convert_cond (OMP_CLAUSE_IF_EXPR (ifc));
!       else
! 	ifc = build_x_binary_op (OMP_CLAUSE_LOCATION (ifc), NE_EXPR,
! 				 OMP_CLAUSE_IF_EXPR (ifc), ERROR_MARK,
! 				 integer_zero_node, ERROR_MARK,
! 				 NULL, tf_warning_or_error);
      }
    else
      ifc = boolean_true_node;
diff -Nrcpad gcc-7.4.0/gcc/cp/typeck.c gcc-7.5.0/gcc/cp/typeck.c
*** gcc-7.4.0/gcc/cp/typeck.c	Fri Jun 22 21:12:32 2018
--- gcc-7.5.0/gcc/cp/typeck.c	Fri Aug 30 12:34:19 2019
*************** along with GCC; see the file COPYING3.
*** 37,42 ****
--- 37,43 ----
  #include "c-family/c-ubsan.h"
  #include "params.h"
  #include "gcc-rich-location.h"
+ #include "gimplify.h"
  
  static tree cp_build_addr_expr_strict (tree, tsubst_flags_t);
  static tree cp_build_function_call (tree, tree, tsubst_flags_t);
*************** build_class_member_access_expr (cp_expr
*** 2362,2368 ****
    {
      tree temp = unary_complex_lvalue (ADDR_EXPR, object);
      if (temp)
!       object = cp_build_indirect_ref (temp, RO_NULL, complain);
    }
  
    /* In [expr.ref], there is an explicit list of the valid choices for
--- 2363,2375 ----
    {
      tree temp = unary_complex_lvalue (ADDR_EXPR, object);
      if (temp)
!       {
! 	temp = cp_build_indirect_ref (temp, RO_NULL, complain);
! 	if (xvalue_p (object) && !xvalue_p (temp))
! 	  /* Preserve xvalue kind.  */
! 	  temp = move (temp);
! 	object = temp;
!       }
    }
  
    /* In [expr.ref], there is an explicit list of the valid choices for
*************** build_class_member_access_expr (cp_expr
*** 2372,2377 ****
--- 2379,2390 ----
        /* A static data member.  */
        result = member;
        mark_exp_read (object);
+ 
+       if (tree wrap = maybe_get_tls_wrapper_call (result))
+ 	/* Replace an evaluated use of the thread_local variable with
+ 	   a call to its wrapper.  */
+ 	result = wrap;
+ 
        /* If OBJECT has side-effects, they are supposed to occur.  */
        if (TREE_SIDE_EFFECTS (object))
  	result = build2 (COMPOUND_EXPR, TREE_TYPE (result), object, result);
*************** cp_build_modify_expr (location_t loc, tr
*** 7664,7671 ****
  	/* Produce (a ? (b = rhs) : (c = rhs))
  	   except that the RHS goes through a save-expr
  	   so the code to compute it is only emitted once.  */
- 	tree cond;
- 
  	if (VOID_TYPE_P (TREE_TYPE (rhs)))
  	  {
  	    if (complain & tf_error)
--- 7677,7682 ----
*************** cp_build_modify_expr (location_t loc, tr
*** 7680,7692 ****
  	if (!lvalue_or_else (lhs, lv_assign, complain))
  	  return error_mark_node;
  
! 	cond = build_conditional_expr
! 	  (input_location, TREE_OPERAND (lhs, 0),
! 	   cp_build_modify_expr (loc, TREE_OPERAND (lhs, 1),
! 				 modifycode, rhs, complain),
! 	   cp_build_modify_expr (loc, TREE_OPERAND (lhs, 2),
! 				 modifycode, rhs, complain),
!            complain);
  
  	if (cond == error_mark_node)
  	  return cond;
--- 7691,7710 ----
  	if (!lvalue_or_else (lhs, lv_assign, complain))
  	  return error_mark_node;
  
! 	tree op1 = cp_build_modify_expr (loc, TREE_OPERAND (lhs, 1),
! 					 modifycode, rhs, complain);
! 	/* When sanitizing undefined behavior, even when rhs doesn't need
! 	   stabilization at this point, the sanitization might add extra
! 	   SAVE_EXPRs in there and so make sure there is no tree sharing
! 	   in the rhs, otherwise those SAVE_EXPRs will have initialization
! 	   only in one of the two branches.  */
! 	if (flag_sanitize & (SANITIZE_UNDEFINED | SANITIZE_NONDEFAULT))
! 	  rhs = unshare_expr (rhs);
! 	tree op2 = cp_build_modify_expr (loc, TREE_OPERAND (lhs, 2),
! 					 modifycode, rhs, complain);
! 	tree cond = build_conditional_expr (input_location,
! 					    TREE_OPERAND (lhs, 0), op1, op2,
! 					    complain);
  
  	if (cond == error_mark_node)
  	  return cond;
diff -Nrcpad gcc-7.4.0/gcc/cp/vtable-class-hierarchy.c gcc-7.5.0/gcc/cp/vtable-class-hierarchy.c
*** gcc-7.4.0/gcc/cp/vtable-class-hierarchy.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/cp/vtable-class-hierarchy.c	Mon Sep  2 14:14:14 2019
*************** vtv_generate_init_routine (void)
*** 1191,1198 ****
        gimplify_function_tree (vtv_fndecl);
        cgraph_node::add_new_function (vtv_fndecl, false);
  
-       symtab->process_new_functions ();
- 
        if (flag_vtable_verify == VTV_PREINIT_PRIORITY && !TARGET_PECOFF)
          assemble_vtv_preinit_initializer (vtv_fndecl);
  
--- 1191,1196 ----
diff -Nrcpad gcc-7.4.0/gcc/dce.c gcc-7.5.0/gcc/dce.c
*** gcc-7.4.0/gcc/dce.c	Fri Jun 22 20:53:41 2018
--- gcc-7.5.0/gcc/dce.c	Fri Aug 30 12:37:28 2019
*************** deletable_insn_p_1 (rtx body)
*** 86,91 ****
--- 86,117 ----
      }
  }
  
+ /* Don't delete calls that may throw if we cannot do so.  */
+ 
+ static bool
+ can_delete_call (rtx_insn *insn)
+ {
+   if (cfun->can_delete_dead_exceptions && can_alter_cfg)
+     return true;
+   if (!insn_nothrow_p (insn))
+     return false;
+   if (can_alter_cfg)
+     return true;
+   /* If we can't alter cfg, even when the call can't throw exceptions, it
+      might have EDGE_ABNORMAL_CALL edges and so we shouldn't delete such
+      calls.  */
+   gcc_assert (CALL_P (insn));
+   if (BLOCK_FOR_INSN (insn) && BB_END (BLOCK_FOR_INSN (insn)) == insn)
+     {
+       edge e;
+       edge_iterator ei;
+ 
+       FOR_EACH_EDGE (e, ei, BLOCK_FOR_INSN (insn)->succs)
+ 	if ((e->flags & EDGE_ABNORMAL_CALL) != 0)
+ 	  return false;
+     }
+   return true;
+ }
  
  /* Return true if INSN is a normal instruction that can be deleted by
     the DCE pass.  */
*************** deletable_insn_p (rtx_insn *insn, bool f
*** 108,114 ****
        /* We can delete dead const or pure calls as long as they do not
           infinite loop.  */
        && (RTL_CONST_OR_PURE_CALL_P (insn)
! 	  && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)))
      return find_call_stack_args (as_a <rtx_call_insn *> (insn), false,
  				 fast, arg_stores);
  
--- 134,142 ----
        /* We can delete dead const or pure calls as long as they do not
           infinite loop.  */
        && (RTL_CONST_OR_PURE_CALL_P (insn)
! 	  && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn))
!       /* Don't delete calls that may throw if we cannot do so.  */
!       && can_delete_call (insn))
      return find_call_stack_args (as_a <rtx_call_insn *> (insn), false,
  				 fast, arg_stores);
  
*************** mark_insn (rtx_insn *insn, bool fast)
*** 200,206 ****
  	  && !df_in_progress
  	  && !SIBLING_CALL_P (insn)
  	  && (RTL_CONST_OR_PURE_CALL_P (insn)
! 	      && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)))
  	find_call_stack_args (as_a <rtx_call_insn *> (insn), true, fast, NULL);
      }
  }
--- 228,235 ----
  	  && !df_in_progress
  	  && !SIBLING_CALL_P (insn)
  	  && (RTL_CONST_OR_PURE_CALL_P (insn)
! 	      && !RTL_LOOPING_CONST_OR_PURE_CALL_P (insn))
! 	  && can_delete_call (insn))
  	find_call_stack_args (as_a <rtx_call_insn *> (insn), true, fast, NULL);
      }
  }
*************** delete_unmarked_insns (void)
*** 569,575 ****
  	  rtx turn_into_use = NULL_RTX;
  
  	  /* Always delete no-op moves.  */
! 	  if (noop_move_p (insn))
  	    {
  	      if (RTX_FRAME_RELATED_P (insn))
  		turn_into_use
--- 598,609 ----
  	  rtx turn_into_use = NULL_RTX;
  
  	  /* Always delete no-op moves.  */
! 	  if (noop_move_p (insn)
! 	      /* Unless the no-op move can throw and we are not allowed
! 		 to alter cfg.  */
! 	      && (!cfun->can_throw_non_call_exceptions
! 		  || (cfun->can_delete_dead_exceptions && can_alter_cfg)
! 		  || insn_nothrow_p (insn)))
  	    {
  	      if (RTX_FRAME_RELATED_P (insn))
  		turn_into_use
*************** delete_unmarked_insns (void)
*** 612,623 ****
  	     for the destination regs in order to avoid dangling notes.  */
  	  remove_reg_equal_equiv_notes_for_defs (insn);
  
- 	  /* If a pure or const call is deleted, this may make the cfg
- 	     have unreachable blocks.  We rememeber this and call
- 	     delete_unreachable_blocks at the end.  */
- 	  if (CALL_P (insn))
- 	    must_clean = true;
- 
  	  if (turn_into_use)
  	    {
  	      /* Don't remove frame related noop moves if they cary
--- 646,651 ----
*************** delete_unmarked_insns (void)
*** 630,641 ****
  	    }
  	  else
  	    /* Now delete the insn.  */
! 	    delete_insn_and_edges (insn);
  	}
  
    /* Deleted a pure or const call.  */
    if (must_clean)
!     delete_unreachable_blocks ();
  }
  
  
--- 658,672 ----
  	    }
  	  else
  	    /* Now delete the insn.  */
! 	    must_clean |= delete_insn_and_edges (insn);
  	}
  
    /* Deleted a pure or const call.  */
    if (must_clean)
!     {
!       delete_unreachable_blocks ();
!       free_dominance_info (CDI_DOMINATORS);
!     }
  }
  
  
diff -Nrcpad gcc-7.4.0/gcc/df-core.c gcc-7.5.0/gcc/df-core.c
*** gcc-7.4.0/gcc/df-core.c	Mon Feb 13 21:56:13 2017
--- gcc-7.5.0/gcc/df-core.c	Fri Jul 12 10:17:42 2019
*************** There are 4 ways to obtain access to ref
*** 298,309 ****
  
     Artificial defs and uses occur both at the beginning and ends of blocks.
  
!      For blocks that area at the destination of eh edges, the
       artificial uses and defs occur at the beginning.  The defs relate
       to the registers specified in EH_RETURN_DATA_REGNO and the uses
!      relate to the registers specified in ED_USES.  Logically these
       defs and uses should really occur along the eh edge, but there is
!      no convenient way to do this.  Artificial edges that occur at the
       beginning of the block have the DF_REF_AT_TOP flag set.
  
       Artificial uses occur at the end of all blocks.  These arise from
--- 298,309 ----
  
     Artificial defs and uses occur both at the beginning and ends of blocks.
  
!      For blocks that are at the destination of eh edges, the
       artificial uses and defs occur at the beginning.  The defs relate
       to the registers specified in EH_RETURN_DATA_REGNO and the uses
!      relate to the registers specified in EH_USES.  Logically these
       defs and uses should really occur along the eh edge, but there is
!      no convenient way to do this.  Artificial defs that occur at the
       beginning of the block have the DF_REF_AT_TOP flag set.
  
       Artificial uses occur at the end of all blocks.  These arise from
diff -Nrcpad gcc-7.4.0/gcc/doc/cpp.1 gcc-7.5.0/gcc/doc/cpp.1
*** gcc-7.4.0/gcc/doc/cpp.1	Thu Dec  6 09:59:45 2018
--- gcc-7.5.0/gcc/doc/cpp.1	Thu Nov 14 07:36:16 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "CPP 1"
! .TH CPP 1 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "CPP 1"
! .TH CPP 1 "2019-11-14" "gcc-7.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-7.4.0/gcc/doc/cpp.info gcc-7.5.0/gcc/doc/cpp.info
*** gcc-7.4.0/gcc/doc/cpp.info	Thu Dec  6 10:20:52 2018
--- gcc-7.5.0/gcc/doc/cpp.info	Thu Nov 14 07:57:25 2019
***************
*** 1,5 ****
  This is doc/cpp.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/doc/cpp.texi.
  
  Copyright (C) 1987-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is doc/cpp.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/doc/cpp.texi.
  
  Copyright (C) 1987-2017 Free Software Foundation, Inc.
  
diff -Nrcpad gcc-7.4.0/gcc/doc/cppinternals.info gcc-7.5.0/gcc/doc/cppinternals.info
*** gcc-7.4.0/gcc/doc/cppinternals.info	Thu Dec  6 10:20:52 2018
--- gcc-7.5.0/gcc/doc/cppinternals.info	Thu Nov 14 07:57:25 2019
***************
*** 1,5 ****
  This is doc/cppinternals.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/doc/cppinternals.texi.
  
  INFO-DIR-SECTION Software development
  START-INFO-DIR-ENTRY
--- 1,5 ----
  This is doc/cppinternals.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/doc/cppinternals.texi.
  
  INFO-DIR-SECTION Software development
  START-INFO-DIR-ENTRY
diff -Nrcpad gcc-7.4.0/gcc/doc/extend.texi gcc-7.5.0/gcc/doc/extend.texi
*** gcc-7.4.0/gcc/doc/extend.texi	Mon Apr  2 19:19:37 2018
--- gcc-7.5.0/gcc/doc/extend.texi	Tue Apr  2 01:08:31 2019
*************** for a C symbol, or to place a C variable
*** 7710,7716 ****
  A basic @code{asm} statement has the following syntax:
  
  @example
! asm @r{[} volatile @r{]} ( @var{AssemblerInstructions} )
  @end example
  
  The @code{asm} keyword is a GNU extension.
--- 7710,7716 ----
  A basic @code{asm} statement has the following syntax:
  
  @example
! asm @var{asm-qualifiers} ( @var{AssemblerInstructions} )
  @end example
  
  The @code{asm} keyword is a GNU extension.
*************** various @option{-std} options, use @code
*** 7723,7728 ****
--- 7723,7732 ----
  @item volatile
  The optional @code{volatile} qualifier has no effect. 
  All basic @code{asm} blocks are implicitly volatile.
+ 
+ @item inline
+ If you use the @code{inline} qualifier, then for inlining purposes the size
+ of the asm is taken as the smallest size possible (@pxref{Size of an asm}).
  @end table
  
  @subsubheading Parameters
*************** Extended @code{asm} syntax uses colons (
*** 7838,7854 ****
  the operand parameters after the assembler template:
  
  @example
! asm @r{[}volatile@r{]} ( @var{AssemblerTemplate} 
                   : @var{OutputOperands} 
                   @r{[} : @var{InputOperands}
                   @r{[} : @var{Clobbers} @r{]} @r{]})
  
! asm @r{[}volatile@r{]} goto ( @var{AssemblerTemplate} 
                        : 
                        : @var{InputOperands}
                        : @var{Clobbers}
                        : @var{GotoLabels})
  @end example
  
  The @code{asm} keyword is a GNU extension.
  When writing code that can be compiled with @option{-ansi} and the
--- 7842,7860 ----
  the operand parameters after the assembler template:
  
  @example
! asm @var{asm-qualifiers} ( @var{AssemblerTemplate} 
                   : @var{OutputOperands} 
                   @r{[} : @var{InputOperands}
                   @r{[} : @var{Clobbers} @r{]} @r{]})
  
! asm @var{asm-qualifiers} ( @var{AssemblerTemplate} 
                        : 
                        : @var{InputOperands}
                        : @var{Clobbers}
                        : @var{GotoLabels})
  @end example
+ where in the last form, @var{asm-qualifiers} contains @code{goto} (and in the
+ first form, not).
  
  The @code{asm} keyword is a GNU extension.
  When writing code that can be compiled with @option{-ansi} and the
*************** values to produce output values. However
*** 7864,7869 ****
--- 7870,7879 ----
  also produce side effects. If so, you may need to use the @code{volatile} 
  qualifier to disable certain optimizations. @xref{Volatile}.
  
+ @item inline
+ If you use the @code{inline} qualifier, then for inlining purposes the size
+ of the asm is taken as the smallest size possible (@pxref{Size of an asm}).
+ 
  @item goto
  This qualifier informs the compiler that the @code{asm} statement may 
  perform a jump to one of the labels listed in the @var{GotoLabels}.
*************** does this by counting the number of inst
*** 9146,9152 ****
  @code{asm} and multiplying that by the length of the longest
  instruction supported by that processor.  (When working out the number
  of instructions, it assumes that any occurrence of a newline or of
! whatever statement separator character is supported by the assembler --
  typically @samp{;} --- indicates the end of an instruction.)
  
  Normally, GCC's estimate is adequate to ensure that correct
--- 9156,9162 ----
  @code{asm} and multiplying that by the length of the longest
  instruction supported by that processor.  (When working out the number
  of instructions, it assumes that any occurrence of a newline or of
! whatever statement separator character is supported by the assembler ---
  typically @samp{;} --- indicates the end of an instruction.)
  
  Normally, GCC's estimate is adequate to ensure that correct
*************** space in the object file than is needed
*** 9157,9162 ****
--- 9167,9177 ----
  If this happens then the assembler may produce a diagnostic saying that
  a label is unreachable.
  
+ @cindex @code{asm inline}
+ This size is also used for inlining decisions.  If you use @code{asm inline}
+ instead of just @code{asm}, then for inlining purposes the size of the asm
+ is taken as the minimum size, ignoring how many instructions GCC thinks it is.
+ 
  @node Alternate Keywords
  @section Alternate Keywords
  @cindex alternate keywords
*************** disabled.  To use them, you must include
*** 15566,15572 ****
  
  @item
  GCC allows using a @code{typedef} name as the type specifier for a
! vector type.
  
  @item
  For C, overloaded functions are implemented with macros so the following
--- 15581,15610 ----
  
  @item
  GCC allows using a @code{typedef} name as the type specifier for a
! vector type, but only under the following circumstances:
! 
! @itemize @bullet
! 
! @item
! When using @code{__vector} instead of @code{vector}; for example,
! 
! @smallexample
! typedef signed short int16;
! __vector int16 data;
! @end smallexample
! 
! @item
! When using @code{vector} in keyword-and-predefine mode; for example,
! 
! @smallexample
! typedef signed short int16;
! vector int16 data;
! @end smallexample
! 
! Note that keyword-and-predefine mode is enabled by disabling GNU
! extensions (e.g., by using @code{-std=c11}) and including
! @code{<altivec.h>}.
! @end itemize
  
  @item
  For C, overloaded functions are implemented with macros so the following
*************** vector unsigned char vec_vaddubs (vector
*** 15734,15739 ****
--- 15772,15779 ----
  vector float vec_and (vector float, vector float);
  vector float vec_and (vector float, vector bool int);
  vector float vec_and (vector bool int, vector float);
+ vector bool long long vec_and (vector bool long long int,
+                                vector bool long long);
  vector bool int vec_and (vector bool int, vector bool int);
  vector signed int vec_and (vector bool int, vector signed int);
  vector signed int vec_and (vector signed int, vector bool int);
*************** vector unsigned char vec_sld (vector uns
*** 16663,16668 ****
--- 16703,16715 ----
  vector bool char vec_sld (vector bool char,
                            vector bool char,
                            const int);
+ vector bool long long int vec_sld (vector bool long long int,
+                                    vector bool long long int, const int);
+ vector long long int vec_sld (vector long long int,
+                               vector  long long int, const int);
+ vector unsigned long long int vec_sld (vector unsigned long long int,
+                                        vector unsigned long long int,
+                                        const int);
  
  vector signed int vec_sll (vector signed int,
                             vector unsigned int);
*************** vector unsigned short vec_sll (vector un
*** 16694,16699 ****
--- 16741,16750 ----
                                 vector unsigned short);
  vector unsigned short vec_sll (vector unsigned short,
                                 vector unsigned char);
+ vector long long int vec_sll (vector long long int,
+                               vector unsigned char);
+ vector unsigned long long int vec_sll (vector unsigned long long int,
+                                        vector unsigned char);
  vector bool short vec_sll (vector bool short, vector unsigned int);
  vector bool short vec_sll (vector bool short, vector unsigned short);
  vector bool short vec_sll (vector bool short, vector unsigned char);
*************** vector unsigned short vec_srl (vector un
*** 16846,16851 ****
--- 16897,16906 ----
                                 vector unsigned short);
  vector unsigned short vec_srl (vector unsigned short,
                                 vector unsigned char);
+ vector long long int vec_srl (vector long long int,
+                               vector unsigned char);
+ vector unsigned long long int vec_srl (vector unsigned long long int,
+                                        vector unsigned char);
  vector bool short vec_srl (vector bool short, vector unsigned int);
  vector bool short vec_srl (vector bool short, vector unsigned short);
  vector bool short vec_srl (vector bool short, vector unsigned char);
*************** vector unsigned short vec_sro (vector un
*** 16877,16882 ****
--- 16932,16945 ----
                                 vector signed char);
  vector unsigned short vec_sro (vector unsigned short,
                                 vector unsigned char);
+ vector long long int vec_sro (vector long long int,
+                               vector char);
+ vector long long int vec_sro (vector long long int,
+                               vector unsigned char);
+ vector unsigned long long int vec_sro (vector unsigned long long int,
+                                        vector char);
+ vector unsigned long long int vec_sro (vector unsigned long long int,
+                                        vector unsigned char);
  vector pixel vec_sro (vector pixel, vector signed char);
  vector pixel vec_sro (vector pixel, vector unsigned char);
  vector signed char vec_sro (vector signed char, vector signed char);
*************** vector bool short vec_unpackh (vector bo
*** 17112,17117 ****
--- 17175,17181 ----
  vector signed int vec_unpackh (vector signed short);
  vector bool int vec_unpackh (vector bool short);
  vector unsigned int vec_unpackh (vector pixel);
+ vector double vec_unpackh (vector float);
  
  vector bool int vec_vupkhsh (vector bool short);
  vector signed int vec_vupkhsh (vector signed short);
*************** vector bool short vec_unpackl (vector bo
*** 17126,17131 ****
--- 17190,17196 ----
  vector unsigned int vec_unpackl (vector pixel);
  vector signed int vec_unpackl (vector signed short);
  vector bool int vec_unpackl (vector bool short);
+ vector double vec_unpackl (vector float);
  
  vector unsigned int vec_vupklpx (vector pixel);
  
*************** vector double vec_div (vector double, ve
*** 17485,17490 ****
--- 17550,17559 ----
  vector long vec_div (vector long, vector long);
  vector unsigned long vec_div (vector unsigned long, vector unsigned long);
  vector double vec_floor (vector double);
+ vector signed long long vec_ld (int, const vector signed long long *);
+ vector signed long long vec_ld (int, const signed long long *);
+ vector unsigned long long vec_ld (int, const vector unsigned long long *);
+ vector unsigned long long vec_ld (int, const unsigned long long *);
  vector double vec_ld (int, const vector double *);
  vector double vec_ld (int, const double *);
  vector double vec_ldl (int, const vector double *);
*************** vector signed long vec_splats (signed lo
*** 17557,17562 ****
--- 17626,17638 ----
  vector unsigned long vec_splats (unsigned long);
  vector float vec_sqrt (vector float);
  vector double vec_sqrt (vector double);
+ void vec_st (vector signed long long, int, vector signed long long *);
+ void vec_st (vector signed long long, int, signed long long *);
+ void vec_st (vector unsigned long long, int, vector unsigned long long *);
+ void vec_st (vector unsigned long long, int, unsigned long long *);
+ void vec_st (vector bool long long, int, vector bool long long *);
+ void vec_st (vector bool long long, int, signed long long *);
+ void vec_st (vector bool long long, int, unsigned long long *);
  void vec_st (vector double, int, vector double *);
  void vec_st (vector double, int, double *);
  vector double vec_sub (vector double, vector double);
*************** vector int vec_packs (vector long long,
*** 17874,17882 ****
--- 17950,17967 ----
  vector unsigned int vec_packs (vector unsigned long long,
                                 vector unsigned long long);
  
+ test_vsi_packsu_vssi_vssi (vector signed short x,
+ 
+ vector unsigned char vec_packsu (vector signed short, vector signed short )
+ vector unsigned char vec_packsu (vector unsigned short, vector unsigned short )
+ vector unsigned short int vec_packsu (vector signed int, vector signed int);
+ vector unsigned short int vec_packsu (vector unsigned int,
+                                       vector unsigned int);
  vector unsigned int vec_packsu (vector long long, vector long long);
  vector unsigned int vec_packsu (vector unsigned long long,
                                  vector unsigned long long);
+ vector unsigned int vec_packsu (vector signed long long,
+                                 vector signed long long);
  
  vector long long vec_rl (vector long long,
                           vector unsigned long long);
*************** vector unsigned long long vec_bperm (vec
*** 18094,18102 ****
                                       vector unsigned char);
  
  vector bool char vec_cmpne (vector bool char, vector bool char);
! vector bool short vec_cmpne (vector bool short, vector bool short);
  vector bool int vec_cmpne (vector bool int, vector bool int);
  vector bool long long vec_cmpne (vector bool long long, vector bool long long);
  
  vector long long vec_vctz (vector long long);
  vector unsigned long long vec_vctz (vector unsigned long long);
--- 18179,18202 ----
                                       vector unsigned char);
  
  vector bool char vec_cmpne (vector bool char, vector bool char);
! vector bool char vec_cmpne (vector signed char, vector signed char);
! vector bool char vec_cmpne (vector unsigned char, vector unsigned char);
  vector bool int vec_cmpne (vector bool int, vector bool int);
+ vector bool int vec_cmpne (vector signed int, vector signed int);
+ vector bool int vec_cmpne (vector unsigned int, vector unsigned int);
  vector bool long long vec_cmpne (vector bool long long, vector bool long long);
+ vector bool long long vec_cmpne (vector signed long long,
+                                  vector signed long long);
+ vector bool long long vec_cmpne (vector unsigned long long,
+                                  vector unsigned long long);
+ vector bool short vec_cmpne (vector bool short, vector bool short);
+ vector bool short vec_cmpne (vector signed short, vector signed short);
+ vector bool short vec_cmpne (vector unsigned short, vector unsigned short);
+ vector bool long long vec_cmpne (vector double, vector double);
+ vector bool int vec_cmpne (vector float, vector float);
+ 
+ vector float vec_extract_fp32_from_shorth (vector unsigned short);
+ vector float vec_extract_fp32_from_shortl (vector unsigned short);
  
  vector long long vec_vctz (vector long long);
  vector unsigned long long vec_vctz (vector unsigned long long);
*************** If the cryptographic instructions are en
*** 18371,18390 ****
--- 18471,18503 ----
  @smallexample
  vector unsigned long long __builtin_crypto_vsbox (vector unsigned long long);
  
+ vector unsigned char vec_sbox_be (vector unsigned char);
+ 
  vector unsigned long long __builtin_crypto_vcipher (vector unsigned long long,
                                                      vector unsigned long long);
  
+ vector unsigned char vec_cipher_be (vector unsigned char, vector unsigned char);
+ 
  vector unsigned long long __builtin_crypto_vcipherlast
                                       (vector unsigned long long,
                                        vector unsigned long long);
  
+ vector unsigned char vec_cipherlast_be (vector unsigned char,
+                                         vector unsigned char);
+ 
  vector unsigned long long __builtin_crypto_vncipher (vector unsigned long long,
                                                       vector unsigned long long);
  
+ vector unsigned char vec_ncipher_be (vector unsigned char,
+                                      vector unsigned char);
+ 
  vector unsigned long long __builtin_crypto_vncipherlast
                                       (vector unsigned long long,
                                        vector unsigned long long);
  
+ vector unsigned char vec_ncipherlast_be (vector unsigned char,
+                                          vector unsigned char);
+ 
  vector unsigned char __builtin_crypto_vpermxor (vector unsigned char,
                                                  vector unsigned char,
                                                  vector unsigned char);
diff -Nrcpad gcc-7.4.0/gcc/doc/fsf-funding.7 gcc-7.5.0/gcc/doc/fsf-funding.7
*** gcc-7.4.0/gcc/doc/fsf-funding.7	Thu Dec  6 09:59:45 2018
--- gcc-7.5.0/gcc/doc/fsf-funding.7	Thu Nov 14 07:36:16 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "FSF-FUNDING 7"
! .TH FSF-FUNDING 7 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "FSF-FUNDING 7"
! .TH FSF-FUNDING 7 "2019-11-14" "gcc-7.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-7.4.0/gcc/doc/g++.1 gcc-7.5.0/gcc/doc/g++.1
*** gcc-7.4.0/gcc/doc/g++.1	Thu Dec  6 10:20:56 2018
--- gcc-7.5.0/gcc/doc/g++.1	Thu Nov 14 07:57:29 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2019-11-14" "gcc-7.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
*************** results.  This is the default.
*** 6611,6623 ****
  .IP "\fB\-Os\fR" 4
  .IX Item "-Os"
  Optimize for size.  \fB\-Os\fR enables all \fB\-O2\fR optimizations that
! do not typically increase code size.  It also performs further
! optimizations designed to reduce code size.
  .Sp
  \&\fB\-Os\fR disables the following optimization flags:
  \&\fB\-falign\-functions  \-falign\-jumps  \-falign\-loops 
! \&\-falign\-labels  \-freorder\-blocks  \-freorder\-blocks\-algorithm=stc 
! \&\-freorder\-blocks\-and\-partition  \-fprefetch\-loop\-arrays\fR
  .IP "\fB\-Ofast\fR" 4
  .IX Item "-Ofast"
  Disregard strict standards compliance.  \fB\-Ofast\fR enables all
--- 6611,6625 ----
  .IP "\fB\-Os\fR" 4
  .IX Item "-Os"
  Optimize for size.  \fB\-Os\fR enables all \fB\-O2\fR optimizations that
! do not typically increase code size.
  .Sp
  \&\fB\-Os\fR disables the following optimization flags:
  \&\fB\-falign\-functions  \-falign\-jumps  \-falign\-loops 
! \&\-falign\-labels  \-fprefetch\-loop\-arrays\fR
! .Sp
! It also enables \fB\-finline\-functions\fR, causes the compiler to tune for
! code size rather than execution speed, and performs further optimizations
! designed to reduce code size.
  .IP "\fB\-Ofast\fR" 4
  .IX Item "-Ofast"
  Disregard strict standards compliance.  \fB\-Ofast\fR enables all
*************** heuristically decides which functions ar
*** 6723,6729 ****
  in this way.  This inlining applies to all functions, even those not declared
  inline.
  .Sp
! Enabled at level \fB\-O2\fR.
  .IP "\fB\-findirect\-inlining\fR" 4
  .IX Item "-findirect-inlining"
  Inline also indirect calls that are discovered to be known at compile
--- 6725,6731 ----
  in this way.  This inlining applies to all functions, even those not declared
  inline.
  .Sp
! Enabled at level \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR.
  .IP "\fB\-findirect\-inlining\fR" 4
  .IX Item "-findirect-inlining"
  Inline also indirect calls that are discovered to be known at compile
*************** time thanks to previous inlining.  This
*** 6731,6737 ****
  when inlining itself is turned on by the \fB\-finline\-functions\fR
  or \fB\-finline\-small\-functions\fR options.
  .Sp
! Enabled at level \fB\-O2\fR.
  .IP "\fB\-finline\-functions\fR" 4
  .IX Item "-finline-functions"
  Consider all functions for inlining, even if they are not declared inline.
--- 6733,6739 ----
  when inlining itself is turned on by the \fB\-finline\-functions\fR
  or \fB\-finline\-small\-functions\fR options.
  .Sp
! Enabled at level \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR.
  .IP "\fB\-finline\-functions\fR" 4
  .IX Item "-finline-functions"
  Consider all functions for inlining, even if they are not declared inline.
*************** If all calls to a given function are int
*** 6742,6748 ****
  declared \f(CW\*(C`static\*(C'\fR, then the function is normally not output as
  assembler code in its own right.
  .Sp
! Enabled at level \fB\-O3\fR.
  .IP "\fB\-finline\-functions\-called\-once\fR" 4
  .IX Item "-finline-functions-called-once"
  Consider all \f(CW\*(C`static\*(C'\fR functions called once for inlining into their
--- 6744,6751 ----
  declared \f(CW\*(C`static\*(C'\fR, then the function is normally not output as
  assembler code in its own right.
  .Sp
! Enabled at levels \fB\-O3\fR, \fB\-Os\fR.  Also enabled
! by \fB\-fprofile\-use\fR and \fB\-fauto\-profile\fR.
  .IP "\fB\-finline\-functions\-called\-once\fR" 4
  .IX Item "-finline-functions-called-once"
  Consider all \f(CW\*(C`static\*(C'\fR functions called once for inlining into their
*************** Disable Book-E \s-1SPE ABI\s0 extensions
*** 21037,21047 ****
  .IP "\fB\-mabi=ibmlongdouble\fR" 4
  .IX Item "-mabi=ibmlongdouble"
  Change the current \s-1ABI\s0 to use \s-1IBM\s0 extended-precision long double.
! This is a PowerPC 32\-bit \s-1SYSV ABI\s0 option.
  .IP "\fB\-mabi=ieeelongdouble\fR" 4
  .IX Item "-mabi=ieeelongdouble"
  Change the current \s-1ABI\s0 to use \s-1IEEE\s0 extended-precision long double.
! This is a PowerPC 32\-bit Linux \s-1ABI\s0 option.
  .IP "\fB\-mabi=elfv1\fR" 4
  .IX Item "-mabi=elfv1"
  Change the current \s-1ABI\s0 to use the ELFv1 \s-1ABI.\s0
--- 21040,21052 ----
  .IP "\fB\-mabi=ibmlongdouble\fR" 4
  .IX Item "-mabi=ibmlongdouble"
  Change the current \s-1ABI\s0 to use \s-1IBM\s0 extended-precision long double.
! This is a PowerPC 32\-bit \s-1SYSV ABI\s0 option.  Requires \fB\-mlong\-double\-128\fR
! to be enabled.
  .IP "\fB\-mabi=ieeelongdouble\fR" 4
  .IX Item "-mabi=ieeelongdouble"
  Change the current \s-1ABI\s0 to use \s-1IEEE\s0 extended-precision long double.
! This is a PowerPC 32\-bit Linux \s-1ABI\s0 option.  Requires \fB\-mlong\-double\-128\fR
! to be enabled.
  .IP "\fB\-mabi=elfv1\fR" 4
  .IX Item "-mabi=elfv1"
  Change the current \s-1ABI\s0 to use the ELFv1 \s-1ABI.\s0
diff -Nrcpad gcc-7.4.0/gcc/doc/gcc.1 gcc-7.5.0/gcc/doc/gcc.1
*** gcc-7.4.0/gcc/doc/gcc.1	Thu Dec  6 10:20:55 2018
--- gcc-7.5.0/gcc/doc/gcc.1	Thu Nov 14 07:57:28 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCC 1"
! .TH GCC 1 "2019-11-14" "gcc-7.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
*************** results.  This is the default.
*** 6611,6623 ****
  .IP "\fB\-Os\fR" 4
  .IX Item "-Os"
  Optimize for size.  \fB\-Os\fR enables all \fB\-O2\fR optimizations that
! do not typically increase code size.  It also performs further
! optimizations designed to reduce code size.
  .Sp
  \&\fB\-Os\fR disables the following optimization flags:
  \&\fB\-falign\-functions  \-falign\-jumps  \-falign\-loops 
! \&\-falign\-labels  \-freorder\-blocks  \-freorder\-blocks\-algorithm=stc 
! \&\-freorder\-blocks\-and\-partition  \-fprefetch\-loop\-arrays\fR
  .IP "\fB\-Ofast\fR" 4
  .IX Item "-Ofast"
  Disregard strict standards compliance.  \fB\-Ofast\fR enables all
--- 6611,6625 ----
  .IP "\fB\-Os\fR" 4
  .IX Item "-Os"
  Optimize for size.  \fB\-Os\fR enables all \fB\-O2\fR optimizations that
! do not typically increase code size.
  .Sp
  \&\fB\-Os\fR disables the following optimization flags:
  \&\fB\-falign\-functions  \-falign\-jumps  \-falign\-loops 
! \&\-falign\-labels  \-fprefetch\-loop\-arrays\fR
! .Sp
! It also enables \fB\-finline\-functions\fR, causes the compiler to tune for
! code size rather than execution speed, and performs further optimizations
! designed to reduce code size.
  .IP "\fB\-Ofast\fR" 4
  .IX Item "-Ofast"
  Disregard strict standards compliance.  \fB\-Ofast\fR enables all
*************** heuristically decides which functions ar
*** 6723,6729 ****
  in this way.  This inlining applies to all functions, even those not declared
  inline.
  .Sp
! Enabled at level \fB\-O2\fR.
  .IP "\fB\-findirect\-inlining\fR" 4
  .IX Item "-findirect-inlining"
  Inline also indirect calls that are discovered to be known at compile
--- 6725,6731 ----
  in this way.  This inlining applies to all functions, even those not declared
  inline.
  .Sp
! Enabled at level \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR.
  .IP "\fB\-findirect\-inlining\fR" 4
  .IX Item "-findirect-inlining"
  Inline also indirect calls that are discovered to be known at compile
*************** time thanks to previous inlining.  This
*** 6731,6737 ****
  when inlining itself is turned on by the \fB\-finline\-functions\fR
  or \fB\-finline\-small\-functions\fR options.
  .Sp
! Enabled at level \fB\-O2\fR.
  .IP "\fB\-finline\-functions\fR" 4
  .IX Item "-finline-functions"
  Consider all functions for inlining, even if they are not declared inline.
--- 6733,6739 ----
  when inlining itself is turned on by the \fB\-finline\-functions\fR
  or \fB\-finline\-small\-functions\fR options.
  .Sp
! Enabled at level \fB\-O2\fR, \fB\-O3\fR, \fB\-Os\fR.
  .IP "\fB\-finline\-functions\fR" 4
  .IX Item "-finline-functions"
  Consider all functions for inlining, even if they are not declared inline.
*************** If all calls to a given function are int
*** 6742,6748 ****
  declared \f(CW\*(C`static\*(C'\fR, then the function is normally not output as
  assembler code in its own right.
  .Sp
! Enabled at level \fB\-O3\fR.
  .IP "\fB\-finline\-functions\-called\-once\fR" 4
  .IX Item "-finline-functions-called-once"
  Consider all \f(CW\*(C`static\*(C'\fR functions called once for inlining into their
--- 6744,6751 ----
  declared \f(CW\*(C`static\*(C'\fR, then the function is normally not output as
  assembler code in its own right.
  .Sp
! Enabled at levels \fB\-O3\fR, \fB\-Os\fR.  Also enabled
! by \fB\-fprofile\-use\fR and \fB\-fauto\-profile\fR.
  .IP "\fB\-finline\-functions\-called\-once\fR" 4
  .IX Item "-finline-functions-called-once"
  Consider all \f(CW\*(C`static\*(C'\fR functions called once for inlining into their
*************** Disable Book-E \s-1SPE ABI\s0 extensions
*** 21037,21047 ****
  .IP "\fB\-mabi=ibmlongdouble\fR" 4
  .IX Item "-mabi=ibmlongdouble"
  Change the current \s-1ABI\s0 to use \s-1IBM\s0 extended-precision long double.
! This is a PowerPC 32\-bit \s-1SYSV ABI\s0 option.
  .IP "\fB\-mabi=ieeelongdouble\fR" 4
  .IX Item "-mabi=ieeelongdouble"
  Change the current \s-1ABI\s0 to use \s-1IEEE\s0 extended-precision long double.
! This is a PowerPC 32\-bit Linux \s-1ABI\s0 option.
  .IP "\fB\-mabi=elfv1\fR" 4
  .IX Item "-mabi=elfv1"
  Change the current \s-1ABI\s0 to use the ELFv1 \s-1ABI.\s0
--- 21040,21052 ----
  .IP "\fB\-mabi=ibmlongdouble\fR" 4
  .IX Item "-mabi=ibmlongdouble"
  Change the current \s-1ABI\s0 to use \s-1IBM\s0 extended-precision long double.
! This is a PowerPC 32\-bit \s-1SYSV ABI\s0 option.  Requires \fB\-mlong\-double\-128\fR
! to be enabled.
  .IP "\fB\-mabi=ieeelongdouble\fR" 4
  .IX Item "-mabi=ieeelongdouble"
  Change the current \s-1ABI\s0 to use \s-1IEEE\s0 extended-precision long double.
! This is a PowerPC 32\-bit Linux \s-1ABI\s0 option.  Requires \fB\-mlong\-double\-128\fR
! to be enabled.
  .IP "\fB\-mabi=elfv1\fR" 4
  .IX Item "-mabi=elfv1"
  Change the current \s-1ABI\s0 to use the ELFv1 \s-1ABI.\s0
diff -Nrcpad gcc-7.4.0/gcc/doc/gcc.info gcc-7.5.0/gcc/doc/gcc.info
*** gcc-7.4.0/gcc/doc/gcc.info	Thu Dec  6 10:20:52 2018
--- gcc-7.5.0/gcc/doc/gcc.info	Thu Nov 14 07:57:25 2019
***************
*** 1,5 ****
  This is doc/gcc.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/doc/gcc.texi.
  
  Copyright (C) 1988-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is doc/gcc.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/doc/gcc.texi.
  
  Copyright (C) 1988-2017 Free Software Foundation, Inc.
  
*************** Introduction
*** 60,66 ****
  
  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 7.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.
--- 60,66 ----
  
  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 7.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.
*************** find out the exact set of optimizations
*** 6636,6648 ****
  
  `-Os'
       Optimize for size.  `-Os' enables all `-O2' optimizations that do
!      not typically increase code size.  It also performs further
!      optimizations designed to reduce code size.
  
       `-Os' disables the following optimization flags:
            -falign-functions  -falign-jumps  -falign-loops
!           -falign-labels  -freorder-blocks  -freorder-blocks-algorithm=stc
!           -freorder-blocks-and-partition  -fprefetch-loop-arrays
  
  `-Ofast'
       Disregard strict standards compliance.  `-Ofast' enables all `-O3'
--- 6636,6650 ----
  
  `-Os'
       Optimize for size.  `-Os' enables all `-O2' optimizations that do
!      not typically increase code size.
  
       `-Os' disables the following optimization flags:
            -falign-functions  -falign-jumps  -falign-loops
!           -falign-labels  -fprefetch-loop-arrays
! 
!      It also enables `-finline-functions', causes the compiler to tune
!      for code size rather than execution speed, and performs further
!      optimizations designed to reduce code size.
  
  `-Ofast'
       Disregard strict standards compliance.  `-Ofast' enables all `-O3'
*************** optimizations to be performed is desired
*** 6748,6754 ****
       simple enough to be worth integrating in this way.  This inlining
       applies to all functions, even those not declared inline.
  
!      Enabled at level `-O2'.
  
  `-findirect-inlining'
       Inline also indirect calls that are discovered to be known at
--- 6750,6756 ----
       simple enough to be worth integrating in this way.  This inlining
       applies to all functions, even those not declared inline.
  
!      Enabled at level `-O2', `-O3', `-Os'.
  
  `-findirect-inlining'
       Inline also indirect calls that are discovered to be known at
*************** optimizations to be performed is desired
*** 6756,6762 ****
       effect only when inlining itself is turned on by the
       `-finline-functions' or `-finline-small-functions' options.
  
!      Enabled at level `-O2'.
  
  `-finline-functions'
       Consider all functions for inlining, even if they are not declared
--- 6758,6764 ----
       effect only when inlining itself is turned on by the
       `-finline-functions' or `-finline-small-functions' options.
  
!      Enabled at level `-O2', `-O3', `-Os'.
  
  `-finline-functions'
       Consider all functions for inlining, even if they are not declared
*************** optimizations to be performed is desired
*** 6767,6773 ****
       is declared `static', then the function is normally not output as
       assembler code in its own right.
  
!      Enabled at level `-O3'.
  
  `-finline-functions-called-once'
       Consider all `static' functions called once for inlining into their
--- 6769,6776 ----
       is declared `static', then the function is normally not output as
       assembler code in its own right.
  
!      Enabled at levels `-O3', `-Os'.  Also enabled by `-fprofile-use'
!      and `-fauto-profile'.
  
  `-finline-functions-called-once'
       Consider all `static' functions called once for inlining into their
*************** These `-m' options are defined for the I
*** 20283,20293 ****
  
  `-mabi=ibmlongdouble'
       Change the current ABI to use IBM extended-precision long double.
!      This is a PowerPC 32-bit SYSV ABI option.
  
  `-mabi=ieeelongdouble'
       Change the current ABI to use IEEE extended-precision long double.
!      This is a PowerPC 32-bit Linux ABI option.
  
  `-mabi=elfv1'
       Change the current ABI to use the ELFv1 ABI.  This is the default
--- 20286,20298 ----
  
  `-mabi=ibmlongdouble'
       Change the current ABI to use IBM extended-precision long double.
!      This is a PowerPC 32-bit SYSV ABI option.  Requires
!      `-mlong-double-128' to be enabled.
  
  `-mabi=ieeelongdouble'
       Change the current ABI to use IEEE extended-precision long double.
!      This is a PowerPC 32-bit Linux ABI option.  Requires
!      `-mlong-double-128' to be enabled.
  
  `-mabi=elfv1'
       Change the current ABI to use the ELFv1 ABI.  This is the default
*************** File: gcc.info,  Node: Basic Asm,  Next:
*** 32203,32209 ****
  
  A basic `asm' statement has the following syntax:
  
!      asm [ volatile ] ( ASSEMBLERINSTRUCTIONS )
  
   The `asm' keyword is a GNU extension.  When writing code that can be
  compiled with `-ansi' and the various `-std' options, use `__asm__'
--- 32208,32214 ----
  
  A basic `asm' statement has the following syntax:
  
!      asm ASM-QUALIFIERS ( ASSEMBLERINSTRUCTIONS )
  
   The `asm' keyword is a GNU extension.  When writing code that can be
  compiled with `-ansi' and the various `-std' options, use `__asm__'
*************** Qualifiers
*** 32216,32221 ****
--- 32221,32231 ----
       The optional `volatile' qualifier has no effect.  All basic `asm'
       blocks are implicitly volatile.
  
+ `inline'
+      If you use the `inline' qualifier, then for inlining purposes the
+      size of the asm is taken as the smallest size possible (*note Size
+      of an asm::).
+ 
  Parameters
  ..........
  
*************** and perform jumps from assembler code to
*** 32322,32337 ****
  syntax uses colons (`:') to delimit the operand parameters after the
  assembler template:
  
!      asm [volatile] ( ASSEMBLERTEMPLATE
                        : OUTPUTOPERANDS
                        [ : INPUTOPERANDS
                        [ : CLOBBERS ] ])
  
!      asm [volatile] goto ( ASSEMBLERTEMPLATE
                             :
                             : INPUTOPERANDS
                             : CLOBBERS
                             : GOTOLABELS)
  
   The `asm' keyword is a GNU extension.  When writing code that can be
  compiled with `-ansi' and the various `-std' options, use `__asm__'
--- 32332,32349 ----
  syntax uses colons (`:') to delimit the operand parameters after the
  assembler template:
  
!      asm ASM-QUALIFIERS ( ASSEMBLERTEMPLATE
                        : OUTPUTOPERANDS
                        [ : INPUTOPERANDS
                        [ : CLOBBERS ] ])
  
!      asm ASM-QUALIFIERS ( ASSEMBLERTEMPLATE
                             :
                             : INPUTOPERANDS
                             : CLOBBERS
                             : GOTOLABELS)
+  where in the last form, ASM-QUALIFIERS contains `goto' (and in the
+ first form, not).
  
   The `asm' keyword is a GNU extension.  When writing code that can be
  compiled with `-ansi' and the various `-std' options, use `__asm__'
*************** Qualifiers
*** 32347,32352 ****
--- 32359,32369 ----
       `volatile' qualifier to disable certain optimizations. *Note
       Volatile::.
  
+ `inline'
+      If you use the `inline' qualifier, then for inlining purposes the
+      size of the asm is taken as the smallest size possible (*note Size
+      of an asm::).
+ 
  `goto'
       This qualifier informs the compiler that the `asm' statement may
       perform a jump to one of the labels listed in the GOTOLABELS.
*************** counting the number of instructions in t
*** 36299,36305 ****
  multiplying that by the length of the longest instruction supported by
  that processor.  (When working out the number of instructions, it
  assumes that any occurrence of a newline or of whatever statement
! separator character is supported by the assembler - typically `;' --
  indicates the end of an instruction.)
  
   Normally, GCC's estimate is adequate to ensure that correct code is
--- 36316,36322 ----
  multiplying that by the length of the longest instruction supported by
  that processor.  (When working out the number of instructions, it
  assumes that any occurrence of a newline or of whatever statement
! separator character is supported by the assembler -- typically `;' --
  indicates the end of an instruction.)
  
   Normally, GCC's estimate is adequate to ensure that correct code is
*************** space in the object file than is needed
*** 36310,36315 ****
--- 36327,36337 ----
  this happens then the assembler may produce a diagnostic saying that a
  label is unreachable.
  
+  This size is also used for inlining decisions.  If you use `asm inline'
+ instead of just `asm', then for inlining purposes the size of the asm
+ is taken as the minimum size, ignoring how many instructions GCC thinks
+ it is.
+ 
  
  File: gcc.info,  Node: Alternate Keywords,  Next: Incomplete Enums,  Prev: Using Assembly Language with C,  Up: C Extensions
  
*************** ways.
*** 41797,41803 ****
       `<altivec.h>' instead.
  
     * GCC allows using a `typedef' name as the type specifier for a
!      vector type.
  
     * For C, overloaded functions are implemented with macros so the
       following does not work:
--- 41819,41840 ----
       `<altivec.h>' instead.
  
     * GCC allows using a `typedef' name as the type specifier for a
!      vector type, but only under the following circumstances:
! 
!         * When using `__vector' instead of `vector'; for example,
! 
!                typedef signed short int16;
!                __vector int16 data;
! 
!         * When using `vector' in keyword-and-predefine mode; for
!           example,
! 
!                typedef signed short int16;
!                vector int16 data;
! 
!           Note that keyword-and-predefine mode is enabled by disabling
!           GNU extensions (e.g., by using `-std=c11') and including
!           `<altivec.h>'.
  
     * For C, overloaded functions are implemented with macros so the
       following does not work:
*************** values within the range required for tha
*** 41959,41964 ****
--- 41996,42003 ----
       vector float vec_and (vector float, vector float);
       vector float vec_and (vector float, vector bool int);
       vector float vec_and (vector bool int, vector float);
+      vector bool long long vec_and (vector bool long long int,
+                                     vector bool long long);
       vector bool int vec_and (vector bool int, vector bool int);
       vector signed int vec_and (vector bool int, vector signed int);
       vector signed int vec_and (vector signed int, vector bool int);
*************** values within the range required for tha
*** 42888,42893 ****
--- 42927,42939 ----
       vector bool char vec_sld (vector bool char,
                                 vector bool char,
                                 const int);
+      vector bool long long int vec_sld (vector bool long long int,
+                                         vector bool long long int, const int);
+      vector long long int vec_sld (vector long long int,
+                                    vector  long long int, const int);
+      vector unsigned long long int vec_sld (vector unsigned long long int,
+                                             vector unsigned long long int,
+                                             const int);
  
       vector signed int vec_sll (vector signed int,
                                  vector unsigned int);
*************** values within the range required for tha
*** 42919,42924 ****
--- 42965,42974 ----
                                      vector unsigned short);
       vector unsigned short vec_sll (vector unsigned short,
                                      vector unsigned char);
+      vector long long int vec_sll (vector long long int,
+                                    vector unsigned char);
+      vector unsigned long long int vec_sll (vector unsigned long long int,
+                                             vector unsigned char);
       vector bool short vec_sll (vector bool short, vector unsigned int);
       vector bool short vec_sll (vector bool short, vector unsigned short);
       vector bool short vec_sll (vector bool short, vector unsigned char);
*************** values within the range required for tha
*** 43071,43076 ****
--- 43121,43130 ----
                                      vector unsigned short);
       vector unsigned short vec_srl (vector unsigned short,
                                      vector unsigned char);
+      vector long long int vec_srl (vector long long int,
+                                    vector unsigned char);
+      vector unsigned long long int vec_srl (vector unsigned long long int,
+                                             vector unsigned char);
       vector bool short vec_srl (vector bool short, vector unsigned int);
       vector bool short vec_srl (vector bool short, vector unsigned short);
       vector bool short vec_srl (vector bool short, vector unsigned char);
*************** values within the range required for tha
*** 43102,43107 ****
--- 43156,43169 ----
                                      vector signed char);
       vector unsigned short vec_sro (vector unsigned short,
                                      vector unsigned char);
+      vector long long int vec_sro (vector long long int,
+                                    vector char);
+      vector long long int vec_sro (vector long long int,
+                                    vector unsigned char);
+      vector unsigned long long int vec_sro (vector unsigned long long int,
+                                             vector char);
+      vector unsigned long long int vec_sro (vector unsigned long long int,
+                                             vector unsigned char);
       vector pixel vec_sro (vector pixel, vector signed char);
       vector pixel vec_sro (vector pixel, vector unsigned char);
       vector signed char vec_sro (vector signed char, vector signed char);
*************** values within the range required for tha
*** 43337,43342 ****
--- 43399,43405 ----
       vector signed int vec_unpackh (vector signed short);
       vector bool int vec_unpackh (vector bool short);
       vector unsigned int vec_unpackh (vector pixel);
+      vector double vec_unpackh (vector float);
  
       vector bool int vec_vupkhsh (vector bool short);
       vector signed int vec_vupkhsh (vector signed short);
*************** values within the range required for tha
*** 43351,43356 ****
--- 43414,43420 ----
       vector unsigned int vec_unpackl (vector pixel);
       vector signed int vec_unpackl (vector signed short);
       vector bool int vec_unpackl (vector bool short);
+      vector double vec_unpackl (vector float);
  
       vector unsigned int vec_vupklpx (vector pixel);
  
*************** additional functions are available:
*** 43708,43713 ****
--- 43772,43781 ----
       vector long vec_div (vector long, vector long);
       vector unsigned long vec_div (vector unsigned long, vector unsigned long);
       vector double vec_floor (vector double);
+      vector signed long long vec_ld (int, const vector signed long long *);
+      vector signed long long vec_ld (int, const signed long long *);
+      vector unsigned long long vec_ld (int, const vector unsigned long long *);
+      vector unsigned long long vec_ld (int, const unsigned long long *);
       vector double vec_ld (int, const vector double *);
       vector double vec_ld (int, const double *);
       vector double vec_ldl (int, const vector double *);
*************** additional functions are available:
*** 43780,43785 ****
--- 43848,43860 ----
       vector unsigned long vec_splats (unsigned long);
       vector float vec_sqrt (vector float);
       vector double vec_sqrt (vector double);
+      void vec_st (vector signed long long, int, vector signed long long *);
+      void vec_st (vector signed long long, int, signed long long *);
+      void vec_st (vector unsigned long long, int, vector unsigned long long *);
+      void vec_st (vector unsigned long long, int, unsigned long long *);
+      void vec_st (vector bool long long, int, vector bool long long *);
+      void vec_st (vector bool long long, int, signed long long *);
+      void vec_st (vector bool long long, int, unsigned long long *);
       void vec_st (vector double, int, vector double *);
       void vec_st (vector double, int, double *);
       vector double vec_sub (vector double, vector double);
*************** VECTOR UNSIGNED LONG LONG.
*** 44095,44103 ****
--- 44170,44187 ----
       vector unsigned int vec_packs (vector unsigned long long,
                                      vector unsigned long long);
  
+      test_vsi_packsu_vssi_vssi (vector signed short x,
+ 
+      vector unsigned char vec_packsu (vector signed short, vector signed short )
+      vector unsigned char vec_packsu (vector unsigned short, vector unsigned short )
+      vector unsigned short int vec_packsu (vector signed int, vector signed int);
+      vector unsigned short int vec_packsu (vector unsigned int,
+                                            vector unsigned int);
       vector unsigned int vec_packsu (vector long long, vector long long);
       vector unsigned int vec_packsu (vector unsigned long long,
                                       vector unsigned long long);
+      vector unsigned int vec_packsu (vector signed long long,
+                                      vector signed long long);
  
       vector long long vec_rl (vector long long,
                                vector unsigned long long);
*************** available:
*** 44309,44317 ****
                                            vector unsigned char);
  
       vector bool char vec_cmpne (vector bool char, vector bool char);
!      vector bool short vec_cmpne (vector bool short, vector bool short);
       vector bool int vec_cmpne (vector bool int, vector bool int);
       vector bool long long vec_cmpne (vector bool long long, vector bool long long);
  
       vector long long vec_vctz (vector long long);
       vector unsigned long long vec_vctz (vector unsigned long long);
--- 44393,44416 ----
                                            vector unsigned char);
  
       vector bool char vec_cmpne (vector bool char, vector bool char);
!      vector bool char vec_cmpne (vector signed char, vector signed char);
!      vector bool char vec_cmpne (vector unsigned char, vector unsigned char);
       vector bool int vec_cmpne (vector bool int, vector bool int);
+      vector bool int vec_cmpne (vector signed int, vector signed int);
+      vector bool int vec_cmpne (vector unsigned int, vector unsigned int);
       vector bool long long vec_cmpne (vector bool long long, vector bool long long);
+      vector bool long long vec_cmpne (vector signed long long,
+                                       vector signed long long);
+      vector bool long long vec_cmpne (vector unsigned long long,
+                                       vector unsigned long long);
+      vector bool short vec_cmpne (vector bool short, vector bool short);
+      vector bool short vec_cmpne (vector signed short, vector signed short);
+      vector bool short vec_cmpne (vector unsigned short, vector unsigned short);
+      vector bool long long vec_cmpne (vector double, vector double);
+      vector bool int vec_cmpne (vector float, vector float);
+ 
+      vector float vec_extract_fp32_from_shorth (vector unsigned short);
+      vector float vec_extract_fp32_from_shortl (vector unsigned short);
  
       vector long long vec_vctz (vector long long);
       vector unsigned long long vec_vctz (vector unsigned long long);
*************** char' reverses the bytes in the whole wo
*** 44553,44572 ****
--- 44652,44684 ----
  
       vector unsigned long long __builtin_crypto_vsbox (vector unsigned long long);
  
+      vector unsigned char vec_sbox_be (vector unsigned char);
+ 
       vector unsigned long long __builtin_crypto_vcipher (vector unsigned long long,
                                                           vector unsigned long long);
  
+      vector unsigned char vec_cipher_be (vector unsigned char, vector unsigned char);
+ 
       vector unsigned long long __builtin_crypto_vcipherlast
                                            (vector unsigned long long,
                                             vector unsigned long long);
  
+      vector unsigned char vec_cipherlast_be (vector unsigned char,
+                                              vector unsigned char);
+ 
       vector unsigned long long __builtin_crypto_vncipher (vector unsigned long long,
                                                            vector unsigned long long);
  
+      vector unsigned char vec_ncipher_be (vector unsigned char,
+                                           vector unsigned char);
+ 
       vector unsigned long long __builtin_crypto_vncipherlast
                                            (vector unsigned long long,
                                             vector unsigned long long);
  
+      vector unsigned char vec_ncipherlast_be (vector unsigned char,
+                                               vector unsigned char);
+ 
       vector unsigned char __builtin_crypto_vpermxor (vector unsigned char,
                                                       vector unsigned char,
                                                       vector unsigned char);
*************** look up both forms.
*** 54488,54495 ****
  * Menu:
  
  * ###:                                   Overall Options.    (line  204)
! * -fipa-bit-cp:                          Optimize Options.   (line 1023)
! * -fipa-vrp:                             Optimize Options.   (line 1028)
  * -mfunction-return:                     x86 Options.        (line 1203)
  * -mindirect-branch:                     x86 Options.        (line 1189)
  * -mindirect-branch-register:            x86 Options.        (line 1217)
--- 54600,54607 ----
  * Menu:
  
  * ###:                                   Overall Options.    (line  204)
! * -fipa-bit-cp:                          Optimize Options.   (line 1026)
! * -fipa-vrp:                             Optimize Options.   (line 1031)
  * -mfunction-return:                     x86 Options.        (line 1203)
  * -mindirect-branch:                     x86 Options.        (line 1189)
  * -mindirect-branch-register:            x86 Options.        (line 1217)
*************** look up both forms.
*** 54574,54603 ****
  * fabi-version:                          C++ Dialect Options.
                                                               (line   24)
  * fada-spec-parent:                      Overall Options.    (line  377)
! * faggressive-loop-optimizations:        Optimize Options.   (line  520)
! * falign-functions:                      Optimize Options.   (line 1544)
! * falign-jumps:                          Optimize Options.   (line 1602)
! * falign-labels:                         Optimize Options.   (line 1569)
! * falign-loops:                          Optimize Options.   (line 1588)
  * faligned-new:                          C++ Dialect Options.
                                                               (line   96)
  * fallow-parameterless-variadic-functions: C Dialect Options.
                                                               (line  213)
  * fasan-shadow-offset:                   Instrumentation Options.
                                                               (line  325)
! * fassociative-math:                     Optimize Options.   (line 2082)
  * fasynchronous-unwind-tables:           Code Gen Options.   (line  146)
! * fauto-inc-dec:                         Optimize Options.   (line  542)
! * fauto-profile:                         Optimize Options.   (line 1962)
  * fbounds-check:                         Instrumentation Options.
                                                               (line  386)
! * fbranch-probabilities:                 Optimize Options.   (line 2226)
! * fbranch-target-load-optimize:          Optimize Options.   (line 2352)
! * fbranch-target-load-optimize2:         Optimize Options.   (line 2358)
! * fbtr-bb-exclusive:                     Optimize Options.   (line 2362)
  * fcall-saved:                           Code Gen Options.   (line  446)
  * fcall-used:                            Code Gen Options.   (line  432)
! * fcaller-saves:                         Optimize Options.   (line  901)
  * fcheck-new:                            C++ Dialect Options.
                                                               (line  104)
  * fcheck-pointer-bounds:                 Instrumentation Options.
--- 54686,54715 ----
  * fabi-version:                          C++ Dialect Options.
                                                               (line   24)
  * fada-spec-parent:                      Overall Options.    (line  377)
! * faggressive-loop-optimizations:        Optimize Options.   (line  523)
! * falign-functions:                      Optimize Options.   (line 1547)
! * falign-jumps:                          Optimize Options.   (line 1605)
! * falign-labels:                         Optimize Options.   (line 1572)
! * falign-loops:                          Optimize Options.   (line 1591)
  * faligned-new:                          C++ Dialect Options.
                                                               (line   96)
  * fallow-parameterless-variadic-functions: C Dialect Options.
                                                               (line  213)
  * fasan-shadow-offset:                   Instrumentation Options.
                                                               (line  325)
! * fassociative-math:                     Optimize Options.   (line 2085)
  * fasynchronous-unwind-tables:           Code Gen Options.   (line  146)
! * fauto-inc-dec:                         Optimize Options.   (line  545)
! * fauto-profile:                         Optimize Options.   (line 1965)
  * fbounds-check:                         Instrumentation Options.
                                                               (line  386)
! * fbranch-probabilities:                 Optimize Options.   (line 2229)
! * fbranch-target-load-optimize:          Optimize Options.   (line 2355)
! * fbranch-target-load-optimize2:         Optimize Options.   (line 2361)
! * fbtr-bb-exclusive:                     Optimize Options.   (line 2365)
  * fcall-saved:                           Code Gen Options.   (line  446)
  * fcall-used:                            Code Gen Options.   (line  432)
! * fcaller-saves:                         Optimize Options.   (line  904)
  * fcheck-new:                            C++ Dialect Options.
                                                               (line  104)
  * fcheck-pointer-bounds:                 Instrumentation Options.
*************** look up both forms.
*** 54638,54683 ****
  * fchkp-use-wrappers:                    Instrumentation Options.
                                                               (line  507)
  * fcilkplus:                             C Dialect Options.  (line  316)
! * fcode-hoisting:                        Optimize Options.   (line  942)
! * fcombine-stack-adjustments:            Optimize Options.   (line  913)
  * fcommon:                               Common Variable Attributes.
                                                               (line   90)
  * fcompare-debug:                        Developer Options.  (line  750)
  * fcompare-debug-second:                 Developer Options.  (line  776)
! * fcompare-elim:                         Optimize Options.   (line 1915)
  * fconcepts:                             C++ Dialect Options.
                                                               (line  114)
  * fcond-mismatch:                        C Dialect Options.  (line  369)
! * fconserve-stack:                       Optimize Options.   (line  932)
  * fconstant-string-class:                Objective-C and Objective-C++ Dialect Options.
                                                               (line   30)
  * fconstexpr-depth:                      C++ Dialect Options.
                                                               (line  121)
  * fconstexpr-loop-limit:                 C++ Dialect Options.
                                                               (line  127)
! * fcprop-registers:                      Optimize Options.   (line 1927)
! * fcrossjumping:                         Optimize Options.   (line  535)
! * fcse-follow-jumps:                     Optimize Options.   (line  456)
! * fcse-skip-blocks:                      Optimize Options.   (line  465)
! * fcx-fortran-rules:                     Optimize Options.   (line 2212)
! * fcx-limited-range:                     Optimize Options.   (line 2200)
! * fdata-sections:                        Optimize Options.   (line 2333)
  * fdbg-cnt:                              Developer Options.  (line  889)
  * fdbg-cnt-list:                         Developer Options.  (line  886)
! * fdce:                                  Optimize Options.   (line  548)
  * fdebug-cpp:                            Preprocessor Options.
                                                               (line  438)
  * fdebug-prefix-map:                     Debugging Options.  (line  145)
  * fdebug-types-section:                  Debugging Options.  (line  185)
! * fdeclone-ctor-dtor:                    Optimize Options.   (line  571)
  * fdeduce-init-list:                     C++ Dialect Options.
                                                               (line  132)
! * fdelayed-branch:                       Optimize Options.   (line  725)
  * fdelete-dead-exceptions:               Code Gen Options.   (line  131)
! * fdelete-null-pointer-checks:           Optimize Options.   (line  582)
! * fdevirtualize:                         Optimize Options.   (line  603)
! * fdevirtualize-at-ltrans:               Optimize Options.   (line  620)
! * fdevirtualize-speculatively:           Optimize Options.   (line  610)
  * fdiagnostics-color:                    Diagnostic Message Formatting Options.
                                                               (line   35)
  * fdiagnostics-generate-patch:           Diagnostic Message Formatting Options.
--- 54750,54795 ----
  * fchkp-use-wrappers:                    Instrumentation Options.
                                                               (line  507)
  * fcilkplus:                             C Dialect Options.  (line  316)
! * fcode-hoisting:                        Optimize Options.   (line  945)
! * fcombine-stack-adjustments:            Optimize Options.   (line  916)
  * fcommon:                               Common Variable Attributes.
                                                               (line   90)
  * fcompare-debug:                        Developer Options.  (line  750)
  * fcompare-debug-second:                 Developer Options.  (line  776)
! * fcompare-elim:                         Optimize Options.   (line 1918)
  * fconcepts:                             C++ Dialect Options.
                                                               (line  114)
  * fcond-mismatch:                        C Dialect Options.  (line  369)
! * fconserve-stack:                       Optimize Options.   (line  935)
  * fconstant-string-class:                Objective-C and Objective-C++ Dialect Options.
                                                               (line   30)
  * fconstexpr-depth:                      C++ Dialect Options.
                                                               (line  121)
  * fconstexpr-loop-limit:                 C++ Dialect Options.
                                                               (line  127)
! * fcprop-registers:                      Optimize Options.   (line 1930)
! * fcrossjumping:                         Optimize Options.   (line  538)
! * fcse-follow-jumps:                     Optimize Options.   (line  459)
! * fcse-skip-blocks:                      Optimize Options.   (line  468)
! * fcx-fortran-rules:                     Optimize Options.   (line 2215)
! * fcx-limited-range:                     Optimize Options.   (line 2203)
! * fdata-sections:                        Optimize Options.   (line 2336)
  * fdbg-cnt:                              Developer Options.  (line  889)
  * fdbg-cnt-list:                         Developer Options.  (line  886)
! * fdce:                                  Optimize Options.   (line  551)
  * fdebug-cpp:                            Preprocessor Options.
                                                               (line  438)
  * fdebug-prefix-map:                     Debugging Options.  (line  145)
  * fdebug-types-section:                  Debugging Options.  (line  185)
! * fdeclone-ctor-dtor:                    Optimize Options.   (line  574)
  * fdeduce-init-list:                     C++ Dialect Options.
                                                               (line  132)
! * fdelayed-branch:                       Optimize Options.   (line  728)
  * fdelete-dead-exceptions:               Code Gen Options.   (line  131)
! * fdelete-null-pointer-checks:           Optimize Options.   (line  585)
! * fdevirtualize:                         Optimize Options.   (line  606)
! * fdevirtualize-at-ltrans:               Optimize Options.   (line  623)
! * fdevirtualize-speculatively:           Optimize Options.   (line  613)
  * fdiagnostics-color:                    Diagnostic Message Formatting Options.
                                                               (line   35)
  * fdiagnostics-generate-patch:           Diagnostic Message Formatting Options.
*************** look up both forms.
*** 54697,54703 ****
  * fdollars-in-identifiers:               Preprocessor Options.
                                                               (line  220)
  * fdpic:                                 SH Options.         (line  393)
! * fdse:                                  Optimize Options.   (line  552)
  * fdump-ada-spec:                        Overall Options.    (line  371)
  * fdump-class-hierarchy:                 Developer Options.  (line  283)
  * fdump-final-insns:                     Developer Options.  (line  744)
--- 54809,54815 ----
  * fdollars-in-identifiers:               Preprocessor Options.
                                                               (line  220)
  * fdpic:                                 SH Options.         (line  393)
! * fdse:                                  Optimize Options.   (line  555)
  * fdump-ada-spec:                        Overall Options.    (line  371)
  * fdump-class-hierarchy:                 Developer Options.  (line  283)
  * fdump-final-insns:                     Developer Options.  (line  744)
*************** look up both forms.
*** 54779,54785 ****
  * fdump-unnumbered:                      Developer Options.  (line  262)
  * fdump-unnumbered-links:                Developer Options.  (line  268)
  * fdwarf2-cfi-asm:                       Debugging Options.  (line  307)
! * fearly-inlining:                       Optimize Options.   (line  299)
  * feliminate-dwarf2-dups:                Debugging Options.  (line  233)
  * feliminate-unused-debug-symbols:       Debugging Options.  (line  126)
  * feliminate-unused-debug-types:         Debugging Options.  (line  311)
--- 54891,54897 ----
  * fdump-unnumbered:                      Developer Options.  (line  262)
  * fdump-unnumbered-links:                Developer Options.  (line  268)
  * fdwarf2-cfi-asm:                       Debugging Options.  (line  307)
! * fearly-inlining:                       Optimize Options.   (line  302)
  * feliminate-dwarf2-dups:                Debugging Options.  (line  233)
  * feliminate-unused-debug-symbols:       Debugging Options.  (line  126)
  * feliminate-unused-debug-types:         Debugging Options.  (line  311)
*************** look up both forms.
*** 54789,54815 ****
  * femit-struct-debug-reduced:            Debugging Options.  (line  251)
  * fenable-:                              Developer Options.  (line  588)
  * fexceptions:                           Code Gen Options.   (line  108)
! * fexcess-precision:                     Optimize Options.   (line 2009)
  * fexec-charset:                         Preprocessor Options.
                                                               (line  254)
! * fexpensive-optimizations:              Optimize Options.   (line  627)
  * fext-numeric-literals:                 C++ Dialect Options.
                                                               (line  665)
  * fextended-identifiers:                 Preprocessor Options.
                                                               (line  223)
  * fextern-tls-init:                      C++ Dialect Options.
                                                               (line  187)
! * ffast-math:                            Optimize Options.   (line 2033)
! * ffat-lto-objects:                      Optimize Options.   (line 1896)
! * ffinite-math-only:                     Optimize Options.   (line 2107)
  * ffix-and-continue:                     Darwin Options.     (line  104)
  * ffixed:                                Code Gen Options.   (line  420)
  * ffloat-store <1>:                      Disappointments.    (line   77)
! * ffloat-store:                          Optimize Options.   (line 1995)
  * ffor-scope:                            C++ Dialect Options.
                                                               (line  208)
! * fforward-propagate:                    Optimize Options.   (line  202)
! * ffp-contract:                          Optimize Options.   (line  211)
  * ffreestanding <1>:                     Common Function Attributes.
                                                               (line  276)
  * ffreestanding <2>:                     Warning Options.    (line  290)
--- 54901,54927 ----
  * femit-struct-debug-reduced:            Debugging Options.  (line  251)
  * fenable-:                              Developer Options.  (line  588)
  * fexceptions:                           Code Gen Options.   (line  108)
! * fexcess-precision:                     Optimize Options.   (line 2012)
  * fexec-charset:                         Preprocessor Options.
                                                               (line  254)
! * fexpensive-optimizations:              Optimize Options.   (line  630)
  * fext-numeric-literals:                 C++ Dialect Options.
                                                               (line  665)
  * fextended-identifiers:                 Preprocessor Options.
                                                               (line  223)
  * fextern-tls-init:                      C++ Dialect Options.
                                                               (line  187)
! * ffast-math:                            Optimize Options.   (line 2036)
! * ffat-lto-objects:                      Optimize Options.   (line 1899)
! * ffinite-math-only:                     Optimize Options.   (line 2110)
  * ffix-and-continue:                     Darwin Options.     (line  104)
  * ffixed:                                Code Gen Options.   (line  420)
  * ffloat-store <1>:                      Disappointments.    (line   77)
! * ffloat-store:                          Optimize Options.   (line 1998)
  * ffor-scope:                            C++ Dialect Options.
                                                               (line  208)
! * fforward-propagate:                    Optimize Options.   (line  204)
! * ffp-contract:                          Optimize Options.   (line  213)
  * ffreestanding <1>:                     Common Function Attributes.
                                                               (line  276)
  * ffreestanding <2>:                     Warning Options.    (line  290)
*************** look up both forms.
*** 54817,54846 ****
  * ffreestanding:                         Standards.          (line   91)
  * ffriend-injection:                     C++ Dialect Options.
                                                               (line  153)
! * ffunction-sections:                    Optimize Options.   (line 2333)
! * fgcse:                                 Optimize Options.   (line  479)
! * fgcse-after-reload:                    Optimize Options.   (line  515)
! * fgcse-las:                             Optimize Options.   (line  508)
! * fgcse-lm:                              Optimize Options.   (line  490)
! * fgcse-sm:                              Optimize Options.   (line  499)
  * fgimple:                               C Dialect Options.  (line  268)
  * fgnu-runtime:                          Objective-C and Objective-C++ Dialect Options.
                                                               (line   39)
  * fgnu-tm:                               C Dialect Options.  (line  326)
  * fgnu89-inline:                         C Dialect Options.  (line  158)
! * fgraphite-identity:                    Optimize Options.   (line 1146)
! * fhoist-adjacent-loads:                 Optimize Options.   (line  972)
  * fhosted:                               C Dialect Options.  (line  273)
! * fif-conversion:                        Optimize Options.   (line  556)
! * fif-conversion2:                       Optimize Options.   (line  565)
  * filelist:                              Darwin Options.     (line  196)
  * findirect-data:                        Darwin Options.     (line  104)
! * findirect-inlining:                    Optimize Options.   (line  272)
  * finhibit-size-directive:               Code Gen Options.   (line  251)
! * finline-functions:                     Optimize Options.   (line  280)
! * finline-functions-called-once:         Optimize Options.   (line  291)
! * finline-limit:                         Optimize Options.   (line  316)
! * finline-small-functions:               Optimize Options.   (line  263)
  * finput-charset:                        Preprocessor Options.
                                                               (line  267)
  * finstrument-functions <1>:             Common Function Attributes.
--- 54929,54958 ----
  * ffreestanding:                         Standards.          (line   91)
  * ffriend-injection:                     C++ Dialect Options.
                                                               (line  153)
! * ffunction-sections:                    Optimize Options.   (line 2336)
! * fgcse:                                 Optimize Options.   (line  482)
! * fgcse-after-reload:                    Optimize Options.   (line  518)
! * fgcse-las:                             Optimize Options.   (line  511)
! * fgcse-lm:                              Optimize Options.   (line  493)
! * fgcse-sm:                              Optimize Options.   (line  502)
  * fgimple:                               C Dialect Options.  (line  268)
  * fgnu-runtime:                          Objective-C and Objective-C++ Dialect Options.
                                                               (line   39)
  * fgnu-tm:                               C Dialect Options.  (line  326)
  * fgnu89-inline:                         C Dialect Options.  (line  158)
! * fgraphite-identity:                    Optimize Options.   (line 1149)
! * fhoist-adjacent-loads:                 Optimize Options.   (line  975)
  * fhosted:                               C Dialect Options.  (line  273)
! * fif-conversion:                        Optimize Options.   (line  559)
! * fif-conversion2:                       Optimize Options.   (line  568)
  * filelist:                              Darwin Options.     (line  196)
  * findirect-data:                        Darwin Options.     (line  104)
! * findirect-inlining:                    Optimize Options.   (line  274)
  * finhibit-size-directive:               Code Gen Options.   (line  251)
! * finline-functions:                     Optimize Options.   (line  282)
! * finline-functions-called-once:         Optimize Options.   (line  294)
! * finline-limit:                         Optimize Options.   (line  319)
! * finline-small-functions:               Optimize Options.   (line  265)
  * finput-charset:                        Preprocessor Options.
                                                               (line  267)
  * finstrument-functions <1>:             Common Function Attributes.
*************** look up both forms.
*** 54851,54909 ****
                                                               (line  698)
  * finstrument-functions-exclude-function-list: Instrumentation Options.
                                                               (line  718)
! * fipa-cp:                               Optimize Options.   (line 1005)
! * fipa-cp-clone:                         Optimize Options.   (line 1013)
! * fipa-icf:                              Optimize Options.   (line 1033)
! * fipa-profile:                          Optimize Options.   (line  997)
! * fipa-pta:                              Optimize Options.   (line  991)
! * fipa-pure-const:                       Optimize Options.   (line  983)
! * fipa-ra:                               Optimize Options.   (line  919)
! * fipa-reference:                        Optimize Options.   (line  987)
! * fipa-sra:                              Optimize Options.   (line  309)
! * fira-algorithm:                        Optimize Options.   (line  661)
! * fira-hoist-pressure:                   Optimize Options.   (line  691)
! * fira-loop-pressure:                    Optimize Options.   (line  698)
! * fira-region:                           Optimize Options.   (line  669)
  * fira-verbose:                          Developer Options.  (line  813)
! * fisolate-erroneous-paths-attribute:    Optimize Options.   (line 1055)
! * fisolate-erroneous-paths-dereference:  Optimize Options.   (line 1047)
  * fivar-visibility:                      Objective-C and Objective-C++ Dialect Options.
                                                               (line  162)
! * fivopts:                               Optimize Options.   (line 1235)
  * fkeep-inline-functions <1>:            Inline.             (line   51)
! * fkeep-inline-functions:                Optimize Options.   (line  348)
! * fkeep-static-consts:                   Optimize Options.   (line  359)
! * fkeep-static-functions:                Optimize Options.   (line  355)
  * flat_namespace:                        Darwin Options.     (line  196)
  * flax-vector-conversions:               C Dialect Options.  (line  374)
  * fleading-underscore:                   Code Gen Options.   (line  476)
! * flive-range-shrinkage:                 Optimize Options.   (line  656)
  * flocal-ivars:                          Objective-C and Objective-C++ Dialect Options.
                                                               (line  153)
! * floop-block:                           Optimize Options.   (line 1140)
! * floop-interchange:                     Optimize Options.   (line 1140)
! * floop-nest-optimize:                   Optimize Options.   (line 1154)
! * floop-parallelize-all:                 Optimize Options.   (line 1160)
! * floop-strip-mine:                      Optimize Options.   (line 1140)
! * floop-unroll-and-jam:                  Optimize Options.   (line 1140)
! * flra-remat:                            Optimize Options.   (line  718)
! * flto:                                  Optimize Options.   (line 1657)
! * flto-compression-level:                Optimize Options.   (line 1870)
! * flto-odr-type-merging:                 Optimize Options.   (line 1864)
! * flto-partition:                        Optimize Options.   (line 1850)
  * flto-report:                           Developer Options.  (line  819)
  * flto-report-wpa:                       Developer Options.  (line  827)
  * fmax-errors:                           Warning Options.    (line   18)
  * fmem-report:                           Developer Options.  (line  831)
  * fmem-report-wpa:                       Developer Options.  (line  835)
! * fmerge-all-constants:                  Optimize Options.   (line  378)
! * fmerge-constants:                      Optimize Options.   (line  368)
  * fmerge-debug-strings:                  Debugging Options.  (line  138)
  * fmessage-length:                       Diagnostic Message Formatting Options.
                                                               (line   14)
! * fmodulo-sched:                         Optimize Options.   (line  389)
! * fmodulo-sched-allow-regmoves:          Optimize Options.   (line  394)
! * fmove-loop-invariants:                 Optimize Options.   (line 2319)
  * fms-extensions <1>:                    Unnamed Fields.     (line   36)
  * fms-extensions <2>:                    C++ Dialect Options.
                                                               (line  243)
--- 54963,55021 ----
                                                               (line  698)
  * finstrument-functions-exclude-function-list: Instrumentation Options.
                                                               (line  718)
! * fipa-cp:                               Optimize Options.   (line 1008)
! * fipa-cp-clone:                         Optimize Options.   (line 1016)
! * fipa-icf:                              Optimize Options.   (line 1036)
! * fipa-profile:                          Optimize Options.   (line 1000)
! * fipa-pta:                              Optimize Options.   (line  994)
! * fipa-pure-const:                       Optimize Options.   (line  986)
! * fipa-ra:                               Optimize Options.   (line  922)
! * fipa-reference:                        Optimize Options.   (line  990)
! * fipa-sra:                              Optimize Options.   (line  312)
! * fira-algorithm:                        Optimize Options.   (line  664)
! * fira-hoist-pressure:                   Optimize Options.   (line  694)
! * fira-loop-pressure:                    Optimize Options.   (line  701)
! * fira-region:                           Optimize Options.   (line  672)
  * fira-verbose:                          Developer Options.  (line  813)
! * fisolate-erroneous-paths-attribute:    Optimize Options.   (line 1058)
! * fisolate-erroneous-paths-dereference:  Optimize Options.   (line 1050)
  * fivar-visibility:                      Objective-C and Objective-C++ Dialect Options.
                                                               (line  162)
! * fivopts:                               Optimize Options.   (line 1238)
  * fkeep-inline-functions <1>:            Inline.             (line   51)
! * fkeep-inline-functions:                Optimize Options.   (line  351)
! * fkeep-static-consts:                   Optimize Options.   (line  362)
! * fkeep-static-functions:                Optimize Options.   (line  358)
  * flat_namespace:                        Darwin Options.     (line  196)
  * flax-vector-conversions:               C Dialect Options.  (line  374)
  * fleading-underscore:                   Code Gen Options.   (line  476)
! * flive-range-shrinkage:                 Optimize Options.   (line  659)
  * flocal-ivars:                          Objective-C and Objective-C++ Dialect Options.
                                                               (line  153)
! * floop-block:                           Optimize Options.   (line 1143)
! * floop-interchange:                     Optimize Options.   (line 1143)
! * floop-nest-optimize:                   Optimize Options.   (line 1157)
! * floop-parallelize-all:                 Optimize Options.   (line 1163)
! * floop-strip-mine:                      Optimize Options.   (line 1143)
! * floop-unroll-and-jam:                  Optimize Options.   (line 1143)
! * flra-remat:                            Optimize Options.   (line  721)
! * flto:                                  Optimize Options.   (line 1660)
! * flto-compression-level:                Optimize Options.   (line 1873)
! * flto-odr-type-merging:                 Optimize Options.   (line 1867)
! * flto-partition:                        Optimize Options.   (line 1853)
  * flto-report:                           Developer Options.  (line  819)
  * flto-report-wpa:                       Developer Options.  (line  827)
  * fmax-errors:                           Warning Options.    (line   18)
  * fmem-report:                           Developer Options.  (line  831)
  * fmem-report-wpa:                       Developer Options.  (line  835)
! * fmerge-all-constants:                  Optimize Options.   (line  381)
! * fmerge-constants:                      Optimize Options.   (line  371)
  * fmerge-debug-strings:                  Debugging Options.  (line  138)
  * fmessage-length:                       Diagnostic Message Formatting Options.
                                                               (line   14)
! * fmodulo-sched:                         Optimize Options.   (line  392)
! * fmodulo-sched-allow-regmoves:          Optimize Options.   (line  397)
! * fmove-loop-invariants:                 Optimize Options.   (line 2322)
  * fms-extensions <1>:                    Unnamed Fields.     (line   36)
  * fms-extensions <2>:                    C++ Dialect Options.
                                                               (line  243)
*************** look up both forms.
*** 54917,54923 ****
  * fno-access-control:                    C++ Dialect Options.
                                                               (line   92)
  * fno-asm:                               C Dialect Options.  (line  220)
! * fno-branch-count-reg:                  Optimize Options.   (line  401)
  * fno-builtin <1>:                       Other Builtins.     (line   21)
  * fno-builtin <2>:                       Common Function Attributes.
                                                               (line  276)
--- 55029,55035 ----
  * fno-access-control:                    C++ Dialect Options.
                                                               (line   92)
  * fno-asm:                               C Dialect Options.  (line  220)
! * fno-branch-count-reg:                  Optimize Options.   (line  404)
  * fno-builtin <1>:                       Other Builtins.     (line   21)
  * fno-builtin <2>:                       Common Function Attributes.
                                                               (line  276)
*************** look up both forms.
*** 54968,54974 ****
  * fno-compare-debug:                     Developer Options.  (line  750)
  * fno-debug-types-section:               Debugging Options.  (line  185)
  * fno-default-inline:                    Inline.             (line   68)
! * fno-defer-pop:                         Optimize Options.   (line  194)
  * fno-diagnostics-show-caret:            Diagnostic Message Formatting Options.
                                                               (line  119)
  * fno-diagnostics-show-option:           Diagnostic Message Formatting Options.
--- 55080,55086 ----
  * fno-compare-debug:                     Developer Options.  (line  750)
  * fno-debug-types-section:               Debugging Options.  (line  185)
  * fno-default-inline:                    Inline.             (line   68)
! * fno-defer-pop:                         Optimize Options.   (line  196)
  * fno-diagnostics-show-caret:            Diagnostic Message Formatting Options.
                                                               (line  119)
  * fno-diagnostics-show-option:           Diagnostic Message Formatting Options.
*************** look up both forms.
*** 54985,54996 ****
                                                               (line  187)
  * fno-for-scope:                         C++ Dialect Options.
                                                               (line  208)
! * fno-fp-int-builtin-inexact:            Optimize Options.   (line 2179)
! * fno-function-cse:                      Optimize Options.   (line  416)
  * fno-gnu-keywords:                      C++ Dialect Options.
                                                               (line  220)
  * fno-gnu-unique:                        Code Gen Options.   (line  152)
! * fno-guess-branch-probability:          Optimize Options.   (line 1403)
  * fno-ident:                             Code Gen Options.   (line  248)
  * fno-implement-inlines <1>:             C++ Interface.      (line   66)
  * fno-implement-inlines:                 C++ Dialect Options.
--- 55097,55108 ----
                                                               (line  187)
  * fno-for-scope:                         C++ Dialect Options.
                                                               (line  208)
! * fno-fp-int-builtin-inexact:            Optimize Options.   (line 2182)
! * fno-function-cse:                      Optimize Options.   (line  419)
  * fno-gnu-keywords:                      C++ Dialect Options.
                                                               (line  220)
  * fno-gnu-unique:                        Code Gen Options.   (line  152)
! * fno-guess-branch-probability:          Optimize Options.   (line 1406)
  * fno-ident:                             Code Gen Options.   (line  248)
  * fno-implement-inlines <1>:             C++ Interface.      (line   66)
  * fno-implement-inlines:                 C++ Dialect Options.
*************** look up both forms.
*** 55001,55015 ****
                                                               (line  118)
  * fno-implicit-templates:                C++ Dialect Options.
                                                               (line  226)
! * fno-inline:                            Optimize Options.   (line  255)
! * fno-ira-share-save-slots:              Optimize Options.   (line  706)
! * fno-ira-share-spill-slots:             Optimize Options.   (line  712)
  * fno-jump-tables:                       Code Gen Options.   (line  412)
! * fno-keep-inline-dllexport:             Optimize Options.   (line  342)
! * fno-lifetime-dse:                      Optimize Options.   (line  641)
  * fno-local-ivars:                       Objective-C and Objective-C++ Dialect Options.
                                                               (line  153)
! * fno-math-errno:                        Optimize Options.   (line 2047)
  * fno-merge-debug-strings:               Debugging Options.  (line  138)
  * fno-nil-receivers:                     Objective-C and Objective-C++ Dialect Options.
                                                               (line   49)
--- 55113,55127 ----
                                                               (line  118)
  * fno-implicit-templates:                C++ Dialect Options.
                                                               (line  226)
! * fno-inline:                            Optimize Options.   (line  257)
! * fno-ira-share-save-slots:              Optimize Options.   (line  709)
! * fno-ira-share-spill-slots:             Optimize Options.   (line  715)
  * fno-jump-tables:                       Code Gen Options.   (line  412)
! * fno-keep-inline-dllexport:             Optimize Options.   (line  345)
! * fno-lifetime-dse:                      Optimize Options.   (line  644)
  * fno-local-ivars:                       Objective-C and Objective-C++ Dialect Options.
                                                               (line  153)
! * fno-math-errno:                        Optimize Options.   (line 2050)
  * fno-merge-debug-strings:               Debugging Options.  (line  138)
  * fno-nil-receivers:                     Objective-C and Objective-C++ Dialect Options.
                                                               (line   49)
*************** look up both forms.
*** 55019,55050 ****
                                                               (line  277)
  * fno-optional-diags:                    C++ Dialect Options.
                                                               (line  281)
! * fno-peephole:                          Optimize Options.   (line 1394)
! * fno-peephole2:                         Optimize Options.   (line 1394)
  * fno-plt:                               Code Gen Options.   (line  394)
  * fno-pretty-templates:                  C++ Dialect Options.
                                                               (line  291)
! * fno-printf-return-value:               Optimize Options.   (line 1371)
  * fno-rtti:                              C++ Dialect Options.
                                                               (line  308)
  * fno-sanitize-recover:                  Instrumentation Options.
                                                               (line  334)
  * fno-sanitize=all:                      Instrumentation Options.
                                                               (line  320)
! * fno-sched-interblock:                  Optimize Options.   (line  751)
! * fno-sched-spec:                        Optimize Options.   (line  756)
  * fno-set-stack-executable:              x86 Windows Options.
                                                               (line   46)
  * fno-show-column:                       Diagnostic Message Formatting Options.
                                                               (line  172)
  * fno-signed-bitfields:                  C Dialect Options.  (line  407)
! * fno-signed-zeros:                      Optimize Options.   (line 2119)
  * fno-stack-limit:                       Instrumentation Options.
                                                               (line  574)
  * fno-threadsafe-statics:                C++ Dialect Options.
                                                               (line  358)
! * fno-toplevel-reorder:                  Optimize Options.   (line 1623)
! * fno-trapping-math:                     Optimize Options.   (line 2129)
  * fno-unsigned-bitfields:                C Dialect Options.  (line  407)
  * fno-use-cxa-get-exception-ptr:         C++ Dialect Options.
                                                               (line  371)
--- 55131,55162 ----
                                                               (line  277)
  * fno-optional-diags:                    C++ Dialect Options.
                                                               (line  281)
! * fno-peephole:                          Optimize Options.   (line 1397)
! * fno-peephole2:                         Optimize Options.   (line 1397)
  * fno-plt:                               Code Gen Options.   (line  394)
  * fno-pretty-templates:                  C++ Dialect Options.
                                                               (line  291)
! * fno-printf-return-value:               Optimize Options.   (line 1374)
  * fno-rtti:                              C++ Dialect Options.
                                                               (line  308)
  * fno-sanitize-recover:                  Instrumentation Options.
                                                               (line  334)
  * fno-sanitize=all:                      Instrumentation Options.
                                                               (line  320)
! * fno-sched-interblock:                  Optimize Options.   (line  754)
! * fno-sched-spec:                        Optimize Options.   (line  759)
  * fno-set-stack-executable:              x86 Windows Options.
                                                               (line   46)
  * fno-show-column:                       Diagnostic Message Formatting Options.
                                                               (line  172)
  * fno-signed-bitfields:                  C Dialect Options.  (line  407)
! * fno-signed-zeros:                      Optimize Options.   (line 2122)
  * fno-stack-limit:                       Instrumentation Options.
                                                               (line  574)
  * fno-threadsafe-statics:                C++ Dialect Options.
                                                               (line  358)
! * fno-toplevel-reorder:                  Optimize Options.   (line 1626)
! * fno-trapping-math:                     Optimize Options.   (line 2132)
  * fno-unsigned-bitfields:                C Dialect Options.  (line  407)
  * fno-use-cxa-get-exception-ptr:         C++ Dialect Options.
                                                               (line  371)
*************** look up both forms.
*** 55056,55062 ****
                                                               (line  302)
  * fno-writable-relocated-rdata:          x86 Windows Options.
                                                               (line   53)
! * fno-zero-initialized-in-bss:           Optimize Options.   (line  427)
  * fnon-call-exceptions:                  Code Gen Options.   (line  122)
  * fnothrow-opt:                          C++ Dialect Options.
                                                               (line  266)
--- 55168,55174 ----
                                                               (line  302)
  * fno-writable-relocated-rdata:          x86 Windows Options.
                                                               (line   53)
! * fno-zero-initialized-in-bss:           Optimize Options.   (line  430)
  * fnon-call-exceptions:                  Code Gen Options.   (line  122)
  * fnothrow-opt:                          C++ Dialect Options.
                                                               (line  266)
*************** look up both forms.
*** 55074,55098 ****
                                                               (line  111)
  * fobjc-std:                             Objective-C and Objective-C++ Dialect Options.
                                                               (line  120)
! * fomit-frame-pointer:                   Optimize Options.   (line  222)
  * fopenacc:                              C Dialect Options.  (line  290)
  * fopenacc-dim:                          C Dialect Options.  (line  298)
  * fopenmp:                               C Dialect Options.  (line  304)
  * fopenmp-simd:                          C Dialect Options.  (line  312)
  * fopt-info:                             Developer Options.  (line  471)
! * foptimize-sibling-calls:               Optimize Options.   (line  243)
! * foptimize-strlen:                      Optimize Options.   (line  248)
  * force_cpusubtype_ALL:                  Darwin Options.     (line  135)
  * force_flat_namespace:                  Darwin Options.     (line  196)
  * fpack-struct:                          Code Gen Options.   (line  463)
! * fpartial-inlining:                     Optimize Options.   (line 1347)
  * fpcc-struct-return <1>:                Incompatibilities.  (line  170)
  * fpcc-struct-return:                    Code Gen Options.   (line  165)
  * fpch-deps:                             Preprocessor Options.
                                                               (line  277)
  * fpch-preprocess:                       Preprocessor Options.
                                                               (line  285)
! * fpeel-loops:                           Optimize Options.   (line 2311)
  * fpermissive:                           C++ Dialect Options.
                                                               (line  286)
  * fpermitted-flt-eval-methods:           C Dialect Options.  (line  175)
--- 55186,55210 ----
                                                               (line  111)
  * fobjc-std:                             Objective-C and Objective-C++ Dialect Options.
                                                               (line  120)
! * fomit-frame-pointer:                   Optimize Options.   (line  224)
  * fopenacc:                              C Dialect Options.  (line  290)
  * fopenacc-dim:                          C Dialect Options.  (line  298)
  * fopenmp:                               C Dialect Options.  (line  304)
  * fopenmp-simd:                          C Dialect Options.  (line  312)
  * fopt-info:                             Developer Options.  (line  471)
! * foptimize-sibling-calls:               Optimize Options.   (line  245)
! * foptimize-strlen:                      Optimize Options.   (line  250)
  * force_cpusubtype_ALL:                  Darwin Options.     (line  135)
  * force_flat_namespace:                  Darwin Options.     (line  196)
  * fpack-struct:                          Code Gen Options.   (line  463)
! * fpartial-inlining:                     Optimize Options.   (line 1350)
  * fpcc-struct-return <1>:                Incompatibilities.  (line  170)
  * fpcc-struct-return:                    Code Gen Options.   (line  165)
  * fpch-deps:                             Preprocessor Options.
                                                               (line  277)
  * fpch-preprocess:                       Preprocessor Options.
                                                               (line  285)
! * fpeel-loops:                           Optimize Options.   (line 2314)
  * fpermissive:                           C++ Dialect Options.
                                                               (line  286)
  * fpermitted-flt-eval-methods:           C Dialect Options.  (line  175)
*************** look up both forms.
*** 55108,55142 ****
  * fplugin-arg:                           Overall Options.    (line  367)
  * fpost-ipa-mem-report:                  Developer Options.  (line  841)
  * fpre-ipa-mem-report:                   Developer Options.  (line  839)
! * fpredictive-commoning:                 Optimize Options.   (line 1354)
! * fprefetch-loop-arrays:                 Optimize Options.   (line 1361)
  * fpreprocessed:                         Preprocessor Options.
                                                               (line  185)
  * fprofile-arcs <1>:                     Other Builtins.     (line  368)
  * fprofile-arcs:                         Instrumentation Options.
                                                               (line   31)
! * fprofile-correction:                   Optimize Options.   (line 1934)
  * fprofile-dir:                          Instrumentation Options.
                                                               (line  101)
  * fprofile-generate:                     Instrumentation Options.
                                                               (line  111)
! * fprofile-reorder-functions:            Optimize Options.   (line 2253)
  * fprofile-report:                       Developer Options.  (line  845)
  * fprofile-update:                       Instrumentation Options.
                                                               (line  127)
! * fprofile-use:                          Optimize Options.   (line 1942)
! * fprofile-values:                       Optimize Options.   (line 2244)
  * fpu:                                   RX Options.         (line   17)
  * frandom-seed:                          Developer Options.  (line  661)
! * freciprocal-math:                      Optimize Options.   (line 2098)
  * frecord-gcc-switches:                  Code Gen Options.   (line  338)
! * free:                                  Optimize Options.   (line  633)
  * freg-struct-return:                    Code Gen Options.   (line  183)
! * frename-registers:                     Optimize Options.   (line 2270)
! * freorder-blocks:                       Optimize Options.   (line 1420)
! * freorder-blocks-algorithm:             Optimize Options.   (line 1426)
! * freorder-blocks-and-partition:         Optimize Options.   (line 1437)
! * freorder-functions:                    Optimize Options.   (line 1450)
  * freplace-objc-classes:                 Objective-C and Objective-C++ Dialect Options.
                                                               (line  131)
  * frepo <1>:                             Template Instantiation.
--- 55220,55254 ----
  * fplugin-arg:                           Overall Options.    (line  367)
  * fpost-ipa-mem-report:                  Developer Options.  (line  841)
  * fpre-ipa-mem-report:                   Developer Options.  (line  839)
! * fpredictive-commoning:                 Optimize Options.   (line 1357)
! * fprefetch-loop-arrays:                 Optimize Options.   (line 1364)
  * fpreprocessed:                         Preprocessor Options.
                                                               (line  185)
  * fprofile-arcs <1>:                     Other Builtins.     (line  368)
  * fprofile-arcs:                         Instrumentation Options.
                                                               (line   31)
! * fprofile-correction:                   Optimize Options.   (line 1937)
  * fprofile-dir:                          Instrumentation Options.
                                                               (line  101)
  * fprofile-generate:                     Instrumentation Options.
                                                               (line  111)
! * fprofile-reorder-functions:            Optimize Options.   (line 2256)
  * fprofile-report:                       Developer Options.  (line  845)
  * fprofile-update:                       Instrumentation Options.
                                                               (line  127)
! * fprofile-use:                          Optimize Options.   (line 1945)
! * fprofile-values:                       Optimize Options.   (line 2247)
  * fpu:                                   RX Options.         (line   17)
  * frandom-seed:                          Developer Options.  (line  661)
! * freciprocal-math:                      Optimize Options.   (line 2101)
  * frecord-gcc-switches:                  Code Gen Options.   (line  338)
! * free:                                  Optimize Options.   (line  636)
  * freg-struct-return:                    Code Gen Options.   (line  183)
! * frename-registers:                     Optimize Options.   (line 2273)
! * freorder-blocks:                       Optimize Options.   (line 1423)
! * freorder-blocks-algorithm:             Optimize Options.   (line 1429)
! * freorder-blocks-and-partition:         Optimize Options.   (line 1440)
! * freorder-functions:                    Optimize Options.   (line 1453)
  * freplace-objc-classes:                 Objective-C and Objective-C++ Dialect Options.
                                                               (line  131)
  * frepo <1>:                             Template Instantiation.
*************** look up both forms.
*** 55144,55152 ****
  * frepo:                                 C++ Dialect Options.
                                                               (line  303)
  * freport-bug:                           Developer Options.  (line  258)
! * frerun-cse-after-loop:                 Optimize Options.   (line  473)
! * freschedule-modulo-scheduled-loops:    Optimize Options.   (line  850)
! * frounding-math:                        Optimize Options.   (line 2144)
  * fsanitize-address-use-after-scope:     Instrumentation Options.
                                                               (line  371)
  * fsanitize-coverage=trace-pc:           Instrumentation Options.
--- 55256,55264 ----
  * frepo:                                 C++ Dialect Options.
                                                               (line  303)
  * freport-bug:                           Developer Options.  (line  258)
! * frerun-cse-after-loop:                 Optimize Options.   (line  476)
! * freschedule-modulo-scheduled-loops:    Optimize Options.   (line  853)
! * frounding-math:                        Optimize Options.   (line 2147)
  * fsanitize-address-use-after-scope:     Instrumentation Options.
                                                               (line  371)
  * fsanitize-coverage=trace-pc:           Instrumentation Options.
*************** look up both forms.
*** 55207,55234 ****
                                                               (line  222)
  * fsanitize=vptr:                        Instrumentation Options.
                                                               (line  309)
! * fsched-critical-path-heuristic:        Optimize Options.   (line  816)
! * fsched-dep-count-heuristic:            Optimize Options.   (line  843)
! * fsched-group-heuristic:                Optimize Options.   (line  810)
! * fsched-last-insn-heuristic:            Optimize Options.   (line  836)
! * fsched-pressure:                       Optimize Options.   (line  761)
! * fsched-rank-heuristic:                 Optimize Options.   (line  829)
! * fsched-spec-insn-heuristic:            Optimize Options.   (line  822)
! * fsched-spec-load:                      Optimize Options.   (line  770)
! * fsched-spec-load-dangerous:            Optimize Options.   (line  775)
! * fsched-stalled-insns:                  Optimize Options.   (line  781)
! * fsched-stalled-insns-dep:              Optimize Options.   (line  791)
  * fsched-verbose:                        Developer Options.  (line  574)
! * fsched2-use-superblocks:               Optimize Options.   (line  800)
! * fschedule-fusion:                      Optimize Options.   (line 2280)
! * fschedule-insns:                       Optimize Options.   (line  732)
! * fschedule-insns2:                      Optimize Options.   (line  742)
! * fsection-anchors:                      Optimize Options.   (line 2370)
! * fsel-sched-pipelining:                 Optimize Options.   (line  863)
! * fsel-sched-pipelining-outer-loops:     Optimize Options.   (line  868)
! * fselective-scheduling:                 Optimize Options.   (line  855)
! * fselective-scheduling2:                Optimize Options.   (line  859)
! * fsemantic-interposition:               Optimize Options.   (line  873)
  * fshort-enums <1>:                      Non-bugs.           (line   42)
  * fshort-enums <2>:                      Common Type Attributes.
                                                               (line  193)
--- 55319,55346 ----
                                                               (line  222)
  * fsanitize=vptr:                        Instrumentation Options.
                                                               (line  309)
! * fsched-critical-path-heuristic:        Optimize Options.   (line  819)
! * fsched-dep-count-heuristic:            Optimize Options.   (line  846)
! * fsched-group-heuristic:                Optimize Options.   (line  813)
! * fsched-last-insn-heuristic:            Optimize Options.   (line  839)
! * fsched-pressure:                       Optimize Options.   (line  764)
! * fsched-rank-heuristic:                 Optimize Options.   (line  832)
! * fsched-spec-insn-heuristic:            Optimize Options.   (line  825)
! * fsched-spec-load:                      Optimize Options.   (line  773)
! * fsched-spec-load-dangerous:            Optimize Options.   (line  778)
! * fsched-stalled-insns:                  Optimize Options.   (line  784)
! * fsched-stalled-insns-dep:              Optimize Options.   (line  794)
  * fsched-verbose:                        Developer Options.  (line  574)
! * fsched2-use-superblocks:               Optimize Options.   (line  803)
! * fschedule-fusion:                      Optimize Options.   (line 2283)
! * fschedule-insns:                       Optimize Options.   (line  735)
! * fschedule-insns2:                      Optimize Options.   (line  745)
! * fsection-anchors:                      Optimize Options.   (line 2373)
! * fsel-sched-pipelining:                 Optimize Options.   (line  866)
! * fsel-sched-pipelining-outer-loops:     Optimize Options.   (line  871)
! * fselective-scheduling:                 Optimize Options.   (line  858)
! * fselective-scheduling2:                Optimize Options.   (line  862)
! * fsemantic-interposition:               Optimize Options.   (line  876)
  * fshort-enums <1>:                      Non-bugs.           (line   42)
  * fshort-enums <2>:                      Common Type Attributes.
                                                               (line  193)
*************** look up both forms.
*** 55236,55263 ****
                                                               (line   48)
  * fshort-enums:                          Code Gen Options.   (line  201)
  * fshort-wchar:                          Code Gen Options.   (line  211)
! * fshrink-wrap:                          Optimize Options.   (line  890)
! * fshrink-wrap-separate:                 Optimize Options.   (line  895)
! * fsignaling-nans:                       Optimize Options.   (line 2164)
  * fsigned-bitfields <1>:                 Non-bugs.           (line   57)
  * fsigned-bitfields:                     C Dialect Options.  (line  407)
  * fsigned-char <1>:                      Characters implementation.
                                                               (line   31)
  * fsigned-char:                          C Dialect Options.  (line  397)
! * fsimd-cost-model:                      Optimize Options.   (line 1307)
! * fsingle-precision-constant:            Optimize Options.   (line 2196)
  * fsized-deallocation:                   C++ Dialect Options.
                                                               (line  318)
! * fsplit-ivs-in-unroller:                Optimize Options.   (line 1328)
! * fsplit-loops:                          Optimize Options.   (line 2323)
! * fsplit-paths:                          Optimize Options.   (line 1323)
  * fsplit-stack <1>:                      Common Function Attributes.
                                                               (line  536)
  * fsplit-stack:                          Instrumentation Options.
                                                               (line  591)
! * fsplit-wide-types:                     Optimize Options.   (line  448)
! * fssa-backprop:                         Optimize Options.   (line 1078)
! * fssa-phiopt:                           Optimize Options.   (line 1084)
  * fsso-struct:                           C Dialect Options.  (line  413)
  * fstack-check:                          Instrumentation Options.
                                                               (line  535)
--- 55348,55375 ----
                                                               (line   48)
  * fshort-enums:                          Code Gen Options.   (line  201)
  * fshort-wchar:                          Code Gen Options.   (line  211)
! * fshrink-wrap:                          Optimize Options.   (line  893)
! * fshrink-wrap-separate:                 Optimize Options.   (line  898)
! * fsignaling-nans:                       Optimize Options.   (line 2167)
  * fsigned-bitfields <1>:                 Non-bugs.           (line   57)
  * fsigned-bitfields:                     C Dialect Options.  (line  407)
  * fsigned-char <1>:                      Characters implementation.
                                                               (line   31)
  * fsigned-char:                          C Dialect Options.  (line  397)
! * fsimd-cost-model:                      Optimize Options.   (line 1310)
! * fsingle-precision-constant:            Optimize Options.   (line 2199)
  * fsized-deallocation:                   C++ Dialect Options.
                                                               (line  318)
! * fsplit-ivs-in-unroller:                Optimize Options.   (line 1331)
! * fsplit-loops:                          Optimize Options.   (line 2326)
! * fsplit-paths:                          Optimize Options.   (line 1326)
  * fsplit-stack <1>:                      Common Function Attributes.
                                                               (line  536)
  * fsplit-stack:                          Instrumentation Options.
                                                               (line  591)
! * fsplit-wide-types:                     Optimize Options.   (line  451)
! * fssa-backprop:                         Optimize Options.   (line 1081)
! * fssa-phiopt:                           Optimize Options.   (line 1087)
  * fsso-struct:                           C Dialect Options.  (line  413)
  * fstack-check:                          Instrumentation Options.
                                                               (line  535)
*************** look up both forms.
*** 55276,55287 ****
  * fstack-usage:                          Developer Options.  (line  849)
  * fstack_reuse:                          Code Gen Options.   (line   15)
  * fstats:                                Developer Options.  (line  880)
! * fstdarg-opt:                           Optimize Options.   (line 2366)
! * fstore-merging:                        Optimize Options.   (line 1259)
! * fstrict-aliasing:                      Optimize Options.   (line 1463)
  * fstrict-enums:                         C++ Dialect Options.
                                                               (line  328)
! * fstrict-overflow:                      Optimize Options.   (line 1509)
  * fstrict-volatile-bitfields:            Code Gen Options.   (line  587)
  * fstrong-eval-order:                    C++ Dialect Options.
                                                               (line  337)
--- 55388,55399 ----
  * fstack-usage:                          Developer Options.  (line  849)
  * fstack_reuse:                          Code Gen Options.   (line   15)
  * fstats:                                Developer Options.  (line  880)
! * fstdarg-opt:                           Optimize Options.   (line 2369)
! * fstore-merging:                        Optimize Options.   (line 1262)
! * fstrict-aliasing:                      Optimize Options.   (line 1466)
  * fstrict-enums:                         C++ Dialect Options.
                                                               (line  328)
! * fstrict-overflow:                      Optimize Options.   (line 1512)
  * fstrict-volatile-bitfields:            Code Gen Options.   (line  587)
  * fstrong-eval-order:                    C++ Dialect Options.
                                                               (line  337)
*************** look up both forms.
*** 55295,55348 ****
                                                               (line  349)
  * ftest-coverage:                        Instrumentation Options.
                                                               (line   92)
! * fthread-jumps:                         Optimize Options.   (line  439)
  * ftime-report:                          Developer Options.  (line  805)
  * ftime-report-details:                  Developer Options.  (line  809)
  * ftls-model:                            Code Gen Options.   (line  487)
! * ftracer:                               Optimize Options.   (line 2288)
  * ftrack-macro-expansion:                Preprocessor Options.
                                                               (line  237)
  * ftrampolines:                          Code Gen Options.   (line  498)
  * ftrapv:                                Code Gen Options.   (line   90)
! * ftree-bit-ccp:                         Optimize Options.   (line 1067)
! * ftree-builtin-call-dce:                Optimize Options.   (line 1105)
! * ftree-ccp:                             Optimize Options.   (line 1073)
! * ftree-ch:                              Optimize Options.   (line 1125)
! * ftree-coalesce-vars:                   Optimize Options.   (line 1166)
! * ftree-copy-prop:                       Optimize Options.   (line  978)
! * ftree-dce:                             Optimize Options.   (line 1101)
! * ftree-dominator-opts:                  Optimize Options.   (line 1111)
! * ftree-dse:                             Optimize Options.   (line 1118)
! * ftree-forwprop:                        Optimize Options.   (line  957)
! * ftree-fre:                             Optimize Options.   (line  961)
! * ftree-loop-distribute-patterns:        Optimize Options.   (line 1200)
! * ftree-loop-distribution:               Optimize Options.   (line 1183)
! * ftree-loop-if-convert:                 Optimize Options.   (line 1176)
! * ftree-loop-im:                         Optimize Options.   (line 1220)
! * ftree-loop-ivcanon:                    Optimize Options.   (line 1229)
! * ftree-loop-linear:                     Optimize Options.   (line 1140)
! * ftree-loop-optimize:                   Optimize Options.   (line 1132)
! * ftree-loop-vectorize:                  Optimize Options.   (line 1285)
! * ftree-parallelize-loops:               Optimize Options.   (line 1240)
! * ftree-partial-pre:                     Optimize Options.   (line  953)
! * ftree-phiprop:                         Optimize Options.   (line  968)
! * ftree-pre:                             Optimize Options.   (line  949)
! * ftree-pta:                             Optimize Options.   (line 1249)
! * ftree-reassoc:                         Optimize Options.   (line  938)
! * ftree-sink:                            Optimize Options.   (line 1063)
! * ftree-slp-vectorize:                   Optimize Options.   (line 1289)
! * ftree-slsr:                            Optimize Options.   (line 1274)
! * ftree-sra:                             Optimize Options.   (line 1253)
! * ftree-switch-conversion:               Optimize Options.   (line 1088)
! * ftree-tail-merge:                      Optimize Options.   (line 1093)
! * ftree-ter:                             Optimize Options.   (line 1266)
! * ftree-vectorize:                       Optimize Options.   (line 1280)
! * ftree-vrp:                             Optimize Options.   (line 1314)
! * funconstrained-commons:                Optimize Options.   (line  529)
! * funit-at-a-time:                       Optimize Options.   (line 1616)
! * funroll-all-loops:                     Optimize Options.   (line 2305)
! * funroll-loops:                         Optimize Options.   (line 2295)
! * funsafe-math-optimizations:            Optimize Options.   (line 2065)
  * funsigned-bitfields <1>:               Non-bugs.           (line   57)
  * funsigned-bitfields <2>:               Structures unions enumerations and bit-fields implementation.
                                                               (line   17)
--- 55407,55460 ----
                                                               (line  349)
  * ftest-coverage:                        Instrumentation Options.
                                                               (line   92)
! * fthread-jumps:                         Optimize Options.   (line  442)
  * ftime-report:                          Developer Options.  (line  805)
  * ftime-report-details:                  Developer Options.  (line  809)
  * ftls-model:                            Code Gen Options.   (line  487)
! * ftracer:                               Optimize Options.   (line 2291)
  * ftrack-macro-expansion:                Preprocessor Options.
                                                               (line  237)
  * ftrampolines:                          Code Gen Options.   (line  498)
  * ftrapv:                                Code Gen Options.   (line   90)
! * ftree-bit-ccp:                         Optimize Options.   (line 1070)
! * ftree-builtin-call-dce:                Optimize Options.   (line 1108)
! * ftree-ccp:                             Optimize Options.   (line 1076)
! * ftree-ch:                              Optimize Options.   (line 1128)
! * ftree-coalesce-vars:                   Optimize Options.   (line 1169)
! * ftree-copy-prop:                       Optimize Options.   (line  981)
! * ftree-dce:                             Optimize Options.   (line 1104)
! * ftree-dominator-opts:                  Optimize Options.   (line 1114)
! * ftree-dse:                             Optimize Options.   (line 1121)
! * ftree-forwprop:                        Optimize Options.   (line  960)
! * ftree-fre:                             Optimize Options.   (line  964)
! * ftree-loop-distribute-patterns:        Optimize Options.   (line 1203)
! * ftree-loop-distribution:               Optimize Options.   (line 1186)
! * ftree-loop-if-convert:                 Optimize Options.   (line 1179)
! * ftree-loop-im:                         Optimize Options.   (line 1223)
! * ftree-loop-ivcanon:                    Optimize Options.   (line 1232)
! * ftree-loop-linear:                     Optimize Options.   (line 1143)
! * ftree-loop-optimize:                   Optimize Options.   (line 1135)
! * ftree-loop-vectorize:                  Optimize Options.   (line 1288)
! * ftree-parallelize-loops:               Optimize Options.   (line 1243)
! * ftree-partial-pre:                     Optimize Options.   (line  956)
! * ftree-phiprop:                         Optimize Options.   (line  971)
! * ftree-pre:                             Optimize Options.   (line  952)
! * ftree-pta:                             Optimize Options.   (line 1252)
! * ftree-reassoc:                         Optimize Options.   (line  941)
! * ftree-sink:                            Optimize Options.   (line 1066)
! * ftree-slp-vectorize:                   Optimize Options.   (line 1292)
! * ftree-slsr:                            Optimize Options.   (line 1277)
! * ftree-sra:                             Optimize Options.   (line 1256)
! * ftree-switch-conversion:               Optimize Options.   (line 1091)
! * ftree-tail-merge:                      Optimize Options.   (line 1096)
! * ftree-ter:                             Optimize Options.   (line 1269)
! * ftree-vectorize:                       Optimize Options.   (line 1283)
! * ftree-vrp:                             Optimize Options.   (line 1317)
! * funconstrained-commons:                Optimize Options.   (line  532)
! * funit-at-a-time:                       Optimize Options.   (line 1619)
! * funroll-all-loops:                     Optimize Options.   (line 2308)
! * funroll-loops:                         Optimize Options.   (line 2298)
! * funsafe-math-optimizations:            Optimize Options.   (line 2068)
  * funsigned-bitfields <1>:               Non-bugs.           (line   57)
  * funsigned-bitfields <2>:               Structures unions enumerations and bit-fields implementation.
                                                               (line   17)
*************** look up both forms.
*** 55350,55382 ****
  * funsigned-char <1>:                    Characters implementation.
                                                               (line   31)
  * funsigned-char:                        C Dialect Options.  (line  379)
! * funswitch-loops:                       Optimize Options.   (line 2327)
  * funwind-tables:                        Code Gen Options.   (line  139)
  * fuse-cxa-atexit:                       C++ Dialect Options.
                                                               (line  364)
  * fuse-ld=bfd:                           Link Options.       (line   25)
  * fuse-ld=gold:                          Link Options.       (line   28)
! * fuse-linker-plugin:                    Optimize Options.   (line 1878)
  * fvar-tracking:                         Debugging Options.  (line  149)
  * fvar-tracking-assignments:             Debugging Options.  (line  159)
  * fvar-tracking-assignments-toggle:      Developer Options.  (line  797)
! * fvariable-expansion-in-unroller:       Optimize Options.   (line 1342)
! * fvect-cost-model:                      Optimize Options.   (line 1293)
  * fverbose-asm:                          Code Gen Options.   (line  258)
  * fvisibility:                           Code Gen Options.   (line  522)
  * fvisibility-inlines-hidden:            C++ Dialect Options.
                                                               (line  376)
  * fvisibility-ms-compat:                 C++ Dialect Options.
                                                               (line  404)
! * fvpt:                                  Optimize Options.   (line 2260)
  * fvtable-verify:                        Instrumentation Options.
                                                               (line  609)
  * fvtv-counts:                           Instrumentation Options.
                                                               (line  645)
  * fvtv-debug:                            Instrumentation Options.
                                                               (line  632)
! * fweb:                                  Optimize Options.   (line 1635)
! * fwhole-program:                        Optimize Options.   (line 1646)
  * fwide-exec-charset:                    Preprocessor Options.
                                                               (line  259)
  * fworking-directory:                    Preprocessor Options.
--- 55462,55494 ----
  * funsigned-char <1>:                    Characters implementation.
                                                               (line   31)
  * funsigned-char:                        C Dialect Options.  (line  379)
! * funswitch-loops:                       Optimize Options.   (line 2330)
  * funwind-tables:                        Code Gen Options.   (line  139)
  * fuse-cxa-atexit:                       C++ Dialect Options.
                                                               (line  364)
  * fuse-ld=bfd:                           Link Options.       (line   25)
  * fuse-ld=gold:                          Link Options.       (line   28)
! * fuse-linker-plugin:                    Optimize Options.   (line 1881)
  * fvar-tracking:                         Debugging Options.  (line  149)
  * fvar-tracking-assignments:             Debugging Options.  (line  159)
  * fvar-tracking-assignments-toggle:      Developer Options.  (line  797)
! * fvariable-expansion-in-unroller:       Optimize Options.   (line 1345)
! * fvect-cost-model:                      Optimize Options.   (line 1296)
  * fverbose-asm:                          Code Gen Options.   (line  258)
  * fvisibility:                           Code Gen Options.   (line  522)
  * fvisibility-inlines-hidden:            C++ Dialect Options.
                                                               (line  376)
  * fvisibility-ms-compat:                 C++ Dialect Options.
                                                               (line  404)
! * fvpt:                                  Optimize Options.   (line 2263)
  * fvtable-verify:                        Instrumentation Options.
                                                               (line  609)
  * fvtv-counts:                           Instrumentation Options.
                                                               (line  645)
  * fvtv-debug:                            Instrumentation Options.
                                                               (line  632)
! * fweb:                                  Optimize Options.   (line 1638)
! * fwhole-program:                        Optimize Options.   (line 1649)
  * fwide-exec-charset:                    Preprocessor Options.
                                                               (line  259)
  * fworking-directory:                    Preprocessor Options.
*************** look up both forms.
*** 55386,55392 ****
                                                               (line  141)
  * G <1>:                                 System V Options.   (line   10)
  * G <2>:                                 RS/6000 and PowerPC Options.
!                                                              (line  830)
  * G <3>:                                 Nios II Options.    (line    9)
  * G <4>:                                 MIPS Options.       (line  439)
  * G:                                     M32R/D Options.     (line   57)
--- 55498,55504 ----
                                                               (line  141)
  * G <1>:                                 System V Options.   (line   10)
  * G <2>:                                 RS/6000 and PowerPC Options.
!                                                              (line  832)
  * G <3>:                                 Nios II Options.    (line    9)
  * G <4>:                                 MIPS Options.       (line  439)
  * G:                                     M32R/D Options.     (line   57)
*************** look up both forms.
*** 55545,55558 ****
  * mabi=64:                               MIPS Options.       (line  157)
  * mabi=eabi:                             MIPS Options.       (line  157)
  * mabi=elfv1:                            RS/6000 and PowerPC Options.
!                                                              (line  708)
  * mabi=elfv2:                            RS/6000 and PowerPC Options.
!                                                              (line  714)
  * mabi=gnu:                              MMIX Options.       (line   20)
  * mabi=ibmlongdouble:                    RS/6000 and PowerPC Options.
                                                               (line  700)
  * mabi=ieeelongdouble:                   RS/6000 and PowerPC Options.
!                                                              (line  704)
  * mabi=mmixware:                         MMIX Options.       (line   20)
  * mabi=n32:                              MIPS Options.       (line  157)
  * mabi=no-spe:                           RS/6000 and PowerPC Options.
--- 55657,55670 ----
  * mabi=64:                               MIPS Options.       (line  157)
  * mabi=eabi:                             MIPS Options.       (line  157)
  * mabi=elfv1:                            RS/6000 and PowerPC Options.
!                                                              (line  710)
  * mabi=elfv2:                            RS/6000 and PowerPC Options.
!                                                              (line  716)
  * mabi=gnu:                              MMIX Options.       (line   20)
  * mabi=ibmlongdouble:                    RS/6000 and PowerPC Options.
                                                               (line  700)
  * mabi=ieeelongdouble:                   RS/6000 and PowerPC Options.
!                                                              (line  705)
  * mabi=mmixware:                         MMIX Options.       (line   20)
  * mabi=n32:                              MIPS Options.       (line  157)
  * mabi=no-spe:                           RS/6000 and PowerPC Options.
*************** look up both forms.
*** 55578,55584 ****
  * maddress-mode=short:                   x86 Options.        (line 1283)
  * maddress-space-conversion:             SPU Options.        (line   63)
  * mads:                                  RS/6000 and PowerPC Options.
!                                                              (line  748)
  * maes:                                  x86 Options.        (line  693)
  * maix-struct-return:                    RS/6000 and PowerPC Options.
                                                               (line  680)
--- 55690,55696 ----
  * maddress-mode=short:                   x86 Options.        (line 1283)
  * maddress-space-conversion:             SPU Options.        (line   63)
  * mads:                                  RS/6000 and PowerPC Options.
!                                                              (line  750)
  * maes:                                  x86 Options.        (line  693)
  * maix-struct-return:                    RS/6000 and PowerPC Options.
                                                               (line  680)
*************** look up both forms.
*** 55699,55705 ****
  * mbitops <1>:                           SH Options.         (line  145)
  * mbitops:                               MeP Options.        (line   26)
  * mblock-move-inline-limit:              RS/6000 and PowerPC Options.
!                                                              (line  824)
  * mbmi:                                  x86 Options.        (line  708)
  * mbranch-cheap:                         PDP-11 Options.     (line   65)
  * mbranch-cost <1>:                      RISC-V Options.     (line    9)
--- 55811,55817 ----
  * mbitops <1>:                           SH Options.         (line  145)
  * mbitops:                               MeP Options.        (line   26)
  * mblock-move-inline-limit:              RS/6000 and PowerPC Options.
!                                                              (line  826)
  * mbmi:                                  x86 Options.        (line  708)
  * mbranch-cheap:                         PDP-11 Options.     (line   65)
  * mbranch-cost <1>:                      RISC-V Options.     (line    9)
*************** look up both forms.
*** 55788,55794 ****
  * mcompact-branches=optimal:             MIPS Options.       (line  782)
  * mcompact-casesi:                       ARC Options.        (line  410)
  * mcompat-align-parm:                    RS/6000 and PowerPC Options.
!                                                              (line 1000)
  * mcond-exec:                            FRV Options.        (line  152)
  * mcond-move:                            FRV Options.        (line  128)
  * mconfig=:                              MeP Options.        (line   39)
--- 55900,55906 ----
  * mcompact-branches=optimal:             MIPS Options.       (line  782)
  * mcompact-casesi:                       ARC Options.        (line  410)
  * mcompat-align-parm:                    RS/6000 and PowerPC Options.
!                                                              (line 1002)
  * mcond-exec:                            FRV Options.        (line  152)
  * mcond-move:                            FRV Options.        (line  128)
  * mconfig=:                              MeP Options.        (line   39)
*************** look up both forms.
*** 55892,55898 ****
  * mea32:                                 SPU Options.        (line   55)
  * mea64:                                 SPU Options.        (line   55)
  * meabi:                                 RS/6000 and PowerPC Options.
!                                                              (line  767)
  * mearly-cbranchsi:                      ARC Options.        (line  432)
  * mearly-stop-bits:                      IA-64 Options.      (line  100)
  * meb <1>:                               Score Options.      (line    9)
--- 56004,56010 ----
  * mea32:                                 SPU Options.        (line   55)
  * mea64:                                 SPU Options.        (line   55)
  * meabi:                                 RS/6000 and PowerPC Options.
!                                                              (line  769)
  * mearly-cbranchsi:                      ARC Options.        (line  432)
  * mearly-stop-bits:                      IA-64 Options.      (line  100)
  * meb <1>:                               Score Options.      (line    9)
*************** look up both forms.
*** 55906,55912 ****
  * melf <1>:                              MMIX Options.       (line   44)
  * melf:                                  CRIS Options.       (line   87)
  * memb:                                  RS/6000 and PowerPC Options.
!                                                              (line  762)
  * membedded-data:                        MIPS Options.       (line  497)
  * memregs=:                              M32C Options.       (line   21)
  * mep:                                   V850 Options.       (line   16)
--- 56018,56024 ----
  * melf <1>:                              MMIX Options.       (line   44)
  * melf:                                  CRIS Options.       (line   87)
  * memb:                                  RS/6000 and PowerPC Options.
!                                                              (line  764)
  * membedded-data:                        MIPS Options.       (line  497)
  * memregs=:                              M32C Options.       (line   21)
  * mep:                                   V850 Options.       (line   16)
*************** look up both forms.
*** 55985,55991 ****
  * mfp32:                                 MIPS Options.       (line  260)
  * mfp64:                                 MIPS Options.       (line  263)
  * mfpmath <1>:                           x86 Options.        (line  367)
! * mfpmath:                               Optimize Options.   (line 2026)
  * mfpr-32:                               FRV Options.        (line   13)
  * mfpr-64:                               FRV Options.        (line   16)
  * mfprnd:                                RS/6000 and PowerPC Options.
--- 56097,56103 ----
  * mfp32:                                 MIPS Options.       (line  260)
  * mfp64:                                 MIPS Options.       (line  263)
  * mfpmath <1>:                           x86 Options.        (line  367)
! * mfpmath:                               Optimize Options.   (line 2029)
  * mfpr-32:                               FRV Options.        (line   13)
  * mfpr-64:                               FRV Options.        (line   16)
  * mfprnd:                                RS/6000 and PowerPC Options.
*************** look up both forms.
*** 56001,56007 ****
  * mfract-convert-truncate:               AVR Options.        (line  239)
  * mframe-header-opt:                     MIPS Options.       (line  865)
  * mfriz:                                 RS/6000 and PowerPC Options.
!                                                              (line  971)
  * mfsca:                                 SH Options.         (line  370)
  * mfsgsbase:                             x86 Options.        (line  696)
  * mfsmuld:                               SPARC Options.      (line  276)
--- 56113,56119 ----
  * mfract-convert-truncate:               AVR Options.        (line  239)
  * mframe-header-opt:                     MIPS Options.       (line  865)
  * mfriz:                                 RS/6000 and PowerPC Options.
!                                                              (line  973)
  * mfsca:                                 SH Options.         (line  370)
  * mfsgsbase:                             x86 Options.        (line  696)
  * mfsmuld:                               SPARC Options.      (line  276)
*************** look up both forms.
*** 56035,56041 ****
  * mgnu:                                  VAX Options.        (line   13)
  * mgnu-as:                               IA-64 Options.      (line   18)
  * mgnu-attribute:                        RS/6000 and PowerPC Options.
!                                                              (line  721)
  * mgnu-ld <1>:                           IA-64 Options.      (line   23)
  * mgnu-ld:                               HPPA Options.       (line  111)
  * mgomp:                                 Nvidia PTX Options. (line   48)
--- 56147,56153 ----
  * mgnu:                                  VAX Options.        (line   13)
  * mgnu-as:                               IA-64 Options.      (line   18)
  * mgnu-attribute:                        RS/6000 and PowerPC Options.
!                                                              (line  723)
  * mgnu-ld <1>:                           IA-64 Options.      (line   23)
  * mgnu-ld:                               HPPA Options.       (line  111)
  * mgomp:                                 Nvidia PTX Options. (line   48)
*************** look up both forms.
*** 56199,56205 ****
  * mlong32:                               MIPS Options.       (line  422)
  * mlong64:                               MIPS Options.       (line  417)
  * mlongcall:                             RS/6000 and PowerPC Options.
!                                                              (line  844)
  * mlongcalls:                            Xtensa Options.     (line   87)
  * mloop:                                 V850 Options.       (line  121)
  * mlow-64k:                              Blackfin Options.   (line   70)
--- 56311,56317 ----
  * mlong32:                               MIPS Options.       (line  422)
  * mlong64:                               MIPS Options.       (line  417)
  * mlongcall:                             RS/6000 and PowerPC Options.
!                                                              (line  846)
  * mlongcalls:                            Xtensa Options.     (line   87)
  * mloop:                                 V850 Options.       (line  121)
  * mlow-64k:                              Blackfin Options.   (line   70)
*************** look up both forms.
*** 56284,56290 ****
  * mmvcle:                                S/390 and zSeries Options.
                                                               (line  139)
  * mmvme:                                 RS/6000 and PowerPC Options.
!                                                              (line  743)
  * mmwaitx:                               x86 Options.        (line  719)
  * mn:                                    H8/300 Options.     (line   20)
  * mn-flash:                              AVR Options.        (line  184)
--- 56396,56402 ----
  * mmvcle:                                S/390 and zSeries Options.
                                                               (line  139)
  * mmvme:                                 RS/6000 and PowerPC Options.
!                                                              (line  745)
  * mmwaitx:                               x86 Options.        (line  719)
  * mn:                                    H8/300 Options.     (line   20)
  * mn-flash:                              AVR Options.        (line  184)
*************** look up both forms.
*** 56364,56370 ****
  * mno-dwarf2-asm:                        IA-64 Options.      (line   94)
  * mno-dword:                             FRV Options.        (line   35)
  * mno-eabi:                              RS/6000 and PowerPC Options.
!                                                              (line  767)
  * mno-early-stop-bits:                   IA-64 Options.      (line  100)
  * mno-eflags:                            FRV Options.        (line  125)
  * mno-embedded-data:                     MIPS Options.       (line  497)
--- 56476,56482 ----
  * mno-dwarf2-asm:                        IA-64 Options.      (line   94)
  * mno-dword:                             FRV Options.        (line   35)
  * mno-eabi:                              RS/6000 and PowerPC Options.
!                                                              (line  769)
  * mno-early-stop-bits:                   IA-64 Options.      (line  100)
  * mno-eflags:                            FRV Options.        (line  125)
  * mno-embedded-data:                     MIPS Options.       (line  497)
*************** look up both forms.
*** 56417,56423 ****
  * mno-fused-madd:                        IA-64 Options.      (line   88)
  * mno-gnu-as:                            IA-64 Options.      (line   18)
  * mno-gnu-attribute:                     RS/6000 and PowerPC Options.
!                                                              (line  721)
  * mno-gnu-ld:                            IA-64 Options.      (line   23)
  * mno-gotplt:                            CRIS Options.       (line   81)
  * mno-gpopt <1>:                         Nios II Options.    (line   17)
--- 56529,56535 ----
  * mno-fused-madd:                        IA-64 Options.      (line   88)
  * mno-gnu-as:                            IA-64 Options.      (line   18)
  * mno-gnu-attribute:                     RS/6000 and PowerPC Options.
!                                                              (line  723)
  * mno-gnu-ld:                            IA-64 Options.      (line   23)
  * mno-gotplt:                            CRIS Options.       (line   81)
  * mno-gpopt <1>:                         Nios II Options.    (line   17)
*************** look up both forms.
*** 56462,56468 ****
  * mno-long-calls:                        ARM Options.        (line  228)
  * mno-long-jumps:                        V850 Options.       (line  108)
  * mno-longcall:                          RS/6000 and PowerPC Options.
!                                                              (line  844)
  * mno-longcalls:                         Xtensa Options.     (line   87)
  * mno-low-64k:                           Blackfin Options.   (line   74)
  * mno-low-precision-recip-sqrt:          AArch64 Options.    (line   87)
--- 56574,56580 ----
  * mno-long-calls:                        ARM Options.        (line  228)
  * mno-long-jumps:                        V850 Options.       (line  108)
  * mno-longcall:                          RS/6000 and PowerPC Options.
!                                                              (line  846)
  * mno-longcalls:                         Xtensa Options.     (line   87)
  * mno-low-64k:                           Blackfin Options.   (line   74)
  * mno-low-precision-recip-sqrt:          AArch64 Options.    (line   87)
*************** look up both forms.
*** 56534,56551 ****
  * mno-prolog-function:                   V850 Options.       (line   23)
  * mno-prologue-epilogue:                 CRIS Options.       (line   71)
  * mno-prototype:                         RS/6000 and PowerPC Options.
!                                                              (line  727)
  * mno-push-args:                         x86 Options.        (line  911)
  * mno-quad-memory:                       RS/6000 and PowerPC Options.
                                                               (line  260)
  * mno-quad-memory-atomic:                RS/6000 and PowerPC Options.
                                                               (line  266)
  * mno-readonly-in-sdata:                 RS/6000 and PowerPC Options.
!                                                              (line  820)
  * mno-red-zone:                          x86 Options.        (line 1248)
  * mno-register-names:                    IA-64 Options.      (line   37)
  * mno-regnames:                          RS/6000 and PowerPC Options.
!                                                              (line  838)
  * mno-relax:                             V850 Options.       (line  103)
  * mno-relax-immediate:                   MCore Options.      (line   19)
  * mno-relocatable:                       RS/6000 and PowerPC Options.
--- 56646,56663 ----
  * mno-prolog-function:                   V850 Options.       (line   23)
  * mno-prologue-epilogue:                 CRIS Options.       (line   71)
  * mno-prototype:                         RS/6000 and PowerPC Options.
!                                                              (line  729)
  * mno-push-args:                         x86 Options.        (line  911)
  * mno-quad-memory:                       RS/6000 and PowerPC Options.
                                                               (line  260)
  * mno-quad-memory-atomic:                RS/6000 and PowerPC Options.
                                                               (line  266)
  * mno-readonly-in-sdata:                 RS/6000 and PowerPC Options.
!                                                              (line  822)
  * mno-red-zone:                          x86 Options.        (line 1248)
  * mno-register-names:                    IA-64 Options.      (line   37)
  * mno-regnames:                          RS/6000 and PowerPC Options.
!                                                              (line  840)
  * mno-relax:                             V850 Options.       (line  103)
  * mno-relax-immediate:                   MCore Options.      (line   19)
  * mno-relocatable:                       RS/6000 and PowerPC Options.
*************** look up both forms.
*** 56569,56575 ****
  * mno-sched-prefer-non-data-spec-insns:  IA-64 Options.      (line  171)
  * mno-sched-prolog:                      ARM Options.        (line   32)
  * mno-sdata <1>:                         RS/6000 and PowerPC Options.
!                                                              (line  814)
  * mno-sdata <2>:                         IA-64 Options.      (line   42)
  * mno-sdata:                             ARC Options.        (line  377)
  * mno-sep-data:                          Blackfin Options.   (line  116)
--- 56681,56687 ----
  * mno-sched-prefer-non-data-spec-insns:  IA-64 Options.      (line  171)
  * mno-sched-prolog:                      ARM Options.        (line   32)
  * mno-sdata <1>:                         RS/6000 and PowerPC Options.
!                                                              (line  816)
  * mno-sdata <2>:                         IA-64 Options.      (line   42)
  * mno-sdata:                             ARC Options.        (line  377)
  * mno-sep-data:                          Blackfin Options.   (line  116)
*************** look up both forms.
*** 56605,56611 ****
  * mno-target-align:                      Xtensa Options.     (line   74)
  * mno-text-section-literals:             Xtensa Options.     (line   47)
  * mno-tls-markers:                       RS/6000 and PowerPC Options.
!                                                              (line  877)
  * mno-toc:                               RS/6000 and PowerPC Options.
                                                               (line  567)
  * mno-toplevel-symbols:                  MMIX Options.       (line   40)
--- 56717,56723 ----
  * mno-target-align:                      Xtensa Options.     (line   74)
  * mno-text-section-literals:             Xtensa Options.     (line   47)
  * mno-tls-markers:                       RS/6000 and PowerPC Options.
!                                                              (line  879)
  * mno-toc:                               RS/6000 and PowerPC Options.
                                                               (line  567)
  * mno-toplevel-symbols:                  MMIX Options.       (line   40)
*************** look up both forms.
*** 56709,56715 ****
  * mplt:                                  MIPS Options.       (line  221)
  * mpointer-size=SIZE:                    VMS Options.        (line   20)
  * mpointers-to-nested-functions:         RS/6000 and PowerPC Options.
!                                                              (line  979)
  * mpoke-function-name:                   ARM Options.        (line  273)
  * mpopc:                                 SPARC Options.      (line  283)
  * mpopcnt:                               x86 Options.        (line  706)
--- 56821,56827 ----
  * mplt:                                  MIPS Options.       (line  221)
  * mpointer-size=SIZE:                    VMS Options.        (line   20)
  * mpointers-to-nested-functions:         RS/6000 and PowerPC Options.
!                                                              (line  981)
  * mpoke-function-name:                   ARM Options.        (line  273)
  * mpopc:                                 SPARC Options.      (line  283)
  * mpopcnt:                               x86 Options.        (line  706)
*************** look up both forms.
*** 56741,56747 ****
  * mprolog-function:                      V850 Options.       (line   23)
  * mprologue-epilogue:                    CRIS Options.       (line   71)
  * mprototype:                            RS/6000 and PowerPC Options.
!                                                              (line  727)
  * mpure-code:                            ARM Options.        (line  407)
  * mpush-args:                            x86 Options.        (line  911)
  * MQ:                                    Preprocessor Options.
--- 56853,56859 ----
  * mprolog-function:                      V850 Options.       (line   23)
  * mprologue-epilogue:                    CRIS Options.       (line   71)
  * mprototype:                            RS/6000 and PowerPC Options.
!                                                              (line  729)
  * mpure-code:                            ARM Options.        (line  407)
  * mpush-args:                            x86 Options.        (line  911)
  * MQ:                                    Preprocessor Options.
*************** look up both forms.
*** 56756,56775 ****
  * mRcw:                                  ARC Options.        (line  479)
  * mrdrnd:                                x86 Options.        (line  697)
  * mreadonly-in-sdata:                    RS/6000 and PowerPC Options.
!                                                              (line  820)
  * mrecip <1>:                            x86 Options.        (line  821)
  * mrecip:                                RS/6000 and PowerPC Options.
!                                                              (line  885)
  * mrecip-precision:                      RS/6000 and PowerPC Options.
!                                                              (line  943)
  * mrecip=opt <1>:                        x86 Options.        (line  843)
  * mrecip=opt:                            RS/6000 and PowerPC Options.
!                                                              (line  898)
  * mrecord-mcount:                        x86 Options.        (line 1134)
  * mreduced-regs:                         NDS32 Options.      (line   15)
  * mregister-names:                       IA-64 Options.      (line   37)
  * mregnames:                             RS/6000 and PowerPC Options.
!                                                              (line  838)
  * mregparm:                              x86 Options.        (line  563)
  * mrelax <1>:                            V850 Options.       (line  103)
  * mrelax <2>:                            SH Options.         (line  137)
--- 56868,56887 ----
  * mRcw:                                  ARC Options.        (line  479)
  * mrdrnd:                                x86 Options.        (line  697)
  * mreadonly-in-sdata:                    RS/6000 and PowerPC Options.
!                                                              (line  822)
  * mrecip <1>:                            x86 Options.        (line  821)
  * mrecip:                                RS/6000 and PowerPC Options.
!                                                              (line  887)
  * mrecip-precision:                      RS/6000 and PowerPC Options.
!                                                              (line  945)
  * mrecip=opt <1>:                        x86 Options.        (line  843)
  * mrecip=opt:                            RS/6000 and PowerPC Options.
!                                                              (line  900)
  * mrecord-mcount:                        x86 Options.        (line 1134)
  * mreduced-regs:                         NDS32 Options.      (line   15)
  * mregister-names:                       IA-64 Options.      (line   37)
  * mregnames:                             RS/6000 and PowerPC Options.
!                                                              (line  840)
  * mregparm:                              x86 Options.        (line  563)
  * mrelax <1>:                            V850 Options.       (line  103)
  * mrelax <2>:                            SH Options.         (line  137)
*************** look up both forms.
*** 56810,56816 ****
  * msave-mduc-in-interrupts:              RL78 Options.       (line   80)
  * msave-restore:                         RISC-V Options.     (line   65)
  * msave-toc-indirect:                    RS/6000 and PowerPC Options.
!                                                              (line  991)
  * mscc:                                  FRV Options.        (line  140)
  * msched-ar-data-spec:                   IA-64 Options.      (line  135)
  * msched-ar-in-data-spec:                IA-64 Options.      (line  157)
--- 56922,56928 ----
  * msave-mduc-in-interrupts:              RL78 Options.       (line   80)
  * msave-restore:                         RISC-V Options.     (line   65)
  * msave-toc-indirect:                    RS/6000 and PowerPC Options.
!                                                              (line  993)
  * mscc:                                  FRV Options.        (line  140)
  * msched-ar-data-spec:                   IA-64 Options.      (line  135)
  * msched-ar-in-data-spec:                IA-64 Options.      (line  157)
*************** look up both forms.
*** 56835,56857 ****
  * mscore7d:                              Score Options.      (line   34)
  * msda:                                  V850 Options.       (line   40)
  * msdata <1>:                            RS/6000 and PowerPC Options.
!                                                              (line  801)
  * msdata:                                IA-64 Options.      (line   42)
  * msdata=all:                            C6X Options.        (line   30)
  * msdata=data:                           RS/6000 and PowerPC Options.
!                                                              (line  806)
  * msdata=default <1>:                    RS/6000 and PowerPC Options.
!                                                              (line  801)
  * msdata=default:                        C6X Options.        (line   22)
  * msdata=eabi:                           RS/6000 and PowerPC Options.
!                                                              (line  781)
  * msdata=none <1>:                       RS/6000 and PowerPC Options.
!                                                              (line  814)
  * msdata=none <2>:                       M32R/D Options.     (line   40)
  * msdata=none:                           C6X Options.        (line   35)
  * msdata=sdata:                          M32R/D Options.     (line   49)
  * msdata=sysv:                           RS/6000 and PowerPC Options.
!                                                              (line  792)
  * msdata=use:                            M32R/D Options.     (line   53)
  * msdram <1>:                            MeP Options.        (line  110)
  * msdram:                                Blackfin Options.   (line  172)
--- 56947,56969 ----
  * mscore7d:                              Score Options.      (line   34)
  * msda:                                  V850 Options.       (line   40)
  * msdata <1>:                            RS/6000 and PowerPC Options.
!                                                              (line  803)
  * msdata:                                IA-64 Options.      (line   42)
  * msdata=all:                            C6X Options.        (line   30)
  * msdata=data:                           RS/6000 and PowerPC Options.
!                                                              (line  808)
  * msdata=default <1>:                    RS/6000 and PowerPC Options.
!                                                              (line  803)
  * msdata=default:                        C6X Options.        (line   22)
  * msdata=eabi:                           RS/6000 and PowerPC Options.
!                                                              (line  783)
  * msdata=none <1>:                       RS/6000 and PowerPC Options.
!                                                              (line  816)
  * msdata=none <2>:                       M32R/D Options.     (line   40)
  * msdata=none:                           C6X Options.        (line   35)
  * msdata=sdata:                          M32R/D Options.     (line   49)
  * msdata=sysv:                           RS/6000 and PowerPC Options.
!                                                              (line  794)
  * msdata=use:                            M32R/D Options.     (line   53)
  * msdram <1>:                            MeP Options.        (line  110)
  * msdram:                                Blackfin Options.   (line  172)
*************** look up both forms.
*** 56872,56878 ****
  * msim <2>:                              Visium Options.     (line   13)
  * msim <3>:                              RX Options.         (line   71)
  * msim <4>:                              RS/6000 and PowerPC Options.
!                                                              (line  737)
  * msim <5>:                              RL78 Options.       (line    7)
  * msim <6>:                              MSP430 Options.     (line   47)
  * msim <7>:                              MeP Options.        (line  114)
--- 56984,56990 ----
  * msim <2>:                              Visium Options.     (line   13)
  * msim <3>:                              RX Options.         (line   71)
  * msim <4>:                              RS/6000 and PowerPC Options.
!                                                              (line  739)
  * msim <5>:                              RL78 Options.       (line    7)
  * msim <6>:                              MSP430 Options.     (line   47)
  * msim <7>:                              MeP Options.        (line  114)
*************** look up both forms.
*** 56961,56971 ****
  * mstack-offset:                         Adapteva Epiphany Options.
                                                               (line   37)
  * mstack-protector-guard:                RS/6000 and PowerPC Options.
!                                                              (line 1016)
  * mstack-protector-guard-offset:         RS/6000 and PowerPC Options.
!                                                              (line 1016)
  * mstack-protector-guard-reg:            RS/6000 and PowerPC Options.
!                                                              (line 1016)
  * mstack-protector-guard=GUARD:          x86 Options.        (line 1171)
  * mstack-size:                           S/390 and zSeries Options.
                                                               (line  196)
--- 57073,57083 ----
  * mstack-offset:                         Adapteva Epiphany Options.
                                                               (line   37)
  * mstack-protector-guard:                RS/6000 and PowerPC Options.
!                                                              (line 1018)
  * mstack-protector-guard-offset:         RS/6000 and PowerPC Options.
!                                                              (line 1018)
  * mstack-protector-guard-reg:            RS/6000 and PowerPC Options.
!                                                              (line 1018)
  * mstack-protector-guard=GUARD:          x86 Options.        (line 1171)
  * mstack-size:                           S/390 and zSeries Options.
                                                               (line  196)
*************** look up both forms.
*** 57016,57022 ****
  * mtls-dialect=traditional:              AArch64 Options.    (line   64)
  * mtls-direct-seg-refs:                  x86 Options.        (line 1112)
  * mtls-markers:                          RS/6000 and PowerPC Options.
!                                                              (line  877)
  * mtls-size <1>:                         IA-64 Options.      (line  112)
  * mtls-size:                             AArch64 Options.    (line   68)
  * mtoc:                                  RS/6000 and PowerPC Options.
--- 57128,57134 ----
  * mtls-dialect=traditional:              AArch64 Options.    (line   64)
  * mtls-direct-seg-refs:                  x86 Options.        (line 1112)
  * mtls-markers:                          RS/6000 and PowerPC Options.
!                                                              (line  879)
  * mtls-size <1>:                         IA-64 Options.      (line  112)
  * mtls-size:                             AArch64 Options.    (line   68)
  * mtoc:                                  RS/6000 and PowerPC Options.
*************** look up both forms.
*** 57093,57099 ****
  * mv8plus:                               SPARC Options.      (line  216)
  * mveclibabi <1>:                        x86 Options.        (line  872)
  * mveclibabi:                            RS/6000 and PowerPC Options.
!                                                              (line  952)
  * mvect8-ret-in-mem:                     x86 Options.        (line  584)
  * mvirt:                                 MIPS Options.       (line  409)
  * mvis:                                  SPARC Options.      (line  223)
--- 57205,57211 ----
  * mv8plus:                               SPARC Options.      (line  216)
  * mveclibabi <1>:                        x86 Options.        (line  872)
  * mveclibabi:                            RS/6000 and PowerPC Options.
!                                                              (line  954)
  * mvect8-ret-in-mem:                     x86 Options.        (line  584)
  * mvirt:                                 MIPS Options.       (line  409)
  * mvis:                                  SPARC Options.      (line  223)
*************** look up both forms.
*** 57113,57119 ****
  * mvx:                                   S/390 and zSeries Options.
                                                               (line  113)
  * mvxworks:                              RS/6000 and PowerPC Options.
!                                                              (line  758)
  * mvzeroupper:                           x86 Options.        (line  782)
  * mwarn-cell-microcode:                  RS/6000 and PowerPC Options.
                                                               (line  181)
--- 57225,57231 ----
  * mvx:                                   S/390 and zSeries Options.
                                                               (line  113)
  * mvxworks:                              RS/6000 and PowerPC Options.
!                                                              (line  760)
  * mvzeroupper:                           x86 Options.        (line  782)
  * mwarn-cell-microcode:                  RS/6000 and PowerPC Options.
                                                               (line  181)
*************** look up both forms.
*** 57155,57161 ****
  * mxsaves:                               x86 Options.        (line  715)
  * mxy:                                   ARC Options.        (line  333)
  * myellowknife:                          RS/6000 and PowerPC Options.
!                                                              (line  753)
  * mzarch:                                S/390 and zSeries Options.
                                                               (line   95)
  * mzda:                                  V850 Options.       (line   45)
--- 57267,57273 ----
  * mxsaves:                               x86 Options.        (line  715)
  * mxy:                                   ARC Options.        (line  333)
  * myellowknife:                          RS/6000 and PowerPC Options.
!                                                              (line  755)
  * mzarch:                                S/390 and zSeries Options.
                                                               (line   95)
  * mzda:                                  V850 Options.       (line   45)
*************** look up both forms.
*** 57193,57207 ****
  * O1:                                    Optimize Options.   (line   39)
  * O2:                                    Optimize Options.   (line   94)
  * O3:                                    Optimize Options.   (line  143)
! * Ofast:                                 Optimize Options.   (line  166)
! * Og:                                    Optimize Options.   (line  173)
  * Os:                                    Optimize Options.   (line  156)
  * P:                                     Preprocessor Options.
                                                               (line  350)
  * p:                                     Instrumentation Options.
                                                               (line   19)
  * pagezero_size:                         Darwin Options.     (line  196)
! * param:                                 Optimize Options.   (line 2394)
  * pass-exit-codes:                       Overall Options.    (line  326)
  * pedantic <1>:                          Warnings and Errors.
                                                               (line   25)
--- 57305,57319 ----
  * O1:                                    Optimize Options.   (line   39)
  * O2:                                    Optimize Options.   (line   94)
  * O3:                                    Optimize Options.   (line  143)
! * Ofast:                                 Optimize Options.   (line  168)
! * Og:                                    Optimize Options.   (line  175)
  * Os:                                    Optimize Options.   (line  156)
  * P:                                     Preprocessor Options.
                                                               (line  350)
  * p:                                     Instrumentation Options.
                                                               (line   19)
  * pagezero_size:                         Darwin Options.     (line  196)
! * param:                                 Optimize Options.   (line 2397)
  * pass-exit-codes:                       Overall Options.    (line  326)
  * pedantic <1>:                          Warnings and Errors.
                                                               (line   25)
*************** Keyword Index
*** 57865,57871 ****
  * -nodefaultlibs and unresolved references: Link Options.    (line   91)
  * -nostdlib and unresolved references:   Link Options.       (line   91)
  * .sdata/.sdata2 references (PowerPC):   RS/6000 and PowerPC Options.
!                                                              (line  830)
  * //:                                    C++ Comments.       (line    6)
  * 0 in constraint:                       Simple Constraints. (line  127)
  * < in constraint:                       Simple Constraints. (line   48)
--- 57977,57983 ----
  * -nodefaultlibs and unresolved references: Link Options.    (line   91)
  * -nostdlib and unresolved references:   Link Options.       (line   91)
  * .sdata/.sdata2 references (PowerPC):   RS/6000 and PowerPC Options.
!                                                              (line  832)
  * //:                                    C++ Comments.       (line    6)
  * 0 in constraint:                       Simple Constraints. (line  127)
  * < in constraint:                       Simple Constraints. (line   48)
*************** Keyword Index
*** 58393,58409 ****
  * asinhf:                                Other Builtins.     (line    6)
  * asinhl:                                Other Builtins.     (line    6)
  * asinl:                                 Other Builtins.     (line    6)
! * asm assembler template:                Extended Asm.       (line  219)
! * asm clobbers:                          Extended Asm.       (line  663)
  * asm constraints:                       Constraints.        (line    6)
! * asm expressions:                       Extended Asm.       (line  567)
! * asm flag output operands:              Extended Asm.       (line  482)
! * asm goto labels:                       Extended Asm.       (line  733)
! * asm input operands:                    Extended Asm.       (line  567)
  * asm keyword:                           Using Assembly Language with C.
                                                               (line    6)
! * asm output operands:                   Extended Asm.       (line  322)
! * asm volatile:                          Extended Asm.       (line  109)
  * assembler names for identifiers:       Asm Labels.         (line    6)
  * assembly code, invalid:                Bug Criteria.       (line   12)
  * assembly language in C:                Using Assembly Language with C.
--- 58505,58522 ----
  * asinhf:                                Other Builtins.     (line    6)
  * asinhl:                                Other Builtins.     (line    6)
  * asinl:                                 Other Builtins.     (line    6)
! * asm assembler template:                Extended Asm.       (line  226)
! * asm clobbers:                          Extended Asm.       (line  670)
  * asm constraints:                       Constraints.        (line    6)
! * asm expressions:                       Extended Asm.       (line  574)
! * asm flag output operands:              Extended Asm.       (line  489)
! * asm goto labels:                       Extended Asm.       (line  740)
! * asm inline:                            Size of an asm.     (line   25)
! * asm input operands:                    Extended Asm.       (line  574)
  * asm keyword:                           Using Assembly Language with C.
                                                               (line    6)
! * asm output operands:                   Extended Asm.       (line  329)
! * asm volatile:                          Extended Asm.       (line  116)
  * assembler names for identifiers:       Asm Labels.         (line    6)
  * assembly code, invalid:                Bug Criteria.       (line   12)
  * assembly language in C:                Using Assembly Language with C.
*************** Keyword Index
*** 58841,58847 ****
  * flexible array members:                Zero Length.        (line    6)
  * float as function value type:          Incompatibilities.  (line  141)
  * floating point precision:              Disappointments.    (line   68)
! * floating-point precision:              Optimize Options.   (line 1999)
  * floor:                                 Other Builtins.     (line    6)
  * floorf:                                Other Builtins.     (line    6)
  * floorl:                                Other Builtins.     (line    6)
--- 58954,58960 ----
  * flexible array members:                Zero Length.        (line    6)
  * float as function value type:          Incompatibilities.  (line  141)
  * floating point precision:              Disappointments.    (line   68)
! * floating-point precision:              Optimize Options.   (line 2002)
  * floor:                                 Other Builtins.     (line    6)
  * floorf:                                Other Builtins.     (line    6)
  * floorl:                                Other Builtins.     (line    6)
*************** Keyword Index
*** 59801,59807 ****
  * smaller data references <1>:           Nios II Options.    (line    9)
  * smaller data references:               M32R/D Options.     (line   57)
  * smaller data references (PowerPC):     RS/6000 and PowerPC Options.
!                                                              (line  830)
  * snprintf:                              Other Builtins.     (line    6)
  * Solaris 2 options:                     Solaris 2 Options.  (line    6)
  * SOURCE_DATE_EPOCH:                     Environment Variables.
--- 59914,59920 ----
  * smaller data references <1>:           Nios II Options.    (line    9)
  * smaller data references:               M32R/D Options.     (line   57)
  * smaller data references (PowerPC):     RS/6000 and PowerPC Options.
!                                                              (line  832)
  * snprintf:                              Other Builtins.     (line    6)
  * Solaris 2 options:                     Solaris 2 Options.  (line    6)
  * SOURCE_DATE_EPOCH:                     Environment Variables.
*************** Keyword Index
*** 60173,60179 ****
  * volatile access:                       Volatiles.          (line    6)
  * volatile applied to function:          Function Attributes.
                                                               (line    6)
! * volatile asm:                          Extended Asm.       (line  109)
  * volatile read <1>:                     C++ Volatiles.      (line    6)
  * volatile read:                         Volatiles.          (line    6)
  * volatile write <1>:                    C++ Volatiles.      (line    6)
--- 60286,60292 ----
  * volatile access:                       Volatiles.          (line    6)
  * volatile applied to function:          Function Attributes.
                                                               (line    6)
! * volatile asm:                          Extended Asm.       (line  116)
  * volatile read <1>:                     C++ Volatiles.      (line    6)
  * volatile read:                         Volatiles.          (line    6)
  * volatile write <1>:                    C++ Volatiles.      (line    6)
*************** Node: Warning Options161456
*** 60260,60646 ****
  Ref: Wtrigraphs242101
  Node: Debugging Options274754
  Node: Optimize Options289204
! Ref: Type-punning351898
! Node: Instrumentation Options442513
! Node: Preprocessor Options477822
! Ref: dashMF482668
! Ref: fdollars-in-identifiers487180
! Node: Assembler Options498979
! Node: Link Options499671
! Ref: Link Options-Footnote-1513509
! Node: Directory Options513843
! Node: Code Gen Options522230
! Node: Developer Options550496
! Node: Submodel Options589433
! Node: AArch64 Options591167
! Ref: aarch64-feature-modifiers600144
! Node: Adapteva Epiphany Options601088
! Node: ARC Options607038
! Node: ARM Options625675
! Node: AVR Options645782
! Node: Blackfin Options667669
! Node: C6X Options675684
! Node: CRIS Options677227
! Node: CR16 Options680971
! Node: Darwin Options681878
! Node: DEC Alpha Options689319
! Node: FR30 Options700907
! Node: FT32 Options701473
! Node: FRV Options702199
! Node: GNU/Linux Options708918
! Node: H8/300 Options710300
! Node: HPPA Options711750
! Node: IA-64 Options721281
! Node: LM32 Options729407
! Node: M32C Options729931
! Node: M32R/D Options731205
! Node: M680x0 Options734751
! Node: MCore Options748914
! Node: MeP Options750417
! Node: MicroBlaze Options754377
! Node: MIPS Options757173
! Node: MMIX Options792685
! Node: MN10300 Options795167
! Node: Moxie Options797710
! Node: MSP430 Options798198
! Node: NDS32 Options802908
! Node: Nios II Options804802
! Node: Nvidia PTX Options815723
! Node: PDP-11 Options817983
! Node: picoChip Options819680
! Node: PowerPC Options821821
! Node: RISC-V Options822044
! Node: RL78 Options825804
! Node: RS/6000 and PowerPC Options829581
! Node: RX Options872758
! Node: S/390 and zSeries Options881361
! Node: Score Options891837
! Node: SH Options892679
! Node: Solaris 2 Options907837
! Node: SPARC Options909081
! Node: SPU Options924699
! Node: System V Options929636
! Node: TILE-Gx Options930462
! Node: TILEPro Options931480
! Node: V850 Options931984
! Node: VAX Options938676
! Node: Visium Options939214
! Node: VMS Options941522
! Node: VxWorks Options942336
! Node: x86 Options943488
! Node: x86 Windows Options997668
! Node: Xstormy16 Options1000476
! Node: Xtensa Options1000770
! Node: zSeries Options1005919
! Node: Spec Files1006115
! Node: Environment Variables1027993
! Node: Precompiled Headers1036718
! Node: C Implementation1042735
! Node: Translation implementation1044424
! Node: Environment implementation1045016
! Node: Identifiers implementation1045571
! Node: Characters implementation1046658
! Node: Integers implementation1050309
! Node: Floating point implementation1052359
! Node: Arrays and pointers implementation1055424
! Ref: Arrays and pointers implementation-Footnote-11056883
! Node: Hints implementation1057007
! Node: Structures unions enumerations and bit-fields implementation1058504
! Node: Qualifiers implementation1060729
! Node: Declarators implementation1062509
! Node: Statements implementation1062851
! Node: Preprocessing directives implementation1063178
! Node: Library functions implementation1065500
! Node: Architecture implementation1066150
! Node: Locale-specific behavior implementation1067792
! Node: C++ Implementation1068097
! Node: Conditionally-supported behavior1069379
! Node: Exception handling1069997
! Node: C Extensions1070406
! Node: Statement Exprs1075690
! Node: Local Labels1080166
! Node: Labels as Values1083139
! Ref: Labels as Values-Footnote-11085664
! Node: Nested Functions1085847
! Node: Constructing Calls1089805
! Node: Typeof1094523
! Node: Conditionals1098451
! Node: __int1281099341
! Node: Long Long1099865
! Node: Complex1101341
! Node: Floating Types1103926
! Node: Half-Precision1107391
! Node: Decimal Float1109796
! Node: Hex Floats1111649
! Node: Fixed-Point1112685
! Node: Named Address Spaces1115965
! Ref: AVR Named Address Spaces1116651
! Node: Zero Length1122985
! Node: Empty Structures1126024
! Node: Variable Length1126430
! Node: Variadic Macros1129148
! Node: Escaped Newlines1131526
! Node: Subscripting1132387
! Node: Pointer Arith1133113
! Node: Pointers to Arrays1133687
! Node: Initializers1134431
! Node: Compound Literals1134932
! Node: Designated Inits1138499
! Node: Case Ranges1142235
! Node: Cast to Union1142916
! Node: Mixed Declarations1144042
! Node: Function Attributes1144552
! Node: Common Function Attributes1147666
! Node: AArch64 Function Attributes1194122
! Node: ARC Function Attributes1199529
! Node: ARM Function Attributes1201221
! Node: AVR Function Attributes1204879
! Node: Blackfin Function Attributes1208350
! Node: CR16 Function Attributes1210846
! Node: Epiphany Function Attributes1211373
! Node: H8/300 Function Attributes1214124
! Node: IA-64 Function Attributes1215320
! Node: M32C Function Attributes1216362
! Node: M32R/D Function Attributes1218697
! Node: m68k Function Attributes1220170
! Node: MCORE Function Attributes1221114
! Node: MeP Function Attributes1221922
! Node: MicroBlaze Function Attributes1223223
! Node: Microsoft Windows Function Attributes1224729
! Node: MIPS Function Attributes1229312
! Node: MSP430 Function Attributes1234869
! Node: NDS32 Function Attributes1238714
! Node: Nios II Function Attributes1241133
! Node: Nvidia PTX Function Attributes1242427
! Node: PowerPC Function Attributes1243042
! Node: RL78 Function Attributes1250049
! Node: RX Function Attributes1251286
! Node: S/390 Function Attributes1253822
! Node: SH Function Attributes1255641
! Node: SPU Function Attributes1259065
! Node: Symbian OS Function Attributes1259870
! Node: V850 Function Attributes1260207
! Node: Visium Function Attributes1260752
! Node: x86 Function Attributes1261280
! Node: Xstormy16 Function Attributes1273739
! Node: Variable Attributes1274246
! Node: Common Variable Attributes1275708
! Node: AVR Variable Attributes1286814
! Node: Blackfin Variable Attributes1292083
! Node: H8/300 Variable Attributes1292942
! Node: IA-64 Variable Attributes1294016
! Node: M32R/D Variable Attributes1294767
! Node: MeP Variable Attributes1295550
! Node: Microsoft Windows Variable Attributes1297653
! Node: MSP430 Variable Attributes1300112
! Node: Nvidia PTX Variable Attributes1301311
! Node: PowerPC Variable Attributes1301928
! Node: RL78 Variable Attributes1302485
! Node: SPU Variable Attributes1302903
! Node: V850 Variable Attributes1303268
! Node: x86 Variable Attributes1303900
! Node: Xstormy16 Variable Attributes1304956
! Node: Type Attributes1305531
! Node: Common Type Attributes1306850
! Node: ARM Type Attributes1322334
! Node: MeP Type Attributes1323118
! Node: PowerPC Type Attributes1323520
! Node: SPU Type Attributes1324509
! Node: x86 Type Attributes1324928
! Node: Label Attributes1325916
! Node: Enumerator Attributes1327850
! Node: Statement Attributes1329170
! Node: Attribute Syntax1330654
! Node: Function Prototypes1341915
! Node: C++ Comments1343696
! Node: Dollar Signs1344215
! Node: Character Escapes1344680
! Node: Alignment1344964
! Node: Inline1346336
! Node: Volatiles1351138
! Node: Using Assembly Language with C1354038
! Node: Basic Asm1355275
! Node: Extended Asm1360452
! Ref: Volatile1364249
! Ref: AssemblerTemplate1368321
! Ref: OutputOperands1372546
! Ref: FlagOutputOperands1379458
! Ref: InputOperands1381473
! Ref: Clobbers1385708
! Ref: GotoLabels1389014
! Ref: x86Operandmodifiers1391147
! Ref: x86floatingpointasmoperands1393413
! Node: Constraints1396743
! Node: Simple Constraints1397849
! Node: Multi-Alternative1405174
! Node: Modifiers1406849
! Node: Machine Constraints1409646
! Node: Asm Labels1467772
! Node: Explicit Register Variables1469392
! Ref: Explicit Reg Vars1469606
! Node: Global Register Variables1470215
! Ref: Global Reg Vars1470423
! Node: Local Register Variables1474265
! Ref: Local Reg Vars1474485
! Node: Size of an asm1477795
! Node: Alternate Keywords1479050
! Node: Incomplete Enums1480549
! Node: Function Names1481306
! Node: Return Address1483204
! Node: Vector Extensions1487145
! Node: Offsetof1494430
! Node: __sync Builtins1495271
! Node: __atomic Builtins1501716
! Node: Integer Overflow Builtins1515206
! Node: x86 specific memory model extensions for transactional memory1521685
! Node: Object Size Checking1522951
! Node: Pointer Bounds Checker builtins1528979
! Node: Cilk Plus Builtins1534985
! Node: Other Builtins1535902
! Node: Target Builtins1572882
! Node: AArch64 Built-in Functions1574451
! Node: Alpha Built-in Functions1574906
! Node: Altera Nios II Built-in Functions1577954
! Node: ARC Built-in Functions1582321
! Node: ARC SIMD Built-in Functions1587532
! Node: ARM iWMMXt Built-in Functions1596428
! Node: ARM C Language Extensions (ACLE)1603424
! Node: ARM Floating Point Status and Control Intrinsics1604763
! Node: ARM ARMv8-M Security Extensions1605248
! Node: AVR Built-in Functions1606594
! Node: Blackfin Built-in Functions1609922
! Node: FR-V Built-in Functions1610541
! Node: Argument Types1611407
! Node: Directly-mapped Integer Functions1613161
! Node: Directly-mapped Media Functions1614245
! Node: Raw read/write Functions1621279
! Node: Other Built-in Functions1622193
! Node: MIPS DSP Built-in Functions1623379
! Node: MIPS Paired-Single Support1635877
! Node: MIPS Loongson Built-in Functions1637376
! Node: Paired-Single Arithmetic1643903
! Node: Paired-Single Built-in Functions1644851
! Node: MIPS-3D Built-in Functions1647518
! Node: MIPS SIMD Architecture (MSA) Support1652895
! Node: MIPS SIMD Architecture Built-in Functions1655758
! Node: Other MIPS Built-in Functions1682588
! Node: MSP430 Built-in Functions1683597
! Node: NDS32 Built-in Functions1684998
! Node: picoChip Built-in Functions1686291
! Node: PowerPC Built-in Functions1687635
! Node: PowerPC AltiVec/VSX Built-in Functions1713301
! Node: PowerPC Hardware Transactional Memory Built-in Functions1869223
! Node: RX Built-in Functions1877714
! Node: S/390 System z Built-in Functions1881747
! Node: SH Built-in Functions1886982
! Node: SPARC VIS Built-in Functions1888710
! Node: SPU Built-in Functions1897240
! Node: TI C6X Built-in Functions1898956
! Node: TILE-Gx Built-in Functions1899980
! Node: TILEPro Built-in Functions1901097
! Node: x86 Built-in Functions1902195
! Node: x86 transactional memory intrinsics1962434
! Node: Target Format Checks1965654
! Node: Solaris Format Checks1966086
! Node: Darwin Format Checks1966512
! Node: Pragmas1967330
! Node: AArch64 Pragmas1968103
! Node: ARM Pragmas1968560
! Node: M32C Pragmas1969187
! Node: MeP Pragmas1970261
! Node: RS/6000 and PowerPC Pragmas1972330
! Node: S/390 Pragmas1973070
! Node: Darwin Pragmas1973636
! Node: Solaris Pragmas1974689
! Node: Symbol-Renaming Pragmas1975850
! Node: Structure-Layout Pragmas1977463
! Node: Weak Pragmas1979750
! Node: Diagnostic Pragmas1980485
! Node: Visibility Pragmas1983592
! Node: Push/Pop Macro Pragmas1984277
! Node: Function Specific Option Pragmas1985249
! Node: Loop-Specific Pragmas1987094
! Node: Unnamed Fields1988184
! Node: Thread-Local1990382
! Node: C99 Thread-Local Edits1992488
! Node: C++98 Thread-Local Edits1994500
! Node: Binary constants1997944
! Node: C++ Extensions1998615
! Node: C++ Volatiles2000245
! Node: Restricted Pointers2002593
! Node: Vague Linkage2004184
! Node: C++ Interface2007808
! Ref: C++ Interface-Footnote-12011601
! Node: Template Instantiation2011737
! Node: Bound member functions2019221
! Node: C++ Attributes2020753
! Node: Function Multiversioning2024823
! Node: Type Traits2026628
! Node: C++ Concepts2033116
! Node: Deprecated Features2034611
! Node: Backwards Compatibility2037573
! Node: Objective-C2038925
! Node: GNU Objective-C runtime API2039534
! Node: Modern GNU Objective-C runtime API2040541
! Node: Traditional GNU Objective-C runtime API2042978
! Node: Executing code before main2043706
! Node: What you can and what you cannot do in +load2046448
! Node: Type encoding2048820
! Node: Legacy type encoding2054160
! Node: @encode2055251
! Node: Method signatures2055796
! Node: Garbage Collection2057791
! Node: Constant string objects2060480
! Node: compatibility_alias2062988
! Node: Exceptions2063714
! Node: Synchronization2066425
! Node: Fast enumeration2067609
! Node: Using fast enumeration2067921
! Node: c99-like fast enumeration syntax2069132
! Node: Fast enumeration details2069835
! Node: Fast enumeration protocol2072176
! Node: Messaging with the GNU Objective-C runtime2075328
! Node: Dynamically registering methods2076699
! Node: Forwarding hook2078390
! Node: Compatibility2081431
! Node: Gcov2087998
! Node: Gcov Intro2088533
! Node: Invoking Gcov2091251
! Node: Gcov and Optimization2106470
! Node: Gcov Data Files2109836
! Node: Cross-profiling2111231
! Node: Gcov-tool2113082
! Node: Gcov-tool Intro2113507
! Node: Invoking Gcov-tool2115468
! Node: Gcov-dump2118013
! Node: Gcov-dump Intro2118335
! Node: Invoking Gcov-dump2118602
! Node: Trouble2119271
! Node: Actual Bugs2120689
! Node: Interoperation2121136
! Node: Incompatibilities2128028
! Node: Fixed Headers2136179
! Node: Standard Libraries2137842
! Node: Disappointments2139214
! Node: C++ Misunderstandings2143572
! Node: Static Definitions2144383
! Node: Name lookup2145436
! Ref: Name lookup-Footnote-12150215
! Node: Temporaries2150402
! Node: Copy Assignment2152378
! Node: Non-bugs2154185
! Node: Warnings and Errors2164692
! Node: Bugs2166454
! Node: Bug Criteria2166921
! Node: Bug Reporting2169131
! Node: Service2169349
! Node: Contributing2170168
! Node: Funding2170908
! Node: GNU Project2173397
! Node: Copying2174043
! Node: GNU Free Documentation License2211571
! Node: Contributors2236708
! Node: Option Index2276151
! Node: Keyword Index2518336
  
  End Tag Table
--- 60373,60759 ----
  Ref: Wtrigraphs242101
  Node: Debugging Options274754
  Node: Optimize Options289204
! Ref: Type-punning352018
! Node: Instrumentation Options442633
! Node: Preprocessor Options477942
! Ref: dashMF482788
! Ref: fdollars-in-identifiers487300
! Node: Assembler Options499099
! Node: Link Options499791
! Ref: Link Options-Footnote-1513629
! Node: Directory Options513963
! Node: Code Gen Options522350
! Node: Developer Options550616
! Node: Submodel Options589553
! Node: AArch64 Options591287
! Ref: aarch64-feature-modifiers600264
! Node: Adapteva Epiphany Options601208
! Node: ARC Options607158
! Node: ARM Options625795
! Node: AVR Options645902
! Node: Blackfin Options667789
! Node: C6X Options675804
! Node: CRIS Options677347
! Node: CR16 Options681091
! Node: Darwin Options681998
! Node: DEC Alpha Options689439
! Node: FR30 Options701027
! Node: FT32 Options701593
! Node: FRV Options702319
! Node: GNU/Linux Options709038
! Node: H8/300 Options710420
! Node: HPPA Options711870
! Node: IA-64 Options721401
! Node: LM32 Options729527
! Node: M32C Options730051
! Node: M32R/D Options731325
! Node: M680x0 Options734871
! Node: MCore Options749034
! Node: MeP Options750537
! Node: MicroBlaze Options754497
! Node: MIPS Options757293
! Node: MMIX Options792805
! Node: MN10300 Options795287
! Node: Moxie Options797830
! Node: MSP430 Options798318
! Node: NDS32 Options803028
! Node: Nios II Options804922
! Node: Nvidia PTX Options815843
! Node: PDP-11 Options818103
! Node: picoChip Options819800
! Node: PowerPC Options821941
! Node: RISC-V Options822164
! Node: RL78 Options825924
! Node: RS/6000 and PowerPC Options829701
! Node: RX Options872978
! Node: S/390 and zSeries Options881581
! Node: Score Options892057
! Node: SH Options892899
! Node: Solaris 2 Options908057
! Node: SPARC Options909301
! Node: SPU Options924919
! Node: System V Options929856
! Node: TILE-Gx Options930682
! Node: TILEPro Options931700
! Node: V850 Options932204
! Node: VAX Options938896
! Node: Visium Options939434
! Node: VMS Options941742
! Node: VxWorks Options942556
! Node: x86 Options943708
! Node: x86 Windows Options997888
! Node: Xstormy16 Options1000696
! Node: Xtensa Options1000990
! Node: zSeries Options1006139
! Node: Spec Files1006335
! Node: Environment Variables1028213
! Node: Precompiled Headers1036938
! Node: C Implementation1042955
! Node: Translation implementation1044644
! Node: Environment implementation1045236
! Node: Identifiers implementation1045791
! Node: Characters implementation1046878
! Node: Integers implementation1050529
! Node: Floating point implementation1052579
! Node: Arrays and pointers implementation1055644
! Ref: Arrays and pointers implementation-Footnote-11057103
! Node: Hints implementation1057227
! Node: Structures unions enumerations and bit-fields implementation1058724
! Node: Qualifiers implementation1060949
! Node: Declarators implementation1062729
! Node: Statements implementation1063071
! Node: Preprocessing directives implementation1063398
! Node: Library functions implementation1065720
! Node: Architecture implementation1066370
! Node: Locale-specific behavior implementation1068012
! Node: C++ Implementation1068317
! Node: Conditionally-supported behavior1069599
! Node: Exception handling1070217
! Node: C Extensions1070626
! Node: Statement Exprs1075910
! Node: Local Labels1080386
! Node: Labels as Values1083359
! Ref: Labels as Values-Footnote-11085884
! Node: Nested Functions1086067
! Node: Constructing Calls1090025
! Node: Typeof1094743
! Node: Conditionals1098671
! Node: __int1281099561
! Node: Long Long1100085
! Node: Complex1101561
! Node: Floating Types1104146
! Node: Half-Precision1107611
! Node: Decimal Float1110016
! Node: Hex Floats1111869
! Node: Fixed-Point1112905
! Node: Named Address Spaces1116185
! Ref: AVR Named Address Spaces1116871
! Node: Zero Length1123205
! Node: Empty Structures1126244
! Node: Variable Length1126650
! Node: Variadic Macros1129368
! Node: Escaped Newlines1131746
! Node: Subscripting1132607
! Node: Pointer Arith1133333
! Node: Pointers to Arrays1133907
! Node: Initializers1134651
! Node: Compound Literals1135152
! Node: Designated Inits1138719
! Node: Case Ranges1142455
! Node: Cast to Union1143136
! Node: Mixed Declarations1144262
! Node: Function Attributes1144772
! Node: Common Function Attributes1147886
! Node: AArch64 Function Attributes1194342
! Node: ARC Function Attributes1199749
! Node: ARM Function Attributes1201441
! Node: AVR Function Attributes1205099
! Node: Blackfin Function Attributes1208570
! Node: CR16 Function Attributes1211066
! Node: Epiphany Function Attributes1211593
! Node: H8/300 Function Attributes1214344
! Node: IA-64 Function Attributes1215540
! Node: M32C Function Attributes1216582
! Node: M32R/D Function Attributes1218917
! Node: m68k Function Attributes1220390
! Node: MCORE Function Attributes1221334
! Node: MeP Function Attributes1222142
! Node: MicroBlaze Function Attributes1223443
! Node: Microsoft Windows Function Attributes1224949
! Node: MIPS Function Attributes1229532
! Node: MSP430 Function Attributes1235089
! Node: NDS32 Function Attributes1238934
! Node: Nios II Function Attributes1241353
! Node: Nvidia PTX Function Attributes1242647
! Node: PowerPC Function Attributes1243262
! Node: RL78 Function Attributes1250269
! Node: RX Function Attributes1251506
! Node: S/390 Function Attributes1254042
! Node: SH Function Attributes1255861
! Node: SPU Function Attributes1259285
! Node: Symbian OS Function Attributes1260090
! Node: V850 Function Attributes1260427
! Node: Visium Function Attributes1260972
! Node: x86 Function Attributes1261500
! Node: Xstormy16 Function Attributes1273959
! Node: Variable Attributes1274466
! Node: Common Variable Attributes1275928
! Node: AVR Variable Attributes1287034
! Node: Blackfin Variable Attributes1292303
! Node: H8/300 Variable Attributes1293162
! Node: IA-64 Variable Attributes1294236
! Node: M32R/D Variable Attributes1294987
! Node: MeP Variable Attributes1295770
! Node: Microsoft Windows Variable Attributes1297873
! Node: MSP430 Variable Attributes1300332
! Node: Nvidia PTX Variable Attributes1301531
! Node: PowerPC Variable Attributes1302148
! Node: RL78 Variable Attributes1302705
! Node: SPU Variable Attributes1303123
! Node: V850 Variable Attributes1303488
! Node: x86 Variable Attributes1304120
! Node: Xstormy16 Variable Attributes1305176
! Node: Type Attributes1305751
! Node: Common Type Attributes1307070
! Node: ARM Type Attributes1322554
! Node: MeP Type Attributes1323338
! Node: PowerPC Type Attributes1323740
! Node: SPU Type Attributes1324729
! Node: x86 Type Attributes1325148
! Node: Label Attributes1326136
! Node: Enumerator Attributes1328070
! Node: Statement Attributes1329390
! Node: Attribute Syntax1330874
! Node: Function Prototypes1342135
! Node: C++ Comments1343916
! Node: Dollar Signs1344435
! Node: Character Escapes1344900
! Node: Alignment1345184
! Node: Inline1346556
! Node: Volatiles1351358
! Node: Using Assembly Language with C1354258
! Node: Basic Asm1355495
! Node: Extended Asm1360846
! Ref: Volatile1364904
! Ref: AssemblerTemplate1368976
! Ref: OutputOperands1373201
! Ref: FlagOutputOperands1380113
! Ref: InputOperands1382128
! Ref: Clobbers1386363
! Ref: GotoLabels1389669
! Ref: x86Operandmodifiers1391802
! Ref: x86floatingpointasmoperands1394068
! Node: Constraints1397398
! Node: Simple Constraints1398504
! Node: Multi-Alternative1405829
! Node: Modifiers1407504
! Node: Machine Constraints1410301
! Node: Asm Labels1468427
! Node: Explicit Register Variables1470047
! Ref: Explicit Reg Vars1470261
! Node: Global Register Variables1470870
! Ref: Global Reg Vars1471078
! Node: Local Register Variables1474920
! Ref: Local Reg Vars1475140
! Node: Size of an asm1478450
! Node: Alternate Keywords1479929
! Node: Incomplete Enums1481428
! Node: Function Names1482185
! Node: Return Address1484083
! Node: Vector Extensions1488024
! Node: Offsetof1495309
! Node: __sync Builtins1496150
! Node: __atomic Builtins1502595
! Node: Integer Overflow Builtins1516085
! Node: x86 specific memory model extensions for transactional memory1522564
! Node: Object Size Checking1523830
! Node: Pointer Bounds Checker builtins1529858
! Node: Cilk Plus Builtins1535864
! Node: Other Builtins1536781
! Node: Target Builtins1573761
! Node: AArch64 Built-in Functions1575330
! Node: Alpha Built-in Functions1575785
! Node: Altera Nios II Built-in Functions1578833
! Node: ARC Built-in Functions1583200
! Node: ARC SIMD Built-in Functions1588411
! Node: ARM iWMMXt Built-in Functions1597307
! Node: ARM C Language Extensions (ACLE)1604303
! Node: ARM Floating Point Status and Control Intrinsics1605642
! Node: ARM ARMv8-M Security Extensions1606127
! Node: AVR Built-in Functions1607473
! Node: Blackfin Built-in Functions1610801
! Node: FR-V Built-in Functions1611420
! Node: Argument Types1612286
! Node: Directly-mapped Integer Functions1614040
! Node: Directly-mapped Media Functions1615124
! Node: Raw read/write Functions1622158
! Node: Other Built-in Functions1623072
! Node: MIPS DSP Built-in Functions1624258
! Node: MIPS Paired-Single Support1636756
! Node: MIPS Loongson Built-in Functions1638255
! Node: Paired-Single Arithmetic1644782
! Node: Paired-Single Built-in Functions1645730
! Node: MIPS-3D Built-in Functions1648397
! Node: MIPS SIMD Architecture (MSA) Support1653774
! Node: MIPS SIMD Architecture Built-in Functions1656637
! Node: Other MIPS Built-in Functions1683467
! Node: MSP430 Built-in Functions1684476
! Node: NDS32 Built-in Functions1685877
! Node: picoChip Built-in Functions1687170
! Node: PowerPC Built-in Functions1688514
! Node: PowerPC AltiVec/VSX Built-in Functions1714180
! Node: PowerPC Hardware Transactional Memory Built-in Functions1875231
! Node: RX Built-in Functions1883722
! Node: S/390 System z Built-in Functions1887755
! Node: SH Built-in Functions1892990
! Node: SPARC VIS Built-in Functions1894718
! Node: SPU Built-in Functions1903248
! Node: TI C6X Built-in Functions1904964
! Node: TILE-Gx Built-in Functions1905988
! Node: TILEPro Built-in Functions1907105
! Node: x86 Built-in Functions1908203
! Node: x86 transactional memory intrinsics1968442
! Node: Target Format Checks1971662
! Node: Solaris Format Checks1972094
! Node: Darwin Format Checks1972520
! Node: Pragmas1973338
! Node: AArch64 Pragmas1974111
! Node: ARM Pragmas1974568
! Node: M32C Pragmas1975195
! Node: MeP Pragmas1976269
! Node: RS/6000 and PowerPC Pragmas1978338
! Node: S/390 Pragmas1979078
! Node: Darwin Pragmas1979644
! Node: Solaris Pragmas1980697
! Node: Symbol-Renaming Pragmas1981858
! Node: Structure-Layout Pragmas1983471
! Node: Weak Pragmas1985758
! Node: Diagnostic Pragmas1986493
! Node: Visibility Pragmas1989600
! Node: Push/Pop Macro Pragmas1990285
! Node: Function Specific Option Pragmas1991257
! Node: Loop-Specific Pragmas1993102
! Node: Unnamed Fields1994192
! Node: Thread-Local1996390
! Node: C99 Thread-Local Edits1998496
! Node: C++98 Thread-Local Edits2000508
! Node: Binary constants2003952
! Node: C++ Extensions2004623
! Node: C++ Volatiles2006253
! Node: Restricted Pointers2008601
! Node: Vague Linkage2010192
! Node: C++ Interface2013816
! Ref: C++ Interface-Footnote-12017609
! Node: Template Instantiation2017745
! Node: Bound member functions2025229
! Node: C++ Attributes2026761
! Node: Function Multiversioning2030831
! Node: Type Traits2032636
! Node: C++ Concepts2039124
! Node: Deprecated Features2040619
! Node: Backwards Compatibility2043581
! Node: Objective-C2044933
! Node: GNU Objective-C runtime API2045542
! Node: Modern GNU Objective-C runtime API2046549
! Node: Traditional GNU Objective-C runtime API2048986
! Node: Executing code before main2049714
! Node: What you can and what you cannot do in +load2052456
! Node: Type encoding2054828
! Node: Legacy type encoding2060168
! Node: @encode2061259
! Node: Method signatures2061804
! Node: Garbage Collection2063799
! Node: Constant string objects2066488
! Node: compatibility_alias2068996
! Node: Exceptions2069722
! Node: Synchronization2072433
! Node: Fast enumeration2073617
! Node: Using fast enumeration2073929
! Node: c99-like fast enumeration syntax2075140
! Node: Fast enumeration details2075843
! Node: Fast enumeration protocol2078184
! Node: Messaging with the GNU Objective-C runtime2081336
! Node: Dynamically registering methods2082707
! Node: Forwarding hook2084398
! Node: Compatibility2087439
! Node: Gcov2094006
! Node: Gcov Intro2094541
! Node: Invoking Gcov2097259
! Node: Gcov and Optimization2112478
! Node: Gcov Data Files2115844
! Node: Cross-profiling2117239
! Node: Gcov-tool2119090
! Node: Gcov-tool Intro2119515
! Node: Invoking Gcov-tool2121476
! Node: Gcov-dump2124021
! Node: Gcov-dump Intro2124343
! Node: Invoking Gcov-dump2124610
! Node: Trouble2125279
! Node: Actual Bugs2126697
! Node: Interoperation2127144
! Node: Incompatibilities2134036
! Node: Fixed Headers2142187
! Node: Standard Libraries2143850
! Node: Disappointments2145222
! Node: C++ Misunderstandings2149580
! Node: Static Definitions2150391
! Node: Name lookup2151444
! Ref: Name lookup-Footnote-12156223
! Node: Temporaries2156410
! Node: Copy Assignment2158386
! Node: Non-bugs2160193
! Node: Warnings and Errors2170700
! Node: Bugs2172462
! Node: Bug Criteria2172929
! Node: Bug Reporting2175139
! Node: Service2175357
! Node: Contributing2176176
! Node: Funding2176916
! Node: GNU Project2179405
! Node: Copying2180051
! Node: GNU Free Documentation License2217579
! Node: Contributors2242716
! Node: Option Index2282159
! Node: Keyword Index2524344
  
  End Tag Table
diff -Nrcpad gcc-7.4.0/gcc/doc/gccinstall.info gcc-7.5.0/gcc/doc/gccinstall.info
*** gcc-7.4.0/gcc/doc/gccinstall.info	Thu Dec  6 10:20:52 2018
--- gcc-7.5.0/gcc/doc/gccinstall.info	Thu Nov 14 07:57:25 2019
***************
*** 1,5 ****
  This is doc/gccinstall.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/doc/install.texi.
  
  Copyright (C) 1988-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is doc/gccinstall.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/doc/install.texi.
  
  Copyright (C) 1988-2017 Free Software Foundation, Inc.
  
diff -Nrcpad gcc-7.4.0/gcc/doc/gccint.info gcc-7.5.0/gcc/doc/gccint.info
*** gcc-7.4.0/gcc/doc/gccint.info	Thu Dec  6 10:20:53 2018
--- gcc-7.5.0/gcc/doc/gccint.info	Thu Nov 14 07:57:26 2019
***************
*** 1,5 ****
  This is doc/gccint.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/doc/gccint.texi.
  
  Copyright (C) 1988-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is doc/gccint.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/doc/gccint.texi.
  
  Copyright (C) 1988-2017 Free Software Foundation, Inc.
  
*************** Introduction
*** 57,63 ****
  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 7.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
--- 57,63 ----
  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 7.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
*************** By convention, keywords ending in `_noca
*** 4621,4627 ****
  specified for the particular test in an earlier `dg-options' or
  `dg-add-options' directive.
  
! 7.2.3.1 Data type sizes
  .......................
  
  `ilp32'
--- 4621,4638 ----
  specified for the particular test in an earlier `dg-options' or
  `dg-add-options' directive.
  
! 7.2.3.1 Endianness
! ..................
! 
! `be'
!      Target uses big-endian memory order for multi-byte and multi-word
!      data.
! 
! `le'
!      Target uses little-endian memory order for multi-byte and
!      multi-word data.
! 
! 7.2.3.2 Data type sizes
  .......................
  
  `ilp32'
*************** specified for the particular test in an
*** 4686,4692 ****
       Target has runtime support for any options added with
       `dg-add-options' for any `_FloatN' or `_FloatNx' type.
  
! 7.2.3.2 Fortran-specific attributes
  ...................................
  
  `fortran_integer_16'
--- 4697,4703 ----
       Target has runtime support for any options added with
       `dg-add-options' for any `_FloatN' or `_FloatNx' type.
  
! 7.2.3.3 Fortran-specific attributes
  ...................................
  
  `fortran_integer_16'
*************** specified for the particular test in an
*** 4698,4704 ****
  `fortran_large_real'
       Target supports Fortran `real' kinds larger than `real(8)'.
  
! 7.2.3.3 Vector-specific attributes
  ..................................
  
  `vect_condition'
--- 4709,4715 ----
  `fortran_large_real'
       Target supports Fortran `real' kinds larger than `real(8)'.
  
! 7.2.3.4 Vector-specific attributes
  ..................................
  
  `vect_condition'
*************** specified for the particular test in an
*** 4835,4841 ****
  `vect_max_reduc'
       Target supports max reduction for vectors.
  
! 7.2.3.4 Thread Local Storage attributes
  .......................................
  
  `tls'
--- 4846,4852 ----
  `vect_max_reduc'
       Target supports max reduction for vectors.
  
! 7.2.3.5 Thread Local Storage attributes
  .......................................
  
  `tls'
*************** specified for the particular test in an
*** 4847,4853 ****
  `tls_runtime'
       Test system supports executing TLS executables.
  
! 7.2.3.5 Decimal floating point attributes
  .........................................
  
  `dfp'
--- 4858,4864 ----
  `tls_runtime'
       Test system supports executing TLS executables.
  
! 7.2.3.6 Decimal floating point attributes
  .........................................
  
  `dfp'
*************** specified for the particular test in an
*** 4868,4874 ****
       Target generates decimal floating point instructions with current
       options.
  
! 7.2.3.6 ARM-specific attributes
  ...............................
  
  `arm32'
--- 4879,4885 ----
       Target generates decimal floating point instructions with current
       options.
  
! 7.2.3.7 ARM-specific attributes
  ...............................
  
  `arm32'
*************** specified for the particular test in an
*** 5044,5050 ****
       as supported in *note arm_coproc3_ok:: in addition the following:
       `MCRR2' and `MRRC2'.
  
! 7.2.3.7 AArch64-specific attributes
  ...................................
  
  `aarch64_asm_<ext>_ok'
--- 5055,5061 ----
       as supported in *note arm_coproc3_ok:: in addition the following:
       `MCRR2' and `MRRC2'.
  
! 7.2.3.8 AArch64-specific attributes
  ...................................
  
  `aarch64_asm_<ext>_ok'
*************** specified for the particular test in an
*** 5076,5082 ****
       required by -fpic for AArch64 small memory model.
  
  
! 7.2.3.8 MIPS-specific attributes
  ................................
  
  `mips64'
--- 5087,5093 ----
       required by -fpic for AArch64 small memory model.
  
  
! 7.2.3.9 MIPS-specific attributes
  ................................
  
  `mips64'
*************** specified for the particular test in an
*** 5102,5109 ****
  `mpaired_single'
       MIPS target supports `-mpaired-single'.
  
! 7.2.3.9 PowerPC-specific attributes
! ...................................
  
  `dfp_hw'
       PowerPC target supports executing hardware DFP instructions.
--- 5113,5120 ----
  `mpaired_single'
       MIPS target supports `-mpaired-single'.
  
! 7.2.3.10 PowerPC-specific attributes
! ....................................
  
  `dfp_hw'
       PowerPC target supports executing hardware DFP instructions.
*************** specified for the particular test in an
*** 5175,5181 ****
  `vsx_hw'
       PowerPC target supports executing VSX instructions (ISA 2.06).
  
! 7.2.3.10 Other hardware attributes
  ..................................
  
  `avx'
--- 5186,5192 ----
  `vsx_hw'
       PowerPC target supports executing VSX instructions (ISA 2.06).
  
! 7.2.3.11 Other hardware attributes
  ..................................
  
  `avx'
*************** specified for the particular test in an
*** 5238,5244 ****
       SImode.
  
  
! 7.2.3.11 Environment attributes
  ...............................
  
  `c'
--- 5249,5255 ----
       SImode.
  
  
! 7.2.3.12 Environment attributes
  ...............................
  
  `c'
*************** specified for the particular test in an
*** 5340,5346 ****
  `wchar'
       Target supports wide characters.
  
! 7.2.3.12 Other attributes
  .........................
  
  `automatic_stack_alignment'
--- 5351,5357 ----
  `wchar'
       Target supports wide characters.
  
! 7.2.3.13 Other attributes
  .........................
  
  `automatic_stack_alignment'
*************** specified for the particular test in an
*** 5466,5472 ****
  `comdat_group'
       Target uses comdat groups.
  
! 7.2.3.13 Local to tests in `gcc.target/i386'
  ............................................
  
  `3dnow'
--- 5477,5483 ----
  `comdat_group'
       Target uses comdat groups.
  
! 7.2.3.14 Local to tests in `gcc.target/i386'
  ............................................
  
  `3dnow'
*************** specified for the particular test in an
*** 5505,5517 ****
  `xop'
       Target supports compiling `xop' instructions.
  
! 7.2.3.14 Local to tests in `gcc.target/spu/ea'
  ..............................................
  
  `ealib'
       Target `__ea' library functions are available.
  
! 7.2.3.15 Local to tests in `gcc.test-framework'
  ...............................................
  
  `no'
--- 5516,5528 ----
  `xop'
       Target supports compiling `xop' instructions.
  
! 7.2.3.15 Local to tests in `gcc.target/spu/ea'
  ..............................................
  
  `ealib'
       Target `__ea' library functions are available.
  
! 7.2.3.16 Local to tests in `gcc.test-framework'
  ...............................................
  
  `no'
*************** Node: Test Directives204427
*** 52249,52607 ****
  Node: Directives204954
  Node: Selectors215260
  Node: Effective-Target Keywords216618
! Ref: arm_fp_ok224441
! Ref: arm_neon_ok225370
! Ref: arm_neon_ok_no_float_abi225539
! Ref: arm_neonv2_ok225706
! Ref: arm_fp16_ok225873
! Ref: arm_neon_fp16_ok226215
! Ref: arm_vfp3_ok227091
! Ref: arm_v8_1a_neon_ok227516
! Ref: arm_v8_2a_fp16_scalar_ok227942
! Ref: arm_v8_2a_fp16_neon_ok228389
! Ref: arm_coproc1_ok229449
! Ref: arm_coproc2_ok229575
! Ref: arm_coproc3_ok229808
! Node: Add Options241675
! Ref: arm_fp16_ieee242693
! Ref: arm_fp16_alternative242948
! Node: Require Support244845
! Node: Final Actions247352
! Node: Ada Tests253013
! Node: C Tests254177
! Node: LTO Testing258599
! Node: gcov Testing260241
! Node: profopt Testing263228
! Node: compat Testing264943
! Node: Torture Tests269183
! Node: GIMPLE Tests270819
! Node: RTL Tests272062
! Node: Options273369
! Node: Option file format273809
! Node: Option properties280799
! Node: Passes294780
! Node: Parsing pass295670
! Node: Cilk Plus Transformation299205
! Node: Gimplification pass302592
! Node: Pass manager304437
! Node: Tree SSA passes306282
! Node: RTL passes327843
! Node: Optimization info340164
! Node: Dump setup340982
! Node: Optimization groups342104
! Node: Dump files and streams343076
! Node: Dump output verbosity344267
! Node: Dump types345318
! Node: Dump examples346808
! Node: GENERIC348150
! Node: Deficiencies350025
! Node: Tree overview350266
! Node: Macros and Functions354393
! Node: Identifiers355218
! Node: Containers356829
! Node: Types357986
! Node: Declarations370082
! Node: Working with declarations370577
! Node: Internal structure376183
! Node: Current structure hierarchy376567
! Node: Adding new DECL node types378661
! Node: Attributes382946
! Node: Expression trees384191
! Node: Constant expressions385944
! Node: Storage References389250
! Node: Unary and Binary Expressions392769
! Node: Vectors412920
! Node: Statements418111
! Node: Basic Statements418643
! Node: Blocks423150
! Node: Statement Sequences424851
! Node: Empty Statements425184
! Node: Jumps425758
! Node: Cleanups426411
! Node: OpenMP428179
! Node: OpenACC434014
! Node: Functions435046
! Node: Function Basics435517
! Node: Function Properties439202
! Node: Language-dependent trees441984
! Node: C and C++ Trees442870
! Node: Types for C++445774
! Node: Namespaces450752
! Node: Classes453859
! Node: Functions for C++458917
! Node: Statements for C++465170
! Node: C++ Expressions473944
! Node: Java Trees475445
! Node: GIMPLE475558
! Node: Tuple representation479220
! Node: Class hierarchy of GIMPLE statements486153
! Node: GIMPLE instruction set491141
! Node: GIMPLE Exception Handling492825
! Node: Temporaries494739
! Ref: Temporaries-Footnote-1496054
! Node: Operands496117
! Node: Compound Expressions496879
! Node: Compound Lvalues497113
! Node: Conditional Expressions497875
! Node: Logical Operators498533
! Node: Manipulating GIMPLE statements505398
! Node: Tuple specific accessors511332
! Node: `GIMPLE_ASM'512169
! Node: `GIMPLE_ASSIGN'514557
! Node: `GIMPLE_BIND'519267
! Node: `GIMPLE_CALL'521086
! Node: `GIMPLE_CATCH'525119
! Node: `GIMPLE_COND'526275
! Node: `GIMPLE_DEBUG'529076
! Node: `GIMPLE_EH_FILTER'532460
! Node: `GIMPLE_LABEL'534029
! Node: `GIMPLE_GOTO'534648
! Node: `GIMPLE_NOP'535177
! Node: `GIMPLE_OMP_ATOMIC_LOAD'535545
! Node: `GIMPLE_OMP_ATOMIC_STORE'536547
! Node: `GIMPLE_OMP_CONTINUE'537251
! Node: `GIMPLE_OMP_CRITICAL'538736
! Node: `GIMPLE_OMP_FOR'539735
! Node: `GIMPLE_OMP_MASTER'543157
! Node: `GIMPLE_OMP_ORDERED'543540
! Node: `GIMPLE_OMP_PARALLEL'543940
! Node: `GIMPLE_OMP_RETURN'546716
! Node: `GIMPLE_OMP_SECTION'547366
! Node: `GIMPLE_OMP_SECTIONS'548032
! Node: `GIMPLE_OMP_SINGLE'549647
! Node: `GIMPLE_PHI'550598
! Node: `GIMPLE_RESX'551882
! Node: `GIMPLE_RETURN'552607
! Node: `GIMPLE_SWITCH'553187
! Node: `GIMPLE_TRY'555066
! Node: `GIMPLE_WITH_CLEANUP_EXPR'556843
! Node: GIMPLE sequences557726
! Node: Sequence iterators560932
! Node: Adding a new GIMPLE statement code569390
! Node: Statement and operand traversals570735
! Node: Tree SSA573335
! Node: Annotations575121
! Node: SSA Operands575526
! Node: SSA589607
! Node: Alias analysis599313
! Node: Memory model603093
! Node: RTL604456
! Node: RTL Objects606644
! Node: RTL Classes610518
! Node: Accessors615565
! Node: Special Accessors617959
! Node: Flags623729
! Node: Machine Modes638491
! Node: Constants652169
! Node: Regs and Memory660255
! Node: Arithmetic678164
! Node: Comparisons688218
! Node: Bit-Fields692510
! Node: Vector Operations694062
! Node: Conversions695944
! Node: RTL Declarations700442
! Node: Side Effects701263
! Node: Incdec718278
! Node: Assembler721613
! Node: Debug Information723158
! Node: Insns724356
! Node: Calls750764
! Node: Sharing753357
! Node: Reading RTL756467
! Node: Control Flow757459
! Node: Basic Blocks759227
! Node: Edges764683
! Node: Profile information773305
! Node: Maintaining the CFG777989
! Node: Liveness information783758
! Node: Loop Analysis and Representation785884
! Node: Loop representation786920
! Node: Loop querying794485
! Node: Loop manipulation797323
! Node: LCSSA799666
! Node: Scalar evolutions801738
! Node: loop-iv804982
! Node: Number of iterations806908
! Node: Dependency analysis810993
! Node: Machine Desc817347
! Node: Overview819910
! Node: Patterns821951
! Node: Example825459
! Node: RTL Template826920
! Node: Output Template837576
! Node: Output Statement841541
! Node: Predicates845880
! Node: Machine-Independent Predicates848798
! Node: Defining Predicates853743
! Node: Constraints859708
! Node: Simple Constraints861177
! Node: Multi-Alternative874033
! Node: Class Preferences877242
! Node: Modifiers878134
! Node: Machine Constraints882866
! Node: Disable Insn Alternatives942244
! Node: Define Constraints945733
! Node: C Constraint Interface953130
! Node: Standard Names956270
! Ref: shift patterns982326
! Ref: prologue instruction pattern1033214
! Ref: window_save instruction pattern1033707
! Ref: epilogue instruction pattern1033982
! Node: Pattern Ordering1052866
! Node: Dependent Patterns1054102
! Node: Jump Patterns1055722
! Ref: Jump Patterns-Footnote-11057866
! Node: Looping Patterns1057912
! Node: Insn Canonicalizations1062640
! Node: Expander Definitions1067231
! Node: Insn Splitting1075443
! Node: Including Patterns1085045
! Node: Peephole Definitions1086825
! Node: define_peephole1088078
! Node: define_peephole21094409
! Node: Insn Attributes1097475
! Node: Defining Attributes1098657
! Ref: define_enum_attr1102145
! Node: Expressions1103180
! Node: Tagging Insns1109929
! Node: Attr Example1114282
! Node: Insn Lengths1116656
! Node: Constant Attributes1120064
! Node: Mnemonic Attribute1121240
! Node: Delay Slots1122759
! Node: Processor pipeline description1125982
! Ref: Processor pipeline description-Footnote-11144794
! Node: Conditional Execution1145116
! Node: Define Subst1148596
! Node: Define Subst Example1150630
! Node: Define Subst Pattern Matching1153624
! Node: Define Subst Output Template1154849
! Node: Constant Definitions1156919
! Ref: define_enum1160701
! Node: Iterators1161189
! Node: Mode Iterators1161767
! Node: Defining Mode Iterators1162745
! Node: Substitutions1164239
! Node: Examples1166480
! Node: Code Iterators1167928
! Node: Int Iterators1170207
! Node: Subst Iterators1172650
! Node: Target Macros1174342
! Node: Target Structure1177354
! Node: Driver1179469
! Node: Run-time Target1198437
! Node: Per-Function Data1208135
! Node: Storage Layout1210900
! Node: Type Layout1237866
! Node: Registers1251211
! Node: Register Basics1252185
! Node: Allocation Order1257620
! Node: Values in Registers1260108
! Node: Leaf Functions1267597
! Node: Stack Registers1270455
! Node: Register Classes1271727
! Node: Stack and Calling1305342
! Node: Frame Layout1305948
! Node: Exception Handling1316799
! Node: Stack Checking1323019
! Node: Frame Registers1327859
! Node: Elimination1336124
! Node: Stack Arguments1339510
! Node: Register Arguments1346691
! Node: Scalar Return1368997
! Node: Aggregate Return1375452
! Node: Caller Saves1379640
! Node: Function Entry1380383
! Node: Profiling1391485
! Node: Tail Calls1393599
! Node: Shrink-wrapping separate components1395510
! Node: Stack Smashing Protection1398551
! Node: Miscellaneous Register Hooks1400474
! Node: Varargs1401340
! Node: Trampolines1411462
! Node: Library Calls1418626
! Node: Addressing Modes1423310
! Node: Anchored Addresses1446830
! Node: Condition Code1449479
! Node: CC0 Condition Codes1451806
! Node: MODE_CC Condition Codes1455052
! Node: Costs1461845
! Node: Scheduling1482486
! Node: Sections1506418
! Node: PIC1522347
! Node: Assembler Format1524407
! Node: File Framework1525545
! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1533178
! Node: Data Output1536443
! Node: Uninitialized Data1544396
! Node: Label Output1549407
! Node: Initialization1574030
! Node: Macros for Initialization1579992
! Node: Instruction Output1586715
! Node: Dispatch Tables1597350
! Node: Exception Region Output1601750
! Node: Alignment Output1608849
! Node: Debugging Info1613451
! Node: All Debuggers1614121
! Node: DBX Options1616976
! Node: DBX Hooks1622425
! Node: File Names and DBX1623734
! Node: SDB and DWARF1625846
! Node: VMS Debug1632135
! Node: Floating Point1632722
! Node: Mode Switching1635477
! Node: Target Attributes1639911
! Node: Emulated TLS1648875
! Node: MIPS Coprocessors1652265
! Node: PCH Target1653424
! Node: C++ ABI1655266
! Node: Named Address Spaces1660058
! Node: Misc1665970
! Ref: TARGET_SHIFT_TRUNCATION_MASK1673830
! Node: Host Config1729257
! Node: Host Common1730326
! Node: Filesystem1732705
! Node: Host Misc1736820
! Node: Fragments1739269
! Node: Target Fragment1740464
! Node: Host Fragment1751191
! Node: Collect21751431
! Node: Header Dirs1754067
! Node: Type Information1755490
! Node: GTY Options1758770
! Node: Inheritance and GTY1770027
! Ref: Inheritance and GTY-Footnote-11771592
! Node: User GC1771860
! Node: GGC Roots1775595
! Node: Files1776311
! Node: Invoking the garbage collector1779018
! Node: Troubleshooting1780521
! Node: Plugins1781597
! Node: Plugins loading1782726
! Node: Plugin API1783595
! Node: Plugins pass1791322
! Node: Plugins GC1793291
! Node: Plugins description1795006
! Node: Plugins attr1795541
! Node: Plugins recording1797812
! Node: Plugins gate1798662
! Node: Plugins tracking1799253
! Node: Plugins building1799841
! Node: LTO1801630
! Node: LTO Overview1802502
! Node: LTO object file layout1808329
! Node: IPA1812961
! Node: WHOPR1821926
! Node: Internal flags1826487
! Node: Match and Simplify1827899
! Node: GIMPLE API1828860
! Node: The Language1831655
! Node: Funding1843021
! Node: GNU Project1845519
! Node: Copying1846168
! Node: GNU Free Documentation License1883699
! Node: Contributors1908839
! Node: Option Index1948285
! Node: Concept Index1949162
  
  End Tag Table
--- 52260,52618 ----
  Node: Directives204954
  Node: Selectors215260
  Node: Effective-Target Keywords216618
! Ref: arm_fp_ok224659
! Ref: arm_neon_ok225588
! Ref: arm_neon_ok_no_float_abi225757
! Ref: arm_neonv2_ok225924
! Ref: arm_fp16_ok226091
! Ref: arm_neon_fp16_ok226433
! Ref: arm_vfp3_ok227309
! Ref: arm_v8_1a_neon_ok227734
! Ref: arm_v8_2a_fp16_scalar_ok228160
! Ref: arm_v8_2a_fp16_neon_ok228607
! Ref: arm_coproc1_ok229667
! Ref: arm_coproc2_ok229793
! Ref: arm_coproc3_ok230026
! Node: Add Options241895
! Ref: arm_fp16_ieee242913
! Ref: arm_fp16_alternative243168
! Node: Require Support245065
! Node: Final Actions247572
! Node: Ada Tests253233
! Node: C Tests254397
! Node: LTO Testing258819
! Node: gcov Testing260461
! Node: profopt Testing263448
! Node: compat Testing265163
! Node: Torture Tests269403
! Node: GIMPLE Tests271039
! Node: RTL Tests272282
! Node: Options273589
! Node: Option file format274029
! Node: Option properties281019
! Node: Passes295000
! Node: Parsing pass295890
! Node: Cilk Plus Transformation299425
! Node: Gimplification pass302812
! Node: Pass manager304657
! Node: Tree SSA passes306502
! Node: RTL passes328063
! Node: Optimization info340384
! Node: Dump setup341202
! Node: Optimization groups342324
! Node: Dump files and streams343296
! Node: Dump output verbosity344487
! Node: Dump types345538
! Node: Dump examples347028
! Node: GENERIC348370
! Node: Deficiencies350245
! Node: Tree overview350486
! Node: Macros and Functions354613
! Node: Identifiers355438
! Node: Containers357049
! Node: Types358206
! Node: Declarations370302
! Node: Working with declarations370797
! Node: Internal structure376403
! Node: Current structure hierarchy376787
! Node: Adding new DECL node types378881
! Node: Attributes383166
! Node: Expression trees384411
! Node: Constant expressions386164
! Node: Storage References389470
! Node: Unary and Binary Expressions392989
! Node: Vectors413140
! Node: Statements418331
! Node: Basic Statements418863
! Node: Blocks423370
! Node: Statement Sequences425071
! Node: Empty Statements425404
! Node: Jumps425978
! Node: Cleanups426631
! Node: OpenMP428399
! Node: OpenACC434234
! Node: Functions435266
! Node: Function Basics435737
! Node: Function Properties439422
! Node: Language-dependent trees442204
! Node: C and C++ Trees443090
! Node: Types for C++445994
! Node: Namespaces450972
! Node: Classes454079
! Node: Functions for C++459137
! Node: Statements for C++465390
! Node: C++ Expressions474164
! Node: Java Trees475665
! Node: GIMPLE475778
! Node: Tuple representation479440
! Node: Class hierarchy of GIMPLE statements486373
! Node: GIMPLE instruction set491361
! Node: GIMPLE Exception Handling493045
! Node: Temporaries494959
! Ref: Temporaries-Footnote-1496274
! Node: Operands496337
! Node: Compound Expressions497099
! Node: Compound Lvalues497333
! Node: Conditional Expressions498095
! Node: Logical Operators498753
! Node: Manipulating GIMPLE statements505618
! Node: Tuple specific accessors511552
! Node: `GIMPLE_ASM'512389
! Node: `GIMPLE_ASSIGN'514777
! Node: `GIMPLE_BIND'519487
! Node: `GIMPLE_CALL'521306
! Node: `GIMPLE_CATCH'525339
! Node: `GIMPLE_COND'526495
! Node: `GIMPLE_DEBUG'529296
! Node: `GIMPLE_EH_FILTER'532680
! Node: `GIMPLE_LABEL'534249
! Node: `GIMPLE_GOTO'534868
! Node: `GIMPLE_NOP'535397
! Node: `GIMPLE_OMP_ATOMIC_LOAD'535765
! Node: `GIMPLE_OMP_ATOMIC_STORE'536767
! Node: `GIMPLE_OMP_CONTINUE'537471
! Node: `GIMPLE_OMP_CRITICAL'538956
! Node: `GIMPLE_OMP_FOR'539955
! Node: `GIMPLE_OMP_MASTER'543377
! Node: `GIMPLE_OMP_ORDERED'543760
! Node: `GIMPLE_OMP_PARALLEL'544160
! Node: `GIMPLE_OMP_RETURN'546936
! Node: `GIMPLE_OMP_SECTION'547586
! Node: `GIMPLE_OMP_SECTIONS'548252
! Node: `GIMPLE_OMP_SINGLE'549867
! Node: `GIMPLE_PHI'550818
! Node: `GIMPLE_RESX'552102
! Node: `GIMPLE_RETURN'552827
! Node: `GIMPLE_SWITCH'553407
! Node: `GIMPLE_TRY'555286
! Node: `GIMPLE_WITH_CLEANUP_EXPR'557063
! Node: GIMPLE sequences557946
! Node: Sequence iterators561152
! Node: Adding a new GIMPLE statement code569610
! Node: Statement and operand traversals570955
! Node: Tree SSA573555
! Node: Annotations575341
! Node: SSA Operands575746
! Node: SSA589827
! Node: Alias analysis599533
! Node: Memory model603313
! Node: RTL604676
! Node: RTL Objects606864
! Node: RTL Classes610738
! Node: Accessors615785
! Node: Special Accessors618179
! Node: Flags623949
! Node: Machine Modes638711
! Node: Constants652389
! Node: Regs and Memory660475
! Node: Arithmetic678384
! Node: Comparisons688438
! Node: Bit-Fields692730
! Node: Vector Operations694282
! Node: Conversions696164
! Node: RTL Declarations700662
! Node: Side Effects701483
! Node: Incdec718498
! Node: Assembler721833
! Node: Debug Information723378
! Node: Insns724576
! Node: Calls750984
! Node: Sharing753577
! Node: Reading RTL756687
! Node: Control Flow757679
! Node: Basic Blocks759447
! Node: Edges764903
! Node: Profile information773525
! Node: Maintaining the CFG778209
! Node: Liveness information783978
! Node: Loop Analysis and Representation786104
! Node: Loop representation787140
! Node: Loop querying794705
! Node: Loop manipulation797543
! Node: LCSSA799886
! Node: Scalar evolutions801958
! Node: loop-iv805202
! Node: Number of iterations807128
! Node: Dependency analysis811213
! Node: Machine Desc817567
! Node: Overview820130
! Node: Patterns822171
! Node: Example825679
! Node: RTL Template827140
! Node: Output Template837796
! Node: Output Statement841761
! Node: Predicates846100
! Node: Machine-Independent Predicates849018
! Node: Defining Predicates853963
! Node: Constraints859928
! Node: Simple Constraints861397
! Node: Multi-Alternative874253
! Node: Class Preferences877462
! Node: Modifiers878354
! Node: Machine Constraints883086
! Node: Disable Insn Alternatives942464
! Node: Define Constraints945953
! Node: C Constraint Interface953350
! Node: Standard Names956490
! Ref: shift patterns982546
! Ref: prologue instruction pattern1033434
! Ref: window_save instruction pattern1033927
! Ref: epilogue instruction pattern1034202
! Node: Pattern Ordering1053086
! Node: Dependent Patterns1054322
! Node: Jump Patterns1055942
! Ref: Jump Patterns-Footnote-11058086
! Node: Looping Patterns1058132
! Node: Insn Canonicalizations1062860
! Node: Expander Definitions1067451
! Node: Insn Splitting1075663
! Node: Including Patterns1085265
! Node: Peephole Definitions1087045
! Node: define_peephole1088298
! Node: define_peephole21094629
! Node: Insn Attributes1097695
! Node: Defining Attributes1098877
! Ref: define_enum_attr1102365
! Node: Expressions1103400
! Node: Tagging Insns1110149
! Node: Attr Example1114502
! Node: Insn Lengths1116876
! Node: Constant Attributes1120284
! Node: Mnemonic Attribute1121460
! Node: Delay Slots1122979
! Node: Processor pipeline description1126202
! Ref: Processor pipeline description-Footnote-11145014
! Node: Conditional Execution1145336
! Node: Define Subst1148816
! Node: Define Subst Example1150850
! Node: Define Subst Pattern Matching1153844
! Node: Define Subst Output Template1155069
! Node: Constant Definitions1157139
! Ref: define_enum1160921
! Node: Iterators1161409
! Node: Mode Iterators1161987
! Node: Defining Mode Iterators1162965
! Node: Substitutions1164459
! Node: Examples1166700
! Node: Code Iterators1168148
! Node: Int Iterators1170427
! Node: Subst Iterators1172870
! Node: Target Macros1174562
! Node: Target Structure1177574
! Node: Driver1179689
! Node: Run-time Target1198657
! Node: Per-Function Data1208355
! Node: Storage Layout1211120
! Node: Type Layout1238086
! Node: Registers1251431
! Node: Register Basics1252405
! Node: Allocation Order1257840
! Node: Values in Registers1260328
! Node: Leaf Functions1267817
! Node: Stack Registers1270675
! Node: Register Classes1271947
! Node: Stack and Calling1305562
! Node: Frame Layout1306168
! Node: Exception Handling1317019
! Node: Stack Checking1323239
! Node: Frame Registers1328079
! Node: Elimination1336344
! Node: Stack Arguments1339730
! Node: Register Arguments1346911
! Node: Scalar Return1369217
! Node: Aggregate Return1375672
! Node: Caller Saves1379860
! Node: Function Entry1380603
! Node: Profiling1391705
! Node: Tail Calls1393819
! Node: Shrink-wrapping separate components1395730
! Node: Stack Smashing Protection1398771
! Node: Miscellaneous Register Hooks1400694
! Node: Varargs1401560
! Node: Trampolines1411682
! Node: Library Calls1418846
! Node: Addressing Modes1423530
! Node: Anchored Addresses1447050
! Node: Condition Code1449699
! Node: CC0 Condition Codes1452026
! Node: MODE_CC Condition Codes1455272
! Node: Costs1462065
! Node: Scheduling1482706
! Node: Sections1506638
! Node: PIC1522567
! Node: Assembler Format1524627
! Node: File Framework1525765
! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1533398
! Node: Data Output1536663
! Node: Uninitialized Data1544616
! Node: Label Output1549627
! Node: Initialization1574250
! Node: Macros for Initialization1580212
! Node: Instruction Output1586935
! Node: Dispatch Tables1597570
! Node: Exception Region Output1601970
! Node: Alignment Output1609069
! Node: Debugging Info1613671
! Node: All Debuggers1614341
! Node: DBX Options1617196
! Node: DBX Hooks1622645
! Node: File Names and DBX1623954
! Node: SDB and DWARF1626066
! Node: VMS Debug1632355
! Node: Floating Point1632942
! Node: Mode Switching1635697
! Node: Target Attributes1640131
! Node: Emulated TLS1649095
! Node: MIPS Coprocessors1652485
! Node: PCH Target1653644
! Node: C++ ABI1655486
! Node: Named Address Spaces1660278
! Node: Misc1666190
! Ref: TARGET_SHIFT_TRUNCATION_MASK1674050
! Node: Host Config1729477
! Node: Host Common1730546
! Node: Filesystem1732925
! Node: Host Misc1737040
! Node: Fragments1739489
! Node: Target Fragment1740684
! Node: Host Fragment1751411
! Node: Collect21751651
! Node: Header Dirs1754287
! Node: Type Information1755710
! Node: GTY Options1758990
! Node: Inheritance and GTY1770247
! Ref: Inheritance and GTY-Footnote-11771812
! Node: User GC1772080
! Node: GGC Roots1775815
! Node: Files1776531
! Node: Invoking the garbage collector1779238
! Node: Troubleshooting1780741
! Node: Plugins1781817
! Node: Plugins loading1782946
! Node: Plugin API1783815
! Node: Plugins pass1791542
! Node: Plugins GC1793511
! Node: Plugins description1795226
! Node: Plugins attr1795761
! Node: Plugins recording1798032
! Node: Plugins gate1798882
! Node: Plugins tracking1799473
! Node: Plugins building1800061
! Node: LTO1801850
! Node: LTO Overview1802722
! Node: LTO object file layout1808549
! Node: IPA1813181
! Node: WHOPR1822146
! Node: Internal flags1826707
! Node: Match and Simplify1828119
! Node: GIMPLE API1829080
! Node: The Language1831875
! Node: Funding1843241
! Node: GNU Project1845739
! Node: Copying1846388
! Node: GNU Free Documentation License1883919
! Node: Contributors1909059
! Node: Option Index1948505
! Node: Concept Index1949382
  
  End Tag Table
diff -Nrcpad gcc-7.4.0/gcc/doc/gcov-dump.1 gcc-7.5.0/gcc/doc/gcov-dump.1
*** gcc-7.4.0/gcc/doc/gcov-dump.1	Thu Dec  6 09:59:45 2018
--- gcc-7.5.0/gcc/doc/gcov-dump.1	Thu Nov 14 07:36:16 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GCOV-DUMP 1"
! .TH GCOV-DUMP 1 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCOV-DUMP 1"
! .TH GCOV-DUMP 1 "2019-11-14" "gcc-7.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-7.4.0/gcc/doc/gcov-tool.1 gcc-7.5.0/gcc/doc/gcov-tool.1
*** gcc-7.4.0/gcc/doc/gcov-tool.1	Thu Dec  6 09:59:45 2018
--- gcc-7.5.0/gcc/doc/gcov-tool.1	Thu Nov 14 07:36:16 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GCOV-TOOL 1"
! .TH GCOV-TOOL 1 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCOV-TOOL 1"
! .TH GCOV-TOOL 1 "2019-11-14" "gcc-7.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-7.4.0/gcc/doc/gcov.1 gcc-7.5.0/gcc/doc/gcov.1
*** gcc-7.4.0/gcc/doc/gcov.1	Thu Dec  6 09:59:45 2018
--- gcc-7.5.0/gcc/doc/gcov.1	Thu Nov 14 07:36:16 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GCOV 1"
! .TH GCOV 1 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GCOV 1"
! .TH GCOV 1 "2019-11-14" "gcc-7.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-7.4.0/gcc/doc/gfdl.7 gcc-7.5.0/gcc/doc/gfdl.7
*** gcc-7.4.0/gcc/doc/gfdl.7	Thu Dec  6 09:59:45 2018
--- gcc-7.5.0/gcc/doc/gfdl.7	Thu Nov 14 07:36:16 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GFDL 7"
! .TH GFDL 7 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GFDL 7"
! .TH GFDL 7 "2019-11-14" "gcc-7.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-7.4.0/gcc/doc/gfortran.1 gcc-7.5.0/gcc/doc/gfortran.1
*** gcc-7.4.0/gcc/doc/gfortran.1	Thu Dec  6 10:20:52 2018
--- gcc-7.5.0/gcc/doc/gfortran.1	Thu Nov 14 07:57:25 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GFORTRAN 1"
! .TH GFORTRAN 1 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GFORTRAN 1"
! .TH GFORTRAN 1 "2019-11-14" "gcc-7.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
*************** by type.  Explanations are in the follow
*** 224,230 ****
  .IP "\fICode Generation Options\fR" 4
  .IX Item "Code Generation Options"
  \&\fB\-faggressive\-function\-elimination \-fblas\-matmul\-limit=\fR\fIn\fR 
! \&\fB\-fbounds\-check \-fcheck\-array\-temporaries 
  \&\-fcheck=\fR\fI<all|array\-temps|bounds|do|mem|pointer|recursion>\fR 
  \&\fB\-fcoarray=\fR\fI<none|single|lib>\fR \fB\-fexternal\-blas \-ff2c
  \&\-ffrontend\-optimize 
--- 224,231 ----
  .IP "\fICode Generation Options\fR" 4
  .IX Item "Code Generation Options"
  \&\fB\-faggressive\-function\-elimination \-fblas\-matmul\-limit=\fR\fIn\fR 
! \&\fB\-fbounds\-check \-ftail\-call\-workaround \-ftail\-call\-workaround=\fR\fIn\fR 
! \&\fB\-fcheck\-array\-temporaries 
  \&\-fcheck=\fR\fI<all|array\-temps|bounds|do|mem|pointer|recursion>\fR 
  \&\fB\-fcoarray=\fR\fI<none|single|lib>\fR \fB\-fexternal\-blas \-ff2c
  \&\-ffrontend\-optimize 
*************** warnings for generated array temporaries
*** 1276,1281 ****
--- 1277,1317 ----
  .IP "\fB\-fbounds\-check\fR" 4
  .IX Item "-fbounds-check"
  Deprecated alias for \fB\-fcheck=bounds\fR.
+ .IP "\fB\-ftail\-call\-workaround\fR" 4
+ .IX Item "-ftail-call-workaround"
+ .PD 0
+ .IP "\fB\-ftail\-call\-workaround=\fR\fIn\fR" 4
+ .IX Item "-ftail-call-workaround=n"
+ .PD
+ Some C interfaces to Fortran codes violate the gfortran \s-1ABI\s0 by
+ omitting the hidden character length arguments as described in
+   This can lead to crashes
+ because pushing arguments for tail calls can overflow the stack.
+ .Sp
+ To provide a workaround for existing binary packages, this option
+ disables tail call optimization for gfortran procedures with character
+ arguments.  With \fB\-ftail\-call\-workaround=2\fR tail call optimization
+ is disabled in all gfortran procedures with character arguments,
+ with \fB\-ftail\-call\-workaround=1\fR or equivalent
+ \&\fB\-ftail\-call\-workaround\fR only in gfortran procedures with character
+ arguments that call implicitly prototyped procedures.
+ .Sp
+ Using this option can lead to problems including crashes due to
+ insufficient stack space.
+ .Sp
+ It is \fIvery strongly\fR recommended to fix the code in question.
+ The \fB\-fc\-prototypes\-external\fR option can be used to generate
+ prototypes which conform to gfortran's \s-1ABI,\s0 for inclusion in the
+ source code.
+ .Sp
+ Support for this option will likely be withdrawn in a future release
+ of gfortran.
+ .Sp
+ The negative form, \fB\-fno\-tail\-call\-workaround\fR or equivalent
+ \&\fB\-ftail\-call\-workaround=0\fR, can be used to disable this option.
+ .Sp
+ Default is currently \fB\-ftail\-call\-workaround\fR, this will change
+ in future releases.
  .IP "\fB\-fcheck\-array\-temporaries\fR" 4
  .IX Item "-fcheck-array-temporaries"
  Deprecated alias for \fB\-fcheck=array\-temps\fR.
diff -Nrcpad gcc-7.4.0/gcc/doc/gpl.7 gcc-7.5.0/gcc/doc/gpl.7
*** gcc-7.4.0/gcc/doc/gpl.7	Thu Dec  6 09:59:45 2018
--- gcc-7.5.0/gcc/doc/gpl.7	Thu Nov 14 07:36:16 2019
***************
*** 133,139 ****
  .\" ========================================================================
  .\"
  .IX Title "GPL 7"
! .TH GPL 7 "2018-12-06" "gcc-7.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
--- 133,139 ----
  .\" ========================================================================
  .\"
  .IX Title "GPL 7"
! .TH GPL 7 "2019-11-14" "gcc-7.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-7.4.0/gcc/doc/invoke.texi gcc-7.5.0/gcc/doc/invoke.texi
*** gcc-7.4.0/gcc/doc/invoke.texi	Mon Nov 26 15:08:49 2018
--- gcc-7.5.0/gcc/doc/invoke.texi	Thu Mar 28 08:53:49 2019
*************** results.  This is the default.
*** 7136,7148 ****
  @item -Os
  @opindex Os
  Optimize for size.  @option{-Os} enables all @option{-O2} optimizations that
! do not typically increase code size.  It also performs further
! optimizations designed to reduce code size.
  
  @option{-Os} disables the following optimization flags:
  @gccoptlist{-falign-functions  -falign-jumps  -falign-loops @gol
! -falign-labels  -freorder-blocks  -freorder-blocks-algorithm=stc @gol
! -freorder-blocks-and-partition  -fprefetch-loop-arrays}
  
  @item -Ofast
  @opindex Ofast
--- 7136,7150 ----
  @item -Os
  @opindex Os
  Optimize for size.  @option{-Os} enables all @option{-O2} optimizations that
! do not typically increase code size.
  
  @option{-Os} disables the following optimization flags:
  @gccoptlist{-falign-functions  -falign-jumps  -falign-loops @gol
! -falign-labels  -fprefetch-loop-arrays}
! 
! It also enables @option{-finline-functions}, causes the compiler to tune for
! code size rather than execution speed, and performs further optimizations
! designed to reduce code size.
  
  @item -Ofast
  @opindex Ofast
*************** heuristically decides which functions ar
*** 7261,7267 ****
  in this way.  This inlining applies to all functions, even those not declared
  inline.
  
! Enabled at level @option{-O2}.
  
  @item -findirect-inlining
  @opindex findirect-inlining
--- 7263,7269 ----
  in this way.  This inlining applies to all functions, even those not declared
  inline.
  
! Enabled at level @option{-O2}, @option{-O3}, @option{-Os}.
  
  @item -findirect-inlining
  @opindex findirect-inlining
*************** time thanks to previous inlining.  This
*** 7270,7276 ****
  when inlining itself is turned on by the @option{-finline-functions}
  or @option{-finline-small-functions} options.
  
! Enabled at level @option{-O2}.
  
  @item -finline-functions
  @opindex finline-functions
--- 7272,7278 ----
  when inlining itself is turned on by the @option{-finline-functions}
  or @option{-finline-small-functions} options.
  
! Enabled at level @option{-O2}, @option{-O3}, @option{-Os}.
  
  @item -finline-functions
  @opindex finline-functions
*************** If all calls to a given function are int
*** 7282,7288 ****
  declared @code{static}, then the function is normally not output as
  assembler code in its own right.
  
! Enabled at level @option{-O3}.
  
  @item -finline-functions-called-once
  @opindex finline-functions-called-once
--- 7284,7291 ----
  declared @code{static}, then the function is normally not output as
  assembler code in its own right.
  
! Enabled at levels @option{-O3}, @option{-Os}.  Also enabled
! by @option{-fprofile-use} and @option{-fauto-profile}.
  
  @item -finline-functions-called-once
  @opindex finline-functions-called-once
*************** Disable Book-E SPE ABI extensions for th
*** 21937,21948 ****
  @item -mabi=ibmlongdouble
  @opindex mabi=ibmlongdouble
  Change the current ABI to use IBM extended-precision long double.
! This is a PowerPC 32-bit SYSV ABI option.
  
  @item -mabi=ieeelongdouble
  @opindex mabi=ieeelongdouble
  Change the current ABI to use IEEE extended-precision long double.
! This is a PowerPC 32-bit Linux ABI option.
  
  @item -mabi=elfv1
  @opindex mabi=elfv1
--- 21940,21953 ----
  @item -mabi=ibmlongdouble
  @opindex mabi=ibmlongdouble
  Change the current ABI to use IBM extended-precision long double.
! This is a PowerPC 32-bit SYSV ABI option.  Requires @option{-mlong-double-128}
! to be enabled.
  
  @item -mabi=ieeelongdouble
  @opindex mabi=ieeelongdouble
  Change the current ABI to use IEEE extended-precision long double.
! This is a PowerPC 32-bit Linux ABI option.  Requires @option{-mlong-double-128}
! to be enabled.
  
  @item -mabi=elfv1
  @opindex mabi=elfv1
diff -Nrcpad gcc-7.4.0/gcc/doc/sourcebuild.texi gcc-7.5.0/gcc/doc/sourcebuild.texi
*** gcc-7.4.0/gcc/doc/sourcebuild.texi	Wed Sep 27 15:40:39 2017
--- gcc-7.5.0/gcc/doc/sourcebuild.texi	Fri Apr 19 03:30:33 2019
*************** By convention, keywords ending in @code{
*** 1273,1278 ****
--- 1273,1288 ----
  specified for the particular test in an earlier @code{dg-options} or
  @code{dg-add-options} directive.
  
+ @subsubsection Endianness
+ 
+ @table @code
+ @item be
+ Target uses big-endian memory order for multi-byte and multi-word data.
+ 
+ @item le
+ Target uses little-endian memory order for multi-byte and multi-word data.
+ @end table
+ 
  @subsubsection Data type sizes
  
  @table @code
diff -Nrcpad gcc-7.4.0/gcc/dse.c gcc-7.5.0/gcc/dse.c
*** gcc-7.4.0/gcc/dse.c	Tue Nov 20 14:47:49 2018
--- gcc-7.5.0/gcc/dse.c	Tue Aug 20 09:17:04 2019
*************** scan_insn (bb_info_t bb_info, rtx_insn *
*** 2389,2398 ****
  		clear_rhs_from_active_local_stores ();
  	    }
  	}
!       else if (SIBLING_CALL_P (insn) && reload_completed)
  	/* Arguments for a sibling call that are pushed to memory are passed
  	   using the incoming argument pointer of the current function.  After
! 	   reload that might be (and likely is) frame pointer based.  */
  	add_wild_read (bb_info);
        else
  	/* Every other call, including pure functions, may read any memory
--- 2389,2401 ----
  		clear_rhs_from_active_local_stores ();
  	    }
  	}
!       else if (SIBLING_CALL_P (insn)
! 	       && (reload_completed || HARD_FRAME_POINTER_IS_ARG_POINTER))
  	/* Arguments for a sibling call that are pushed to memory are passed
  	   using the incoming argument pointer of the current function.  After
! 	   reload that might be (and likely is) frame pointer based.  And, if
! 	   it is a frame pointer on the target, even before reload we need to
! 	   kill frame pointer based stores.  */
  	add_wild_read (bb_info);
        else
  	/* Every other call, including pure functions, may read any memory
diff -Nrcpad gcc-7.4.0/gcc/dwarf2out.c gcc-7.5.0/gcc/dwarf2out.c
*** gcc-7.4.0/gcc/dwarf2out.c	Mon Nov 26 19:49:19 2018
--- gcc-7.5.0/gcc/dwarf2out.c	Thu Oct 24 09:38:56 2019
*************** modified_type_die (tree type, int cv_qua
*** 12495,12500 ****
--- 12495,12502 ----
  	       && TYPE_PRECISION (sizetype) == TYPE_PRECISION (size_type_node)
  	       && TYPE_UNSIGNED (sizetype) == TYPE_UNSIGNED (size_type_node))
  	qualified_type = size_type_node;
+       if (type == sizetype)
+ 	type = qualified_type;
      }
  
  
*************** add_const_value_attribute (dw_die_ref di
*** 18677,18682 ****
--- 18679,18687 ----
  
      case HIGH:
      case CONST_FIXED:
+     case MINUS:
+     case SIGN_EXTEND:
+     case ZERO_EXTEND:
        return false;
  
      case MEM:
*************** gen_formal_parameter_die (tree node, tre
*** 21207,21213 ****
  
        /* If the contexts differ, we may not be talking about the same
  	 thing.  */
!       if (parm_die && parm_die->die_parent != context_die)
  	{
  	  if (!DECL_ABSTRACT_P (node))
  	    {
--- 21212,21221 ----
  
        /* If the contexts differ, we may not be talking about the same
  	 thing.  */
!       if (parm_die
! 	  && parm_die->die_parent != context_die
! 	  && (parm_die->die_parent->die_tag != DW_TAG_GNU_formal_parameter_pack
! 	      || parm_die->die_parent->die_parent != context_die))
  	{
  	  if (!DECL_ABSTRACT_P (node))
  	    {
diff -Nrcpad gcc-7.4.0/gcc/except.c gcc-7.5.0/gcc/except.c
*** gcc-7.4.0/gcc/except.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/except.c	Fri Aug 30 11:46:29 2019
*************** copy_reg_eh_region_note_forward (rtx not
*** 1728,1733 ****
--- 1728,1735 ----
        if (note == NULL)
  	return;
      }
+   else if (is_a <rtx_insn *> (note_or_insn))
+     return;
    note = XEXP (note, 0);
  
    for (insn = first; insn != last ; insn = NEXT_INSN (insn))
*************** copy_reg_eh_region_note_backward (rtx no
*** 1750,1755 ****
--- 1752,1759 ----
        if (note == NULL)
  	return;
      }
+   else if (is_a <rtx_insn *> (note_or_insn))
+     return;
    note = XEXP (note, 0);
  
    for (insn = last; insn != first; insn = PREV_INSN (insn))
diff -Nrcpad gcc-7.4.0/gcc/explow.c gcc-7.5.0/gcc/explow.c
*** gcc-7.4.0/gcc/explow.c	Thu Feb  2 12:39:09 2017
--- gcc-7.5.0/gcc/explow.c	Fri Aug 30 12:48:18 2019
*************** promote_ssa_mode (const_tree name, int *
*** 872,887 ****
  
    tree type = TREE_TYPE (name);
    int unsignedp = TYPE_UNSIGNED (type);
!   machine_mode mode = TYPE_MODE (type);
! 
!   /* Bypass TYPE_MODE when it maps vector modes to BLKmode.  */
!   if (mode == BLKmode)
!     {
!       gcc_assert (VECTOR_TYPE_P (type));
!       mode = type->type_common.mode;
!     }
! 
!   machine_mode pmode = promote_mode (type, mode, &unsignedp);
    if (punsignedp)
      *punsignedp = unsignedp;
  
--- 872,878 ----
  
    tree type = TREE_TYPE (name);
    int unsignedp = TYPE_UNSIGNED (type);
!   machine_mode pmode = promote_mode (type, TYPE_MODE (type), &unsignedp);
    if (punsignedp)
      *punsignedp = unsignedp;
  
diff -Nrcpad gcc-7.4.0/gcc/expmed.c gcc-7.5.0/gcc/expmed.c
*** gcc-7.4.0/gcc/expmed.c	Fri Oct 12 14:53:11 2018
--- gcc-7.5.0/gcc/expmed.c	Fri Aug 30 12:19:33 2019
*************** expand_mult_const (machine_mode mode, rt
*** 3179,3189 ****
  	      tem = gen_lowpart (nmode, op0);
  	    }
  
!           insn = get_last_insn ();
!           set_dst_reg_note (insn, REG_EQUAL,
! 			    gen_rtx_MULT (nmode, tem,
! 					  gen_int_mode (val_so_far, nmode)),
! 			    accum_inner);
  	}
      }
  
--- 3179,3197 ----
  	      tem = gen_lowpart (nmode, op0);
  	    }
  
! 	  /* Don't add a REG_EQUAL note if tem is a paradoxical SUBREG.
! 	     In that case, only the low bits of accum would be guaranteed to
! 	     be equal to the content of the REG_EQUAL note, the upper bits
! 	     can be anything.  */
! 	  if (!paradoxical_subreg_p (tem))
! 	    {
! 	      insn = get_last_insn ();
! 	      set_dst_reg_note (insn, REG_EQUAL,
! 				gen_rtx_MULT (nmode, tem,
! 					      gen_int_mode (val_so_far,
! 							    nmode)),
! 				accum_inner);
! 	    }
  	}
      }
  
diff -Nrcpad gcc-7.4.0/gcc/expr.c gcc-7.5.0/gcc/expr.c
*** gcc-7.4.0/gcc/expr.c	Fri Jun 22 21:30:06 2018
--- gcc-7.5.0/gcc/expr.c	Fri Aug 30 12:08:46 2019
*************** emit_block_move_hints (rtx x, rtx y, rtx
*** 1607,1624 ****
    else if (may_use_call
  	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x))
  	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y)))
!     {
!       /* Since x and y are passed to a libcall, mark the corresponding
! 	 tree EXPR as addressable.  */
!       tree y_expr = MEM_EXPR (y);
!       tree x_expr = MEM_EXPR (x);
!       if (y_expr)
! 	mark_addressable (y_expr);
!       if (x_expr)
! 	mark_addressable (x_expr);
!       retval = emit_block_copy_via_libcall (x, y, size,
! 					    method == BLOCK_OP_TAILCALL);
!     }
  
    else
      emit_block_move_via_loop (x, y, size, align);
--- 1607,1614 ----
    else if (may_use_call
  	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x))
  	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y)))
!     retval = emit_block_copy_via_libcall (x, y, size,
! 					  method == BLOCK_OP_TAILCALL);
  
    else
      emit_block_move_via_loop (x, y, size, align);
*************** emit_block_op_via_libcall (enum built_in
*** 1859,1864 ****
--- 1849,1863 ----
    tree call_expr, dst_tree, src_tree, size_tree;
    machine_mode size_mode;
  
+   /* Since dst and src are passed to a libcall, mark the corresponding
+      tree EXPR as addressable.  */
+   tree dst_expr = MEM_EXPR (dst);
+   tree src_expr = MEM_EXPR (src);
+   if (dst_expr)
+     mark_addressable (dst_expr);
+   if (src_expr)
+     mark_addressable (src_expr);
+ 
    dst_addr = copy_addr_to_reg (XEXP (dst, 0));
    dst_addr = convert_memory_address (ptr_mode, dst_addr);
    dst_tree = make_tree (ptr_type_node, dst_addr);
*************** expand_assignment (tree to, tree from, b
*** 5147,5155 ****
  		}
  	      else
  		{
! 		  rtx from_rtx
! 		    = simplify_gen_subreg (GET_MODE (to_rtx), result,
! 					   TYPE_MODE (TREE_TYPE (from)), 0);
  		  if (from_rtx)
  		    {
  		      emit_move_insn (XEXP (to_rtx, 0),
--- 5146,5159 ----
  		}
  	      else
  		{
! 		  rtx from_rtx;
! 		  if (MEM_P (result))
! 		    from_rtx = change_address (result, GET_MODE (to_rtx),
! 					       NULL_RTX);
! 		  else
! 		    from_rtx
! 		      = simplify_gen_subreg (GET_MODE (to_rtx), result,
! 					     TYPE_MODE (TREE_TYPE (from)), 0);
  		  if (from_rtx)
  		    {
  		      emit_move_insn (XEXP (to_rtx, 0),
*************** expand_assignment (tree to, tree from, b
*** 5191,5196 ****
--- 5195,5215 ----
  	      emit_move_insn (XEXP (to_rtx, 1), read_complex_part (temp, true));
  	    }
  	}
+       /* For calls to functions returning variable length structures, if TO_RTX
+ 	 is not a MEM, go through a MEM because we must not create temporaries
+ 	 of the VLA type.  */
+       else if (!MEM_P (to_rtx)
+ 	       && TREE_CODE (from) == CALL_EXPR
+ 	       && COMPLETE_TYPE_P (TREE_TYPE (from))
+ 	       && TREE_CODE (TYPE_SIZE (TREE_TYPE (from))) != INTEGER_CST)
+ 	{
+ 	  rtx temp = assign_stack_temp (GET_MODE (to_rtx),
+ 					GET_MODE_SIZE (GET_MODE (to_rtx)));
+ 	  result = store_field (temp, bitsize, bitpos, bitregion_start,
+ 				bitregion_end, mode1, from, get_alias_set (to),
+ 				nontemporal, reversep);
+ 	  emit_move_insn (to_rtx, temp);
+ 	}
        else
  	{
  	  if (MEM_P (to_rtx))
*************** expand_expr_real_2 (sepops ops, rtx targ
*** 8671,8677 ****
  	  machine_mode innermode = TYPE_MODE (TREE_TYPE (treeop0));
  	  this_optab = usmul_widen_optab;
  	  if (find_widening_optab_handler (this_optab, mode, innermode, 0)
! 		!= CODE_FOR_nothing)
  	    {
  	      if (TYPE_UNSIGNED (TREE_TYPE (treeop0)))
  		expand_operands (treeop0, treeop1, NULL_RTX, &op0, &op1,
--- 8690,8696 ----
  	  machine_mode innermode = TYPE_MODE (TREE_TYPE (treeop0));
  	  this_optab = usmul_widen_optab;
  	  if (find_widening_optab_handler (this_optab, mode, innermode, 0)
! 	      != CODE_FOR_nothing)
  	    {
  	      if (TYPE_UNSIGNED (TREE_TYPE (treeop0)))
  		expand_operands (treeop0, treeop1, NULL_RTX, &op0, &op1,
*************** expand_expr_real_2 (sepops ops, rtx targ
*** 8683,8690 ****
  		 != INTEGER_CST check.  Handle it.  */
  	      if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode)
  		{
! 		  op0 = convert_modes (innermode, mode, op0, true);
! 		  op1 = convert_modes (innermode, mode, op1, false);
  		  return REDUCE_BIT_FIELD (expand_mult (mode, op0, op1,
  							target, unsignedp));
  		}
--- 8702,8709 ----
  		 != INTEGER_CST check.  Handle it.  */
  	      if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode)
  		{
! 		  op0 = convert_modes (mode, innermode, op0, true);
! 		  op1 = convert_modes (mode, innermode, op1, false);
  		  return REDUCE_BIT_FIELD (expand_mult (mode, op0, op1,
  							target, unsignedp));
  		}
*************** expand_expr_real_2 (sepops ops, rtx targ
*** 8706,8712 ****
  	  if (TREE_CODE (treeop0) != INTEGER_CST)
  	    {
  	      if (find_widening_optab_handler (this_optab, mode, innermode, 0)
! 		    != CODE_FOR_nothing)
  		{
  		  expand_operands (treeop0, treeop1, NULL_RTX, &op0, &op1,
  				   EXPAND_NORMAL);
--- 8725,8731 ----
  	  if (TREE_CODE (treeop0) != INTEGER_CST)
  	    {
  	      if (find_widening_optab_handler (this_optab, mode, innermode, 0)
! 		  != CODE_FOR_nothing)
  		{
  		  expand_operands (treeop0, treeop1, NULL_RTX, &op0, &op1,
  				   EXPAND_NORMAL);
*************** expand_expr_real_2 (sepops ops, rtx targ
*** 8715,8723 ****
  		  if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode)
  		    {
  		     widen_mult_const:
! 		      op0 = convert_modes (innermode, mode, op0, zextend_p);
  		      op1
! 			= convert_modes (innermode, mode, op1,
  					 TYPE_UNSIGNED (TREE_TYPE (treeop1)));
  		      return REDUCE_BIT_FIELD (expand_mult (mode, op0, op1,
  							    target,
--- 8734,8742 ----
  		  if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode)
  		    {
  		     widen_mult_const:
! 		      op0 = convert_modes (mode, innermode, op0, zextend_p);
  		      op1
! 			= convert_modes (mode, innermode, op1,
  					 TYPE_UNSIGNED (TREE_TYPE (treeop1)));
  		      return REDUCE_BIT_FIELD (expand_mult (mode, op0, op1,
  							    target,
*************** expand_expr_real_2 (sepops ops, rtx targ
*** 8728,8748 ****
  		  return REDUCE_BIT_FIELD (temp);
  		}
  	      if (find_widening_optab_handler (other_optab, mode, innermode, 0)
! 		    != CODE_FOR_nothing
  		  && innermode == word_mode)
  		{
  		  rtx htem, hipart;
  		  op0 = expand_normal (treeop0);
! 		  if (TREE_CODE (treeop1) == INTEGER_CST)
! 		    op1 = convert_modes (innermode, mode,
! 					 expand_normal (treeop1),
! 					 TYPE_UNSIGNED (TREE_TYPE (treeop1)));
! 		  else
! 		    op1 = expand_normal (treeop1);
! 		  /* op0 and op1 might still be constant, despite the above
  		     != INTEGER_CST check.  Handle it.  */
  		  if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode)
  		    goto widen_mult_const;
  		  temp = expand_binop (mode, other_optab, op0, op1, target,
  				       unsignedp, OPTAB_LIB_WIDEN);
  		  hipart = gen_highpart (innermode, temp);
--- 8747,8765 ----
  		  return REDUCE_BIT_FIELD (temp);
  		}
  	      if (find_widening_optab_handler (other_optab, mode, innermode, 0)
! 		  != CODE_FOR_nothing
  		  && innermode == word_mode)
  		{
  		  rtx htem, hipart;
  		  op0 = expand_normal (treeop0);
! 		  op1 = expand_normal (treeop1);
! 		  /* op0 and op1 might be constants, despite the above
  		     != INTEGER_CST check.  Handle it.  */
  		  if (GET_MODE (op0) == VOIDmode && GET_MODE (op1) == VOIDmode)
  		    goto widen_mult_const;
+ 		  if (TREE_CODE (treeop1) == INTEGER_CST)
+ 		    op1 = convert_modes (mode, word_mode, op1,
+ 					 TYPE_UNSIGNED (TREE_TYPE (treeop1)));
  		  temp = expand_binop (mode, other_optab, op0, op1, target,
  				       unsignedp, OPTAB_LIB_WIDEN);
  		  hipart = gen_highpart (innermode, temp);
diff -Nrcpad gcc-7.4.0/gcc/final.c gcc-7.5.0/gcc/final.c
*** gcc-7.4.0/gcc/final.c	Mon Nov 26 19:49:19 2018
--- gcc-7.5.0/gcc/final.c	Fri Aug 30 11:19:17 2019
*************** rest_of_handle_final (void)
*** 4490,4496 ****
    assemble_start_function (current_function_decl, fnname);
    final_start_function (get_insns (), asm_out_file, optimize);
    final (get_insns (), asm_out_file, optimize);
!   if (flag_ipa_ra)
      collect_fn_hard_reg_usage ();
    final_end_function ();
  
--- 4490,4500 ----
    assemble_start_function (current_function_decl, fnname);
    final_start_function (get_insns (), asm_out_file, optimize);
    final (get_insns (), asm_out_file, optimize);
!   if (flag_ipa_ra
!       /* Functions with naked attributes are supported only with basic asm
! 	 statements in the body, thus for supported use cases the information
! 	 on clobbered registers is not available.  */
!       && !lookup_attribute ("naked", DECL_ATTRIBUTES (current_function_decl)))
      collect_fn_hard_reg_usage ();
    final_end_function ();
  
diff -Nrcpad gcc-7.4.0/gcc/fold-const.c gcc-7.5.0/gcc/fold-const.c
*** gcc-7.4.0/gcc/fold-const.c	Wed Oct 17 17:53:02 2018
--- gcc-7.5.0/gcc/fold-const.c	Wed Sep  4 08:06:24 2019
*************** operand_equal_p (const_tree arg0, const_
*** 3044,3053 ****
        switch (TREE_CODE (arg0))
  	{
  	case INDIRECT_REF:
! 	  if (!(flags & OEP_ADDRESS_OF)
! 	      && (TYPE_ALIGN (TREE_TYPE (arg0))
! 		  != TYPE_ALIGN (TREE_TYPE (arg1))))
! 	    return 0;
  	  flags &= ~OEP_ADDRESS_OF;
  	  return OP_SAME (0);
  
--- 3044,3059 ----
        switch (TREE_CODE (arg0))
  	{
  	case INDIRECT_REF:
! 	  if (!(flags & OEP_ADDRESS_OF))
! 	    {
! 	      if (TYPE_ALIGN (TREE_TYPE (arg0))
! 		  != TYPE_ALIGN (TREE_TYPE (arg1)))
! 		return 0;
! 	      /* Verify that the access types are compatible.  */
! 	      if (TYPE_MAIN_VARIANT (TREE_TYPE (arg0))
! 		  != TYPE_MAIN_VARIANT (TREE_TYPE (arg1)))
! 		return 0;
! 	    }
  	  flags &= ~OEP_ADDRESS_OF;
  	  return OP_SAME (0);
  
*************** decode_field_reference (location_t loc,
*** 4159,4165 ****
       There are problems with FP fields since the type_for_size call
       below can fail for, e.g., XFmode.  */
    if (! INTEGRAL_TYPE_P (TREE_TYPE (exp)))
!     return 0;
  
    /* We are interested in the bare arrangement of bits, so strip everything
       that doesn't affect the machine mode.  However, record the type of the
--- 4165,4171 ----
       There are problems with FP fields since the type_for_size call
       below can fail for, e.g., XFmode.  */
    if (! INTEGRAL_TYPE_P (TREE_TYPE (exp)))
!     return NULL_TREE;
  
    /* We are interested in the bare arrangement of bits, so strip everything
       that doesn't affect the machine mode.  However, record the type of the
*************** decode_field_reference (location_t loc,
*** 4175,4181 ****
        exp = TREE_OPERAND (exp, 0);
        STRIP_NOPS (exp); STRIP_NOPS (and_mask);
        if (TREE_CODE (and_mask) != INTEGER_CST)
! 	return 0;
      }
  
    inner = get_inner_reference (exp, pbitsize, pbitpos, &offset, pmode,
--- 4181,4187 ----
        exp = TREE_OPERAND (exp, 0);
        STRIP_NOPS (exp); STRIP_NOPS (and_mask);
        if (TREE_CODE (and_mask) != INTEGER_CST)
! 	return NULL_TREE;
      }
  
    inner = get_inner_reference (exp, pbitsize, pbitpos, &offset, pmode,
*************** decode_field_reference (location_t loc,
*** 4187,4193 ****
        || (! AGGREGATE_TYPE_P (TREE_TYPE (inner))
  	  && compare_tree_int (TYPE_SIZE (TREE_TYPE (inner)),
  			       *pbitpos + *pbitsize) < 0))
!     return 0;
  
    *exp_ = exp;
  
--- 4193,4203 ----
        || (! AGGREGATE_TYPE_P (TREE_TYPE (inner))
  	  && compare_tree_int (TYPE_SIZE (TREE_TYPE (inner)),
  			       *pbitpos + *pbitsize) < 0))
!     return NULL_TREE;
! 
!   unsigned_type = lang_hooks.types.type_for_size (*pbitsize, 1);
!   if (unsigned_type == NULL_TREE)
!     return NULL_TREE;
  
    *exp_ = exp;
  
*************** decode_field_reference (location_t loc,
*** 4198,4204 ****
      *punsignedp = TYPE_UNSIGNED (outer_type);
  
    /* Compute the mask to access the bitfield.  */
-   unsigned_type = lang_hooks.types.type_for_size (*pbitsize, 1);
    precision = TYPE_PRECISION (unsigned_type);
  
    mask = build_int_cst_type (unsigned_type, -1);
--- 4208,4213 ----
*************** fold_binary_loc (location_t loc, enum tr
*** 10726,10733 ****
  		strlen(ptr) != 0   =>  *ptr != 0
  	 Other cases should reduce to one of these two (or a constant)
  	 due to the return value of strlen being unsigned.  */
!       if (TREE_CODE (arg0) == CALL_EXPR
! 	  && integer_zerop (arg1))
  	{
  	  tree fndecl = get_callee_fndecl (arg0);
  
--- 10735,10741 ----
  		strlen(ptr) != 0   =>  *ptr != 0
  	 Other cases should reduce to one of these two (or a constant)
  	 due to the return value of strlen being unsigned.  */
!       if (TREE_CODE (arg0) == CALL_EXPR && integer_zerop (arg1))
  	{
  	  tree fndecl = get_callee_fndecl (arg0);
  
*************** fold_binary_loc (location_t loc, enum tr
*** 10735,10746 ****
  	      && DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL
  	      && DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STRLEN
  	      && call_expr_nargs (arg0) == 1
! 	      && TREE_CODE (TREE_TYPE (CALL_EXPR_ARG (arg0, 0))) == POINTER_TYPE)
  	    {
! 	      tree iref = build_fold_indirect_ref_loc (loc,
! 						   CALL_EXPR_ARG (arg0, 0));
  	      return fold_build2_loc (loc, code, type, iref,
! 				  build_int_cst (TREE_TYPE (iref), 0));
  	    }
  	}
  
--- 10743,10759 ----
  	      && DECL_BUILT_IN_CLASS (fndecl) == BUILT_IN_NORMAL
  	      && DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STRLEN
  	      && call_expr_nargs (arg0) == 1
! 	      && (TREE_CODE (TREE_TYPE (CALL_EXPR_ARG (arg0, 0)))
! 		  == POINTER_TYPE))
  	    {
! 	      tree ptrtype
! 		= build_pointer_type (build_qualified_type (char_type_node,
! 							    TYPE_QUAL_CONST));
! 	      tree ptr = fold_convert_loc (loc, ptrtype,
! 					   CALL_EXPR_ARG (arg0, 0));
! 	      tree iref = build_fold_indirect_ref_loc (loc, ptr);
  	      return fold_build2_loc (loc, code, type, iref,
! 				      build_int_cst (TREE_TYPE (iref), 0));
  	    }
  	}
  
diff -Nrcpad gcc-7.4.0/gcc/fortran/ChangeLog gcc-7.5.0/gcc/fortran/ChangeLog
*** gcc-7.4.0/gcc/fortran/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/fortran/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,468 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-10-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	PR fortran/86248
+ 	* resolve.c (flag_fn_result_spec): Correct a typo before the
+ 	function declaration.
+ 	* trans-decl.c (gfc_sym_identifier): Boost the length of 'name'
+ 	to allow for all variants. Simplify the code by using a pointer
+ 	to the symbol's proc_name and taking the return out of each of
+ 	the conditional branches. Allow symbols with fn_result_spec set
+ 	that do not come from a procedure namespace and have a module
+ 	name to go through the non-fn_result_spec branch.
+ 
+ 2019-10-18  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/69455
+ 	* trans-decl.c (generate_local_decl): Avoid misconstructed
+ 	intrinsic modules in a BLOCK construct.
+ 
+ 2019-09-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/91557
+ 	* trans-decl.c (generate_local_decl): Do not warn if the symbol
+ 	is artificial.
+ 	* trans-types.c (get_formal_from_actual_arglist): Set artificial
+ 	attribute on dummy arguments.
+ 
+ 2019-09-12  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/91686
+ 	Backport from mainline
+ 	* trans-expr.c (gfc_trans_assignment_1): Copy and paste section
+ 	handling the rse.pre block from mainline.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-05-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* lang.opt (ftail-call-workaround=): Fix a typo - lenghts to lengths.
+ 
+ 	2019-05-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/90329
+ 	* lang.opt (fbroken-callers): Remove.
+ 	(ftail-call-workaround, ftail-call-workaround=): New options.
+ 	* gfortran.h (struct gfc_namespace): Add implicit_interface_calls.
+ 	* interface.c (gfc_procedure_use): Set implicit_interface_calls
+ 	for calls to implicit interface procedures.
+ 	* trans-decl.c (create_function_arglist): Use flag_tail_call_workaround
+ 	instead of flag_broken_callers.  If it is not 2, also require
+ 	sym->ns->implicit_interface_calls.
+ 	* invoke.texi (fbroken-callers): Remove documentation.
+ 	(ftail-call-workaround, ftail-call-workaround=): Document.
+ 
+ 	2019-05-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/90329
+ 	* invoke.texi: Document -fbroken-callers.
+ 	* lang.opt: Add -fbroken-callers.
+ 	* trans-decl.c (create_function_arglist): Only set
+ 	DECL_HIDDEN_STRING_LENGTH if flag_broken_callers is set.
+ 
+ 	2019-05-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/90329
+ 	* trans-decl.c (create_function_arglist): Set
+ 	DECL_HIDDEN_STRING_LENGTH on hidden string length PARM_DECLs if
+ 	len is constant.
+ 
+ 	2019-03-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/89651
+ 	* trans-openmp.c (gfc_omp_clause_default_ctor): Set TREE_NO_WARNING
+ 	on decl if adding COND_EXPR for allocatable.
+ 	(gfc_omp_clause_copy_ctor): Set TREE_NO_WARNING on dest.
+ 
+ 	2019-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/83246
+ 	PR fortran/89084
+ 	* trans-decl.c (generate_local_decl): Add referenced FL_PARAMETERs
+ 	if sym->ns->construct_entities rather than if
+ 	sym->ns->parent->code->op == EXEC_BLOCK.
+ 
+ 	2019-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/88902
+ 	* trans-decl.c (gfc_get_symbol_decl): Don't add length to function
+ 	or parent function if it has been added there already.
+ 
+ 	2018-12-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/88377
+ 	* trans-openmp.c (gfc_omp_clause_default_ctor,
+ 	gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
+ 	gfc_omp_clause_linear_ctor, gfc_omp_clause_dtor): Only consider
+ 	GFC_DECL_GET_SCALAR_ALLOCATABLE vars as scalar allocatables if they
+ 	have pointer type.
+ 
+ 	2018-10-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/87725
+ 	* openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and
+ 	nonmonotonic modifiers regardless of if they have been parsed
+ 	already or if the opposite one has.  Fix up check whether
+ 	comma after modifier should be parsed.
+ 	(resolve_omp_clauses): Diagnose schedule modifier restrictions.
+ 
+ 2019-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 	    Paul Thomas <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/90786
+ 	PR fortran/90813
+ 	* trans-expr.c (pointer_assignment_is_proc_pointer) Remove as
+ 	it is very simple and only called from one place.
+ 	(gfc_trans_pointer_assignment): Rename non_proc_pointer_assign
+ 	as non_proc_ptr_assign. Assign to it directly, rather than call
+ 	to above, deleted function and use gfc_expr_attr instead of
+ 	only checking the reference chain.
+ 	* trans-decl.c (sym_identifier): New function.
+ 	(mangled_identifier): New function, doing most of the work
+ 	of gfc_sym_mangled_identifier.
+ 	(gfc_sym_mangled_identifier): Use mangled_identifier.  Add mangled
+ 	identifier to global symbol table.
+ 	(get_proc_pointer_decl): Use backend decl from global identifier
+ 	if present.
+ 
+ 2019-06-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/90937
+ 	* trans-types.c (get_formal_from_actual_arglist): Get symbol from
+ 	current namespace so it will be freed later.  If symbol is of type
+ 	character, get an empty character length.
+ 
+ 2019-06-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 	Tomáš Trnka  <trnka@scm.com>
+ 
+ 	Backport from trunk
+ 	PR fortran/90744
+ 	* trans-types.c (get_formal_from_actual_arglist): Unset typespec
+ 	flags which make no sense for procedures without explicit
+ 	interface.
+ 
+ 2019-05-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/90344
+ 	* frontend-passes.c (create_var): Bring into sync with gcc 8.
+ 
+ 2019-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/87352
+ 	Backport from trunk
+ 	* gfortran.h (gfc_component): Add finalized field.
+ 	* class.c (finalize_component): If the component is already
+ 	finalized, return early.  Set component->finalized on exit.
+ 
+ 2019-04-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backport from trunk
+ 	PR fortran/89904
+ 	* check.c (gfc_check_transfer): Reject procedures as actual
+ 	arguments for SOURCE and MOLD of TRANSFER intrinsic.
+ 
+ 2019-03-31  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backport from trunk
+ 	PR fortran/83515
+ 	PR fortran/85797
+ 	* trans-types.c (gfc_typenode_for_spec): Handle conversion for
+ 	procedure pointers.
+ 	* target-memory.c (gfc_element_size): Handle size determination
+ 	for procedure pointers.
+ 
+ 2019-03-25  Janus Weil  <janus@gcc.gnu.org>
+ 
+ 	PR fortran/71861
+ 	Backport from trunk
+ 	* symbol.c (check_conflict): ABSTRACT attribute conflicts with
+ 	INTRINSIC attribute.
+ 
+ 2019-03-23  Thomas Koenig  <tkoeng@gcc.gnu.org>
+ 
+ 	PR fortran/68009
+ 	Backport from trunk
+ 	* iresolve.c: Include trans.h.
+ 	(gfc_resolve_fe_runtine_error): Set backend_decl on
+ 	resolved_sym.
+ 
+ 2019-03-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/84394
+ 	Backport from trunk
+ 	* symbol.c (gfc_add_subroutine): If we are encountering a
+ 	subrtoutine within a BLOCK DATA and the name starts with an
+ 	underscore, do not check.
+ 
+ 2019-03-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/66089
+ 	Backport from trunk
+ 	* trans-array.c (gfc_scalar_elemental_arg_saved_as_reference):
+ 	Return false if a scalar tempoary is needed.
+ 	(gfc_walk_variable_expr): Fix up class refs.
+ 
+ 2019-03-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/66695
+ 	PR fortran/77746
+ 	PR fortran/79485
+ 	Backport from trunk
+ 	* gfortran.h (gfc_symbol): Add bind_c component.
+ 	(gfc_get_gsymbol): Add argument bind_c.
+ 	* decl.c (add_global_entry): Add bind_c argument to
+ 	gfc_get_symbol.
+ 	* parse.c (parse_block_data): Likewise.
+ 	(parse_module): Likewise.
+ 	(add_global_procedure): Likewise.
+ 	(add_global_program): Likewise.
+ 	* resolve.c (resolve_common_blocks): Likewise.
+ 	(resolve_global_procedure): Likewise.
+ 	(gfc_verify_binding_labels): Likewise.
+ 	* symbol.c (gfc_get_gsymbol): Add argument bind_c. Set bind_c
+ 	in gsym.
+ 	* trans-decl.c (gfc_get_module_backend_decl): Add bind_c argument
+ 	to gfc_get_symbol.
+ 	(gfc_get_extern_function_decl): If the sym has a binding label
+ 	and it cannot be found in the global symbol tabel, it is the wrong
+ 	one and vice versa.
+ 
+ 2019-03-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/87673
+ 	Backport from trunk
+ 	* match.c (gfc_match_type_spec): Remove call to
+ 	gfc_resolve_expr for character length.
+ 
+ 2019-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/71544
+ 	Backport from trunk
+ 	* trans-types.c (gfc_typenode_for_spec) Set ts->is_c_interop of
+ 	C_PTR and C_FUNPTR.
+ 	(create_fn_spec): Mark argument as escaping if ts->is_c_interop is set.
+ 
+ 2019-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 	Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/87734
+ 	Backort from trunk
+ 	* symbol.c (gfc_add_procedure): Only throw an error if the
+ 	procedure has not been declared either PUBLIC or PRIVATE.
+ 	* resolve.c (is_illegal_recursion): Remove an assert().
+ 
+ 2019-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/72714
+ 	Backport from trunk
+ 	* resolve.c (resolve_allocate_expr): Add some tests for coarrays.
+ 
+ 2019-03-03  Harald Anlauf  <anlauf@gmx.de>
+ 	    Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/77583
+ 	* symbol.c (check_conflict): Check for valid procedure name
+ 	passed to error reporting routine.
+ 
+ 2019-03-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/87689
+ 	Backport from trunk
+ 	* trans-decl.c (gfc_get_extern_function_decl): Add argument
+ 	actual_args and pass it through to gfc_get_function_type.
+ 	* trans-expr.c (conv_function_val): Add argument actual_args
+ 	and pass it on to gfc_get_extern_function_decl.
+ 	(conv_procedure_call): Pass actual arguments to conv_function_val.
+ 	* trans-types.c (get_formal_from_actual_arglist): New function.
+ 	(gfc_get_function_type): Add argument actual_args.  Generate
+ 	formal args from actual args if necessary.
+ 	* trans-types.h (gfc_get_function_type): Add optional argument.
+ 	* trans.h (gfc_get_extern_function_decl): Add optional argument.
+ 
+ 2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/88117
+ 	* resolve.c (deferred_op_assign): Return if the lhs expression
+ 	has the pointer attribute.
+ 
+ 2019-02-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/71066
+ 	Backport from trunk
+ 	* trans-decl.c (generate_coarray_sym_init):  For an array
+ 	constructor in a DATA statement of a coarray variable, set the
+ 	rank to 1 to avoid confusion later on.  If the constructor
+ 	contains only one value, use that for initiailizig.
+ 
+ 2019-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backport from trunk
+ 	PR fortran/89077
+ 	* decl.c (add_init_expr_to_sym): Copy length of string initializer
+ 	to declared symbol.
+ 
+ 2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/71723
+ 	Backport from trunk
+ 	* expr.c (gfc_check_assign): Add argument is_init_expr.  If we are
+ 	looking at an init expression, issue error if the target is not a
+ 	TARGET and we are not looking at a procedure pointer.
+ 	* gfortran.h (gfc_check_assign): Add optional argument
+ 	is_init_expr.
+ 
+ 2019-02-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/67679
+ 	Backport from trunk
+ 	* trans-array.c (gfc_array_allocate):  For setting the bounds on
+ 	the new array, add a condition for a not previously allocated
+ 	variable.
+ 
+ 2019-02-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/88393
+ 	* trans-expr.c (gfc_conv_procedure_call): For derived entities,
+ 	passed in parentheses to class formals, invert the order of
+ 	copying allocatable components to taking the _data of the
+ 	class expression.
+ 
+ 2019-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/88298
+ 	Backport from trunk
+ 	* arith.c (gfc_int2int): Do not warn if src->do_not_warn is set.
+ 	* gfortran.h (gfc_expr): Add flag do_not_warn.
+ 	* intrinsic.c (gfc_convert_type_warn): Set expr->do_not_warn if
+ 	no warning is desired.
+ 
+ 2019-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/57048
+ 	Backport from trunk
+ 	* interface.c (gfc_compare_types): If a derived type and an
+ 	integer both have a derived type, and they are identical,
+ 	this is a C binding type and compares equal.
+ 
+ 2019-01-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/56386
+ 	PR fortran/58906
+ 	PR fortran/77385
+ 	PR fortran/80260
+ 	PR fortran/82077
+ 	* resolve.c (resolve_variable): Fix up expressions with array
+ 	associate names, where the parser did not detect that this is
+ 	array and there was no array part_ref in the expression.
+ 	* trans-expr.c (gfc_find_and_cut_at_last_class_ref): base_expr
+ 	should be a copy of e and not the initialization expr.
+ 
+ 2019-01-15  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/81849
+ 	* resolve.c (resolve_symbol): Host associated varaibles can appear
+ 	in the specification statement of a RESULT array.
+ 
+ 2019-01-11  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/35031
+ 	* decl.c (gfc_match_entry): Check for F2018:C1546.  Fix nearby
+ 	mis-indentation.
+ 
+ 2018-12-29  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/82550
+ 	* trans_decl.c (gfc_get_symbol_decl): Procedure symbols that
+ 	have the 'used_in_submodule' attribute should be processed by
+ 	'gfc_get_extern_function_decl'.
+ 
+ 2018-12-23  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/77703
+ 	* resolve.c (get_temp_from_expr): Use the string length of
+ 	constant character expressions.
+ 
+ 2018-12-22  Steven G . Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/85798
+ 	* decl.c (gfc_match_data): If a component of a derived type entity
+ 	appears in data statement, check that does not have the allocatable
+ 	attribute.
+ 
+ 2018-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/85544
+ 	* frontend-passes.c (optimize_power): Remove.
+ 	(optimize_op): Remove call to optimize_power.
+ 	* trans-expr.c (gfc_conv_power_op): Handle cases of 1**integer,
+ 	(2|4|8|16) ** integer and (-1) ** integer.
+ 
+ 2018-12-21  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88169
+ 	* module.c (mio_namelist): Remove an error condition/message that
+ 	is contrary to the Fortran standard.
+ 
+ 2018-12-15  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88138
+ 	* decl.c (variable_decl): Check that a derived isn't being assigned
+ 	an incompatible entity in an initialization.
+ 
+ 2018-12-11  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88155
+ 	* primary.c (gfc_match_structure_constructor):  Set the locus of
+ 	an expression to avoid a NULL pointer dereference.
+ 
+ 2018-12-11  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88249
+ 	* gfortran.h: Update prototype for gfc_resolve_filepos().
+ 	* io.c (gfc_resolve_filepos): Check for UNIT number if ERR= is present.
+ 	Use passed in locus for error message.
+ 	* resolve.c (gfc_resolve_code): Pass locus in gfc_resolve_filepos()
+ 	call.
+ 
+ 2018-12-10  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88269
+ 	* io.c (io_constraint): Update macro. If locus line buffer is NULL,
+ 	use gfc_current_locus in error messages.
+ 	(check_io_constraints): Catch missing IO UNIT in write and read
+ 	statements.  io_constraint macro is incompatible here.
+ 
+ 2018-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88205
+ 	* io.c (gfc_match_open): Move NEWUNIT checks to after STATUS checks.
+ 
+ 2018-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88206
+ 	* match.c (gfc_match_type_spec): REAL can be an intrinsic function.
+ 
+ 2018-12-09  Fritz Reese  <fritzoreese@gmail.com>
+ 
+ 	PR fortran/88228
+ 	* resolve.c (resolve_operator):  Do not call resolve_function.
+ 	Break like other cases.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/fortran/arith.c gcc-7.5.0/gcc/fortran/arith.c
*** gcc-7.4.0/gcc/fortran/arith.c	Sat Mar 10 18:44:25 2018
--- gcc-7.5.0/gcc/fortran/arith.c	Sat Feb  2 17:07:40 2019
*************** gfc_int2int (gfc_expr *src, int kind)
*** 2050,2056 ****
        gfc_convert_mpz_to_signed (result->value.integer,
  				 gfc_integer_kinds[k].bit_size);
  
!       if (warn_conversion && kind < src->ts.kind)
  	gfc_warning_now (OPT_Wconversion, "Conversion from %qs to %qs at %L",
  			 gfc_typename (&src->ts), gfc_typename (&result->ts),
  			 &src->where);
--- 2050,2056 ----
        gfc_convert_mpz_to_signed (result->value.integer,
  				 gfc_integer_kinds[k].bit_size);
  
!       if (warn_conversion && !src->do_not_warn && kind < src->ts.kind)
  	gfc_warning_now (OPT_Wconversion, "Conversion from %qs to %qs at %L",
  			 gfc_typename (&src->ts), gfc_typename (&result->ts),
  			 &src->where);
diff -Nrcpad gcc-7.4.0/gcc/fortran/check.c gcc-7.5.0/gcc/fortran/check.c
*** gcc-7.4.0/gcc/fortran/check.c	Fri May 11 17:58:03 2018
--- gcc-7.5.0/gcc/fortran/check.c	Wed Apr 10 21:02:02 2019
*************** gfc_check_transfer (gfc_expr *source, gf
*** 5295,5300 ****
--- 5295,5320 ----
    size_t source_size;
    size_t result_size;
  
+   /* SOURCE shall be a scalar or array of any type.  */
+   if (source->ts.type == BT_PROCEDURE
+       && source->symtree->n.sym->attr.subroutine == 1)
+     {
+       gfc_error ("%<SOURCE%> argument of %<TRANSFER%> intrinsic at %L "
+                  "must not be a %s", &source->where,
+ 		 gfc_basic_typename (source->ts.type));
+       return false;
+     }
+ 
+   /* MOLD shall be a scalar or array of any type.  */
+   if (mold->ts.type == BT_PROCEDURE
+       && mold->symtree->n.sym->attr.subroutine == 1)
+     {
+       gfc_error ("%<MOLD%> argument of %<TRANSFER%> intrinsic at %L "
+                  "must not be a %s", &mold->where,
+ 		 gfc_basic_typename (mold->ts.type));
+       return false;
+     }
+ 
    if (mold->ts.type == BT_HOLLERITH)
      {
        gfc_error ("%<MOLD%> argument of %<TRANSFER%> intrinsic at %L must not be"
*************** gfc_check_transfer (gfc_expr *source, gf
*** 5302,5307 ****
--- 5322,5329 ----
        return false;
      }
  
+   /* SIZE (optional) shall be an integer scalar.  The corresponding actual
+      argument shall not be an optional dummy argument.  */
    if (size != NULL)
      {
        if (!type_check (size, 2, BT_INTEGER))
diff -Nrcpad gcc-7.4.0/gcc/fortran/class.c gcc-7.5.0/gcc/fortran/class.c
*** gcc-7.4.0/gcc/fortran/class.c	Fri Apr 14 21:17:52 2017
--- gcc-7.5.0/gcc/fortran/class.c	Sun Apr 14 12:27:44 2019
*************** finalize_component (gfc_expr *expr, gfc_
*** 899,904 ****
--- 899,907 ----
    if (!comp_is_finalizable (comp))
      return;
  
+   if (comp->finalized)
+     return;
+ 
    e = gfc_copy_expr (expr);
    if (!e->ref)
      e->ref = ref = gfc_get_ref ();
*************** finalize_component (gfc_expr *expr, gfc_
*** 1026,1031 ****
--- 1029,1035 ----
  			    sub_ns);
        gfc_free_expr (e);
      }
+   comp->finalized = true;
  }
  
  
diff -Nrcpad gcc-7.4.0/gcc/fortran/decl.c gcc-7.5.0/gcc/fortran/decl.c
*** gcc-7.4.0/gcc/fortran/decl.c	Mon Jul 16 23:35:39 2018
--- gcc-7.5.0/gcc/fortran/decl.c	Sat Mar 16 13:24:40 2019
*************** match
*** 552,557 ****
--- 552,558 ----
  gfc_match_data (void)
  {
    gfc_data *new_data;
+   gfc_expr *e;
    match m;
  
    /* Before parsing the rest of a DATA statement, check F2008:c1206.  */
*************** gfc_match_data (void)
*** 588,593 ****
--- 589,618 ----
  	  goto cleanup;
  	}
  
+       /* Check for an entity with an allocatable component, which is not
+ 	 allowed.  */
+       e = new_data->var->expr;
+       if (e)
+ 	{
+ 	  bool invalid;
+ 
+ 	  invalid = false;
+ 	  for (gfc_ref *ref = e->ref; ref; ref = ref->next)
+ 	    if ((ref->type == REF_COMPONENT
+ 		 && ref->u.c.component->attr.allocatable)
+ 		|| (ref->type == REF_ARRAY
+ 		    && e->symtree->n.sym->attr.pointer != 1
+ 		    && ref->u.ar.as && ref->u.ar.as->type == AS_DEFERRED))
+ 	      invalid = true;
+ 
+ 	  if (invalid)
+ 	    {
+ 	      gfc_error ("Allocatable component or deferred-shaped array "
+ 			 "near %C in DATA statement");
+ 	      goto cleanup;
+ 	    }
+ 	}
+ 
        m = top_val_list (new_data);
        if (m != MATCH_YES)
  	goto cleanup;
*************** add_init_expr_to_sym (const char *name,
*** 1771,1777 ****
  		    }
  		  else if (init->ts.u.cl && init->ts.u.cl->length)
  		    sym->ts.u.cl->length =
! 				gfc_copy_expr (sym->value->ts.u.cl->length);
  		}
  	    }
  	  /* Update initializer character length according symbol.  */
--- 1796,1802 ----
  		    }
  		  else if (init->ts.u.cl && init->ts.u.cl->length)
  		    sym->ts.u.cl->length =
! 				gfc_copy_expr (init->ts.u.cl->length);
  		}
  	    }
  	  /* Update initializer character length according symbol.  */
*************** variable_decl (int elem)
*** 2544,2549 ****
--- 2569,2590 ----
        goto cleanup;
      }
  
+   /* Before adding a possible initilizer, do a simple check for compatibility
+      of lhs and rhs types.  Assigning a REAL value to a derive type is not a
+      good thing.  */
+   if (current_ts.type == BT_DERIVED && initializer
+       && (gfc_numeric_ts (&initializer->ts)
+ 	  || initializer->ts.type == BT_LOGICAL
+ 	  || initializer->ts.type == BT_CHARACTER))
+     {
+       gfc_error ("Incompatible initialization between a derive type "
+ 		 "entity and an entity with %qs type at %C",
+ 		  gfc_typename (&initializer->ts));
+       m = MATCH_ERROR;
+       goto cleanup;
+     }
+ 
+ 
    /* Add the initializer.  Note that it is fine if initializer is
       NULL here, because we sometimes also need to check if a
       declaration *must* have an initialization expression.  */
*************** add_global_entry (const char *name, cons
*** 6239,6245 ****
       name is a global identifier.  */
    if (!binding_label || gfc_notification_std (GFC_STD_F2008))
      {
!       s = gfc_get_gsymbol (name);
  
        if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type))
  	{
--- 6280,6286 ----
       name is a global identifier.  */
    if (!binding_label || gfc_notification_std (GFC_STD_F2008))
      {
!       s = gfc_get_gsymbol (name, false);
  
        if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type))
  	{
*************** add_global_entry (const char *name, cons
*** 6261,6267 ****
        && (!gfc_notification_std (GFC_STD_F2008)
  	  || strcmp (name, binding_label) != 0))
      {
!       s = gfc_get_gsymbol (binding_label);
  
        if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type))
  	{
--- 6302,6308 ----
        && (!gfc_notification_std (GFC_STD_F2008)
  	  || strcmp (name, binding_label) != 0))
      {
!       s = gfc_get_gsymbol (binding_label, true);
  
        if (s->defined || (s->type != GSYM_UNKNOWN && s->type != type))
  	{
*************** gfc_match_entry (void)
*** 6438,6446 ****
  	      gfc_error ("Missing required parentheses before BIND(C) at %C");
  	      return MATCH_ERROR;
  	    }
! 	    if (!gfc_add_is_bind_c (&(entry->attr), entry->name,
! 				    &(entry->declared_at), 1))
! 	      return MATCH_ERROR;
  	}
  
        if (!gfc_current_ns->parent
--- 6479,6489 ----
  	      gfc_error ("Missing required parentheses before BIND(C) at %C");
  	      return MATCH_ERROR;
  	    }
! 
! 	  if (!gfc_add_is_bind_c (&(entry->attr), entry->name,
! 				  &(entry->declared_at), 1))
! 	    return MATCH_ERROR;
! 	
  	}
  
        if (!gfc_current_ns->parent
*************** gfc_match_entry (void)
*** 6524,6529 ****
--- 6567,6580 ----
        return MATCH_ERROR;
      }
  
+   /* F2018:C1546 An elemental procedure shall not have the BIND attribute.  */
+   if (proc->attr.elemental && entry->attr.is_bind_c)
+     {
+       gfc_error ("ENTRY statement at %L with BIND(C) prohibited in an "
+ 		 "elemental procedure", &entry->declared_at);
+       return MATCH_ERROR;
+     }
+ 
    entry->attr.recursive = proc->attr.recursive;
    entry->attr.elemental = proc->attr.elemental;
    entry->attr.pure = proc->attr.pure;
diff -Nrcpad gcc-7.4.0/gcc/fortran/expr.c gcc-7.5.0/gcc/fortran/expr.c
*** gcc-7.4.0/gcc/fortran/expr.c	Sat Nov  3 14:49:33 2018
--- gcc-7.5.0/gcc/fortran/expr.c	Sun Feb 10 18:41:03 2019
*************** gfc_check_assign (gfc_expr *lvalue, gfc_
*** 3342,3348 ****
     NULLIFY statement.  */
  
  bool
! gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
  {
    symbol_attribute attr, lhs_attr;
    gfc_ref *ref;
--- 3342,3348 ----
     NULLIFY statement.  */
  
  bool
! gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue, bool is_init_expr)
  {
    symbol_attribute attr, lhs_attr;
    gfc_ref *ref;
*************** gfc_check_pointer_assign (gfc_expr *lval
*** 3773,3783 ****
        return false;
      }
  
!   if (!attr.target && !attr.pointer)
      {
!       gfc_error ("Pointer assignment target is neither TARGET "
! 		 "nor POINTER at %L", &rvalue->where);
!       return false;
      }
  
    if (is_pure && gfc_impure_variable (rvalue->symtree->n.sym))
--- 3773,3807 ----
        return false;
      }
  
!   if (is_init_expr)
      {
!       gfc_symbol *sym;
!       bool target;
! 
!       gcc_assert (rvalue->symtree);
!       sym = rvalue->symtree->n.sym;
! 
!       if (sym->ts.type == BT_CLASS && sym->attr.class_ok)
! 	target = CLASS_DATA (sym)->attr.target;
!       else
! 	target = sym->attr.target;
! 
!       if (!target && !proc_pointer)
! 	{
! 	  gfc_error ("Pointer assignment target in initialization expression "
! 		     "does not have the TARGET attribute at %L",
! 		     &rvalue->where);
! 	  return false;
! 	}
!     }
!   else
!     {
!       if (!attr.target && !attr.pointer)
! 	{
! 	  gfc_error ("Pointer assignment target is neither TARGET "
! 		     "nor POINTER at %L", &rvalue->where);
! 	  return false;
! 	}
      }
  
    if (is_pure && gfc_impure_variable (rvalue->symtree->n.sym))
*************** gfc_check_assign_symbol (gfc_symbol *sym
*** 3903,3909 ****
      }
  
    if (pointer || proc_pointer)
!     r = gfc_check_pointer_assign (&lvalue, rvalue);
    else
      {
        /* If a conversion function, e.g., __convert_i8_i4, was inserted
--- 3927,3933 ----
      }
  
    if (pointer || proc_pointer)
!     r = gfc_check_pointer_assign (&lvalue, rvalue, true);
    else
      {
        /* If a conversion function, e.g., __convert_i8_i4, was inserted
diff -Nrcpad gcc-7.4.0/gcc/fortran/frontend-passes.c gcc-7.5.0/gcc/fortran/frontend-passes.c
*** gcc-7.4.0/gcc/fortran/frontend-passes.c	Sun Nov 25 15:23:18 2018
--- gcc-7.5.0/gcc/fortran/frontend-passes.c	Sun May  5 14:01:51 2019
*************** create_var (gfc_expr * e, const char *vn
*** 701,706 ****
--- 701,711 ----
    if (e->expr_type == EXPR_CONSTANT || is_fe_temp (e))
      return gfc_copy_expr (e);
  
+   /* Creation of an array of unknown size requires realloc on assignment.
+      If that is not possible, just return NULL.  */
+   if (flag_realloc_lhs == 0 && e->rank > 0 && e->shape == NULL)
+     return NULL;
+ 
    ns = insert_block ();
  
    if (vname)
*************** create_var (gfc_expr * e, const char *vn
*** 748,754 ****
      }
  
    deferred = 0;
!   if (e->ts.type == BT_CHARACTER && e->rank == 0)
      {
        gfc_expr *length;
  
--- 753,759 ----
      }
  
    deferred = 0;
!   if (e->ts.type == BT_CHARACTER)
      {
        gfc_expr *length;
  
*************** create_var (gfc_expr * e, const char *vn
*** 759,764 ****
--- 764,771 ----
        else
  	{
  	  symbol->attr.allocatable = 1;
+ 	  symbol->ts.u.cl->length = NULL;
+ 	  symbol->ts.deferred = 1;
  	  deferred = 1;
  	}
      }
*************** create_var (gfc_expr * e, const char *vn
*** 771,777 ****
  
    result = gfc_get_expr ();
    result->expr_type = EXPR_VARIABLE;
!   result->ts = e->ts;
    result->ts.deferred = deferred;
    result->rank = e->rank;
    result->shape = gfc_copy_shape (e->shape, e->rank);
--- 778,784 ----
  
    result = gfc_get_expr ();
    result->expr_type = EXPR_VARIABLE;
!   result->ts = symbol->ts;
    result->ts.deferred = deferred;
    result->rank = e->rank;
    result->shape = gfc_copy_shape (e->shape, e->rank);
*************** combine_array_constructor (gfc_expr *e)
*** 1422,1505 ****
    return true;
  }
  
- /* Change (-1)**k into 1-ishift(iand(k,1),1) and
-  2**k into ishift(1,k) */
- 
- static bool
- optimize_power (gfc_expr *e)
- {
-   gfc_expr *op1, *op2;
-   gfc_expr *iand, *ishft;
- 
-   if (e->ts.type != BT_INTEGER)
-     return false;
- 
-   op1 = e->value.op.op1;
- 
-   if (op1 == NULL || op1->expr_type != EXPR_CONSTANT)
-     return false;
- 
-   if (mpz_cmp_si (op1->value.integer, -1L) == 0)
-     {
-       gfc_free_expr (op1);
- 
-       op2 = e->value.op.op2;
- 
-       if (op2 == NULL)
- 	return false;
- 
-       iand = gfc_build_intrinsic_call (current_ns, GFC_ISYM_IAND,
- 				       "_internal_iand", e->where, 2, op2,
- 				       gfc_get_int_expr (e->ts.kind,
- 							 &e->where, 1));
- 
-       ishft = gfc_build_intrinsic_call (current_ns, GFC_ISYM_ISHFT,
- 					"_internal_ishft", e->where, 2, iand,
- 					gfc_get_int_expr (e->ts.kind,
- 							  &e->where, 1));
- 
-       e->value.op.op = INTRINSIC_MINUS;
-       e->value.op.op1 = gfc_get_int_expr (e->ts.kind, &e->where, 1);
-       e->value.op.op2 = ishft;
-       return true;
-     }
-   else if (mpz_cmp_si (op1->value.integer, 2L) == 0)
-     {
-       gfc_free_expr (op1);
- 
-       op2 = e->value.op.op2;
-       if (op2 == NULL)
- 	return false;
- 
-       ishft = gfc_build_intrinsic_call (current_ns, GFC_ISYM_ISHFT,
- 					"_internal_ishft", e->where, 2,
- 					gfc_get_int_expr (e->ts.kind,
- 							  &e->where, 1),
- 					op2);
-       *e = *ishft;
-       return true;
-     }
- 
-   else if (mpz_cmp_si (op1->value.integer, 1L) == 0)
-     {
-       op2 = e->value.op.op2;
-       if (op2 == NULL)
- 	return false;
- 
-       gfc_free_expr (op1);
-       gfc_free_expr (op2);
- 
-       e->expr_type = EXPR_CONSTANT;
-       e->value.op.op1 = NULL;
-       e->value.op.op2 = NULL;
-       mpz_init_set_si (e->value.integer, 1);
-       /* Typespec and location are still OK.  */
-       return true;
-     }
- 
-   return false;
- }
- 
  /* Recursive optimization of operators.  */
  
  static bool
--- 1429,1434 ----
*************** optimize_op (gfc_expr *e)
*** 1560,1568 ****
      case INTRINSIC_DIVIDE:
        return combine_array_constructor (e) || changed;
  
-     case INTRINSIC_POWER:
-       return optimize_power (e);
- 
      default:
        break;
      }
--- 1489,1494 ----
diff -Nrcpad gcc-7.4.0/gcc/fortran/gfortran.h gcc-7.5.0/gcc/fortran/gfortran.h
*** gcc-7.4.0/gcc/fortran/gfortran.h	Sun Mar  4 13:56:09 2018
--- gcc-7.5.0/gcc/fortran/gfortran.h	Fri Aug 30 12:41:43 2019
*************** typedef struct gfc_component
*** 1058,1063 ****
--- 1058,1064 ----
    struct gfc_typebound_proc *tb;
    /* When allocatable/pointer and in a coarray the associated token.  */
    tree caf_token;
+   bool finalized;
  }
  gfc_component;
  
*************** typedef struct gfc_namespace
*** 1827,1832 ****
--- 1828,1836 ----
  
    /* Set to 1 for !$ACC ROUTINE namespaces.  */
    unsigned oacc_routine:1;
+ 
+   /* Set to 1 if there are any calls to procedures with implicit interface.  */
+   unsigned implicit_interface_calls:1;
  }
  gfc_namespace;
  
*************** typedef struct gfc_gsymbol
*** 1854,1859 ****
--- 1858,1864 ----
    enum gfc_symbol_type type;
  
    int defined, used;
+   bool bind_c;
    locus where;
    gfc_namespace *ns;
  }
*************** typedef struct gfc_expr
*** 2106,2111 ****
--- 2111,2119 ----
    /* Will require finalization after use.  */
    unsigned int must_finalize : 1;
  
+   /* Set this if no warning should be given somewhere in a lower level.  */
+ 
+   unsigned int do_not_warn : 1;
    /* If an expression comes from a Hollerith constant or compile-time
       evaluation of a transfer statement, it may have a prescribed target-
       memory representation, and these cannot always be backformed from
*************** void gfc_enforce_clean_symbol_state (voi
*** 2988,2994 ****
  void gfc_free_dt_list (void);
  
  
! gfc_gsymbol *gfc_get_gsymbol (const char *);
  gfc_gsymbol *gfc_find_gsymbol (gfc_gsymbol *, const char *);
  
  gfc_typebound_proc* gfc_get_typebound_proc (gfc_typebound_proc*);
--- 2996,3002 ----
  void gfc_free_dt_list (void);
  
  
! gfc_gsymbol *gfc_get_gsymbol (const char *, bool bind_c);
  gfc_gsymbol *gfc_find_gsymbol (gfc_gsymbol *, const char *);
  
  gfc_typebound_proc* gfc_get_typebound_proc (gfc_typebound_proc*);
*************** int gfc_kind_max (gfc_expr *, gfc_expr *
*** 3124,3130 ****
  
  bool gfc_check_conformance (gfc_expr *, gfc_expr *, const char *, ...) ATTRIBUTE_PRINTF_3;
  bool gfc_check_assign (gfc_expr *, gfc_expr *, int, bool c = true);
! bool gfc_check_pointer_assign (gfc_expr *, gfc_expr *);
  bool gfc_check_assign_symbol (gfc_symbol *, gfc_component *, gfc_expr *);
  
  gfc_expr *gfc_build_default_init_expr (gfc_typespec *, locus *);
--- 3132,3138 ----
  
  bool gfc_check_conformance (gfc_expr *, gfc_expr *, const char *, ...) ATTRIBUTE_PRINTF_3;
  bool gfc_check_assign (gfc_expr *, gfc_expr *, int, bool c = true);
! bool gfc_check_pointer_assign (gfc_expr *, gfc_expr *, bool is_init_expr = false);
  bool gfc_check_assign_symbol (gfc_symbol *, gfc_component *, gfc_expr *);
  
  gfc_expr *gfc_build_default_init_expr (gfc_typespec *, locus *);
*************** bool gfc_resolve_open (gfc_open *);
*** 3269,3275 ****
  void gfc_free_close (gfc_close *);
  bool gfc_resolve_close (gfc_close *);
  void gfc_free_filepos (gfc_filepos *);
! bool gfc_resolve_filepos (gfc_filepos *);
  void gfc_free_inquire (gfc_inquire *);
  bool gfc_resolve_inquire (gfc_inquire *);
  void gfc_free_dt (gfc_dt *);
--- 3277,3283 ----
  void gfc_free_close (gfc_close *);
  bool gfc_resolve_close (gfc_close *);
  void gfc_free_filepos (gfc_filepos *);
! bool gfc_resolve_filepos (gfc_filepos *, locus *);
  void gfc_free_inquire (gfc_inquire *);
  bool gfc_resolve_inquire (gfc_inquire *);
  void gfc_free_dt (gfc_dt *);
diff -Nrcpad gcc-7.4.0/gcc/fortran/gfortran.info gcc-7.5.0/gcc/fortran/gfortran.info
*** gcc-7.4.0/gcc/fortran/gfortran.info	Thu Dec  6 10:20:52 2018
--- gcc-7.5.0/gcc/fortran/gfortran.info	Thu Nov 14 07:57:25 2019
***************
*** 1,5 ****
  This is doc/gfortran.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/fortran/gfortran.texi.
  
  Copyright (C) 1999-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is doc/gfortran.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/fortran/gfortran.texi.
  
  Copyright (C) 1999-2017 Free Software Foundation, Inc.
  
*************** _Runtime Options_
*** 482,488 ****
  _Code Generation Options_
       *Note Options for code generation conventions: Code Gen Options.
            -faggressive-function-elimination -fblas-matmul-limit=N
!           -fbounds-check -fcheck-array-temporaries
            -fcheck=<ALL|ARRAY-TEMPS|BOUNDS|DO|MEM|POINTER|RECURSION>
            -fcoarray=<NONE|SINGLE|LIB> -fexternal-blas -ff2c
            -ffrontend-optimize
--- 482,489 ----
  _Code Generation Options_
       *Note Options for code generation conventions: Code Gen Options.
            -faggressive-function-elimination -fblas-matmul-limit=N
!           -fbounds-check -ftail-call-workaround -ftail-call-workaround=N
!           -fcheck-array-temporaries
            -fcheck=<ALL|ARRAY-TEMPS|BOUNDS|DO|MEM|POINTER|RECURSION>
            -fcoarray=<NONE|SINGLE|LIB> -fexternal-blas -ff2c
            -ffrontend-optimize
*************** the other form by either removing `no-'
*** 1561,1566 ****
--- 1562,1599 ----
  `-fbounds-check'
       Deprecated alias for `-fcheck=bounds'.
  
+ `-ftail-call-workaround'
+ `-ftail-call-workaround=N'
+      Some C interfaces to Fortran codes violate the gfortran ABI by
+      omitting the hidden character length arguments as described in
+      *Note Argument passing conventions::.  This can lead to crashes
+      because pushing arguments for tail calls can overflow the stack.
+ 
+      To provide a workaround for existing binary packages, this option
+      disables tail call optimization for gfortran procedures with
+      character arguments.  With `-ftail-call-workaround=2' tail call
+      optimization is disabled in all gfortran procedures with character
+      arguments, with `-ftail-call-workaround=1' or equivalent
+      `-ftail-call-workaround' only in gfortran procedures with character
+      arguments that call implicitly prototyped procedures.
+ 
+      Using this option can lead to problems including crashes due to
+      insufficient stack space.
+ 
+      It is _very strongly_ recommended to fix the code in question.
+      The `-fc-prototypes-external' option can be used to generate
+      prototypes which conform to gfortran's ABI, for inclusion in the
+      source code.
+ 
+      Support for this option will likely be withdrawn in a future
+      release of gfortran.
+ 
+      The negative form, `-fno-tail-call-workaround' or equivalent
+      `-ftail-call-workaround=0', can be used to disable this option.
+ 
+      Default is currently `-ftail-call-workaround', this will change in
+      future releases.
+ 
  `-fcheck-array-temporaries'
       Deprecated alias for `-fcheck=array-temps'.
  
*************** look up both forms.
*** 20804,20817 ****
                                                                (line 156)
  * dU:                                    Preprocessing Options.
                                                                (line  44)
! * faggressive-function-elimination:      Code Gen Options.    (line 364)
! * falign-commons:                        Code Gen Options.    (line 337)
  * fall-intrinsics:                       Fortran Dialect Options.
                                                                (line  17)
! * fblas-matmul-limit:                    Code Gen Options.    (line 275)
  * fbounds-check:                         Code Gen Options.    (line 199)
  * fcheck:                                Code Gen Options.    (line 143)
! * fcheck-array-temporaries:              Code Gen Options.    (line 202)
  * fcoarray:                              Code Gen Options.    (line 129)
  * fconvert=CONVERSION:                   Runtime Options.     (line  10)
  * fcray-pointer:                         Fortran Dialect Options.
--- 20837,20850 ----
                                                                (line 156)
  * dU:                                    Preprocessing Options.
                                                                (line  44)
! * faggressive-function-elimination:      Code Gen Options.    (line 396)
! * falign-commons:                        Code Gen Options.    (line 369)
  * fall-intrinsics:                       Fortran Dialect Options.
                                                                (line  17)
! * fblas-matmul-limit:                    Code Gen Options.    (line 307)
  * fbounds-check:                         Code Gen Options.    (line 199)
  * fcheck:                                Code Gen Options.    (line 143)
! * fcheck-array-temporaries:              Code Gen Options.    (line 234)
  * fcoarray:                              Code Gen Options.    (line 129)
  * fconvert=CONVERSION:                   Runtime Options.     (line  10)
  * fcray-pointer:                         Fortran Dialect Options.
*************** look up both forms.
*** 20841,20847 ****
  * fdump-fortran-optimized:               Debugging Options.   (line  15)
  * fdump-fortran-original:                Debugging Options.   (line  10)
  * fdump-parse-tree:                      Debugging Options.   (line  19)
! * fexternal-blas:                        Code Gen Options.    (line 267)
  * ff2c:                                  Code Gen Options.    (line  25)
  * ffixed-form:                           Fortran Dialect Options.
                                                                (line  11)
--- 20874,20880 ----
  * fdump-fortran-optimized:               Debugging Options.   (line  15)
  * fdump-fortran-original:                Debugging Options.   (line  10)
  * fdump-parse-tree:                      Debugging Options.   (line  19)
! * fexternal-blas:                        Code Gen Options.    (line 299)
  * ff2c:                                  Code Gen Options.    (line  25)
  * ffixed-form:                           Fortran Dialect Options.
                                                                (line  11)
*************** look up both forms.
*** 20855,20888 ****
                                                                (line 104)
  * fimplicit-none:                        Fortran Dialect Options.
                                                                (line 115)
! * finit-character:                       Code Gen Options.    (line 310)
! * finit-derived:                         Code Gen Options.    (line 310)
! * finit-integer:                         Code Gen Options.    (line 310)
! * finit-local-zero:                      Code Gen Options.    (line 310)
! * finit-logical:                         Code Gen Options.    (line 310)
! * finit-real:                            Code Gen Options.    (line 310)
! * finline-matmul-limit:                  Code Gen Options.    (line 286)
  * finteger-4-integer-8:                  Fortran Dialect Options.
                                                                (line 179)
  * fintrinsic-modules-path DIR:           Directory Options.   (line  36)
! * fmax-array-constructor:                Code Gen Options.    (line 205)
  * fmax-errors=N:                         Error and Warning Options.
                                                                (line  27)
  * fmax-identifier-length=N:              Fortran Dialect Options.
                                                                (line 111)
! * fmax-stack-var-size:                   Code Gen Options.    (line 223)
  * fmax-subrecord-length=LENGTH:          Runtime Options.     (line  29)
  * fmodule-private:                       Fortran Dialect Options.
                                                                (line  86)
  * fno-automatic:                         Code Gen Options.    (line  15)
  * fno-backtrace:                         Debugging Options.   (line  62)
! * fno-protect-parens:                    Code Gen Options.    (line 349)
  * fno-underscoring:                      Code Gen Options.    (line  54)
  * fopenacc:                              Fortran Dialect Options.
                                                                (line 124)
  * fopenmp:                               Fortran Dialect Options.
                                                                (line 136)
! * fpack-derived:                         Code Gen Options.    (line 245)
  * fpp:                                   Preprocessing Options.
                                                                (line  12)
  * frange-check:                          Fortran Dialect Options.
--- 20888,20921 ----
                                                                (line 104)
  * fimplicit-none:                        Fortran Dialect Options.
                                                                (line 115)
! * finit-character:                       Code Gen Options.    (line 342)
! * finit-derived:                         Code Gen Options.    (line 342)
! * finit-integer:                         Code Gen Options.    (line 342)
! * finit-local-zero:                      Code Gen Options.    (line 342)
! * finit-logical:                         Code Gen Options.    (line 342)
! * finit-real:                            Code Gen Options.    (line 342)
! * finline-matmul-limit:                  Code Gen Options.    (line 318)
  * finteger-4-integer-8:                  Fortran Dialect Options.
                                                                (line 179)
  * fintrinsic-modules-path DIR:           Directory Options.   (line  36)
! * fmax-array-constructor:                Code Gen Options.    (line 237)
  * fmax-errors=N:                         Error and Warning Options.
                                                                (line  27)
  * fmax-identifier-length=N:              Fortran Dialect Options.
                                                                (line 111)
! * fmax-stack-var-size:                   Code Gen Options.    (line 255)
  * fmax-subrecord-length=LENGTH:          Runtime Options.     (line  29)
  * fmodule-private:                       Fortran Dialect Options.
                                                                (line  86)
  * fno-automatic:                         Code Gen Options.    (line  15)
  * fno-backtrace:                         Debugging Options.   (line  62)
! * fno-protect-parens:                    Code Gen Options.    (line 381)
  * fno-underscoring:                      Code Gen Options.    (line  54)
  * fopenacc:                              Fortran Dialect Options.
                                                                (line 124)
  * fopenmp:                               Fortran Dialect Options.
                                                                (line 136)
! * fpack-derived:                         Code Gen Options.    (line 277)
  * fpp:                                   Preprocessing Options.
                                                                (line  12)
  * frange-check:                          Fortran Dialect Options.
*************** look up both forms.
*** 20899,20914 ****
                                                                (line 195)
  * freal-8-real-4:                        Fortran Dialect Options.
                                                                (line 195)
! * frealloc-lhs:                          Code Gen Options.    (line 358)
  * frecord-marker=LENGTH:                 Runtime Options.     (line  21)
! * frecursive:                            Code Gen Options.    (line 300)
! * frepack-arrays:                        Code Gen Options.    (line 251)
! * frontend-optimize:                     Code Gen Options.    (line 372)
  * fsecond-underscore:                    Code Gen Options.    (line 112)
  * fshort-enums <1>:                      Fortran 2003 status. (line  93)
! * fshort-enums:                          Code Gen Options.    (line 261)
  * fsign-zero:                            Runtime Options.     (line  34)
! * fstack-arrays:                         Code Gen Options.    (line 237)
  * fsyntax-only:                          Error and Warning Options.
                                                                (line  33)
  * ftest-forall-temp:                     Fortran Dialect Options.
--- 20932,20947 ----
                                                                (line 195)
  * freal-8-real-4:                        Fortran Dialect Options.
                                                                (line 195)
! * frealloc-lhs:                          Code Gen Options.    (line 390)
  * frecord-marker=LENGTH:                 Runtime Options.     (line  21)
! * frecursive:                            Code Gen Options.    (line 332)
! * frepack-arrays:                        Code Gen Options.    (line 283)
! * frontend-optimize:                     Code Gen Options.    (line 404)
  * fsecond-underscore:                    Code Gen Options.    (line 112)
  * fshort-enums <1>:                      Fortran 2003 status. (line  93)
! * fshort-enums:                          Code Gen Options.    (line 293)
  * fsign-zero:                            Runtime Options.     (line  34)
! * fstack-arrays:                         Code Gen Options.    (line 269)
  * fsyntax-only:                          Error and Warning Options.
                                                                (line  33)
  * ftest-forall-temp:                     Fortran Dialect Options.
*************** look up both forms.
*** 20943,20948 ****
--- 20976,20982 ----
  * static-libgfortran:                    Link Options.        (line  11)
  * std=STD option:                        Fortran Dialect Options.
                                                                (line 206)
+ * tail-call-workaround:                  Code Gen Options.    (line 203)
  * UNAME:                                 Preprocessing Options.
                                                                (line 187)
  * undef:                                 Preprocessing Options.
*************** Keyword Index
*** 21063,21069 ****
  * ALGAMA:                                LOG_GAMMA.           (line   6)
  * aliasing:                              Error and Warning Options.
                                                                (line  71)
! * alignment of COMMON blocks <1>:        Code Gen Options.    (line 337)
  * alignment of COMMON blocks:            Error and Warning Options.
                                                                (line 222)
  * ALL:                                   ALL.                 (line   6)
--- 21097,21103 ----
  * ALGAMA:                                LOG_GAMMA.           (line   6)
  * aliasing:                              Error and Warning Options.
                                                                (line  71)
! * alignment of COMMON blocks <1>:        Code Gen Options.    (line 369)
  * alignment of COMMON blocks:            Error and Warning Options.
                                                                (line 222)
  * ALL:                                   ALL.                 (line   6)
*************** Keyword Index
*** 21569,21575 ****
  * elapsed time <2>:                      SECNDS.              (line   6)
  * elapsed time:                          DTIME.               (line   6)
  * Elimination of functions with identical argument lists: Code Gen Options.
!                                                               (line 364)
  * ENCODE:                                ENCODE and DECODE statements.
                                                                (line   6)
  * ENUM statement:                        Fortran 2003 status. (line  93)
--- 21603,21609 ----
  * elapsed time <2>:                      SECNDS.              (line   6)
  * elapsed time:                          DTIME.               (line   6)
  * Elimination of functions with identical argument lists: Code Gen Options.
!                                                               (line 396)
  * ENCODE:                                ENCODE and DECODE statements.
                                                                (line   6)
  * ENUM statement:                        Fortran 2003 status. (line  93)
*************** Keyword Index
*** 21682,21688 ****
  * FPUTC:                                 FPUTC.               (line   6)
  * FRACTION:                              FRACTION.            (line   6)
  * FREE:                                  FREE.                (line   6)
! * Front-end optimization:                Code Gen Options.    (line 372)
  * FSEEK:                                 FSEEK.               (line   6)
  * FSTAT:                                 FSTAT.               (line   6)
  * FTELL:                                 FTELL.               (line   6)
--- 21716,21722 ----
  * FPUTC:                                 FPUTC.               (line   6)
  * FRACTION:                              FRACTION.            (line   6)
  * FREE:                                  FREE.                (line   6)
! * Front-end optimization:                Code Gen Options.    (line 404)
  * FSEEK:                                 FSEEK.               (line   6)
  * FSTAT:                                 FSTAT.               (line   6)
  * FTELL:                                 FTELL.               (line   6)
*************** Keyword Index
*** 22083,22089 ****
  * rank:                                  RANK.                (line   6)
  * RANK:                                  RANK.                (line   6)
  * re-association of parenthesized expressions: Code Gen Options.
!                                                               (line 349)
  * read character, stream mode <1>:       FGETC.               (line   6)
  * read character, stream mode:           FGET.                (line   6)
  * READONLY:                              Extended I/O specifiers.
--- 22117,22123 ----
  * rank:                                  RANK.                (line   6)
  * RANK:                                  RANK.                (line   6)
  * re-association of parenthesized expressions: Code Gen Options.
!                                                               (line 381)
  * read character, stream mode <1>:       FGETC.               (line   6)
  * read character, stream mode:           FGET.                (line   6)
  * READONLY:                              Extended I/O specifiers.
*************** Keyword Index
*** 22097,22103 ****
  * real number, relative spacing:         RRSPACING.           (line   6)
  * real number, scale:                    SCALE.               (line   6)
  * real number, set exponent:             SET_EXPONENT.        (line   6)
! * Reallocate the LHS in assignments:     Code Gen Options.    (line 358)
  * Reallocate the LHS in assignments, notification: Error and Warning Options.
                                                                (line 232)
  * REALPART:                              REAL.                (line   6)
--- 22131,22137 ----
  * real number, relative spacing:         RRSPACING.           (line   6)
  * real number, scale:                    SCALE.               (line   6)
  * real number, set exponent:             SET_EXPONENT.        (line   6)
! * Reallocate the LHS in assignments:     Code Gen Options.    (line 390)
  * Reallocate the LHS in assignments, notification: Error and Warning Options.
                                                                (line 232)
  * REALPART:                              REAL.                (line   6)
*************** Keyword Index
*** 22106,22112 ****
  * Reduction, XOR:                        PARITY.              (line   6)
  * remainder:                             MOD.                 (line   6)
  * RENAME:                                RENAME.              (line   6)
! * repacking arrays:                      Code Gen Options.    (line 251)
  * REPEAT:                                REPEAT.              (line   6)
  * RESHAPE:                               RESHAPE.             (line   6)
  * REWIND:                                Read/Write after EOF marker.
--- 22140,22146 ----
  * Reduction, XOR:                        PARITY.              (line   6)
  * remainder:                             MOD.                 (line   6)
  * RENAME:                                RENAME.              (line   6)
! * repacking arrays:                      Code Gen Options.    (line 283)
  * REPEAT:                                REPEAT.              (line   6)
  * RESHAPE:                               RESHAPE.             (line   6)
  * REWIND:                                Read/Write after EOF marker.
*************** Keyword Index
*** 22213,22219 ****
                                                                (line   6)
  * STRUCTURE:                             STRUCTURE and RECORD.
                                                                (line   6)
! * structure packing:                     Code Gen Options.    (line 245)
  * subscript checking:                    Code Gen Options.    (line 143)
  * substring position:                    INDEX intrinsic.     (line   6)
  * SUM:                                   SUM.                 (line   6)
--- 22247,22253 ----
                                                                (line   6)
  * STRUCTURE:                             STRUCTURE and RECORD.
                                                                (line   6)
! * structure packing:                     Code Gen Options.    (line 277)
  * subscript checking:                    Code Gen Options.    (line 143)
  * substring position:                    INDEX intrinsic.     (line   6)
  * SUM:                                   SUM.                 (line   6)
*************** Node: Standards15214
*** 22430,22868 ****
  Node: Varying Length Character Strings16576
  Node: Invoking GNU Fortran17327
  Node: Option Summary19050
! Node: Fortran Dialect Options22678
! Node: Preprocessing Options33432
! Node: Error and Warning Options41663
! Node: Debugging Options52822
! Node: Directory Options56294
! Node: Link Options57729
! Node: Runtime Options58353
! Node: Code Gen Options60258
! Node: Environment Variables77605
! Node: Runtime78210
! Node: TMPDIR79312
! Node: GFORTRAN_STDIN_UNIT79981
! Node: GFORTRAN_STDOUT_UNIT80363
! Node: GFORTRAN_STDERR_UNIT80764
! Node: GFORTRAN_UNBUFFERED_ALL81166
! Node: GFORTRAN_UNBUFFERED_PRECONNECTED81697
! Node: GFORTRAN_SHOW_LOCUS82341
! Node: GFORTRAN_OPTIONAL_PLUS82837
! Node: GFORTRAN_DEFAULT_RECL83313
! Node: GFORTRAN_LIST_SEPARATOR83802
! Node: GFORTRAN_CONVERT_UNIT84411
! Node: GFORTRAN_ERROR_BACKTRACE87274
! Node: Fortran 2003 and 2008 status87831
! Node: Fortran 2003 status88111
! Node: Fortran 2008 status93352
! Node: TS 29113 status98726
! Node: TS 18508 status99728
! Node: Compiler Characteristics100520
! Node: KIND Type Parameters101149
! Node: Internal representation of LOGICAL variables102578
! Node: Thread-safety of the runtime library103438
! Node: Data consistency and durability105842
! Node: Files opened without an explicit ACTION= specifier108943
! Node: File operations on symbolic links109637
! Node: Extensions110706
! Node: Extensions implemented in GNU Fortran111311
! Node: Old-style kind specifications113195
! Node: Old-style variable initialization114302
! Node: Extensions to namelist115614
! Node: X format descriptor without count field117916
! Node: Commas in FORMAT specifications118443
! Node: Missing period in FORMAT specifications118960
! Node: I/O item lists119522
! Node: `Q' exponent-letter119909
! Node: BOZ literal constants120509
! Node: Real array indices123088
! Node: Unary operators123387
! Node: Implicitly convert LOGICAL and INTEGER values123801
! Node: Hollerith constants support124761
! Node: Cray pointers126533
! Node: CONVERT specifier131980
! Node: OpenMP133978
! Node: OpenACC136236
! Node: Argument list functions137546
! Node: Read/Write after EOF marker139190
! Node: STRUCTURE and RECORD139792
! Node: UNION and MAP144377
! Node: Type variants for integer intrinsics147343
! Node: AUTOMATIC and STATIC attributes149558
! Node: Extended math intrinsics151094
! Node: Form feed as whitespace152887
! Node: TYPE as an alias for PRINT153432
! Node: %LOC as an rvalue153897
! Node: .XOR. operator154543
! Node: Bitwise logical operators154942
! Node: Extended I/O specifiers156513
! Node: Legacy PARAMETER statements160186
! Node: Default exponents160791
! Node: Extensions not implemented in GNU Fortran161143
! Node: ENCODE and DECODE statements162088
! Node: Variable FORMAT expressions163419
! Node: Alternate complex function syntax164524
! Node: Volatile COMMON blocks165075
! Node: OPEN( ... NAME=)165576
! Node: Mixed-Language Programming165977
! Node: Interoperability with C166560
! Node: Intrinsic Types167898
! Node: Derived Types and struct168894
! Node: Interoperable Global Variables170251
! Node: Interoperable Subroutines and Functions171527
! Node: Working with Pointers175323
! Node: Further Interoperability of Fortran with C179799
! Node: GNU Fortran Compiler Directives183148
! Node: Non-Fortran Main Program186402
! Node: _gfortran_set_args188592
! Node: _gfortran_set_options189527
! Node: _gfortran_set_convert192894
! Node: _gfortran_set_record_marker193758
! Node: _gfortran_set_fpe194566
! Node: _gfortran_set_max_subrecord_length195758
! Node: Naming and argument-passing conventions196678
! Node: Naming conventions197397
! Node: Argument passing conventions198867
! Node: Coarray Programming203363
! Node: Type and enum ABI Documentation203610
! Node: caf_token_t203908
! Node: caf_register_t204143
! Node: caf_deregister_t205354
! Node: caf_reference_t205854
! Node: caf_team_t210178
! Node: Function ABI Documentation210477
! Node: _gfortran_caf_init212927
! Node: _gfortran_caf_finish214365
! Node: _gfortran_caf_this_image215304
! Node: _gfortran_caf_num_images216057
! Node: _gfortran_caf_image_status217163
! Node: _gfortran_caf_failed_images218279
! Node: _gfortran_caf_stopped_images219446
! Node: _gfortran_caf_register220615
! Node: _gfortran_caf_deregister224767
! Node: _gfortran_caf_is_present226359
! Node: _gfortran_caf_send227448
! Node: _gfortran_caf_get230614
! Node: _gfortran_caf_sendget233669
! Node: _gfortran_caf_send_by_ref237552
! Node: _gfortran_caf_get_by_ref240879
! Node: _gfortran_caf_sendget_by_ref244119
! Node: _gfortran_caf_lock247873
! Node: _gfortran_caf_unlock249650
! Node: _gfortran_caf_event_post251122
! Node: _gfortran_caf_event_wait252564
! Node: _gfortran_caf_event_query254664
! Node: _gfortran_caf_sync_all255990
! Node: _gfortran_caf_sync_images256918
! Node: _gfortran_caf_sync_memory258441
! Node: _gfortran_caf_error_stop259427
! Node: _gfortran_caf_error_stop_str260035
! Node: _gfortran_caf_fail_image260740
! Node: _gfortran_caf_atomic_define261276
! Node: _gfortran_caf_atomic_ref262598
! Node: _gfortran_caf_atomic_cas263890
! Node: _gfortran_caf_atomic_op265655
! Node: _gfortran_caf_co_broadcast267758
! Node: _gfortran_caf_co_max268855
! Node: _gfortran_caf_co_min270472
! Node: _gfortran_caf_co_sum272083
! Node: _gfortran_caf_co_reduce273615
! Node: Intrinsic Procedures276249
! Node: Introduction to Intrinsics293305
! Node: ABORT295657
! Node: ABS296403
! Node: ACCESS298456
! Node: ACHAR300377
! Node: ACOS301578
! Node: ACOSD302847
! Node: ACOSH304148
! Node: ADJUSTL305137
! Node: ADJUSTR306078
! Node: AIMAG307027
! Node: AINT308408
! Node: ALARM309995
! Node: ALL311629
! Node: ALLOCATED313547
! Node: AND314684
! Node: ANINT315981
! Node: ANY317459
! Node: ASIN319389
! Node: ASIND320647
! Node: ASINH321934
! Node: ASSOCIATED322933
! Node: ATAN325938
! Node: ATAND327389
! Node: ATAN2328866
! Node: ATAN2D330713
! Node: ATANH332726
! Node: ATOMIC_ADD333724
! Node: ATOMIC_AND335263
! Node: ATOMIC_CAS336858
! Node: ATOMIC_DEFINE338721
! Node: ATOMIC_FETCH_ADD340428
! Node: ATOMIC_FETCH_AND342215
! Node: ATOMIC_FETCH_OR344011
! Node: ATOMIC_FETCH_XOR345799
! Node: ATOMIC_OR347588
! Node: ATOMIC_REF349180
! Node: ATOMIC_XOR351082
! Node: BACKTRACE352674
! Node: BESSEL_J0353253
! Node: BESSEL_J1354261
! Node: BESSEL_JN355270
! Node: BESSEL_Y0357152
! Node: BESSEL_Y1358098
! Node: BESSEL_YN359044
! Node: BGE360876
! Node: BGT361565
! Node: BIT_SIZE362212
! Node: BLE363033
! Node: BLT363712
! Node: BTEST364347
! Node: C_ASSOCIATED365893
! Node: C_F_POINTER367102
! Node: C_F_PROCPOINTER368526
! Node: C_FUNLOC370027
! Node: C_LOC371396
! Node: C_SIZEOF372673
! Node: CEILING374083
! Node: CHAR375088
! Node: CHDIR376292
! Node: CHMOD377460
! Node: CMPLX379323
! Node: CO_BROADCAST380777
! Node: CO_MAX382541
! Node: CO_MIN384413
! Node: CO_REDUCE386271
! Node: CO_SUM389748
! Node: COMMAND_ARGUMENT_COUNT391647
! Node: COMPILER_OPTIONS392571
! Node: COMPILER_VERSION393597
! Node: COMPLEX394561
! Node: CONJG395698
! Node: COS396769
! Node: COSD398246
! Node: COSH399752
! Node: COTAN400918
! Node: COTAND402046
! Node: COUNT403216
! Node: CPU_TIME405234
! Node: CSHIFT406588
! Node: CTIME408244
! Node: DATE_AND_TIME409760
! Node: DBLE412220
! Node: DCMPLX413013
! Node: DIGITS414207
! Node: DIM415173
! Node: DOT_PRODUCT416431
! Node: DPROD418087
! Node: DREAL419004
! Node: DSHIFTL419670
! Node: DSHIFTR420990
! Node: DTIME422311
! Node: EOSHIFT425114
! Node: EPSILON427187
! Node: ERF427913
! Node: ERFC428687
! Node: ERFC_SCALED429491
! Node: ETIME430183
! Node: EVENT_QUERY432415
! Node: EXECUTE_COMMAND_LINE434013
! Node: EXIT436601
! Node: EXP437477
! Node: EXPONENT438752
! Node: EXTENDS_TYPE_OF439514
! Node: FDATE440369
! Node: FGET441864
! Node: FGETC443684
! Node: FLOOR445485
! Node: FLUSH446471
! Node: FNUM448348
! Node: FPUT449072
! Node: FPUTC450699
! Node: FRACTION452472
! Node: FREE453375
! Node: FSEEK454212
! Node: FSTAT456508
! Node: FTELL457590
! Node: GAMMA458570
! Node: GERROR459613
! Node: GETARG460334
! Node: GET_COMMAND462100
! Node: GET_COMMAND_ARGUMENT463466
! Node: GETCWD465502
! Node: GETENV466476
! Node: GET_ENVIRONMENT_VARIABLE467901
! Node: GETGID470054
! Node: GETLOG470591
! Node: GETPID471451
! Node: GETUID472181
! Node: GMTIME472697
! Node: HOSTNM474462
! Node: HUGE475380
! Node: HYPOT476101
! Node: IACHAR476921
! Node: IALL478101
! Node: IAND479578
! Node: IANY481227
! Node: IARGC482713
! Node: IBCLR483734
! Node: IBITS485060
! Node: IBSET486640
! Node: ICHAR487961
! Node: IDATE490133
! Node: IEOR491430
! Node: IERRNO492971
! Node: IMAGE_INDEX493520
! Node: INDEX intrinsic494544
! Node: INT496085
! Node: INT2497817
! Node: INT8498582
! Node: IOR499294
! Node: IPARITY500811
! Node: IRAND502335
! Node: IS_IOSTAT_END503691
! Node: IS_IOSTAT_EOR504788
! Node: ISATTY505915
! Node: ISHFT506698
! Node: ISHFTC508343
! Node: ISNAN510224
! Node: ITIME510972
! Node: KILL512267
! Node: KIND513171
! Node: LBOUND514016
! Node: LCOBOUND515349
! Node: LEADZ516479
! Node: LEN517339
! Node: LEN_TRIM518620
! Node: LGE519602
! Node: LGT521104
! Node: LINK522571
! Node: LLE523606
! Node: LLT525100
! Node: LNBLNK526560
! Node: LOC527336
! Node: LOG528067
! Node: LOG10529467
! Node: LOG_GAMMA530441
! Node: LOGICAL531530
! Node: LONG532338
! Node: LSHIFT533094
! Node: LSTAT534179
! Node: LTIME535373
! Node: MALLOC537060
! Node: MASKL538519
! Node: MASKR539282
! Node: MATMUL540048
! Node: MAX541137
! Node: MAXEXPONENT542636
! Node: MAXLOC543452
! Node: MAXVAL545471
! Node: MCLOCK547104
! Node: MCLOCK8548128
! Node: MERGE549361
! Node: MERGE_BITS550110
! Node: MIN550971
! Node: MINEXPONENT552472
! Node: MINLOC553102
! Node: MINVAL555121
! Node: MOD556773
! Node: MODULO558993
! Node: MOVE_ALLOC560293
! Node: MVBITS561322
! Node: NEAREST563046
! Node: NEW_LINE564142
! Node: NINT564913
! Node: NORM2566316
! Node: NOT567454
! Node: NULL568703
! Node: NUM_IMAGES569608
! Node: OR571318
! Node: PACK572602
! Node: PARITY574595
! Node: PERROR575810
! Node: POPCNT576431
! Node: POPPAR577302
! Node: PRECISION578353
! Node: PRESENT579239
! Node: PRODUCT580345
! Node: RADIX581870
! Node: RAN582682
! Node: RAND583138
! Node: RANDOM_NUMBER584470
! Node: RANDOM_SEED585677
! Node: RANGE588100
! Node: RANK588796
! Node: REAL589576
! Node: RENAME591534
! Node: REPEAT592553
! Node: RESHAPE593279
! Node: RRSPACING594748
! Node: RSHIFT595441
! Node: SAME_TYPE_AS596579
! Node: SCALE597409
! Node: SCAN598189
! Node: SECNDS599739
! Node: SECOND600827
! Node: SELECTED_CHAR_KIND601703
! Node: SELECTED_INT_KIND603294
! Node: SELECTED_REAL_KIND604469
! Node: SET_EXPONENT607135
! Node: SHAPE608131
! Node: SHIFTA609546
! Node: SHIFTL610507
! Node: SHIFTR611342
! Node: SIGN612178
! Node: SIGNAL613462
! Node: SIN614959
! Node: SIND616106
! Node: SINH617492
! Node: SIZE618489
! Node: SIZEOF619797
! Node: SLEEP621447
! Node: SPACING622007
! Node: SPREAD623020
! Node: SQRT624165
! Node: SRAND625519
! Node: STAT626752
! Node: STORAGE_SIZE629919
! Node: SUM630798
! Node: SYMLNK632281
! Node: SYSTEM633413
! Node: SYSTEM_CLOCK634664
! Node: TAN637491
! Node: TAND638546
! Node: TANH639620
! Node: THIS_IMAGE640778
! Node: TIME643067
! Node: TIME8644238
! Node: TINY645434
! Node: TRAILZ646034
! Node: TRANSFER646851
! Node: TRANSPOSE648885
! Node: TRIM649572
! Node: TTYNAM650429
! Node: UBOUND651344
! Node: UCOBOUND652734
! Node: UMASK653866
! Node: UNLINK654544
! Node: UNPACK655521
! Node: VERIFY656809
! Node: XOR658530
! Node: Intrinsic Modules659902
! Node: ISO_FORTRAN_ENV660191
! Node: ISO_C_BINDING664577
! Node: IEEE modules668768
! Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS669913
! Node: OpenACC Module OPENACC671462
! Node: Contributing672389
! Node: Contributors673243
! Node: Projects674910
! Node: Proposed Extensions675715
! Node: Copying677726
! Node: GNU Free Documentation License715290
! Node: Funding740433
! Node: Option Index742958
! Node: Keyword Index759914
  
  End Tag Table
--- 22464,22902 ----
  Node: Varying Length Character Strings16576
  Node: Invoking GNU Fortran17327
  Node: Option Summary19050
! Node: Fortran Dialect Options22736
! Node: Preprocessing Options33490
! Node: Error and Warning Options41721
! Node: Debugging Options52880
! Node: Directory Options56352
! Node: Link Options57787
! Node: Runtime Options58411
! Node: Code Gen Options60316
! Node: Environment Variables79112
! Node: Runtime79717
! Node: TMPDIR80819
! Node: GFORTRAN_STDIN_UNIT81488
! Node: GFORTRAN_STDOUT_UNIT81870
! Node: GFORTRAN_STDERR_UNIT82271
! Node: GFORTRAN_UNBUFFERED_ALL82673
! Node: GFORTRAN_UNBUFFERED_PRECONNECTED83204
! Node: GFORTRAN_SHOW_LOCUS83848
! Node: GFORTRAN_OPTIONAL_PLUS84344
! Node: GFORTRAN_DEFAULT_RECL84820
! Node: GFORTRAN_LIST_SEPARATOR85309
! Node: GFORTRAN_CONVERT_UNIT85918
! Node: GFORTRAN_ERROR_BACKTRACE88781
! Node: Fortran 2003 and 2008 status89338
! Node: Fortran 2003 status89618
! Node: Fortran 2008 status94859
! Node: TS 29113 status100233
! Node: TS 18508 status101235
! Node: Compiler Characteristics102027
! Node: KIND Type Parameters102656
! Node: Internal representation of LOGICAL variables104085
! Node: Thread-safety of the runtime library104945
! Node: Data consistency and durability107349
! Node: Files opened without an explicit ACTION= specifier110450
! Node: File operations on symbolic links111144
! Node: Extensions112213
! Node: Extensions implemented in GNU Fortran112818
! Node: Old-style kind specifications114702
! Node: Old-style variable initialization115809
! Node: Extensions to namelist117121
! Node: X format descriptor without count field119423
! Node: Commas in FORMAT specifications119950
! Node: Missing period in FORMAT specifications120467
! Node: I/O item lists121029
! Node: `Q' exponent-letter121416
! Node: BOZ literal constants122016
! Node: Real array indices124595
! Node: Unary operators124894
! Node: Implicitly convert LOGICAL and INTEGER values125308
! Node: Hollerith constants support126268
! Node: Cray pointers128040
! Node: CONVERT specifier133487
! Node: OpenMP135485
! Node: OpenACC137743
! Node: Argument list functions139053
! Node: Read/Write after EOF marker140697
! Node: STRUCTURE and RECORD141299
! Node: UNION and MAP145884
! Node: Type variants for integer intrinsics148850
! Node: AUTOMATIC and STATIC attributes151065
! Node: Extended math intrinsics152601
! Node: Form feed as whitespace154394
! Node: TYPE as an alias for PRINT154939
! Node: %LOC as an rvalue155404
! Node: .XOR. operator156050
! Node: Bitwise logical operators156449
! Node: Extended I/O specifiers158020
! Node: Legacy PARAMETER statements161693
! Node: Default exponents162298
! Node: Extensions not implemented in GNU Fortran162650
! Node: ENCODE and DECODE statements163595
! Node: Variable FORMAT expressions164926
! Node: Alternate complex function syntax166031
! Node: Volatile COMMON blocks166582
! Node: OPEN( ... NAME=)167083
! Node: Mixed-Language Programming167484
! Node: Interoperability with C168067
! Node: Intrinsic Types169405
! Node: Derived Types and struct170401
! Node: Interoperable Global Variables171758
! Node: Interoperable Subroutines and Functions173034
! Node: Working with Pointers176830
! Node: Further Interoperability of Fortran with C181306
! Node: GNU Fortran Compiler Directives184655
! Node: Non-Fortran Main Program187909
! Node: _gfortran_set_args190099
! Node: _gfortran_set_options191034
! Node: _gfortran_set_convert194401
! Node: _gfortran_set_record_marker195265
! Node: _gfortran_set_fpe196073
! Node: _gfortran_set_max_subrecord_length197265
! Node: Naming and argument-passing conventions198185
! Node: Naming conventions198904
! Node: Argument passing conventions200374
! Node: Coarray Programming204870
! Node: Type and enum ABI Documentation205117
! Node: caf_token_t205415
! Node: caf_register_t205650
! Node: caf_deregister_t206861
! Node: caf_reference_t207361
! Node: caf_team_t211685
! Node: Function ABI Documentation211984
! Node: _gfortran_caf_init214434
! Node: _gfortran_caf_finish215872
! Node: _gfortran_caf_this_image216811
! Node: _gfortran_caf_num_images217564
! Node: _gfortran_caf_image_status218670
! Node: _gfortran_caf_failed_images219786
! Node: _gfortran_caf_stopped_images220953
! Node: _gfortran_caf_register222122
! Node: _gfortran_caf_deregister226274
! Node: _gfortran_caf_is_present227866
! Node: _gfortran_caf_send228955
! Node: _gfortran_caf_get232121
! Node: _gfortran_caf_sendget235176
! Node: _gfortran_caf_send_by_ref239059
! Node: _gfortran_caf_get_by_ref242386
! Node: _gfortran_caf_sendget_by_ref245626
! Node: _gfortran_caf_lock249380
! Node: _gfortran_caf_unlock251157
! Node: _gfortran_caf_event_post252629
! Node: _gfortran_caf_event_wait254071
! Node: _gfortran_caf_event_query256171
! Node: _gfortran_caf_sync_all257497
! Node: _gfortran_caf_sync_images258425
! Node: _gfortran_caf_sync_memory259948
! Node: _gfortran_caf_error_stop260934
! Node: _gfortran_caf_error_stop_str261542
! Node: _gfortran_caf_fail_image262247
! Node: _gfortran_caf_atomic_define262783
! Node: _gfortran_caf_atomic_ref264105
! Node: _gfortran_caf_atomic_cas265397
! Node: _gfortran_caf_atomic_op267162
! Node: _gfortran_caf_co_broadcast269265
! Node: _gfortran_caf_co_max270362
! Node: _gfortran_caf_co_min271979
! Node: _gfortran_caf_co_sum273590
! Node: _gfortran_caf_co_reduce275122
! Node: Intrinsic Procedures277756
! Node: Introduction to Intrinsics294812
! Node: ABORT297164
! Node: ABS297910
! Node: ACCESS299963
! Node: ACHAR301884
! Node: ACOS303085
! Node: ACOSD304354
! Node: ACOSH305655
! Node: ADJUSTL306644
! Node: ADJUSTR307585
! Node: AIMAG308534
! Node: AINT309915
! Node: ALARM311502
! Node: ALL313136
! Node: ALLOCATED315054
! Node: AND316191
! Node: ANINT317488
! Node: ANY318966
! Node: ASIN320896
! Node: ASIND322154
! Node: ASINH323441
! Node: ASSOCIATED324440
! Node: ATAN327445
! Node: ATAND328896
! Node: ATAN2330373
! Node: ATAN2D332220
! Node: ATANH334233
! Node: ATOMIC_ADD335231
! Node: ATOMIC_AND336770
! Node: ATOMIC_CAS338365
! Node: ATOMIC_DEFINE340228
! Node: ATOMIC_FETCH_ADD341935
! Node: ATOMIC_FETCH_AND343722
! Node: ATOMIC_FETCH_OR345518
! Node: ATOMIC_FETCH_XOR347306
! Node: ATOMIC_OR349095
! Node: ATOMIC_REF350687
! Node: ATOMIC_XOR352589
! Node: BACKTRACE354181
! Node: BESSEL_J0354760
! Node: BESSEL_J1355768
! Node: BESSEL_JN356777
! Node: BESSEL_Y0358659
! Node: BESSEL_Y1359605
! Node: BESSEL_YN360551
! Node: BGE362383
! Node: BGT363072
! Node: BIT_SIZE363719
! Node: BLE364540
! Node: BLT365219
! Node: BTEST365854
! Node: C_ASSOCIATED367400
! Node: C_F_POINTER368609
! Node: C_F_PROCPOINTER370033
! Node: C_FUNLOC371534
! Node: C_LOC372903
! Node: C_SIZEOF374180
! Node: CEILING375590
! Node: CHAR376595
! Node: CHDIR377799
! Node: CHMOD378967
! Node: CMPLX380830
! Node: CO_BROADCAST382284
! Node: CO_MAX384048
! Node: CO_MIN385920
! Node: CO_REDUCE387778
! Node: CO_SUM391255
! Node: COMMAND_ARGUMENT_COUNT393154
! Node: COMPILER_OPTIONS394078
! Node: COMPILER_VERSION395104
! Node: COMPLEX396068
! Node: CONJG397205
! Node: COS398276
! Node: COSD399753
! Node: COSH401259
! Node: COTAN402425
! Node: COTAND403553
! Node: COUNT404723
! Node: CPU_TIME406741
! Node: CSHIFT408095
! Node: CTIME409751
! Node: DATE_AND_TIME411267
! Node: DBLE413727
! Node: DCMPLX414520
! Node: DIGITS415714
! Node: DIM416680
! Node: DOT_PRODUCT417938
! Node: DPROD419594
! Node: DREAL420511
! Node: DSHIFTL421177
! Node: DSHIFTR422497
! Node: DTIME423818
! Node: EOSHIFT426621
! Node: EPSILON428694
! Node: ERF429420
! Node: ERFC430194
! Node: ERFC_SCALED430998
! Node: ETIME431690
! Node: EVENT_QUERY433922
! Node: EXECUTE_COMMAND_LINE435520
! Node: EXIT438108
! Node: EXP438984
! Node: EXPONENT440259
! Node: EXTENDS_TYPE_OF441021
! Node: FDATE441876
! Node: FGET443371
! Node: FGETC445191
! Node: FLOOR446992
! Node: FLUSH447978
! Node: FNUM449855
! Node: FPUT450579
! Node: FPUTC452206
! Node: FRACTION453979
! Node: FREE454882
! Node: FSEEK455719
! Node: FSTAT458015
! Node: FTELL459097
! Node: GAMMA460077
! Node: GERROR461120
! Node: GETARG461841
! Node: GET_COMMAND463607
! Node: GET_COMMAND_ARGUMENT464973
! Node: GETCWD467009
! Node: GETENV467983
! Node: GET_ENVIRONMENT_VARIABLE469408
! Node: GETGID471561
! Node: GETLOG472098
! Node: GETPID472958
! Node: GETUID473688
! Node: GMTIME474204
! Node: HOSTNM475969
! Node: HUGE476887
! Node: HYPOT477608
! Node: IACHAR478428
! Node: IALL479608
! Node: IAND481085
! Node: IANY482734
! Node: IARGC484220
! Node: IBCLR485241
! Node: IBITS486567
! Node: IBSET488147
! Node: ICHAR489468
! Node: IDATE491640
! Node: IEOR492937
! Node: IERRNO494478
! Node: IMAGE_INDEX495027
! Node: INDEX intrinsic496051
! Node: INT497592
! Node: INT2499324
! Node: INT8500089
! Node: IOR500801
! Node: IPARITY502318
! Node: IRAND503842
! Node: IS_IOSTAT_END505198
! Node: IS_IOSTAT_EOR506295
! Node: ISATTY507422
! Node: ISHFT508205
! Node: ISHFTC509850
! Node: ISNAN511731
! Node: ITIME512479
! Node: KILL513774
! Node: KIND514678
! Node: LBOUND515523
! Node: LCOBOUND516856
! Node: LEADZ517986
! Node: LEN518846
! Node: LEN_TRIM520127
! Node: LGE521109
! Node: LGT522611
! Node: LINK524078
! Node: LLE525113
! Node: LLT526607
! Node: LNBLNK528067
! Node: LOC528843
! Node: LOG529574
! Node: LOG10530974
! Node: LOG_GAMMA531948
! Node: LOGICAL533037
! Node: LONG533845
! Node: LSHIFT534601
! Node: LSTAT535686
! Node: LTIME536880
! Node: MALLOC538567
! Node: MASKL540026
! Node: MASKR540789
! Node: MATMUL541555
! Node: MAX542644
! Node: MAXEXPONENT544143
! Node: MAXLOC544959
! Node: MAXVAL546978
! Node: MCLOCK548611
! Node: MCLOCK8549635
! Node: MERGE550868
! Node: MERGE_BITS551617
! Node: MIN552478
! Node: MINEXPONENT553979
! Node: MINLOC554609
! Node: MINVAL556628
! Node: MOD558280
! Node: MODULO560500
! Node: MOVE_ALLOC561800
! Node: MVBITS562829
! Node: NEAREST564553
! Node: NEW_LINE565649
! Node: NINT566420
! Node: NORM2567823
! Node: NOT568961
! Node: NULL570210
! Node: NUM_IMAGES571115
! Node: OR572825
! Node: PACK574109
! Node: PARITY576102
! Node: PERROR577317
! Node: POPCNT577938
! Node: POPPAR578809
! Node: PRECISION579860
! Node: PRESENT580746
! Node: PRODUCT581852
! Node: RADIX583377
! Node: RAN584189
! Node: RAND584645
! Node: RANDOM_NUMBER585977
! Node: RANDOM_SEED587184
! Node: RANGE589607
! Node: RANK590303
! Node: REAL591083
! Node: RENAME593041
! Node: REPEAT594060
! Node: RESHAPE594786
! Node: RRSPACING596255
! Node: RSHIFT596948
! Node: SAME_TYPE_AS598086
! Node: SCALE598916
! Node: SCAN599696
! Node: SECNDS601246
! Node: SECOND602334
! Node: SELECTED_CHAR_KIND603210
! Node: SELECTED_INT_KIND604801
! Node: SELECTED_REAL_KIND605976
! Node: SET_EXPONENT608642
! Node: SHAPE609638
! Node: SHIFTA611053
! Node: SHIFTL612014
! Node: SHIFTR612849
! Node: SIGN613685
! Node: SIGNAL614969
! Node: SIN616466
! Node: SIND617613
! Node: SINH618999
! Node: SIZE619996
! Node: SIZEOF621304
! Node: SLEEP622954
! Node: SPACING623514
! Node: SPREAD624527
! Node: SQRT625672
! Node: SRAND627026
! Node: STAT628259
! Node: STORAGE_SIZE631426
! Node: SUM632305
! Node: SYMLNK633788
! Node: SYSTEM634920
! Node: SYSTEM_CLOCK636171
! Node: TAN638998
! Node: TAND640053
! Node: TANH641127
! Node: THIS_IMAGE642285
! Node: TIME644574
! Node: TIME8645745
! Node: TINY646941
! Node: TRAILZ647541
! Node: TRANSFER648358
! Node: TRANSPOSE650392
! Node: TRIM651079
! Node: TTYNAM651936
! Node: UBOUND652851
! Node: UCOBOUND654241
! Node: UMASK655373
! Node: UNLINK656051
! Node: UNPACK657028
! Node: VERIFY658316
! Node: XOR660037
! Node: Intrinsic Modules661409
! Node: ISO_FORTRAN_ENV661698
! Node: ISO_C_BINDING666084
! Node: IEEE modules670275
! Node: OpenMP Modules OMP_LIB and OMP_LIB_KINDS671420
! Node: OpenACC Module OPENACC672969
! Node: Contributing673896
! Node: Contributors674750
! Node: Projects676417
! Node: Proposed Extensions677222
! Node: Copying679233
! Node: GNU Free Documentation License716797
! Node: Funding741940
! Node: Option Index744465
! Node: Keyword Index761494
  
  End Tag Table
diff -Nrcpad gcc-7.4.0/gcc/fortran/interface.c gcc-7.5.0/gcc/fortran/interface.c
*** gcc-7.4.0/gcc/fortran/interface.c	Fri Sep  7 17:33:15 2018
--- gcc-7.5.0/gcc/fortran/interface.c	Fri Aug 30 12:41:43 2019
*************** gfc_compare_types (gfc_typespec *ts1, gf
*** 691,696 ****
--- 691,705 ----
    if (ts1->type == BT_VOID || ts2->type == BT_VOID)
      return true;
  
+   /* Special case for our C interop types.  There should be a better
+      way of doing this...  */
+ 
+   if (((ts1->type == BT_INTEGER && ts2->type == BT_DERIVED)
+        || (ts1->type == BT_DERIVED && ts2->type == BT_INTEGER))
+       && ts1->u.derived && ts2->u.derived
+       && ts1->u.derived == ts2->u.derived)
+     return true;
+ 
    /* The _data component is not always present, therefore check for its
       presence before assuming, that its derived->attr is available.
       When the _data component is not present, then nevertheless the
*************** gfc_procedure_use (gfc_symbol *sym, gfc_
*** 3576,3581 ****
--- 3585,3591 ----
  	gfc_warning (OPT_Wimplicit_procedure,
  		     "Procedure %qs called at %L is not explicitly declared",
  		     sym->name, where);
+       gfc_find_proc_namespace (sym->ns)->implicit_interface_calls = 1;
      }
  
    if (sym->attr.if_source == IFSRC_UNKNOWN)
diff -Nrcpad gcc-7.4.0/gcc/fortran/intrinsic.c gcc-7.5.0/gcc/fortran/intrinsic.c
*** gcc-7.4.0/gcc/fortran/intrinsic.c	Sun Mar  5 11:35:47 2017
--- gcc-7.5.0/gcc/fortran/intrinsic.c	Sat Feb  2 17:07:40 2019
*************** gfc_convert_type_warn (gfc_expr *expr, g
*** 4919,4924 ****
--- 4919,4926 ----
    if (ts->type == BT_UNKNOWN)
      goto bad;
  
+   expr->do_not_warn = ! wflag;
+ 
    /* NULL and zero size arrays get their type here.  */
    if (expr->expr_type == EXPR_NULL
        || (expr->expr_type == EXPR_ARRAY && expr->value.constructor == NULL))
diff -Nrcpad gcc-7.4.0/gcc/fortran/invoke.texi gcc-7.5.0/gcc/fortran/invoke.texi
*** gcc-7.4.0/gcc/fortran/invoke.texi	Sun Feb 26 13:22:43 2017
--- gcc-7.5.0/gcc/fortran/invoke.texi	Fri Aug 30 12:41:43 2019
*************** and warnings}.
*** 174,180 ****
  @item Code Generation Options
  @xref{Code Gen Options,,Options for code generation conventions}.
  @gccoptlist{-faggressive-function-elimination -fblas-matmul-limit=@var{n} @gol
! -fbounds-check -fcheck-array-temporaries @gol
  -fcheck=@var{<all|array-temps|bounds|do|mem|pointer|recursion>} @gol
  -fcoarray=@var{<none|single|lib>} -fexternal-blas -ff2c
  -ffrontend-optimize @gol
--- 174,181 ----
  @item Code Generation Options
  @xref{Code Gen Options,,Options for code generation conventions}.
  @gccoptlist{-faggressive-function-elimination -fblas-matmul-limit=@var{n} @gol
! -fbounds-check -ftail-call-workaround -ftail-call-workaround=@var{n} @gol
! -fcheck-array-temporaries @gol
  -fcheck=@var{<all|array-temps|bounds|do|mem|pointer|recursion>} @gol
  -fcoarray=@var{<none|single|lib>} -fexternal-blas -ff2c
  -ffrontend-optimize @gol
*************** warnings for generated array temporaries
*** 1522,1527 ****
--- 1523,1561 ----
  @c Note: This option is also referred in gcc's manpage
  Deprecated alias for @option{-fcheck=bounds}.
  
+ @item -ftail-call-workaround
+ @itemx -ftail-call-workaround=@var{n}
+ @opindex @code{tail-call-workaround}
+ Some C interfaces to Fortran codes violate the gfortran ABI by
+ omitting the hidden character length arguments as described in
+ @xref{Argument passing conventions}.  This can lead to crashes
+ because pushing arguments for tail calls can overflow the stack.
+ 
+ To provide a workaround for existing binary packages, this option
+ disables tail call optimization for gfortran procedures with character
+ arguments.  With @option{-ftail-call-workaround=2} tail call optimization
+ is disabled in all gfortran procedures with character arguments,
+ with @option{-ftail-call-workaround=1} or equivalent
+ @option{-ftail-call-workaround} only in gfortran procedures with character
+ arguments that call implicitly prototyped procedures.
+ 
+ Using this option can lead to problems including crashes due to
+ insufficient stack space.
+ 
+ It is @emph{very strongly} recommended to fix the code in question.
+ The @option{-fc-prototypes-external} option can be used to generate
+ prototypes which conform to gfortran's ABI, for inclusion in the
+ source code.
+ 
+ Support for this option will likely be withdrawn in a future release
+ of gfortran.
+ 
+ The negative form, @option{-fno-tail-call-workaround} or equivalent
+ @option{-ftail-call-workaround=0}, can be used to disable this option.
+ 
+ Default is currently @option{-ftail-call-workaround}, this will change
+ in future releases.
+ 
  @item -fcheck-array-temporaries
  @opindex @code{fcheck-array-temporaries}
  Deprecated alias for @option{-fcheck=array-temps}.
diff -Nrcpad gcc-7.4.0/gcc/fortran/io.c gcc-7.5.0/gcc/fortran/io.c
*** gcc-7.4.0/gcc/fortran/io.c	Wed May 17 18:09:48 2017
--- gcc-7.5.0/gcc/fortran/io.c	Wed Dec 12 00:08:12 2018
*************** gfc_match_open (void)
*** 2090,2122 ****
  
    warn = (open->err || open->iostat) ? true : false;
  
-   /* Checks on NEWUNIT specifier.  */
-   if (open->newunit)
-     {
-       if (open->unit)
- 	{
- 	  gfc_error ("UNIT specifier not allowed with NEWUNIT at %C");
- 	  goto cleanup;
- 	}
- 
-       if (!open->file && open->status)
-         {
- 	  if (open->status->expr_type == EXPR_CONSTANT
- 	     && gfc_wide_strncasecmp (open->status->value.character.string,
- 				       "scratch", 7) != 0)
- 	   {
- 	     gfc_error ("NEWUNIT specifier must have FILE= "
- 			"or STATUS='scratch' at %C");
- 	     goto cleanup;
- 	   }
- 	}
-     }
-   else if (!open->unit)
-     {
-       gfc_error ("OPEN statement at %C must have UNIT or NEWUNIT specified");
-       goto cleanup;
-     }
- 
    /* Checks on the ACCESS specifier.  */
    if (open->access && open->access->expr_type == EXPR_CONSTANT)
      {
--- 2090,2095 ----
*************** gfc_match_open (void)
*** 2441,2446 ****
--- 2414,2446 ----
  	}
      }
  
+   /* Checks on NEWUNIT specifier.  */
+   if (open->newunit)
+     {
+       if (open->unit)
+ 	{
+ 	  gfc_error ("UNIT specifier not allowed with NEWUNIT at %C");
+ 	  goto cleanup;
+ 	}
+ 
+       if (!open->file && open->status)
+         {
+ 	  if (open->status->expr_type == EXPR_CONSTANT
+ 	     && gfc_wide_strncasecmp (open->status->value.character.string,
+ 				       "scratch", 7) != 0)
+ 	   {
+ 	     gfc_error ("NEWUNIT specifier must have FILE= "
+ 			"or STATUS='scratch' at %C");
+ 	     goto cleanup;
+ 	   }
+ 	}
+     }
+   else if (!open->unit)
+     {
+       gfc_error ("OPEN statement at %C must have UNIT or NEWUNIT specified");
+       goto cleanup;
+     }
+ 
    /* Things that are not allowed for unformatted I/O.  */
    if (open->form && open->form->expr_type == EXPR_CONSTANT
        && (open->delim || open->decimal || open->encoding || open->round
*************** cleanup:
*** 2774,2795 ****
  
  
  bool
! gfc_resolve_filepos (gfc_filepos *fp)
  {
    RESOLVE_TAG (&tag_unit, fp->unit);
    RESOLVE_TAG (&tag_iostat, fp->iostat);
    RESOLVE_TAG (&tag_iomsg, fp->iomsg);
-   if (!gfc_reference_st_label (fp->err, ST_LABEL_TARGET))
-     return false;
  
!   if (!fp->unit && (fp->iostat || fp->iomsg))
      {
!       locus where;
!       where = fp->iostat ? fp->iostat->where : fp->iomsg->where;
!       gfc_error ("UNIT number missing in statement at %L", &where);
        return false;
      }
  
    if (fp->unit->expr_type == EXPR_CONSTANT
        && fp->unit->ts.type == BT_INTEGER
        && mpz_sgn (fp->unit->value.integer) < 0)
--- 2774,2794 ----
  
  
  bool
! gfc_resolve_filepos (gfc_filepos *fp, locus *where)
  {
    RESOLVE_TAG (&tag_unit, fp->unit);
    RESOLVE_TAG (&tag_iostat, fp->iostat);
    RESOLVE_TAG (&tag_iomsg, fp->iomsg);
  
!   if (!fp->unit && (fp->iostat || fp->iomsg || fp->err))
      {
!       gfc_error ("UNIT number missing in statement at %L", where);
        return false;
      }
  
+   if (!gfc_reference_st_label (fp->err, ST_LABEL_TARGET))
+     return false;
+ 
    if (fp->unit->expr_type == EXPR_CONSTANT
        && fp->unit->ts.type == BT_INTEGER
        && mpz_sgn (fp->unit->value.integer) < 0)
*************** static match
*** 3617,3626 ****
  check_io_constraints (io_kind k, gfc_dt *dt, gfc_code *io_code,
  		      locus *spec_end)
  {
! #define io_constraint(condition,msg,arg)\
  if (condition) \
    {\
!     gfc_error(msg,arg);\
      m = MATCH_ERROR;\
    }
  
--- 3616,3628 ----
  check_io_constraints (io_kind k, gfc_dt *dt, gfc_code *io_code,
  		      locus *spec_end)
  {
! #define io_constraint(condition, msg, arg)\
  if (condition) \
    {\
!     if ((arg)->lb != NULL)\
!       gfc_error ((msg), (arg));\
!     else\
!       gfc_error ((msg), &gfc_current_locus);\
      m = MATCH_ERROR;\
    }
  
*************** if (condition) \
*** 3680,3690 ****
    if (expr && expr->ts.type != BT_CHARACTER)
      {
  
!       io_constraint (gfc_pure (NULL) && (k == M_READ || k == M_WRITE),
! 		     "IO UNIT in %s statement at %C must be "
  		     "an internal file in a PURE procedure",
  		     io_kind_name (k));
! 
        if (k == M_READ || k == M_WRITE)
  	gfc_unset_implicit_pure (NULL);
      }
--- 3682,3695 ----
    if (expr && expr->ts.type != BT_CHARACTER)
      {
  
!       if (gfc_pure (NULL) && (k == M_READ || k == M_WRITE))
! 	{
! 	  gfc_error ("IO UNIT in %s statement at %C must be "
  		     "an internal file in a PURE procedure",
  		     io_kind_name (k));
! 	  return MATCH_ERROR;
! 	}
! 	  
        if (k == M_READ || k == M_WRITE)
  	gfc_unset_implicit_pure (NULL);
      }
diff -Nrcpad gcc-7.4.0/gcc/fortran/iresolve.c gcc-7.5.0/gcc/fortran/iresolve.c
*** gcc-7.4.0/gcc/fortran/iresolve.c	Sun Mar  5 11:35:47 2017
--- gcc-7.5.0/gcc/fortran/iresolve.c	Sat Mar 23 16:01:57 2019
*************** along with GCC; see the file COPYING3.
*** 35,40 ****
--- 35,41 ----
  #include "intrinsic.h"
  #include "constructor.h"
  #include "arith.h"
+ #include "trans.h"
  
  /* Given printf-like arguments, return a stable version of the result string. 
  
*************** gfc_resolve_fe_runtime_error (gfc_code *
*** 2286,2291 ****
--- 2287,2296 ----
      a->name = "%VAL";
  
    c->resolved_sym = gfc_get_intrinsic_sub_symbol (name);
+   /* We set the backend_decl here because runtime_error is a
+      variadic function and we would use the wrong calling
+      convention otherwise.  */
+   c->resolved_sym->backend_decl = gfor_fndecl_runtime_error;
  }
  
  void
diff -Nrcpad gcc-7.4.0/gcc/fortran/lang.opt gcc-7.5.0/gcc/fortran/lang.opt
*** gcc-7.4.0/gcc/fortran/lang.opt	Thu Jan 19 23:09:45 2017
--- gcc-7.5.0/gcc/fortran/lang.opt	Fri Aug 30 12:42:14 2019
*************** fsign-zero
*** 718,723 ****
--- 718,730 ----
  Fortran Var(flag_sign_zero) Init(1)
  Apply negative sign to zero values.
  
+ ftail-call-workaround
+ Frotran Alias(ftail-call-workaround=,1,0)
+ 
+ ftail-call-workaround=
+ Fortran RejectNegative Joined UInteger IntegerRange(0, 2) Var(flag_tail_call_workaround) Init(1)
+ Disallow tail call optimization when a calling routine may have omitted character lengths.
+ 
  funderscoring
  Fortran Var(flag_underscoring) Init(1)
  Append underscores to externally visible names.
diff -Nrcpad gcc-7.4.0/gcc/fortran/match.c gcc-7.5.0/gcc/fortran/match.c
*** gcc-7.4.0/gcc/fortran/match.c	Sun May 20 17:16:09 2018
--- gcc-7.5.0/gcc/fortran/match.c	Wed Mar 13 22:15:33 2019
*************** gfc_match_type_spec (gfc_typespec *ts)
*** 2050,2057 ****
        ts->type = BT_CHARACTER;
  
        m = gfc_match_char_spec (ts);
-       if (ts->u.cl && ts->u.cl->length)
- 	gfc_resolve_expr (ts->u.cl->length);
  
        if (m == MATCH_NO)
  	m = MATCH_YES;
--- 2050,2055 ----
*************** found:
*** 2153,2158 ****
--- 2151,2159 ----
  	      return MATCH_NO;
  	    }
  
+ 	  if (e->expr_type != EXPR_CONSTANT)
+ 	    goto ohno;
+ 
  	  gfc_next_char (); /* Burn the ')'. */
  	  ts->kind = (int) mpz_get_si (e->value.integer);
  	  if (gfc_validate_kind (ts->type, ts->kind , true) == -1)
*************** found:
*** 2167,2172 ****
--- 2168,2175 ----
  	}
      }
  
+ ohno:
+ 
    /* If a type is not matched, simply return MATCH_NO.  */
    gfc_current_locus = old_locus;
    return MATCH_NO;
diff -Nrcpad gcc-7.4.0/gcc/fortran/module.c gcc-7.5.0/gcc/fortran/module.c
*** gcc-7.4.0/gcc/fortran/module.c	Fri Oct 12 14:47:57 2018
--- gcc-7.5.0/gcc/fortran/module.c	Sat Dec 22 18:09:19 2018
*************** static void
*** 3632,3638 ****
  mio_namelist (gfc_symbol *sym)
  {
    gfc_namelist *n, *m;
-   const char *check_name;
  
    mio_lparen ();
  
--- 3632,3637 ----
*************** mio_namelist (gfc_symbol *sym)
*** 3643,3659 ****
      }
    else
      {
-       /* This departure from the standard is flagged as an error.
- 	 It does, in fact, work correctly. TODO: Allow it
- 	 conditionally?  */
-       if (sym->attr.flavor == FL_NAMELIST)
- 	{
- 	  check_name = find_use_name (sym->name, false);
- 	  if (check_name && strcmp (check_name, sym->name) != 0)
- 	    gfc_error ("Namelist %s cannot be renamed by USE "
- 		       "association to %s", sym->name, check_name);
- 	}
- 
        m = NULL;
        while (peek_atom () != ATOM_RPAREN)
  	{
--- 3642,3647 ----
diff -Nrcpad gcc-7.4.0/gcc/fortran/openmp.c gcc-7.5.0/gcc/fortran/openmp.c
*** gcc-7.4.0/gcc/fortran/openmp.c	Fri Jun 22 21:09:32 2018
--- gcc-7.5.0/gcc/fortran/openmp.c	Fri Aug 30 11:09:22 2019
*************** gfc_match_omp_clauses (gfc_omp_clauses *
*** 1699,1720 ****
  	      locus old_loc2 = gfc_current_locus;
  	      do
  		{
! 		  if (!c->sched_simd
! 		      && gfc_match ("simd") == MATCH_YES)
  		    {
  		      c->sched_simd = true;
  		      nmodifiers++;
  		    }
! 		  else if (!c->sched_monotonic
! 			   && !c->sched_nonmonotonic
! 			   && gfc_match ("monotonic") == MATCH_YES)
  		    {
  		      c->sched_monotonic = true;
  		      nmodifiers++;
  		    }
! 		  else if (!c->sched_monotonic
! 			   && !c->sched_nonmonotonic
! 			   && gfc_match ("nonmonotonic") == MATCH_YES)
  		    {
  		      c->sched_nonmonotonic = true;
  		      nmodifiers++;
--- 1699,1715 ----
  	      locus old_loc2 = gfc_current_locus;
  	      do
  		{
! 		  if (gfc_match ("simd") == MATCH_YES)
  		    {
  		      c->sched_simd = true;
  		      nmodifiers++;
  		    }
! 		  else if (gfc_match ("monotonic") == MATCH_YES)
  		    {
  		      c->sched_monotonic = true;
  		      nmodifiers++;
  		    }
! 		  else if (gfc_match ("nonmonotonic") == MATCH_YES)
  		    {
  		      c->sched_nonmonotonic = true;
  		      nmodifiers++;
*************** gfc_match_omp_clauses (gfc_omp_clauses *
*** 1725,1731 ****
  			gfc_current_locus = old_loc2;
  		      break;
  		    }
! 		  if (nmodifiers == 0
  		      && gfc_match (" , ") == MATCH_YES)
  		    continue;
  		  else if (gfc_match (" : ") == MATCH_YES)
--- 1720,1726 ----
  			gfc_current_locus = old_loc2;
  		      break;
  		    }
! 		  if (nmodifiers == 1
  		      && gfc_match (" , ") == MATCH_YES)
  		    continue;
  		  else if (gfc_match (" : ") == MATCH_YES)
*************** resolve_omp_clauses (gfc_code *code, gfc
*** 4062,4067 ****
--- 4057,4086 ----
  	gfc_warning (0, "INTEGER expression of SCHEDULE clause's chunk_size "
  		     "at %L must be positive", &expr->where);
      }
+   if (omp_clauses->sched_kind != OMP_SCHED_NONE
+       && omp_clauses->sched_nonmonotonic)
+     {
+       if (omp_clauses->sched_kind != OMP_SCHED_DYNAMIC
+ 	  && omp_clauses->sched_kind != OMP_SCHED_GUIDED)
+ 	{
+ 	  const char *p;
+ 	  switch (omp_clauses->sched_kind)
+ 	    {
+ 	    case OMP_SCHED_STATIC: p = "STATIC"; break;
+ 	    case OMP_SCHED_RUNTIME: p = "RUNTIME"; break;
+ 	    case OMP_SCHED_AUTO: p = "AUTO"; break;
+ 	    default: gcc_unreachable ();
+ 	    }
+ 	  gfc_error ("NONMONOTONIC modifier specified for %s schedule kind "
+ 		     "at %L", p, &code->loc);
+ 	}
+       else if (omp_clauses->sched_monotonic)
+ 	gfc_error ("Both MONOTONIC and NONMONOTONIC schedule modifiers "
+ 		   "specified at %L", &code->loc);
+       else if (omp_clauses->ordered)
+ 	gfc_error ("NONMONOTONIC schedule modifier specified with ORDERED "
+ 		   "clause at %L", &code->loc);
+     }
  
    /* Check that no symbol appears on multiple clauses, except that
       a symbol can appear on both firstprivate and lastprivate.  */
diff -Nrcpad gcc-7.4.0/gcc/fortran/parse.c gcc-7.5.0/gcc/fortran/parse.c
*** gcc-7.4.0/gcc/fortran/parse.c	Fri Dec 15 21:55:47 2017
--- gcc-7.5.0/gcc/fortran/parse.c	Sat Mar 16 13:24:40 2019
*************** parse_block_data (void)
*** 5780,5786 ****
      }
    else
      {
!       s = gfc_get_gsymbol (gfc_new_block->name);
        if (s->defined
  	  || (s->type != GSYM_UNKNOWN && s->type != GSYM_BLOCK_DATA))
         gfc_global_used (s, &gfc_new_block->declared_at);
--- 5780,5786 ----
      }
    else
      {
!       s = gfc_get_gsymbol (gfc_new_block->name, false);
        if (s->defined
  	  || (s->type != GSYM_UNKNOWN && s->type != GSYM_BLOCK_DATA))
         gfc_global_used (s, &gfc_new_block->declared_at);
*************** parse_module (void)
*** 5862,5868 ****
    gfc_gsymbol *s;
    bool error;
  
!   s = gfc_get_gsymbol (gfc_new_block->name);
    if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_MODULE))
      gfc_global_used (s, &gfc_new_block->declared_at);
    else
--- 5862,5868 ----
    gfc_gsymbol *s;
    bool error;
  
!   s = gfc_get_gsymbol (gfc_new_block->name, false);
    if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_MODULE))
      gfc_global_used (s, &gfc_new_block->declared_at);
    else
*************** add_global_procedure (bool sub)
*** 5926,5932 ****
       name is a global identifier.  */
    if (!gfc_new_block->binding_label || gfc_notification_std (GFC_STD_F2008))
      {
!       s = gfc_get_gsymbol (gfc_new_block->name);
  
        if (s->defined
  	  || (s->type != GSYM_UNKNOWN
--- 5926,5932 ----
       name is a global identifier.  */
    if (!gfc_new_block->binding_label || gfc_notification_std (GFC_STD_F2008))
      {
!       s = gfc_get_gsymbol (gfc_new_block->name, false);
  
        if (s->defined
  	  || (s->type != GSYM_UNKNOWN
*************** add_global_procedure (bool sub)
*** 5951,5957 ****
        && (!gfc_notification_std (GFC_STD_F2008)
            || strcmp (gfc_new_block->name, gfc_new_block->binding_label) != 0))
      {
!       s = gfc_get_gsymbol (gfc_new_block->binding_label);
  
        if (s->defined
  	  || (s->type != GSYM_UNKNOWN
--- 5951,5957 ----
        && (!gfc_notification_std (GFC_STD_F2008)
            || strcmp (gfc_new_block->name, gfc_new_block->binding_label) != 0))
      {
!       s = gfc_get_gsymbol (gfc_new_block->binding_label, true);
  
        if (s->defined
  	  || (s->type != GSYM_UNKNOWN
*************** add_global_program (void)
*** 5983,5989 ****
  
    if (gfc_new_block == NULL)
      return;
!   s = gfc_get_gsymbol (gfc_new_block->name);
  
    if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_PROGRAM))
      gfc_global_used (s, &gfc_new_block->declared_at);
--- 5983,5989 ----
  
    if (gfc_new_block == NULL)
      return;
!   s = gfc_get_gsymbol (gfc_new_block->name, false);
  
    if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_PROGRAM))
      gfc_global_used (s, &gfc_new_block->declared_at);
diff -Nrcpad gcc-7.4.0/gcc/fortran/primary.c gcc-7.5.0/gcc/fortran/primary.c
*** gcc-7.4.0/gcc/fortran/primary.c	Tue Mar  6 19:27:48 2018
--- gcc-7.5.0/gcc/fortran/primary.c	Wed Dec 12 01:26:12 2018
*************** gfc_match_structure_constructor (gfc_sym
*** 2980,2985 ****
--- 2980,2986 ----
    e = gfc_get_expr ();
    e->symtree = symtree;
    e->expr_type = EXPR_FUNCTION;
+   e->where = gfc_current_locus;
  
    gcc_assert (gfc_fl_struct (sym->attr.flavor)
  	      && symtree->n.sym->attr.flavor == FL_PROCEDURE);
diff -Nrcpad gcc-7.4.0/gcc/fortran/resolve.c gcc-7.5.0/gcc/fortran/resolve.c
*** gcc-7.4.0/gcc/fortran/resolve.c	Sat Nov 24 18:54:52 2018
--- gcc-7.5.0/gcc/fortran/resolve.c	Sun Oct 27 16:21:36 2019
*************** resolve_common_blocks (gfc_symtree *comm
*** 1045,1051 ****
  	}
        if (!gsym)
  	{
! 	  gsym = gfc_get_gsymbol (common_root->n.common->name);
  	  gsym->type = GSYM_COMMON;
  	  gsym->where = common_root->n.common->where;
  	  gsym->defined = 1;
--- 1045,1051 ----
  	}
        if (!gsym)
  	{
! 	  gsym = gfc_get_gsymbol (common_root->n.common->name, false);
  	  gsym->type = GSYM_COMMON;
  	  gsym->where = common_root->n.common->where;
  	  gsym->defined = 1;
*************** resolve_common_blocks (gfc_symtree *comm
*** 1067,1073 ****
  	}
        if (!gsym)
  	{
! 	  gsym = gfc_get_gsymbol (common_root->n.common->binding_label);
  	  gsym->type = GSYM_COMMON;
  	  gsym->where = common_root->n.common->where;
  	  gsym->defined = 1;
--- 1067,1073 ----
  	}
        if (!gsym)
  	{
! 	  gsym = gfc_get_gsymbol (common_root->n.common->binding_label, true);
  	  gsym->type = GSYM_COMMON;
  	  gsym->where = common_root->n.common->where;
  	  gsym->defined = 1;
*************** is_illegal_recursion (gfc_symbol* sym, g
*** 1576,1583 ****
        || gfc_fl_struct (sym->attr.flavor))
      return false;
  
-   gcc_assert (sym->attr.flavor == FL_PROCEDURE);
- 
    /* If we've got an ENTRY, find real procedure.  */
    if (sym->attr.entry && sym->ns->entries)
      proc_sym = sym->ns->entries->sym;
--- 1576,1581 ----
*************** resolve_global_procedure (gfc_symbol *sy
*** 2379,2385 ****
  
    type = sub ? GSYM_SUBROUTINE : GSYM_FUNCTION;
  
!   gsym = gfc_get_gsymbol (sym->binding_label ? sym->binding_label : sym->name);
  
    if ((gsym->type != GSYM_UNKNOWN && gsym->type != type))
      gfc_global_used (gsym, where);
--- 2377,2384 ----
  
    type = sub ? GSYM_SUBROUTINE : GSYM_FUNCTION;
  
!   gsym = gfc_get_gsymbol (sym->binding_label ? sym->binding_label : sym->name,
! 			  sym->binding_label != NULL);
  
    if ((gsym->type != GSYM_UNKNOWN && gsym->type != type))
      gfc_global_used (gsym, where);
*************** resolve_operator (gfc_expr *e)
*** 3737,3743 ****
  	  if (op2->ts.type != e->ts.type || op2->ts.kind != e->ts.kind)
  	    gfc_convert_type (op2, &e->ts, 1);
  	  e = logical_to_bitwise (e);
! 	  return resolve_function (e);
  	}
  
        sprintf (msg, _("Operands of logical operator %%<%s%%> at %%L are %s/%s"),
--- 3736,3742 ----
  	  if (op2->ts.type != e->ts.type || op2->ts.kind != e->ts.kind)
  	    gfc_convert_type (op2, &e->ts, 1);
  	  e = logical_to_bitwise (e);
! 	  break;
  	}
  
        sprintf (msg, _("Operands of logical operator %%<%s%%> at %%L are %s/%s"),
*************** resolve_operator (gfc_expr *e)
*** 3753,3759 ****
  	  e->ts.type = BT_INTEGER;
  	  e->ts.kind = op1->ts.kind;
  	  e = logical_to_bitwise (e);
! 	  return resolve_function (e);
  	}
  
        if (op1->ts.type == BT_LOGICAL)
--- 3752,3758 ----
  	  e->ts.type = BT_INTEGER;
  	  e->ts.kind = op1->ts.kind;
  	  e = logical_to_bitwise (e);
! 	  break;
  	}
  
        if (op1->ts.type == BT_LOGICAL)
*************** resolve_variable (gfc_expr *e)
*** 5161,5166 ****
--- 5160,5182 ----
  	gfc_fix_class_refs (e);
        if (!sym->attr.dimension && e->ref && e->ref->type == REF_ARRAY)
  	return false;
+        else if (sym->attr.dimension && (!e->ref || e->ref->type != REF_ARRAY))
+ 	  {
+ 	    /* This can happen because the parser did not detect that the
+ 	       associate name is an array and the expression had no array
+ 	       part_ref.  */
+ 	    gfc_ref *ref = gfc_get_ref ();
+ 	    ref->type = REF_ARRAY;
+ 	    ref->u.ar = *gfc_get_array_ref();
+ 	    ref->u.ar.type = AR_FULL;
+ 	    if (sym->as)
+ 	      {
+ 		ref->u.ar.as = sym->as;
+ 		ref->u.ar.dimen = sym->as->rank;
+ 	      }
+ 	    ref->next = e->ref;
+ 	    e->ref = ref;
+ 	  }
      }
  
    if (sym->ts.type == BT_DERIVED && sym->ts.u.derived->attr.generic)
*************** gfc_expr_to_initialize (gfc_expr *e)
*** 6989,6994 ****
--- 7005,7014 ----
    for (ref = result->ref; ref; ref = ref->next)
      if (ref->type == REF_ARRAY && ref->next == NULL)
        {
+ 	if (ref->u.ar.dimen == 0
+ 	    && ref->u.ar.as && ref->u.ar.as->corank)
+ 	  return result;
+ 
  	ref->u.ar.type = AR_FULL;
  
  	for (i = 0; i < ref->u.ar.dimen; i++)
*************** resolve_allocate_expr (gfc_expr *e, gfc_
*** 7414,7426 ****
  
    if (codimension)
      for (i = ar->dimen; i < ar->dimen + ar->codimen; i++)
!       if (ar->dimen_type[i] == DIMEN_THIS_IMAGE)
! 	{
! 	  gfc_error ("Coarray specification required in ALLOCATE statement "
! 		     "at %L", &e->where);
! 	  goto failure;
! 	}
  
    for (i = 0; i < ar->dimen; i++)
      {
        if (ar->type == AR_ELEMENT || ar->type == AR_FULL)
--- 7434,7487 ----
  
    if (codimension)
      for (i = ar->dimen; i < ar->dimen + ar->codimen; i++)
!       {
! 	switch (ar->dimen_type[i])
! 	  {
! 	  case DIMEN_THIS_IMAGE:
! 	    gfc_error ("Coarray specification required in ALLOCATE statement "
! 		       "at %L", &e->where);
! 	    goto failure;
  
+ 	  case  DIMEN_RANGE:
+ 	    if (ar->start[i] == 0 || ar->end[i] == 0)
+ 	      {
+ 		/* If ar->stride[i] is NULL, we issued a previous error.  */
+ 		if (ar->stride[i] == NULL)
+ 		  gfc_error ("Bad array specification in ALLOCATE statement "
+ 			     "at %L", &e->where);
+ 		goto failure;
+ 	      }
+ 	    else if (gfc_dep_compare_expr (ar->start[i], ar->end[i]) == 1)
+ 	      {
+ 		gfc_error ("Upper cobound is less than lower cobound at %L",
+ 			   &ar->start[i]->where);
+ 		goto failure;
+ 	      }
+ 	    break;
+ 
+ 	  case DIMEN_ELEMENT:
+ 	    if (ar->start[i]->expr_type == EXPR_CONSTANT)
+ 	      {
+ 		gcc_assert (ar->start[i]->ts.type == BT_INTEGER);
+ 		if (mpz_cmp_si (ar->start[i]->value.integer, 1) < 0)
+ 		  {
+ 		    gfc_error ("Upper cobound is less than lower cobound "
+ 			       " of 1 at %L", &ar->start[i]->where);
+ 		    goto failure;
+ 		  }
+ 	      }
+ 	    break;
+ 
+ 	  case DIMEN_STAR:
+ 	    break;
+ 
+ 	  default:
+ 	    gfc_error ("Bad array specification in ALLOCATE statement at %L",
+ 		       &e->where);
+ 	    goto failure;
+ 
+ 	  }
+       }
    for (i = 0; i < ar->dimen; i++)
      {
        if (ar->type == AR_ELEMENT || ar->type == AR_FULL)
*************** get_temp_from_expr (gfc_expr *e, gfc_nam
*** 10264,10269 ****
--- 10325,10335 ----
    gfc_get_sym_tree (name, ns, &tmp, false);
    gfc_add_type (tmp->n.sym, &e->ts, NULL);
  
+   if (e->expr_type == EXPR_CONSTANT && e->ts.type == BT_CHARACTER)
+     tmp->n.sym->ts.u.cl->length = gfc_get_int_expr (gfc_charlen_int_kind,
+ 						    NULL,
+ 						    e->value.character.length);
+ 
    as = NULL;
    ref = NULL;
    aref = NULL;
*************** deferred_op_assign (gfc_code **code, gfc
*** 10754,10759 ****
--- 10820,10828 ----
    if (!gfc_check_dependency ((*code)->expr1, (*code)->expr2, 1))
      return false;
  
+   if (gfc_expr_attr ((*code)->expr1).pointer)
+     return false;
+ 
    tmp_expr = get_temp_from_expr ((*code)->expr1, ns);
    tmp_expr->where = (*code)->loc;
  
*************** start:
*** 11163,11169 ****
  	case EXEC_ENDFILE:
  	case EXEC_REWIND:
  	case EXEC_FLUSH:
! 	  if (!gfc_resolve_filepos (code->ext.filepos))
  	    break;
  
  	  resolve_branch (code->ext.filepos->err, code);
--- 11232,11238 ----
  	case EXEC_ENDFILE:
  	case EXEC_REWIND:
  	case EXEC_FLUSH:
! 	  if (!gfc_resolve_filepos (code->ext.filepos, &code->loc))
  	    break;
  
  	  resolve_branch (code->ext.filepos->err, code);
*************** gfc_verify_binding_labels (gfc_symbol *s
*** 11385,11391 ****
  	  && (gsym->type == GSYM_FUNCTION || gsym->type == GSYM_SUBROUTINE)))
      {
        if (!gsym)
! 	gsym = gfc_get_gsymbol (sym->binding_label);
        gsym->where = sym->declared_at;
        gsym->sym_name = sym->name;
        gsym->binding_label = sym->binding_label;
--- 11454,11460 ----
  	  && (gsym->type == GSYM_FUNCTION || gsym->type == GSYM_SUBROUTINE)))
      {
        if (!gsym)
! 	gsym = gfc_get_gsymbol (sym->binding_label, true);
        gsym->where = sym->declared_at;
        gsym->sym_name = sym->name;
        gsym->binding_label = sym->binding_label;
*************** resolve_symbol (gfc_symbol *sym)
*** 14854,14860 ****
    /* Set the formal_arg_flag so that check_conflict will not throw
       an error for host associated variables in the specification
       expression for an array_valued function.  */
!   if (sym->attr.function && sym->as)
      formal_arg_flag = true;
  
    saved_specification_expr = specification_expr;
--- 14923,14929 ----
    /* Set the formal_arg_flag so that check_conflict will not throw
       an error for host associated variables in the specification
       expression for an array_valued function.  */
!   if ((sym->attr.function || sym->attr.result) && sym->as)
      formal_arg_flag = true;
  
    saved_specification_expr = specification_expr;
*************** resolve_equivalence (gfc_equiv *eq)
*** 15883,15890 ****
  }
  
  
! /* Function called by resolve_fntype to flag other symbol used in the
!    length type parameter specification of function resuls.  */
  
  static bool
  flag_fn_result_spec (gfc_expr *expr,
--- 15952,15959 ----
  }
  
  
! /* Function called by resolve_fntype to flag other symbols used in the
!    length type parameter specification of function results.  */
  
  static bool
  flag_fn_result_spec (gfc_expr *expr,
diff -Nrcpad gcc-7.4.0/gcc/fortran/symbol.c gcc-7.5.0/gcc/fortran/symbol.c
*** gcc-7.4.0/gcc/fortran/symbol.c	Sat Jun  9 20:10:34 2018
--- gcc-7.5.0/gcc/fortran/symbol.c	Mon Mar 25 19:58:04 2019
*************** check_conflict (symbol_attribute *attr,
*** 477,483 ****
    /* The copying of procedure dummy arguments for module procedures in
       a submodule occur whilst the current state is COMP_CONTAINS. It
       is necessary, therefore, to let this through.  */
!   if (attr->dummy
        && (attr->function || attr->subroutine)
        && gfc_current_state () == COMP_CONTAINS
        && !(gfc_new_block && gfc_new_block->abr_modproc_decl))
--- 477,483 ----
    /* The copying of procedure dummy arguments for module procedures in
       a submodule occur whilst the current state is COMP_CONTAINS. It
       is necessary, therefore, to let this through.  */
!   if (name && attr->dummy
        && (attr->function || attr->subroutine)
        && gfc_current_state () == COMP_CONTAINS
        && !(gfc_new_block && gfc_new_block->abr_modproc_decl))
*************** check_conflict (symbol_attribute *attr,
*** 509,514 ****
--- 509,515 ----
  
    conf (external, intrinsic);
    conf (entry, intrinsic);
+   conf (abstract, intrinsic);
  
    if ((attr->if_source == IFSRC_DECL && !attr->procedure) || attr->contained)
      conf (external, subroutine);
*************** gfc_add_subroutine (symbol_attribute *at
*** 1595,1601 ****
      return false;
  
    attr->subroutine = 1;
!   return check_conflict (attr, name, where);
  }
  
  
--- 1596,1610 ----
      return false;
  
    attr->subroutine = 1;
! 
!   /* If we are looking at a BLOCK DATA statement and we encounter a
!      name with a leading underscore (which must be
!      compiler-generated), do not check. See PR 84394.  */
! 
!   if (name && *name != '_' && gfc_current_state () != COMP_BLOCK_DATA)
!     return check_conflict (attr, name, where);
!   else
!     return true;
  }
  
  
*************** gfc_add_procedure (symbol_attribute *att
*** 1711,1717 ****
    if (where == NULL)
      where = &gfc_current_locus;
  
!   if (attr->proc != PROC_UNKNOWN && !attr->module_procedure)
      {
        if (attr->proc == PROC_ST_FUNCTION && t == PROC_INTERNAL
  	  && !gfc_notification_std (GFC_STD_F2008))
--- 1720,1727 ----
    if (where == NULL)
      where = &gfc_current_locus;
  
!   if (attr->proc != PROC_UNKNOWN && !attr->module_procedure
!       && attr->access == ACCESS_UNKNOWN)
      {
        if (attr->proc == PROC_ST_FUNCTION && t == PROC_INTERNAL
  	  && !gfc_notification_std (GFC_STD_F2008))
*************** gsym_compare (void *_s1, void *_s2)
*** 4173,4179 ****
  /* Get a global symbol, creating it if it doesn't exist.  */
  
  gfc_gsymbol *
! gfc_get_gsymbol (const char *name)
  {
    gfc_gsymbol *s;
  
--- 4183,4189 ----
  /* Get a global symbol, creating it if it doesn't exist.  */
  
  gfc_gsymbol *
! gfc_get_gsymbol (const char *name, bool bind_c)
  {
    gfc_gsymbol *s;
  
*************** gfc_get_gsymbol (const char *name)
*** 4184,4189 ****
--- 4194,4200 ----
    s = XCNEW (gfc_gsymbol);
    s->type = GSYM_UNKNOWN;
    s->name = gfc_get_string ("%s", name);
+   s->bind_c = bind_c;
  
    gfc_insert_bbt (&gfc_gsym_root, s, gsym_compare);
  
diff -Nrcpad gcc-7.4.0/gcc/fortran/target-memory.c gcc-7.5.0/gcc/fortran/target-memory.c
*** gcc-7.4.0/gcc/fortran/target-memory.c	Fri Jan 13 19:53:16 2017
--- gcc-7.5.0/gcc/fortran/target-memory.c	Sun Mar 31 19:21:37 2019
*************** gfc_element_size (gfc_expr *e)
*** 111,116 ****
--- 111,117 ----
      case BT_CLASS:
      case BT_VOID:
      case BT_ASSUMED:
+     case BT_PROCEDURE:
        {
  	/* Determine type size without clobbering the typespec for ISO C
  	   binding types.  */
diff -Nrcpad gcc-7.4.0/gcc/fortran/trans-array.c gcc-7.5.0/gcc/fortran/trans-array.c
*** gcc-7.4.0/gcc/fortran/trans-array.c	Tue Jul  3 09:46:31 2018
--- gcc-7.5.0/gcc/fortran/trans-array.c	Sat Mar 16 14:03:00 2019
*************** gfc_scalar_elemental_arg_saved_as_refere
*** 2498,2503 ****
--- 2498,2506 ----
    if (ss_info->type != GFC_SS_REFERENCE)
      return false;
  
+   if (ss_info->data.scalar.needs_temporary)
+     return false;
+ 
    /* If the actual argument can be absent (in other words, it can
       be a NULL reference), don't try to evaluate it; pass instead
       the reference directly.  */
*************** gfc_array_allocate (gfc_se * se, gfc_exp
*** 5482,5487 ****
--- 5485,5491 ----
    tree var_overflow = NULL_TREE;
    tree cond;
    tree set_descriptor;
+   tree not_prev_allocated = NULL_TREE;
    stmtblock_t set_descriptor_block;
    stmtblock_t elseblock;
    gfc_expr **lower;
*************** gfc_array_allocate (gfc_se * se, gfc_exp
*** 5619,5626 ****
  	}
      }
  
-   gfc_start_block (&elseblock);
- 
    /* Allocate memory to store the data.  */
    if (POINTER_TYPE_P (TREE_TYPE (se->expr)))
      se->expr = build_fold_indirect_ref_loc (input_location, se->expr);
--- 5623,5628 ----
*************** gfc_array_allocate (gfc_se * se, gfc_exp
*** 5636,5641 ****
--- 5638,5656 ----
      pointer = gfc_conv_descriptor_data_get (se->expr);
    STRIP_NOPS (pointer);
  
+   if (allocatable)
+     {
+       not_prev_allocated = gfc_create_var (logical_type_node,
+ 					   "not_prev_allocated");
+       tmp = fold_build2_loc (input_location, EQ_EXPR,
+ 			     logical_type_node, pointer,
+ 			     build_int_cst (TREE_TYPE (pointer), 0));
+ 
+       gfc_add_modify (&se->pre, not_prev_allocated, tmp);
+     }
+ 
+   gfc_start_block (&elseblock);
+ 
    /* The allocatable variant takes the old pointer as first argument.  */
    if (allocatable)
      gfc_allocate_allocatable (&elseblock, pointer, size, token,
*************** gfc_array_allocate (gfc_se * se, gfc_exp
*** 5672,5677 ****
--- 5687,5697 ----
        cond = fold_build2_loc (input_location, EQ_EXPR,
  			  logical_type_node, status,
  			  build_int_cst (TREE_TYPE (status), 0));
+ 
+       if (not_prev_allocated != NULL_TREE)
+ 	cond = fold_build2_loc (input_location, TRUTH_OR_EXPR,
+ 				logical_type_node, cond, not_prev_allocated);
+ 
        gfc_add_expr_to_block (&se->pre,
  		 fold_build3_loc (input_location, COND_EXPR, void_type_node,
  				  cond,
*************** gfc_walk_variable_expr (gfc_ss * ss, gfc
*** 9755,9760 ****
--- 9775,9782 ----
  {
    gfc_ref *ref;
  
+   gfc_fix_class_refs (expr);
+ 
    for (ref = expr->ref; ref; ref = ref->next)
      if (ref->type == REF_ARRAY && ref->u.ar.type != AR_ELEMENT)
        break;
diff -Nrcpad gcc-7.4.0/gcc/fortran/trans-decl.c gcc-7.5.0/gcc/fortran/trans-decl.c
*** gcc-7.4.0/gcc/fortran/trans-decl.c	Wed May 16 11:17:10 2018
--- gcc-7.5.0/gcc/fortran/trans-decl.c	Sun Oct 27 16:21:36 2019
*************** gfc_get_label_decl (gfc_st_label * lp)
*** 334,397 ****
      }
  }
  
  
! /* Convert a gfc_symbol to an identifier of the same name.  */
! 
! static tree
! gfc_sym_identifier (gfc_symbol * sym)
  {
    if (sym->attr.is_main_program && strcmp (sym->name, "main") == 0)
!     return (get_identifier ("MAIN__"));
    else
!     return (get_identifier (sym->name));
  }
  
! 
! /* Construct mangled name from symbol name.  */
  
  static tree
! gfc_sym_mangled_identifier (gfc_symbol * sym)
  {
!   char name[GFC_MAX_MANGLED_SYMBOL_LEN + 1];
  
    /* Prevent the mangling of identifiers that have an assigned
       binding label (mainly those that are bind(c)).  */
    if (sym->attr.is_bind_c == 1 && sym->binding_label)
!     return get_identifier (sym->binding_label);
  
!   if (!sym->fn_result_spec)
      {
        if (sym->module == NULL)
! 	return gfc_sym_identifier (sym);
        else
! 	{
! 	  snprintf (name, sizeof name, "__%s_MOD_%s", sym->module, sym->name);
! 	  return get_identifier (name);
! 	}
      }
    else
      {
        /* This is an entity that is actually local to a module procedure
  	 that appears in the result specification expression.  Since
  	 sym->module will be a zero length string, we use ns->proc_name
! 	 instead. */
!       if (sym->ns->proc_name && sym->ns->proc_name->module)
! 	{
! 	  snprintf (name, sizeof name, "__%s_MOD__%s_PROC_%s",
! 		    sym->ns->proc_name->module,
! 		    sym->ns->proc_name->name,
! 		    sym->name);
! 	  return get_identifier (name);
! 	}
        else
! 	{
! 	  snprintf (name, sizeof name, "__%s_PROC_%s",
! 		    sym->ns->proc_name->name, sym->name);
! 	  return get_identifier (name);
! 	}
      }
  }
  
  
  /* Construct mangled function name from symbol name.  */
  
--- 334,419 ----
      }
  }
  
+ /* Return the name of an identifier.  */
  
! static const char *
! sym_identifier (gfc_symbol *sym)
  {
    if (sym->attr.is_main_program && strcmp (sym->name, "main") == 0)
!     return "MAIN__";
    else
!     return sym->name;
  }
  
! /* Convert a gfc_symbol to an identifier of the same name.  */
  
  static tree
! gfc_sym_identifier (gfc_symbol * sym)
  {
!   return get_identifier (sym_identifier (sym));
! }
  
+ /* Construct mangled name from symbol name.   */
+ 
+ static const char *
+ mangled_identifier (gfc_symbol *sym)
+ {
+   gfc_symbol *proc = sym->ns->proc_name;
+   static char name[3*GFC_MAX_MANGLED_SYMBOL_LEN + 14];
    /* Prevent the mangling of identifiers that have an assigned
       binding label (mainly those that are bind(c)).  */
+ 
    if (sym->attr.is_bind_c == 1 && sym->binding_label)
!     return sym->binding_label;
  
!   if (!sym->fn_result_spec
!       || (sym->module && !(proc && proc->attr.flavor == FL_PROCEDURE)))
      {
        if (sym->module == NULL)
! 	return sym_identifier (sym);
        else
! 	snprintf (name, sizeof name, "__%s_MOD_%s", sym->module, sym->name);
      }
    else
      {
        /* This is an entity that is actually local to a module procedure
  	 that appears in the result specification expression.  Since
  	 sym->module will be a zero length string, we use ns->proc_name
! 	 to provide the module name instead. */
!       if (proc && proc->module)
! 	snprintf (name, sizeof name, "__%s_MOD__%s_PROC_%s",
! 		  proc->module, proc->name, sym->name);
        else
! 	snprintf (name, sizeof name, "__%s_PROC_%s",
! 		  proc->name, sym->name);
      }
+ 
+   return name;
  }
  
+ /* Get mangled identifier, adding the symbol to the global table if
+    it is not yet already there.  */
+ 
+ static tree
+ gfc_sym_mangled_identifier (gfc_symbol * sym)
+ {
+   tree result;
+   gfc_gsymbol *gsym;
+   const char *name;
+ 
+   name = mangled_identifier (sym);
+   result = get_identifier (name);
+ 
+   gsym = gfc_find_gsymbol (gfc_gsym_root, name);
+   if (gsym == NULL)
+     {
+       gsym = gfc_get_gsymbol (name, false);
+       gsym->ns = sym->ns;
+       gsym->sym_name = sym->name;
+     }
+ 
+   return result;
+ }
  
  /* Construct mangled function name from symbol name.  */
  
*************** gfc_get_module_backend_decl (gfc_symbol
*** 831,837 ****
  	{
  	  if (!gsym)
  	    {
! 	      gsym = gfc_get_gsymbol (sym->module);
  	      gsym->type = GSYM_MODULE;
  	      gsym->ns = gfc_get_namespace (NULL, 0);
  	    }
--- 853,859 ----
  	{
  	  if (!gsym)
  	    {
! 	      gsym = gfc_get_gsymbol (sym->module, false);
  	      gsym->type = GSYM_MODULE;
  	      gsym->ns = gfc_get_namespace (NULL, 0);
  	    }
*************** gfc_get_symbol_decl (gfc_symbol * sym)
*** 1569,1581 ****
  	  if (VAR_P (length) && DECL_FILE_SCOPE_P (length))
  	    {
  	      /* Add the string length to the same context as the symbol.  */
! 	      if (DECL_CONTEXT (sym->backend_decl) == current_function_decl)
! 	        gfc_add_decl_to_function (length);
! 	      else
! 		gfc_add_decl_to_parent_function (length);
  
! 	      gcc_assert (DECL_CONTEXT (sym->backend_decl) ==
! 			    DECL_CONTEXT (length));
  
  	      gfc_defer_symbol_init (sym);
  	    }
--- 1591,1607 ----
  	  if (VAR_P (length) && DECL_FILE_SCOPE_P (length))
  	    {
  	      /* Add the string length to the same context as the symbol.  */
! 	      if (DECL_CONTEXT (length) == NULL_TREE)
! 		{
! 		  if (DECL_CONTEXT (sym->backend_decl)
! 		      == current_function_decl)
! 		    gfc_add_decl_to_function (length);
! 		  else
! 		    gfc_add_decl_to_parent_function (length);
! 		}
  
! 	      gcc_assert (DECL_CONTEXT (sym->backend_decl)
! 			  == DECL_CONTEXT (length));
  
  	      gfc_defer_symbol_init (sym);
  	    }
*************** gfc_get_symbol_decl (gfc_symbol * sym)
*** 1655,1661 ****
      {
        /* Catch functions. Only used for actual parameters,
  	 procedure pointers and procptr initialization targets.  */
!       if (sym->attr.use_assoc || sym->attr.intrinsic
  	  || sym->attr.if_source != IFSRC_DECL)
  	{
  	  decl = gfc_get_extern_function_decl (sym);
--- 1681,1689 ----
      {
        /* Catch functions. Only used for actual parameters,
  	 procedure pointers and procptr initialization targets.  */
!       if (sym->attr.use_assoc
! 	  || sym->attr.used_in_submodule
! 	  || sym->attr.intrinsic
  	  || sym->attr.if_source != IFSRC_DECL)
  	{
  	  decl = gfc_get_extern_function_decl (sym);
*************** get_proc_pointer_decl (gfc_symbol *sym)
*** 1862,1867 ****
--- 1890,1911 ----
    tree decl;
    tree attributes;
  
+   if (sym->module || sym->fn_result_spec)
+     {
+       const char *name;
+       gfc_gsymbol *gsym;
+ 
+       name = mangled_identifier (sym);
+       gsym = gfc_find_gsymbol (gfc_gsym_root, name);
+       if (gsym != NULL)
+ 	{
+ 	  gfc_symbol *s;
+ 	  gfc_find_symbol (sym->name, gsym->ns, 0, &s);
+ 	  if (s && s->backend_decl)
+ 	    return s->backend_decl;
+ 	}
+     }
+ 
    decl = sym->backend_decl;
    if (decl)
      return decl;
*************** get_proc_pointer_decl (gfc_symbol *sym)
*** 1934,1940 ****
  /* Get a basic decl for an external function.  */
  
  tree
! gfc_get_extern_function_decl (gfc_symbol * sym)
  {
    tree type;
    tree fndecl;
--- 1978,1984 ----
  /* Get a basic decl for an external function.  */
  
  tree
! gfc_get_extern_function_decl (gfc_symbol * sym, gfc_actual_arglist *actual_args)
  {
    tree type;
    tree fndecl;
*************** gfc_get_extern_function_decl (gfc_symbol
*** 1959,1967 ****
      return get_proc_pointer_decl (sym);
  
    /* See if this is an external procedure from the same file.  If so,
!      return the backend_decl.  */
!   gsym =  gfc_find_gsymbol (gfc_gsym_root, sym->binding_label
! 					   ? sym->binding_label : sym->name);
  
    if (gsym && !gsym->defined)
      gsym = NULL;
--- 2003,2024 ----
      return get_proc_pointer_decl (sym);
  
    /* See if this is an external procedure from the same file.  If so,
!      return the backend_decl.  If we are looking at a BIND(C)
!      procedure and the symbol is not BIND(C), or vice versa, we
!      haven't found the right procedure.  */
! 
!   if (sym->binding_label)
!     {
!       gsym = gfc_find_gsymbol (gfc_gsym_root, sym->binding_label);
!       if (gsym && !gsym->bind_c)
! 	gsym = NULL;
!     }
!   else
!     {
!       gsym = gfc_find_gsymbol (gfc_gsym_root, sym->name);
!       if (gsym && gsym->bind_c)
! 	gsym = NULL;
!     }
  
    if (gsym && !gsym->defined)
      gsym = NULL;
*************** module_sym:
*** 2107,2113 ****
        mangled_name = gfc_sym_mangled_function_id (sym);
      }
  
!   type = gfc_get_function_type (sym);
    fndecl = build_decl (input_location,
  		       FUNCTION_DECL, name, type);
  
--- 2164,2170 ----
        mangled_name = gfc_sym_mangled_function_id (sym);
      }
  
!   type = gfc_get_function_type (sym, actual_args);
    fndecl = build_decl (input_location,
  		       FUNCTION_DECL, name, type);
  
*************** create_function_arglist (gfc_symbol * sy
*** 2457,2462 ****
--- 2514,2530 ----
  	  TREE_READONLY (length) = 1;
  	  gfc_finish_decl (length);
  
+ 	  /* Marking the length DECL_HIDDEN_STRING_LENGTH will lead
+ 	     to tail calls being disabled.  Only do that if we
+ 	     potentially have broken callers.  */
+ 	  if (flag_tail_call_workaround
+ 	      && f->sym->ts.u.cl
+ 	      && f->sym->ts.u.cl->length
+ 	      && f->sym->ts.u.cl->length->expr_type == EXPR_CONSTANT
+ 	      && (flag_tail_call_workaround == 2
+ 		  || f->sym->ns->implicit_interface_calls))
+ 	    DECL_HIDDEN_STRING_LENGTH (length) = 1;
+ 
  	  /* Remember the passed value.  */
            if (!f->sym->ts.u.cl ||  f->sym->ts.u.cl->passed_length)
              {
*************** generate_coarray_sym_init (gfc_symbol *s
*** 5220,5225 ****
--- 5288,5320 ----
    /* Handle "static" initializer.  */
    if (sym->value)
      {
+       if (sym->value->expr_type == EXPR_ARRAY)
+ 	{
+ 	  gfc_constructor *c, *cnext;
+ 
+ 	  /* Test if the array has more than one element.  */
+ 	  c = gfc_constructor_first (sym->value->value.constructor);
+ 	  gcc_assert (c);  /* Empty constructor should not happen here.  */
+ 	  cnext = gfc_constructor_next (c);
+ 
+ 	  if (cnext)
+ 	    {
+ 	      /* An EXPR_ARRAY with a rank > 1 here has to come from a
+ 		 DATA statement.  Set its rank here as not to confuse
+ 		 the following steps.   */
+ 	      sym->value->rank = 1;
+ 	    }
+ 	  else
+ 	    {
+ 	      /* There is only a single value in the constructor, use
+ 		 it directly for the assignment.  */
+ 	      gfc_expr *new_expr;
+ 	      new_expr = gfc_copy_expr (c->expr);
+ 	      gfc_free_expr (sym->value);
+ 	      sym->value = new_expr;
+ 	    }
+ 	}
+ 
        sym->attr.pointer = 1;
        tmp = gfc_trans_assignment (gfc_lval_expr_from_sym (sym), sym->value,
  				  true, false);
*************** generate_local_decl (gfc_symbol * sym)
*** 5464,5472 ****
  	    }
  	  else if (warn_unused_dummy_argument)
  	    {
! 	      gfc_warning (OPT_Wunused_dummy_argument,
! 			   "Unused dummy argument %qs at %L", sym->name,
! 			   &sym->declared_at);
  	      if (sym->backend_decl != NULL_TREE)
  		TREE_NO_WARNING(sym->backend_decl) = 1;
  	    }
--- 5559,5569 ----
  	    }
  	  else if (warn_unused_dummy_argument)
  	    {
! 	      if (!sym->attr.artificial)
! 		gfc_warning (OPT_Wunused_dummy_argument,
! 			     "Unused dummy argument %qs at %L", sym->name,
! 			     &sym->declared_at);
! 
  	      if (sym->backend_decl != NULL_TREE)
  		TREE_NO_WARNING(sym->backend_decl) = 1;
  	    }
*************** generate_local_decl (gfc_symbol * sym)
*** 5556,5567 ****
  			  "imported at %L", sym->name, &sym->declared_at);
  	}
  
!       if (sym->ns
! 	  && sym->ns->parent
! 	  && sym->ns->parent->code
! 	  && sym->ns->parent->code->op == EXEC_BLOCK)
  	{
! 	  if (sym->attr.referenced)
  	    gfc_get_symbol_decl (sym);
  	  sym->mark = 1;
  	}
--- 5653,5668 ----
  			  "imported at %L", sym->name, &sym->declared_at);
  	}
  
!       if (sym->ns && sym->ns->construct_entities)
  	{
! 	  /* Construction of the intrinsic modules within a BLOCK
! 	     construct, where ONLY and RENAMED entities are included,
! 	     seems to be bogus.  This is a workaround that can be removed
! 	     if someone ever takes on the task to creating full-fledge
! 	     modules.  See PR 69455.  */
! 	  if (sym->attr.referenced
! 	      && sym->from_intmod != INTMOD_ISO_C_BINDING
! 	      && sym->from_intmod != INTMOD_ISO_FORTRAN_ENV)
  	    gfc_get_symbol_decl (sym);
  	  sym->mark = 1;
  	}
diff -Nrcpad gcc-7.4.0/gcc/fortran/trans-expr.c gcc-7.5.0/gcc/fortran/trans-expr.c
*** gcc-7.4.0/gcc/fortran/trans-expr.c	Thu Sep 13 19:46:05 2018
--- gcc-7.5.0/gcc/fortran/trans-expr.c	Thu Sep 12 09:05:14 2019
*************** gfc_find_and_cut_at_last_class_ref (gfc_
*** 391,397 ****
        e->ref = NULL;
      }
  
!   base_expr = gfc_expr_to_initialize (e);
  
    /* Restore the original tail expression.  */
    if (class_ref)
--- 391,397 ----
        e->ref = NULL;
      }
  
!   base_expr = gfc_copy_expr (e);
  
    /* Restore the original tail expression.  */
    if (class_ref)
*************** gfc_conv_power_op (gfc_se * se, gfc_expr
*** 2987,2992 ****
--- 2987,3069 ----
      if (gfc_conv_cst_int_power (se, lse.expr, rse.expr))
        return;
  
+   if (INTEGER_CST_P (lse.expr)
+       && TREE_CODE (TREE_TYPE (rse.expr)) == INTEGER_TYPE)
+     {
+       wide_int wlhs = lse.expr;
+       HOST_WIDE_INT v;
+       v = wlhs.to_shwi ();
+       if (v == 1)
+ 	{
+ 	  /* 1**something is always 1.  */
+ 	  se->expr = build_int_cst (TREE_TYPE (lse.expr), 1);
+ 	  return;
+ 	}
+       else if (v == 2 || v == 4 || v == 8 || v == 16)
+ 	{
+ 	  /* 2**n = 1<<n, 4**n = 1<<(n+n), 8**n = 1 <<(3*n), 16**n =
+ 	   1<<(4*n), but we have to make sure to return zero if the
+ 	   number of bits is too large. */
+ 	  tree lshift;
+ 	  tree type;
+ 	  tree shift;
+ 	  tree ge;
+ 	  tree cond;
+ 	  tree num_bits;
+ 	  tree cond2;
+ 
+ 	  type = TREE_TYPE (lse.expr);
+ 
+ 	  if (v == 2)
+ 	    shift = rse.expr;
+ 	  else if (v == 4)
+ 	    shift = fold_build2_loc (input_location, PLUS_EXPR,
+ 				     TREE_TYPE (rse.expr),
+ 				       rse.expr, rse.expr);
+ 	  else if (v == 8)
+ 	    shift = fold_build2_loc (input_location, MULT_EXPR,
+ 				     TREE_TYPE (rse.expr),
+ 				     build_int_cst (TREE_TYPE (rse.expr), 3),
+ 				     rse.expr);
+ 	  else if (v == 16)
+ 	    shift = fold_build2_loc (input_location, MULT_EXPR,
+ 				     TREE_TYPE (rse.expr),
+ 				     build_int_cst (TREE_TYPE (rse.expr), 4),
+ 				     rse.expr);
+ 	  else
+ 	    gcc_unreachable ();
+ 
+ 	  lshift = fold_build2_loc (input_location, LSHIFT_EXPR, type,
+ 				    build_int_cst (type, 1), shift);
+ 	  ge = fold_build2_loc (input_location, GE_EXPR, logical_type_node,
+ 				rse.expr, build_int_cst (type, 0));
+ 	  cond = fold_build3_loc (input_location, COND_EXPR, type, ge, lshift,
+ 				 build_int_cst (type, 0));
+ 	  num_bits = build_int_cst (TREE_TYPE (rse.expr), TYPE_PRECISION (type));
+ 	  cond2 = fold_build2_loc (input_location, GE_EXPR, logical_type_node,
+ 				   rse.expr, num_bits);
+ 	  se->expr = fold_build3_loc (input_location, COND_EXPR, type, cond2,
+ 				      build_int_cst (type, 0), cond);
+ 	  return;
+ 	}
+       else if (v == -1)
+ 	{
+ 	  /* (-1)**n is 1 - ((n & 1) << 1) */
+ 	  tree type;
+ 	  tree tmp;
+ 
+ 	  type = TREE_TYPE (lse.expr);
+ 	  tmp = fold_build2_loc (input_location, BIT_AND_EXPR, type,
+ 				 rse.expr, build_int_cst (type, 1));
+ 	  tmp = fold_build2_loc (input_location, LSHIFT_EXPR, type,
+ 				 tmp, build_int_cst (type, 1));
+ 	  tmp = fold_build2_loc (input_location, MINUS_EXPR, type,
+ 				 build_int_cst (type, 1), tmp);
+ 	  se->expr = tmp;
+ 	  return;
+ 	}
+     }
+ 
    gfc_int4_type_node = gfc_get_int_type (4);
  
    /* In case of integer operands with kinds 1 or 2, we call the integer kind 4
*************** conv_base_obj_fcn_val (gfc_se * se, tree
*** 3722,3728 ****
  
  
  static void
! conv_function_val (gfc_se * se, gfc_symbol * sym, gfc_expr * expr)
  {
    tree tmp;
  
--- 3799,3806 ----
  
  
  static void
! conv_function_val (gfc_se * se, gfc_symbol * sym, gfc_expr * expr,
! 		   gfc_actual_arglist *actual_args)
  {
    tree tmp;
  
*************** conv_function_val (gfc_se * se, gfc_symb
*** 3740,3746 ****
    else
      {
        if (!sym->backend_decl)
! 	sym->backend_decl = gfc_get_extern_function_decl (sym);
  
        TREE_USED (sym->backend_decl) = 1;
  
--- 3818,3824 ----
    else
      {
        if (!sym->backend_decl)
! 	sym->backend_decl = gfc_get_extern_function_decl (sym, actual_args);
  
        TREE_USED (sym->backend_decl) = 1;
  
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 5635,5640 ****
--- 5713,5728 ----
  	      break;
  	    }
  
+ 	  if (e->ts.type == BT_DERIVED && fsym && fsym->ts.type == BT_CLASS)
+ 	    {
+ 	      /* The derived type is passed to gfc_deallocate_alloc_comp.
+ 		 Therefore, class actuals can be handled correctly but derived
+ 		 types passed to class formals need the _data component.  */
+ 	      tmp = gfc_class_data_get (tmp);
+ 	      if (!CLASS_DATA (fsym)->attr.dimension)
+ 		tmp = build_fold_indirect_ref_loc (input_location, tmp);
+ 	    }
+ 
  	  if (e->expr_type == EXPR_OP
  		&& e->value.op.op == INTRINSIC_PARENTHESES
  		&& e->value.op.op1->expr_type == EXPR_VARIABLE)
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 5646,5661 ****
  	      gfc_add_expr_to_block (&se->post, local_tmp);
  	    }
  
- 	  if (e->ts.type == BT_DERIVED && fsym && fsym->ts.type == BT_CLASS)
- 	    {
- 	      /* The derived type is passed to gfc_deallocate_alloc_comp.
- 		 Therefore, class actuals can handled correctly but derived
- 		 types passed to class formals need the _data component.  */
- 	      tmp = gfc_class_data_get (tmp);
- 	      if (!CLASS_DATA (fsym)->attr.dimension)
- 		tmp = build_fold_indirect_ref_loc (input_location, tmp);
- 	    }
- 
  	  tmp = gfc_deallocate_alloc_comp (e->ts.u.derived, tmp, parm_rank);
  
  	  gfc_prepend_expr_to_block (&post, tmp);
--- 5734,5739 ----
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 6161,6167 ****
  
    /* Generate the actual call.  */
    if (base_object == NULL_TREE)
!     conv_function_val (se, sym, expr);
    else
      conv_base_obj_fcn_val (se, base_object, expr);
  
--- 6239,6245 ----
  
    /* Generate the actual call.  */
    if (base_object == NULL_TREE)
!     conv_function_val (se, sym, expr, args);
    else
      conv_base_obj_fcn_val (se, base_object, expr);
  
*************** trans_caf_token_assign (gfc_se *lse, gfc
*** 8255,8277 ****
      }
  }
  
- /* Indentify class valued proc_pointer assignments.  */
- 
- static bool
- pointer_assignment_is_proc_pointer (gfc_expr * expr1, gfc_expr * expr2)
- {
-   gfc_ref * ref;
- 
-   ref = expr1->ref;
-   while (ref && ref->next)
-      ref = ref->next;
- 
-   return ref && ref->type == REF_COMPONENT
-       && ref->u.c.component->attr.proc_pointer
-       && expr2->expr_type == EXPR_VARIABLE
-       && expr2->symtree->n.sym->attr.flavor == FL_PROCEDURE;
- }
- 
  
  /* Do everything that is needed for a CLASS function expr2.  */
  
--- 8333,8338 ----
*************** gfc_trans_pointer_assignment (gfc_expr *
*** 8325,8331 ****
    tree tmp;
    tree decl;
    tree expr1_vptr = NULL_TREE;
!   bool scalar, non_proc_pointer_assign;
    gfc_ss *ss;
  
    gfc_start_block (&block);
--- 8386,8392 ----
    tree tmp;
    tree decl;
    tree expr1_vptr = NULL_TREE;
!   bool scalar, non_proc_ptr_assign;
    gfc_ss *ss;
  
    gfc_start_block (&block);
*************** gfc_trans_pointer_assignment (gfc_expr *
*** 8333,8339 ****
    gfc_init_se (&lse, NULL);
  
    /* Usually testing whether this is not a proc pointer assignment.  */
!   non_proc_pointer_assign = !pointer_assignment_is_proc_pointer (expr1, expr2);
  
    /* Check whether the expression is a scalar or not; we cannot use
       expr1->rank as it can be nonzero for proc pointers.  */
--- 8394,8402 ----
    gfc_init_se (&lse, NULL);
  
    /* Usually testing whether this is not a proc pointer assignment.  */
!   non_proc_ptr_assign = !(gfc_expr_attr (expr1).proc_pointer
! 			&& expr2->expr_type == EXPR_VARIABLE
! 			&& expr2->symtree->n.sym->attr.flavor == FL_PROCEDURE);
  
    /* Check whether the expression is a scalar or not; we cannot use
       expr1->rank as it can be nonzero for proc pointers.  */
*************** gfc_trans_pointer_assignment (gfc_expr *
*** 8343,8349 ****
      gfc_free_ss_chain (ss);
  
    if (expr1->ts.type == BT_DERIVED && expr2->ts.type == BT_CLASS
!       && expr2->expr_type != EXPR_FUNCTION && non_proc_pointer_assign)
      {
        gfc_add_data_component (expr2);
        /* The following is required as gfc_add_data_component doesn't
--- 8406,8412 ----
      gfc_free_ss_chain (ss);
  
    if (expr1->ts.type == BT_DERIVED && expr2->ts.type == BT_CLASS
!       && expr2->expr_type != EXPR_FUNCTION && non_proc_ptr_assign)
      {
        gfc_add_data_component (expr2);
        /* The following is required as gfc_add_data_component doesn't
*************** gfc_trans_pointer_assignment (gfc_expr *
*** 8363,8369 ****
        else
  	gfc_conv_expr (&rse, expr2);
  
!       if (non_proc_pointer_assign && expr1->ts.type == BT_CLASS)
  	{
  	  trans_class_vptr_len_assignment (&block, expr1, expr2, &rse, NULL,
  					   NULL);
--- 8426,8432 ----
        else
  	gfc_conv_expr (&rse, expr2);
  
!       if (non_proc_ptr_assign && expr1->ts.type == BT_CLASS)
  	{
  	  trans_class_vptr_len_assignment (&block, expr1, expr2, &rse, NULL,
  					   NULL);
*************** gfc_trans_assignment_1 (gfc_expr * expr1
*** 10102,10120 ****
    /* When assigning a character function result to a deferred-length variable,
       the function call must happen before the (re)allocation of the lhs -
       otherwise the character length of the result is not known.
!      NOTE: This relies on having the exact dependence of the length type
       parameter available to the caller; gfortran saves it in the .mod files.
!      NOTE ALSO: The concatenation operation generates a temporary pointer,
       whose allocation must go to the innermost loop.
!      NOTE ALSO (2): A character conversion may generate a temporary, too.  */
    if (flag_realloc_lhs
        && expr2->ts.type == BT_CHARACTER && expr1->ts.deferred
        && !(lss != gfc_ss_terminator
! 	   && ((expr2->expr_type == EXPR_OP
! 		&& expr2->value.op.op == INTRINSIC_CONCAT)
  	       || (expr2->expr_type == EXPR_FUNCTION
  		   && expr2->value.function.isym != NULL
! 		   && expr2->value.function.isym->id == GFC_ISYM_CONVERSION))))
      gfc_add_block_to_block (&block, &rse.pre);
  
    /* Nullify the allocatable components corresponding to those of the lhs
--- 10165,10191 ----
    /* When assigning a character function result to a deferred-length variable,
       the function call must happen before the (re)allocation of the lhs -
       otherwise the character length of the result is not known.
!      NOTE 1: This relies on having the exact dependence of the length type
       parameter available to the caller; gfortran saves it in the .mod files.
!      NOTE 2: Vector array references generate an index temporary that must
!      not go outside the loop. Otherwise, variables should not generate
!      a pre block.
!      NOTE 3: The concatenation operation generates a temporary pointer,
       whose allocation must go to the innermost loop.
!      NOTE 4: Elemental functions may generate a temporary, too.  */
    if (flag_realloc_lhs
        && expr2->ts.type == BT_CHARACTER && expr1->ts.deferred
        && !(lss != gfc_ss_terminator
! 	   && rss != gfc_ss_terminator
! 	   && ((expr2->expr_type == EXPR_VARIABLE && expr2->rank)
! 	       || (expr2->expr_type == EXPR_FUNCTION
! 		   && expr2->value.function.esym != NULL
! 		   && expr2->value.function.esym->attr.elemental)
  	       || (expr2->expr_type == EXPR_FUNCTION
  		   && expr2->value.function.isym != NULL
! 		   && expr2->value.function.isym->elemental)
! 	       || (expr2->expr_type == EXPR_OP
! 		   && expr2->value.op.op == INTRINSIC_CONCAT))))
      gfc_add_block_to_block (&block, &rse.pre);
  
    /* Nullify the allocatable components corresponding to those of the lhs
diff -Nrcpad gcc-7.4.0/gcc/fortran/trans-openmp.c gcc-7.5.0/gcc/fortran/trans-openmp.c
*** gcc-7.4.0/gcc/fortran/trans-openmp.c	Sat Mar  3 13:33:26 2018
--- gcc-7.5.0/gcc/fortran/trans-openmp.c	Fri Aug 30 12:15:50 2019
*************** gfc_omp_clause_default_ctor (tree clause
*** 460,466 ****
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	{
--- 460,467 ----
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && (!GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))
! 	  || !POINTER_TYPE_P (type)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	{
*************** gfc_omp_clause_default_ctor (tree clause
*** 546,551 ****
--- 547,555 ----
  			     build3_loc (input_location, COND_EXPR,
  					 void_type_node, cond, then_b,
  					 else_b));
+       /* Avoid -W*uninitialized warnings.  */
+       if (DECL_P (decl))
+ 	TREE_NO_WARNING (decl) = 1;
      }
    else
      gfc_add_expr_to_block (&block, then_b);
*************** gfc_omp_clause_copy_ctor (tree clause, t
*** 567,573 ****
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	{
--- 571,578 ----
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && (!GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))
! 	  || !POINTER_TYPE_P (type)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	{
*************** gfc_omp_clause_copy_ctor (tree clause, t
*** 651,656 ****
--- 656,664 ----
    gfc_add_expr_to_block (&block,
  			 build3_loc (input_location, COND_EXPR,
  				     void_type_node, cond, then_b, else_b));
+   /* Avoid -W*uninitialized warnings.  */
+   if (DECL_P (dest))
+     TREE_NO_WARNING (dest) = 1;
  
    return gfc_finish_block (&block);
  }
*************** gfc_omp_clause_assign_op (tree clause, t
*** 667,673 ****
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	{
--- 675,682 ----
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && (!GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))
! 	  || !POINTER_TYPE_P (type)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	{
*************** gfc_omp_clause_linear_ctor (tree clause,
*** 905,911 ****
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause)))
      {
        gcc_assert (TREE_CODE (type) == ARRAY_TYPE);
        if (!TYPE_DOMAIN (type)
--- 914,921 ----
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && (!GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))
! 	  || !POINTER_TYPE_P (type)))
      {
        gcc_assert (TREE_CODE (type) == ARRAY_TYPE);
        if (!TYPE_DOMAIN (type)
*************** gfc_omp_clause_dtor (tree clause, tree d
*** 989,995 ****
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && !GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	return gfc_walk_alloc_comps (decl, NULL_TREE,
--- 999,1006 ----
  
    if ((! GFC_DESCRIPTOR_TYPE_P (type)
         || GFC_TYPE_ARRAY_AKIND (type) != GFC_ARRAY_ALLOCATABLE)
!       && (!GFC_DECL_GET_SCALAR_ALLOCATABLE (OMP_CLAUSE_DECL (clause))
! 	  || !POINTER_TYPE_P (type)))
      {
        if (gfc_has_alloc_comps (type, OMP_CLAUSE_DECL (clause)))
  	return gfc_walk_alloc_comps (decl, NULL_TREE,
diff -Nrcpad gcc-7.4.0/gcc/fortran/trans-types.c gcc-7.5.0/gcc/fortran/trans-types.c
*** gcc-7.4.0/gcc/fortran/trans-types.c	Wed May 16 11:17:10 2018
--- gcc-7.5.0/gcc/fortran/trans-types.c	Sun Sep 15 22:35:40 2019
*************** gfc_typenode_for_spec (gfc_typespec * sp
*** 1139,1145 ****
          {
            spec->type = BT_INTEGER;
            spec->kind = gfc_index_integer_kind;
!           spec->f90_type = BT_VOID;
          }
        break;
      case BT_VOID:
--- 1139,1146 ----
          {
            spec->type = BT_INTEGER;
            spec->kind = gfc_index_integer_kind;
! 	  spec->f90_type = BT_VOID;
! 	  spec->is_c_interop = 1;  /* Mark as escaping later.  */
          }
        break;
      case BT_VOID:
*************** gfc_typenode_for_spec (gfc_typespec * sp
*** 1156,1161 ****
--- 1157,1165 ----
  	    basetype = pfunc_type_node;
  	}
         break;
+     case BT_PROCEDURE:
+       basetype = pfunc_type_node;
+       break;
      default:
        gcc_unreachable ();
      }
*************** create_fn_spec (gfc_symbol *sym, tree fn
*** 2884,2890 ****
  		    || f->sym->ts.u.derived->attr.pointer_comp))
  	    || (f->sym->ts.type == BT_CLASS
  		&& (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp
! 		    || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp)))
  	  spec[spec_len++] = '.';
  	else if (f->sym->attr.intent == INTENT_IN)
  	  spec[spec_len++] = 'r';
--- 2888,2895 ----
  		    || f->sym->ts.u.derived->attr.pointer_comp))
  	    || (f->sym->ts.type == BT_CLASS
  		&& (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp
! 		    || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp))
! 	    || (f->sym->ts.type == BT_INTEGER && f->sym->ts.is_c_interop))
  	  spec[spec_len++] = '.';
  	else if (f->sym->attr.intent == INTENT_IN)
  	  spec[spec_len++] = 'r';
*************** create_fn_spec (gfc_symbol *sym, tree fn
*** 2897,2905 ****
    return build_type_attribute_variant (fntype, tmp);
  }
  
  
  tree
! gfc_get_function_type (gfc_symbol * sym)
  {
    tree type;
    vec<tree, va_gc> *typelist = NULL;
--- 2902,2966 ----
    return build_type_attribute_variant (fntype, tmp);
  }
  
+ /* Helper function - if we do not find an interface for a procedure,
+    construct it from the actual arglist.  Luckily, this can only
+    happen for call by reference, so the information we actually need
+    to provide (and which would be impossible to guess from the call
+    itself) is not actually needed.  */
+ 
+ static void
+ get_formal_from_actual_arglist (gfc_symbol *sym, gfc_actual_arglist *actual_args)
+ {
+   gfc_actual_arglist *a;
+   gfc_formal_arglist **f;
+   gfc_symbol *s;
+   char name[GFC_MAX_SYMBOL_LEN + 1];
+   static int var_num;
+ 
+   f = &sym->formal;
+   for (a = actual_args; a != NULL; a = a->next)
+     {
+       (*f) = gfc_get_formal_arglist ();
+       if (a->expr)
+ 	{
+ 	  snprintf (name, GFC_MAX_SYMBOL_LEN, "_formal_%d", var_num ++);
+ 	  gfc_get_symbol (name, gfc_current_ns, &s);
+ 	  if (a->expr->ts.type == BT_PROCEDURE)
+ 	    {
+ 	      s->attr.flavor = FL_PROCEDURE;
+ 	    }
+ 	  else
+ 	    {
+ 	      s->ts = a->expr->ts;
+ 
+ 	      if (s->ts.type == BT_CHARACTER)
+ 		s->ts.u.cl = gfc_get_charlen ();
+ 
+  	      s->ts.deferred = 0;
+  	      s->ts.is_iso_c = 0;
+  	      s->ts.is_c_interop = 0;
+ 	      s->attr.flavor = FL_VARIABLE;
+ 	      if (a->expr->rank > 0)
+ 		{
+ 		  s->attr.dimension = 1;
+ 		  s->as = gfc_get_array_spec ();
+ 		  s->as->type = AS_ASSUMED_SIZE;
+ 		}
+ 	    }
+ 	  s->attr.dummy = 1;
+ 	  s->attr.artificial = 1;
+ 	  s->attr.intent = INTENT_UNKNOWN;
+ 	  (*f)->sym = s;
+ 	}
+       else  /* If a->expr is NULL, this is an alternate rerturn.  */
+ 	(*f)->sym = NULL;
+ 
+       f = &((*f)->next);
+     }
+ }
  
  tree
! gfc_get_function_type (gfc_symbol * sym, gfc_actual_arglist *actual_args)
  {
    tree type;
    vec<tree, va_gc> *typelist = NULL;
*************** gfc_get_function_type (gfc_symbol * sym)
*** 2957,2962 ****
--- 3018,3027 ----
  	    vec_safe_push (typelist, build_pointer_type(gfc_charlen_type_node));
  	}
      }
+   if (sym->backend_decl == error_mark_node && actual_args != NULL
+       && sym->formal == NULL && (sym->attr.proc == PROC_EXTERNAL
+ 				 || sym->attr.proc == PROC_UNKNOWN))
+     get_formal_from_actual_arglist (sym, actual_args);
  
    /* Build the argument types for the function.  */
    for (f = gfc_sym_get_dummy_args (sym); f; f = f->next)
diff -Nrcpad gcc-7.4.0/gcc/fortran/trans-types.h gcc-7.5.0/gcc/fortran/trans-types.h
*** gcc-7.4.0/gcc/fortran/trans-types.h	Mon Nov 13 20:01:20 2017
--- gcc-7.5.0/gcc/fortran/trans-types.h	Sun Mar  3 09:20:09 2019
*************** tree gfc_sym_type (gfc_symbol *);
*** 87,93 ****
  tree gfc_typenode_for_spec (gfc_typespec *, int c = 0);
  int gfc_copy_dt_decls_ifequal (gfc_symbol *, gfc_symbol *, bool);
  
! tree gfc_get_function_type (gfc_symbol *);
  
  tree gfc_type_for_size (unsigned, int);
  tree gfc_type_for_mode (machine_mode, int);
--- 87,93 ----
  tree gfc_typenode_for_spec (gfc_typespec *, int c = 0);
  int gfc_copy_dt_decls_ifequal (gfc_symbol *, gfc_symbol *, bool);
  
! tree gfc_get_function_type (gfc_symbol *, gfc_actual_arglist *args = NULL);
  
  tree gfc_type_for_size (unsigned, int);
  tree gfc_type_for_mode (machine_mode, int);
diff -Nrcpad gcc-7.4.0/gcc/fortran/trans.h gcc-7.5.0/gcc/fortran/trans.h
*** gcc-7.4.0/gcc/fortran/trans.h	Wed May 16 09:35:19 2018
--- gcc-7.5.0/gcc/fortran/trans.h	Sun Mar  3 09:20:09 2019
*************** void gfc_merge_block_scope (stmtblock_t
*** 578,584 ****
  tree gfc_get_label_decl (gfc_st_label *);
  
  /* Return the decl for an external function.  */
! tree gfc_get_extern_function_decl (gfc_symbol *);
  
  /* Return the decl for a function.  */
  tree gfc_get_function_decl (gfc_symbol *);
--- 578,585 ----
  tree gfc_get_label_decl (gfc_st_label *);
  
  /* Return the decl for an external function.  */
! tree gfc_get_extern_function_decl (gfc_symbol *,
! 				   gfc_actual_arglist *args = NULL);
  
  /* Return the decl for a function.  */
  tree gfc_get_function_decl (gfc_symbol *);
diff -Nrcpad gcc-7.4.0/gcc/function.c gcc-7.5.0/gcc/function.c
*** gcc-7.4.0/gcc/function.c	Fri Jun 22 20:58:02 2018
--- gcc-7.5.0/gcc/function.c	Sat Dec 15 12:07:42 2018
*************** match_asm_constraints_1 (rtx_insn *insn,
*** 6604,6610 ****
        output_matched[match] = true;
  
        start_sequence ();
!       emit_move_insn (output, input);
        insns = get_insns ();
        end_sequence ();
        emit_insn_before (insns, insn);
--- 6604,6610 ----
        output_matched[match] = true;
  
        start_sequence ();
!       emit_move_insn (output, copy_rtx (input));
        insns = get_insns ();
        end_sequence ();
        emit_insn_before (insns, insn);
diff -Nrcpad gcc-7.4.0/gcc/gcse.c gcc-7.5.0/gcc/gcse.c
*** gcc-7.4.0/gcc/gcse.c	Fri Mar  3 11:53:14 2017
--- gcc-7.5.0/gcc/gcse.c	Mon Sep  2 12:56:24 2019
*************** compute_hash_table_work (struct gcse_has
*** 1532,1538 ****
  					      0, regno, hrsi)
  		record_last_reg_set_info (insn, regno);
  
! 	      if (! RTL_CONST_OR_PURE_CALL_P (insn))
  		record_last_mem_set_info (insn);
  	    }
  
--- 1532,1539 ----
  					      0, regno, hrsi)
  		record_last_reg_set_info (insn, regno);
  
! 	      if (! RTL_CONST_OR_PURE_CALL_P (insn)
! 		  || RTL_LOOPING_CONST_OR_PURE_CALL_P (insn))
  		record_last_mem_set_info (insn);
  	    }
  
*************** pre_expr_reaches_here_p (basic_block occ
*** 1963,1976 ****
    return rval;
  }
  
! /* Generate RTL to copy an EXPR to its `reaching_reg' and return it.  */
  
! static rtx_insn *
! process_insert_insn (struct gcse_expr *expr)
  {
-   rtx reg = expr->reaching_reg;
-   /* Copy the expression to make sure we don't have any sharing issues.  */
-   rtx exp = copy_rtx (expr->expr);
    rtx_insn *pat;
  
    start_sequence ();
--- 1964,1974 ----
    return rval;
  }
  
! /* Generate RTL to copy an EXP to REG and return it.  */
  
! rtx_insn *
! prepare_copy_insn (rtx reg, rtx exp)
  {
    rtx_insn *pat;
  
    start_sequence ();
*************** process_insert_insn (struct gcse_expr *e
*** 1996,2001 ****
--- 1994,2011 ----
    return pat;
  }
  
+ /* Generate RTL to copy an EXPR to its `reaching_reg' and return it.  */
+ 
+ static rtx_insn *
+ process_insert_insn (struct gcse_expr *expr)
+ {
+   rtx reg = expr->reaching_reg;
+   /* Copy the expression to make sure we don't have any sharing issues.  */
+   rtx exp = copy_rtx (expr->expr);
+ 
+   return prepare_copy_insn (reg, exp);
+ }
+ 
  /* Add EXPR to the end of basic block BB.
  
     This is used by both the PRE and code hoisting.  */
diff -Nrcpad gcc-7.4.0/gcc/gengtype-lex.c gcc-7.5.0/gcc/gengtype-lex.c
*** gcc-7.4.0/gcc/gengtype-lex.c	Thu Dec  6 09:59:44 2018
--- gcc-7.5.0/gcc/gengtype-lex.c	Thu Nov 14 07:36:15 2019
*************** int yy_flex_debug = 0;
*** 1188,1194 ****
  #define YY_MORE_ADJ 0
  #define YY_RESTORE_YY_MORE_OFFSET
  char *yytext;
! #line 1 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  /* -*- indented-text -*- */
  /* Process source files and output type information.
     Copyright (C) 2002-2017 Free Software Foundation, Inc.
--- 1188,1194 ----
  #define YY_MORE_ADJ 0
  #define YY_RESTORE_YY_MORE_OFFSET
  char *yytext;
! #line 1 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  /* -*- indented-text -*- */
  /* Process source files and output type information.
     Copyright (C) 2002-2017 Free Software Foundation, Inc.
*************** You should have received a copy of the G
*** 1209,1215 ****
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  #define YY_NO_INPUT 1
! #line 24 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  #ifdef HOST_GENERATOR_FILE
  #include "config.h"
  #define GENERATOR_FILE 1
--- 1209,1215 ----
  along with GCC; see the file COPYING3.  If not see
  <http://www.gnu.org/licenses/>.  */
  #define YY_NO_INPUT 1
! #line 24 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  #ifdef HOST_GENERATOR_FILE
  #include "config.h"
  #define GENERATOR_FILE 1
*************** YY_DECL
*** 1425,1431 ****
  	register char *yy_cp, *yy_bp;
  	register int yy_act;
      
! #line 66 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  
    /* Do this on entry to yylex():  */
    *yylval = 0;
--- 1425,1431 ----
  	register char *yy_cp, *yy_bp;
  	register int yy_act;
      
! #line 66 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  
    /* Do this on entry to yylex():  */
    *yylval = 0;
*************** case 1:
*** 1522,1528 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 77 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return TYPEDEF;
--- 1522,1528 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 77 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return TYPEDEF;
*************** case 2:
*** 1534,1540 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 81 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
--- 1534,1540 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 81 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
*************** case 3:
*** 1546,1552 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 85 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return UNION;
--- 1546,1552 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 85 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return UNION;
*************** case 4:
*** 1558,1564 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 89 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
--- 1558,1564 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 89 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STRUCT;
*************** case 5:
*** 1570,1576 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 93 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return EXTERN;
--- 1570,1576 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 93 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return EXTERN;
*************** case 6:
*** 1582,1588 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 97 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STATIC;
--- 1582,1588 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 97 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    BEGIN(in_struct);
    return STATIC;
*************** YY_RULE_SETUP
*** 1593,1617 ****
  
  case 7:
  YY_RULE_SETUP
! #line 105 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct_comment); }
  	YY_BREAK
  case 8:
  /* rule 8 can match eol */
  YY_RULE_SETUP
! #line 106 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 9:
  /* rule 9 can match eol */
  YY_RULE_SETUP
! #line 108 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 10:
  /* rule 10 can match eol */
  YY_RULE_SETUP
! #line 109 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 11:
--- 1593,1617 ----
  
  case 7:
  YY_RULE_SETUP
! #line 105 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct_comment); }
  	YY_BREAK
  case 8:
  /* rule 8 can match eol */
  YY_RULE_SETUP
! #line 106 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 9:
  /* rule 9 can match eol */
  YY_RULE_SETUP
! #line 108 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 10:
  /* rule 10 can match eol */
  YY_RULE_SETUP
! #line 109 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 11:
*************** case 11:
*** 1620,1626 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 111 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  /* don't care */
  	YY_BREAK
  case 12:
--- 1620,1626 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 111 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  /* don't care */
  	YY_BREAK
  case 12:
*************** case 12:
*** 1628,1644 ****
  *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 113 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 13:
  /* rule 13 can match eol */
! #line 114 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 14:
  /* rule 14 can match eol */
! #line 115 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 15:
  /* rule 15 can match eol */
  YY_RULE_SETUP
! #line 115 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
      *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1);
      return IGNORABLE_CXX_KEYWORD;
--- 1628,1644 ----
  *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 113 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 13:
  /* rule 13 can match eol */
! #line 114 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 14:
  /* rule 14 can match eol */
! #line 115 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 15:
  /* rule 15 can match eol */
  YY_RULE_SETUP
! #line 115 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
      *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1);
      return IGNORABLE_CXX_KEYWORD;
*************** case 16:
*** 1650,1656 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 3;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 119 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return GTY_TOKEN; }
  	YY_BREAK
  case 17:
--- 1650,1656 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 3;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 119 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return GTY_TOKEN; }
  	YY_BREAK
  case 17:
*************** case 17:
*** 1659,1665 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 120 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return UNION; }
  	YY_BREAK
  case 18:
--- 1659,1665 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 120 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return UNION; }
  	YY_BREAK
  case 18:
*************** case 18:
*** 1668,1674 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 6;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 121 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 19:
--- 1668,1674 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 6;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 121 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 19:
*************** case 19:
*** 1677,1683 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 122 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 20:
--- 1677,1683 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 5;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 122 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return STRUCT; }
  	YY_BREAK
  case 20:
*************** case 20:
*** 1686,1692 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 7;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 123 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return TYPEDEF; }
  	YY_BREAK
  case 21:
--- 1686,1692 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 7;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 123 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return TYPEDEF; }
  	YY_BREAK
  case 21:
*************** case 21:
*** 1695,1701 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 124 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return ENUM; }
  	YY_BREAK
  case 22:
--- 1695,1701 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 124 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return ENUM; }
  	YY_BREAK
  case 22:
*************** case 22:
*** 1704,1710 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 9;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 125 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return PTR_ALIAS; }
  	YY_BREAK
  case 23:
--- 1704,1710 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 9;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 125 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return PTR_ALIAS; }
  	YY_BREAK
  case 23:
*************** case 23:
*** 1713,1719 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 10;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 126 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return NESTED_PTR; }
  	YY_BREAK
  case 24:
--- 1713,1719 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 10;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 126 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return NESTED_PTR; }
  	YY_BREAK
  case 24:
*************** case 24:
*** 1722,1733 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 127 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return USER_GTY; }
  	YY_BREAK
  case 25:
  YY_RULE_SETUP
! #line 128 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return NUM; }
  	YY_BREAK
  case 26:
--- 1722,1733 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 4;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 127 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return USER_GTY; }
  	YY_BREAK
  case 25:
  YY_RULE_SETUP
! #line 128 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return NUM; }
  	YY_BREAK
  case 26:
*************** case 26:
*** 1735,1745 ****
  *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 131 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 27:
  /* rule 27 can match eol */
  YY_RULE_SETUP
! #line 131 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    size_t len;
  
--- 1735,1745 ----
  *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
! #line 131 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 27:
  /* rule 27 can match eol */
  YY_RULE_SETUP
! #line 131 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    size_t len;
  
*************** case 28:
*** 1757,1763 ****
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 142 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
    return ID;
--- 1757,1763 ----
  (yy_c_buf_p) = yy_cp -= 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 142 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1);
    return ID;
*************** YY_RULE_SETUP
*** 1766,1772 ****
  case 29:
  /* rule 29 can match eol */
  YY_RULE_SETUP
! #line 147 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return STRING;
--- 1766,1772 ----
  case 29:
  /* rule 29 can match eol */
  YY_RULE_SETUP
! #line 147 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return STRING;
*************** YY_RULE_SETUP
*** 1776,1782 ****
  case 30:
  /* rule 30 can match eol */
  YY_RULE_SETUP
! #line 152 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return ARRAY;
--- 1776,1782 ----
  case 30:
  /* rule 30 can match eol */
  YY_RULE_SETUP
! #line 152 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1);
    return ARRAY;
*************** YY_RULE_SETUP
*** 1785,1791 ****
  case 31:
  /* rule 31 can match eol */
  YY_RULE_SETUP
! #line 156 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
    return CHAR;
--- 1785,1791 ----
  case 31:
  /* rule 31 can match eol */
  YY_RULE_SETUP
! #line 156 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng);
    return CHAR;
*************** YY_RULE_SETUP
*** 1793,1816 ****
  	YY_BREAK
  case 32:
  YY_RULE_SETUP
! #line 161 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return ELLIPSIS; }
  	YY_BREAK
  case 33:
  YY_RULE_SETUP
! #line 162 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { return yytext[0]; }
  	YY_BREAK
  /* ignore pp-directives */
  case 34:
  /* rule 34 can match eol */
  YY_RULE_SETUP
! #line 165 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {lexer_line.line++;}
  	YY_BREAK
  case 35:
  YY_RULE_SETUP
! #line 167 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, "unexpected character `%s'", yytext);
  }
--- 1793,1816 ----
  	YY_BREAK
  case 32:
  YY_RULE_SETUP
! #line 161 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { return ELLIPSIS; }
  	YY_BREAK
  case 33:
  YY_RULE_SETUP
! #line 162 "/space/rguenther/gcc-7.5.0/gcc-7.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 165 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {lexer_line.line++;}
  	YY_BREAK
  case 35:
  YY_RULE_SETUP
! #line 167 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, "unexpected character `%s'", yytext);
  }
*************** YY_RULE_SETUP
*** 1818,1853 ****
  
  case 36:
  YY_RULE_SETUP
! #line 172 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { BEGIN(in_comment); }
  	YY_BREAK
  case 37:
  /* rule 37 can match eol */
  YY_RULE_SETUP
! #line 173 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 38:
  /* rule 38 can match eol */
  YY_RULE_SETUP
! #line 174 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 39:
! #line 176 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 40:
  /* rule 40 can match eol */
! #line 177 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 41:
  /* rule 41 can match eol */
  YY_RULE_SETUP
! #line 177 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 42:
  /* rule 42 can match eol */
  YY_RULE_SETUP
! #line 178 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 43:
--- 1818,1853 ----
  
  case 36:
  YY_RULE_SETUP
! #line 172 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { BEGIN(in_comment); }
  	YY_BREAK
  case 37:
  /* rule 37 can match eol */
  YY_RULE_SETUP
! #line 173 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 38:
  /* rule 38 can match eol */
  YY_RULE_SETUP
! #line 174 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 39:
! #line 176 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 40:
  /* rule 40 can match eol */
! #line 177 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 41:
  /* rule 41 can match eol */
  YY_RULE_SETUP
! #line 177 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 42:
  /* rule 42 can match eol */
  YY_RULE_SETUP
! #line 178 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { update_lineno (yytext, yyleng); }
  	YY_BREAK
  case 43:
*************** case 43:
*** 1856,1876 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 179 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 44:
  /* rule 44 can match eol */
  YY_RULE_SETUP
! #line 182 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 45:
! #line 184 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 46:
  YY_RULE_SETUP
! #line 184 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 47:
--- 1856,1876 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 179 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 44:
  /* rule 44 can match eol */
  YY_RULE_SETUP
! #line 182 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { lexer_line.line++; }
  	YY_BREAK
  case 45:
! #line 184 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 46:
  YY_RULE_SETUP
! #line 184 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 47:
*************** case 47:
*** 1879,1903 ****
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 185 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 48:
  YY_RULE_SETUP
! #line 188 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { BEGIN(INITIAL); } 
  	YY_BREAK
  case 49:
  YY_RULE_SETUP
! #line 189 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct); }
  	YY_BREAK
  case 50:
! #line 192 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  case 51:
  YY_RULE_SETUP
! #line 192 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, 
  		 "unterminated comment or string; unexpected EOF");
--- 1879,1903 ----
  (yy_c_buf_p) = yy_cp = yy_bp + 1;
  YY_DO_BEFORE_ACTION; /* set up yytext again */
  YY_RULE_SETUP
! #line 185 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  
  case 48:
  YY_RULE_SETUP
! #line 188 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { BEGIN(INITIAL); } 
  	YY_BREAK
  case 49:
  YY_RULE_SETUP
! #line 189 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  { BEGIN(in_struct); }
  	YY_BREAK
  case 50:
! #line 192 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  case 51:
  YY_RULE_SETUP
! #line 192 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  {
    error_at_line (&lexer_line, 
  		 "unterminated comment or string; unexpected EOF");
*************** YY_RULE_SETUP
*** 1906,1917 ****
  case 52:
  /* rule 52 can match eol */
  YY_RULE_SETUP
! #line 197 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 53:
  YY_RULE_SETUP
! #line 199 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  YY_FATAL_ERROR( "flex scanner jammed" );
  	YY_BREAK
  #line 1917 "gengtype-lex.c"
--- 1906,1917 ----
  case 52:
  /* rule 52 can match eol */
  YY_RULE_SETUP
! #line 197 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  /* do nothing */
  	YY_BREAK
  case 53:
  YY_RULE_SETUP
! #line 199 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  YY_FATAL_ERROR( "flex scanner jammed" );
  	YY_BREAK
  #line 1917 "gengtype-lex.c"
*************** void yyfree (void * ptr )
*** 2878,2884 ****
  
  #define YYTABLES_NAME "yytables"
  
! #line 199 "/space/rguenther/gcc-7.4.0/gcc-7.4.0/gcc/gengtype-lex.l"
  
  
  
--- 2878,2884 ----
  
  #define YYTABLES_NAME "yytables"
  
! #line 199 "/space/rguenther/gcc-7.5.0/gcc-7.5.0/gcc/gengtype-lex.l"
  
  
  
diff -Nrcpad gcc-7.4.0/gcc/ggc-page.c gcc-7.5.0/gcc/ggc-page.c
*** gcc-7.4.0/gcc/ggc-page.c	Fri Dec 15 11:31:42 2017
--- gcc-7.5.0/gcc/ggc-page.c	Thu Sep  5 19:27:31 2019
*************** ggc_pch_read (FILE *f, void *addr)
*** 2553,2558 ****
--- 2553,2561 ----
  
    count_old_page_tables = G.by_depth_in_use;
  
+   if (fread (&d, sizeof (d), 1, f) != 1)
+     fatal_error (input_location, "cannot read PCH file: %m");
+ 
    /* We've just read in a PCH file.  So, every object that used to be
       allocated is now free.  */
    clear_marks ();
*************** ggc_pch_read (FILE *f, void *addr)
*** 2581,2588 ****
  
    /* Allocate the appropriate page-table entries for the pages read from
       the PCH file.  */
-   if (fread (&d, sizeof (d), 1, f) != 1)
-     fatal_error (input_location, "can%'t read PCH file: %m");
  
    for (i = 0; i < NUM_ORDERS; i++)
      {
--- 2584,2589 ----
diff -Nrcpad gcc-7.4.0/gcc/gimple-fold.c gcc-7.5.0/gcc/gimple-fold.c
*** gcc-7.4.0/gcc/gimple-fold.c	Fri Dec 15 08:19:15 2017
--- gcc-7.5.0/gcc/gimple-fold.c	Fri Aug 30 16:44:17 2019
*************** gimple_fold_builtin_sprintf (gimple_stmt
*** 2718,2728 ****
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, fmt);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (gimple_call_lhs (stmt))
  	{
! 	  repl = gimple_build_assign (gimple_call_lhs (stmt),
! 				      build_int_cst (integer_type_node,
! 						     strlen (fmt_str)));
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
--- 2718,2727 ----
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, fmt);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (tree lhs = gimple_call_lhs (stmt))
  	{
! 	  repl = gimple_build_assign (lhs, build_int_cst (TREE_TYPE (lhs),
! 							  strlen (fmt_str)));
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
*************** gimple_fold_builtin_sprintf (gimple_stmt
*** 2766,2777 ****
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, orig);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (gimple_call_lhs (stmt))
  	{
! 	  if (!useless_type_conversion_p (integer_type_node,
  					  TREE_TYPE (orig_len)))
! 	    orig_len = fold_convert (integer_type_node, orig_len);
! 	  repl = gimple_build_assign (gimple_call_lhs (stmt), orig_len);
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
--- 2765,2776 ----
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, orig);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (tree lhs = gimple_call_lhs (stmt))
  	{
! 	  if (!useless_type_conversion_p (TREE_TYPE (lhs),
  					  TREE_TYPE (orig_len)))
! 	    orig_len = fold_convert (TREE_TYPE (lhs), orig_len);
! 	  repl = gimple_build_assign (lhs, orig_len);
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
*************** gimple_fold_builtin_snprintf (gimple_stm
*** 2853,2862 ****
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, fmt);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (gimple_call_lhs (stmt))
  	{
! 	  repl = gimple_build_assign (gimple_call_lhs (stmt),
! 				      build_int_cst (integer_type_node, len));
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
--- 2852,2861 ----
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, fmt);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (tree lhs = gimple_call_lhs (stmt))
  	{
! 	  repl = gimple_build_assign (lhs,
! 				      build_int_cst (TREE_TYPE (lhs), len));
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
*************** gimple_fold_builtin_snprintf (gimple_stm
*** 2905,2916 ****
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, orig);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (gimple_call_lhs (stmt))
  	{
! 	  if (!useless_type_conversion_p (integer_type_node,
  					  TREE_TYPE (orig_len)))
! 	    orig_len = fold_convert (integer_type_node, orig_len);
! 	  repl = gimple_build_assign (gimple_call_lhs (stmt), orig_len);
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
--- 2904,2915 ----
        gimple_seq stmts = NULL;
        gimple *repl = gimple_build_call (fn, 2, dest, orig);
        gimple_seq_add_stmt_without_update (&stmts, repl);
!       if (tree lhs = gimple_call_lhs (stmt))
  	{
! 	  if (!useless_type_conversion_p (TREE_TYPE (lhs),
  					  TREE_TYPE (orig_len)))
! 	    orig_len = fold_convert (TREE_TYPE (lhs), orig_len);
! 	  repl = gimple_build_assign (lhs, orig_len);
  	  gimple_seq_add_stmt_without_update (&stmts, repl);
  	  gsi_replace_with_seq_vops (gsi, stmts);
  	  /* gsi now points at the assignment to the lhs, get a
*************** fold_const_aggregate_ref_1 (tree t, tree
*** 6319,6332 ****
  		= wi::sext (wi::to_offset (idx) - wi::to_offset (low_bound),
  			    TYPE_PRECISION (TREE_TYPE (idx)));
  
  	      if (wi::fits_shwi_p (woffset))
  		{
  		  offset = woffset.to_shwi ();
- 		  /* TODO: This code seems wrong, multiply then check
- 		     to see if it fits.  */
- 		  offset *= tree_to_uhwi (unit_size);
- 		  offset *= BITS_PER_UNIT;
- 
  		  base = TREE_OPERAND (t, 0);
  		  ctor = get_base_constructor (base, &offset, valueize);
  		  /* Empty constructor.  Always fold to 0.  */
--- 6318,6328 ----
  		= wi::sext (wi::to_offset (idx) - wi::to_offset (low_bound),
  			    TYPE_PRECISION (TREE_TYPE (idx)));
  
+ 	      woffset *= tree_to_uhwi (unit_size);
+ 	      woffset *= BITS_PER_UNIT;
  	      if (wi::fits_shwi_p (woffset))
  		{
  		  offset = woffset.to_shwi ();
  		  base = TREE_OPERAND (t, 0);
  		  ctor = get_base_constructor (base, &offset, valueize);
  		  /* Empty constructor.  Always fold to 0.  */
diff -Nrcpad gcc-7.4.0/gcc/gimple-pretty-print.c gcc-7.5.0/gcc/gimple-pretty-print.c
*** gcc-7.4.0/gcc/gimple-pretty-print.c	Wed Jul 26 08:58:37 2017
--- gcc-7.5.0/gcc/gimple-pretty-print.c	Wed Jan  2 22:49:04 2019
*************** dump_gimple_asm (pretty_printer *buffer,
*** 1989,1994 ****
--- 1989,1996 ----
        pp_string (buffer, "__asm__");
        if (gimple_asm_volatile_p (gs))
  	pp_string (buffer, " __volatile__");
+       if (gimple_asm_inline_p (gs))
+ 	pp_string (buffer, " __inline__");
        if (gimple_asm_nlabels (gs))
  	pp_string (buffer, " goto");
        pp_string (buffer, "(\"");
diff -Nrcpad gcc-7.4.0/gcc/gimple-ssa-sprintf.c gcc-7.5.0/gcc/gimple-ssa-sprintf.c
*** gcc-7.4.0/gcc/gimple-ssa-sprintf.c	Fri Dec 22 08:54:26 2017
--- gcc-7.5.0/gcc/gimple-ssa-sprintf.c	Fri Aug 30 12:35:05 2019
*************** try_substitute_return_value (gimple_stmt
*** 3353,3362 ****
  	 are badly declared.  */
        && !stmt_ends_bb_p (info.callstmt))
      {
!       tree cst = build_int_cst (integer_type_node, minretval);
  
!       if (lhs == NULL_TREE
! 	  && info.nowrite)
  	{
  	  /* Remove the call to the bounded function with a zero size
  	     (e.g., snprintf(0, 0, "%i", 123)) if there is no lhs.  */
--- 3353,3362 ----
  	 are badly declared.  */
        && !stmt_ends_bb_p (info.callstmt))
      {
!       tree cst = build_int_cst (lhs ? TREE_TYPE (lhs) : integer_type_node,
! 				minretval);
  
!       if (lhs == NULL_TREE && info.nowrite)
  	{
  	  /* Remove the call to the bounded function with a zero size
  	     (e.g., snprintf(0, 0, "%i", 123)) if there is no lhs.  */
*************** try_substitute_return_value (gimple_stmt
*** 3397,3403 ****
  	    }
  	}
      }
!   else if (lhs)
      {
        bool setrange = false;
  
--- 3397,3403 ----
  	    }
  	}
      }
!   else if (lhs && types_compatible_p (TREE_TYPE (lhs), integer_type_node))
      {
        bool setrange = false;
  
diff -Nrcpad gcc-7.4.0/gcc/gimple-ssa-strength-reduction.c gcc-7.5.0/gcc/gimple-ssa-strength-reduction.c
*** gcc-7.4.0/gcc/gimple-ssa-strength-reduction.c	Fri Oct 26 19:38:45 2018
--- gcc-7.5.0/gcc/gimple-ssa-strength-reduction.c	Thu Jan 31 21:55:45 2019
*************** slsr_process_mul (gimple *gs, tree rhs1,
*** 1220,1226 ****
        c->next_interp = c2->cand_num;
        c2->first_interp = c->cand_num;
      }
!   else
      {
        /* Record an interpretation for the multiply-immediate.  */
        c = create_mul_imm_cand (gs, rhs1, rhs2, speed);
--- 1220,1226 ----
        c->next_interp = c2->cand_num;
        c2->first_interp = c->cand_num;
      }
!   else if (TREE_CODE (rhs2) == INTEGER_CST && !integer_zerop (rhs2))
      {
        /* Record an interpretation for the multiply-immediate.  */
        c = create_mul_imm_cand (gs, rhs1, rhs2, speed);
diff -Nrcpad gcc-7.4.0/gcc/gimple.c gcc-7.5.0/gcc/gimple.c
*** gcc-7.4.0/gcc/gimple.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/gimple.c	Wed Sep  4 08:06:24 2019
*************** gimple_assign_set_rhs_with_ops (gimple_s
*** 1613,1619 ****
        gimple *new_stmt = gimple_alloc (gimple_code (stmt), new_rhs_ops + 1);
        memcpy (new_stmt, stmt, gimple_size (gimple_code (stmt)));
        gimple_init_singleton (new_stmt);
!       gsi_replace (gsi, new_stmt, true);
        stmt = new_stmt;
  
        /* The LHS needs to be reset as this also changes the SSA name
--- 1613,1619 ----
        gimple *new_stmt = gimple_alloc (gimple_code (stmt), new_rhs_ops + 1);
        memcpy (new_stmt, stmt, gimple_size (gimple_code (stmt)));
        gimple_init_singleton (new_stmt);
!       gsi_replace (gsi, new_stmt, false);
        stmt = new_stmt;
  
        /* The LHS needs to be reset as this also changes the SSA name
diff -Nrcpad gcc-7.4.0/gcc/gimple.h gcc-7.5.0/gcc/gimple.h
*** gcc-7.4.0/gcc/gimple.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/gimple.h	Wed Jan  2 22:49:04 2019
*************** enum gimple_rhs_class
*** 136,141 ****
--- 136,142 ----
  enum gf_mask {
      GF_ASM_INPUT		= 1 << 0,
      GF_ASM_VOLATILE		= 1 << 1,
+     GF_ASM_INLINE		= 1 << 2,
      GF_CALL_FROM_THUNK		= 1 << 0,
      GF_CALL_RETURN_SLOT_OPT	= 1 << 1,
      GF_CALL_TAILCALL		= 1 << 2,
*************** gimple_asm_string (const gasm *asm_stmt)
*** 3909,3915 ****
  }
  
  
! /* Return true ASM_STMT ASM_STMT is an asm statement marked volatile.  */
  
  static inline bool
  gimple_asm_volatile_p (const gasm *asm_stmt)
--- 3910,3916 ----
  }
  
  
! /* Return true if ASM_STMT is marked volatile.  */
  
  static inline bool
  gimple_asm_volatile_p (const gasm *asm_stmt)
*************** gimple_asm_volatile_p (const gasm *asm_s
*** 3918,3924 ****
  }
  
  
! /* If VOLATLE_P is true, mark asm statement ASM_STMT as volatile.  */
  
  static inline void
  gimple_asm_set_volatile (gasm *asm_stmt, bool volatile_p)
--- 3919,3925 ----
  }
  
  
! /* If VOLATILE_P is true, mark asm statement ASM_STMT as volatile.  */
  
  static inline void
  gimple_asm_set_volatile (gasm *asm_stmt, bool volatile_p)
*************** gimple_asm_set_volatile (gasm *asm_stmt,
*** 3930,3935 ****
--- 3931,3957 ----
  }
  
  
+ /* Return true if ASM_STMT is marked inline.  */
+ 
+ static inline bool
+ gimple_asm_inline_p (const gasm *asm_stmt)
+ {
+   return (asm_stmt->subcode & GF_ASM_INLINE) != 0;
+ }
+ 
+ 
+ /* If INLINE_P is true, mark asm statement ASM_STMT as inline.  */
+ 
+ static inline void
+ gimple_asm_set_inline (gasm *asm_stmt, bool inline_p)
+ {
+   if (inline_p)
+     asm_stmt->subcode |= GF_ASM_INLINE;
+   else
+     asm_stmt->subcode &= ~GF_ASM_INLINE;
+ }
+ 
+ 
  /* If INPUT_P is true, mark asm ASM_STMT as an ASM_INPUT.  */
  
  static inline void
diff -Nrcpad gcc-7.4.0/gcc/gimplify.c gcc-7.5.0/gcc/gimplify.c
*** gcc-7.4.0/gcc/gimplify.c	Fri Oct 12 14:49:32 2018
--- gcc-7.5.0/gcc/gimplify.c	Mon Sep  2 12:56:24 2019
*************** struct gimplify_omp_ctx
*** 185,190 ****
--- 185,191 ----
    bool target_map_scalars_firstprivate;
    bool target_map_pointers_as_0len_arrays;
    bool target_firstprivatize_array_bases;
+   bool add_safelen1;
  };
  
  static struct gimplify_ctx *gimplify_ctxp;
*************** gimplify_bind_expr (tree *expr_p, gimple
*** 1251,1262 ****
  		  || splay_tree_lookup (ctx->variables,
  					(splay_tree_key) t) == NULL))
  	    {
  	      if (ctx->region_type == ORT_SIMD
  		  && TREE_ADDRESSABLE (t)
  		  && !TREE_STATIC (t))
! 		omp_add_variable (ctx, t, GOVD_PRIVATE | GOVD_SEEN);
! 	      else
! 		omp_add_variable (ctx, t, GOVD_LOCAL | GOVD_SEEN);
  	    }
  
  	  DECL_SEEN_IN_BIND_EXPR_P (t) = 1;
--- 1252,1268 ----
  		  || splay_tree_lookup (ctx->variables,
  					(splay_tree_key) t) == NULL))
  	    {
+ 	      int flag = GOVD_LOCAL;
  	      if (ctx->region_type == ORT_SIMD
  		  && TREE_ADDRESSABLE (t)
  		  && !TREE_STATIC (t))
! 		{
! 		  if (TREE_CODE (DECL_SIZE_UNIT (t)) != INTEGER_CST)
! 		    ctx->add_safelen1 = true;
! 		  else
! 		    flag = GOVD_PRIVATE;
! 		}
! 	      omp_add_variable (ctx, t, flag | GOVD_SEEN);
  	    }
  
  	  DECL_SEEN_IN_BIND_EXPR_P (t) = 1;
*************** gimplify_compound_literal_expr (tree *ex
*** 4498,4503 ****
--- 4504,4510 ----
       otherwise we'd generate a new temporary, and we can as well just
       use the decl we already have.  */
    else if (!TREE_ADDRESSABLE (decl)
+ 	   && !TREE_THIS_VOLATILE (decl)
  	   && init
  	   && (fallback & fb_lvalue) == 0
  	   && gimple_test_f (init))
*************** gimplify_init_constructor (tree *expr_p,
*** 4770,4776 ****
  	   one field to assign, initialize the target from a temporary.  */
  	if (TREE_THIS_VOLATILE (object)
  	    && !TREE_ADDRESSABLE (type)
! 	    && num_nonzero_elements > 0
  	    && vec_safe_length (elts) > 1)
  	  {
  	    tree temp = create_tmp_var (TYPE_MAIN_VARIANT (type));
--- 4777,4783 ----
  	   one field to assign, initialize the target from a temporary.  */
  	if (TREE_THIS_VOLATILE (object)
  	    && !TREE_ADDRESSABLE (type)
! 	    && (num_nonzero_elements > 0 || !cleared)
  	    && vec_safe_length (elts) > 1)
  	  {
  	    tree temp = create_tmp_var (TYPE_MAIN_VARIANT (type));
*************** gimplify_asm_expr (tree *expr_p, gimple_
*** 5966,5971 ****
--- 5973,5991 ----
  	  is_inout = false;
  	}
  
+       /* If we can't make copies, we can only accept memory.  */
+       if (TREE_ADDRESSABLE (TREE_TYPE (TREE_VALUE (link))))
+ 	{
+ 	  if (allows_mem)
+ 	    allows_reg = 0;
+ 	  else
+ 	    {
+ 	      error ("impossible constraint in %<asm%>");
+ 	      error ("non-memory output %d must stay in memory", i);
+ 	      return GS_ERROR;
+ 	    }
+ 	}
+ 
        if (!allows_reg && allows_mem)
  	mark_addressable (TREE_VALUE (link));
  
*************** gimplify_asm_expr (tree *expr_p, gimple_
*** 6206,6211 ****
--- 6226,6232 ----
  
        gimple_asm_set_volatile (stmt, ASM_VOLATILE_P (expr) || noutputs == 0);
        gimple_asm_set_input (stmt, ASM_INPUT_P (expr));
+       gimple_asm_set_inline (stmt, ASM_INLINE_P (expr));
  
        gimplify_seq_add_stmt (pre_p, stmt);
      }
*************** gimplify_adjust_omp_clauses (gimple_seq
*** 8796,8801 ****
--- 8817,8835 ----
  			   omp_find_stores_op, &wi);
  	}
      }
+ 
+   if (ctx->add_safelen1)
+     {
+       /* If there are VLAs in the body of simd loop, prevent
+ 	 vectorization.  */
+       gcc_assert (ctx->region_type == ORT_SIMD);
+       c = build_omp_clause (UNKNOWN_LOCATION, OMP_CLAUSE_SAFELEN);
+       OMP_CLAUSE_SAFELEN_EXPR (c) = integer_one_node;
+       OMP_CLAUSE_CHAIN (c) = *list_p;
+       *list_p = c;
+       list_p = &OMP_CLAUSE_CHAIN (c);
+     }
+ 
    while ((c = *list_p) != NULL)
      {
        splay_tree_node n;
*************** gimplify_omp_for (tree *expr_p, gimple_s
*** 10102,10109 ****
  		  seq = &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c);
  		else
  		  seq = &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c);
  		gimplify_assign (decl, t, seq);
! 	    }
  	}
      }
  
--- 10136,10152 ----
  		  seq = &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (c);
  		else
  		  seq = &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (c);
+ 		push_gimplify_context ();
  		gimplify_assign (decl, t, seq);
! 		gimple *bind = NULL;
! 		if (gimplify_ctxp->temps)
! 		  {
! 		    bind = gimple_build_bind (NULL_TREE, *seq, NULL_TREE);
! 		    *seq = NULL;
! 		    gimplify_seq_add_stmt (seq, bind);
! 		  }
! 		pop_gimplify_context (bind);
! 	      }
  	}
      }
  
diff -Nrcpad gcc-7.4.0/gcc/go/ChangeLog gcc-7.5.0/gcc/go/ChangeLog
*** gcc-7.4.0/gcc/go/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/go/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/graphite-scop-detection.c gcc-7.5.0/gcc/graphite-scop-detection.c
*** gcc-7.4.0/gcc/graphite-scop-detection.c	Thu Mar  9 16:19:37 2017
--- gcc-7.5.0/gcc/graphite-scop-detection.c	Thu Sep  5 12:11:52 2019
*************** build_alias_set (scop_p scop)
*** 1864,1872 ****
    int i, j;
    int *all_vertices;
  
    FOR_EACH_VEC_ELT (scop->drs, i, dr1)
      for (j = i+1; scop->drs.iterate (j, &dr2); j++)
!       if (dr_may_alias_p (dr1->dr, dr2->dr, true))
  	{
  	  add_edge (g, i, j);
  	  add_edge (g, j, i);
--- 1864,1876 ----
    int i, j;
    int *all_vertices;
  
+   struct loop *nest
+     = find_common_loop (scop->scop_info->region.entry->dest->loop_father,
+ 			scop->scop_info->region.exit->src->loop_father);
+ 
    FOR_EACH_VEC_ELT (scop->drs, i, dr1)
      for (j = i+1; scop->drs.iterate (j, &dr2); j++)
!       if (dr_may_alias_p (dr1->dr, dr2->dr, nest))
  	{
  	  add_edge (g, i, j);
  	  add_edge (g, j, i);
diff -Nrcpad gcc-7.4.0/gcc/input.c gcc-7.5.0/gcc/input.c
*** gcc-7.4.0/gcc/input.c	Mon Apr  3 22:30:56 2017
--- gcc-7.5.0/gcc/input.c	Mon Mar 11 11:18:08 2019
*************** for_each_line_table_case (void (*testcas
*** 3480,3485 ****
--- 3480,3513 ----
    ASSERT_EQ (num_cases_tested, 2 * 12);
  }
  
+ /* Verify that when presented with a consecutive pair of locations with
+    a very large line offset, we don't attempt to consolidate them into
+    a single ordinary linemap where the line offsets within the line map
+    would lead to overflow (PR lto/88147).  */
+ 
+ static void
+ test_line_offset_overflow ()
+ {
+   line_table_test ltt (line_table_case (5, 0));
+ 
+   linemap_add (line_table, LC_ENTER, false, "foo.c", 0);
+   linemap_line_start (line_table, 1, 100);
+   location_t loc_a = linemap_line_start (line_table, 2578, 255);
+   assert_loceq ("foo.c", 2578, 0, loc_a);
+ 
+   const line_map_ordinary *ordmap_a = LINEMAPS_LAST_ORDINARY_MAP (line_table);
+   ASSERT_EQ (ordmap_a->m_column_and_range_bits, 13);
+   ASSERT_EQ (ordmap_a->m_range_bits, 5);
+ 
+   location_t loc_b = linemap_line_start (line_table, 404198, 512);
+   assert_loceq ("foo.c", 404198, 0, loc_b);
+ 
+   /* We should have started a new linemap, rather than attempting to store
+      a very large line offset.  */
+   const line_map_ordinary *ordmap_b = LINEMAPS_LAST_ORDINARY_MAP (line_table);
+   ASSERT_NE (ordmap_a, ordmap_b);
+ }
+ 
  /* Run all of the selftests within this file.  */
  
  void
*************** input_c_tests ()
*** 3518,3523 ****
--- 3546,3553 ----
    for_each_line_table_case (test_lexer_char_constants);
  
    test_reading_source_line ();
+ 
+   test_line_offset_overflow ();
  }
  
  } // namespace selftest
diff -Nrcpad gcc-7.4.0/gcc/internal-fn.c gcc-7.5.0/gcc/internal-fn.c
*** gcc-7.4.0/gcc/internal-fn.c	Fri Oct 13 17:26:28 2017
--- gcc-7.5.0/gcc/internal-fn.c	Wed Sep  4 08:06:24 2019
*************** static void (*const internal_fn_expander
*** 2770,2775 ****
--- 2770,2825 ----
    0
  };
  
+ /* Return true if IFN is some form of load from memory.  */
+ 
+ bool
+ internal_load_fn_p (internal_fn fn)
+ {
+   switch (fn)
+     {
+     case IFN_MASK_LOAD:
+     case IFN_LOAD_LANES:
+       return true;
+ 
+     default:
+       return false;
+     }
+ }
+ 
+ /* Return true if IFN is some form of store to memory.  */
+ 
+ bool
+ internal_store_fn_p (internal_fn fn)
+ {
+   switch (fn)
+     {
+     case IFN_MASK_STORE:
+     case IFN_STORE_LANES:
+       return true;
+ 
+     default:
+       return false;
+     }
+ }
+ 
+ /* If FN takes a vector mask argument, return the index of that argument,
+    otherwise return -1.  */
+ 
+ int
+ internal_fn_mask_index (internal_fn fn)
+ {
+   switch (fn)
+     {
+     case IFN_MASK_LOAD:
+     case IFN_MASK_STORE:
+       return 2;
+ 
+     default:
+       return -1;
+     }
+ }
+ 
+ 
  /* Expand STMT as though it were a call to internal function FN.  */
  
  void
diff -Nrcpad gcc-7.4.0/gcc/internal-fn.h gcc-7.5.0/gcc/internal-fn.h
*** gcc-7.4.0/gcc/internal-fn.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/internal-fn.h	Wed Sep  4 08:06:24 2019
*************** extern bool direct_internal_fn_supported
*** 176,181 ****
--- 176,185 ----
  					    optimization_type);
  extern bool set_edom_supported_p (void);
  
+ extern bool internal_load_fn_p (internal_fn);
+ extern bool internal_store_fn_p (internal_fn);
+ extern int internal_fn_mask_index (internal_fn);
+ 
  extern void expand_internal_call (gcall *);
  extern void expand_internal_call (internal_fn, gcall *);
  extern void expand_PHI (internal_fn, gcall *);
diff -Nrcpad gcc-7.4.0/gcc/ipa-cp.c gcc-7.5.0/gcc/ipa-cp.c
*** gcc-7.4.0/gcc/ipa-cp.c	Thu May 17 12:23:34 2018
--- gcc-7.5.0/gcc/ipa-cp.c	Thu Jun 27 11:26:52 2019
*************** build_toporder_info (struct ipa_topo_inf
*** 810,816 ****
    topo->stack = XCNEWVEC (struct cgraph_node *, symtab->cgraph_count);
  
    gcc_checking_assert (topo->stack_top == 0);
!   topo->nnodes = ipa_reduced_postorder (topo->order, true, true, NULL);
  }
  
  /* Free information about strongly connected components and the arrays in
--- 810,816 ----
    topo->stack = XCNEWVEC (struct cgraph_node *, symtab->cgraph_count);
  
    gcc_checking_assert (topo->stack_top == 0);
!   topo->nnodes = ipa_reduced_postorder (topo->order, true, NULL);
  }
  
  /* Free information about strongly connected components and the arrays in
*************** ipcp_bits_lattice::meet_with (ipcp_bits_
*** 1072,1078 ****
    if (TREE_CODE_CLASS (code) == tcc_binary)
      {
        tree type = TREE_TYPE (operand);
-       gcc_assert (INTEGRAL_TYPE_P (type));
        widest_int o_value, o_mask;
        get_value_and_mask (operand, &o_value, &o_mask);
  
--- 1072,1077 ----
*************** perform_estimation_of_a_value (cgraph_no
*** 2819,2829 ****
    estimate_ipcp_clone_size_and_time (node, known_csts, known_contexts,
  				     known_aggs_ptrs, &size, &time,
  				     &hints);
!   time_benefit = base_time - time
!     + devirtualization_time_bonus (node, known_csts, known_contexts,
! 				   known_aggs_ptrs)
!     + hint_time_bonus (hints)
!     + removable_params_cost + est_move_cost;
  
    gcc_checking_assert (size >=0);
    /* The inliner-heuristics based estimates may think that in certain
--- 2818,2835 ----
    estimate_ipcp_clone_size_and_time (node, known_csts, known_contexts,
  				     known_aggs_ptrs, &size, &time,
  				     &hints);
! 
!   /* Extern inline functions have no cloning local time benefits because they
!      will be inlined anyway.  The only reason to clone them is if it enables
!      optimization in any of the functions they call.  */
!   if (DECL_EXTERNAL (node->decl) && DECL_DECLARED_INLINE_P (node->decl))
!     time_benefit = 0;
!   else
!     time_benefit = base_time - time
!       + devirtualization_time_bonus (node, known_csts, known_contexts,
! 				     known_aggs_ptrs)
!       + hint_time_bonus (hints)
!       + removable_params_cost + est_move_cost;
  
    gcc_checking_assert (size >=0);
    /* The inliner-heuristics based estimates may think that in certain
diff -Nrcpad gcc-7.4.0/gcc/ipa-icf-gimple.c gcc-7.5.0/gcc/ipa-icf-gimple.c
*** gcc-7.4.0/gcc/ipa-icf-gimple.c	Fri Sep 15 08:19:15 2017
--- gcc-7.5.0/gcc/ipa-icf-gimple.c	Wed Jan  2 22:49:04 2019
*************** func_checker::compare_gimple_asm (const
*** 994,999 ****
--- 994,1002 ----
    if (gimple_asm_input_p (g1) != gimple_asm_input_p (g2))
      return false;
  
+   if (gimple_asm_inline_p (g1) != gimple_asm_inline_p (g2))
+     return false;
+ 
    if (gimple_asm_ninputs (g1) != gimple_asm_ninputs (g2))
      return false;
  
diff -Nrcpad gcc-7.4.0/gcc/ipa-inline.c gcc-7.5.0/gcc/ipa-inline.c
*** gcc-7.4.0/gcc/ipa-inline.c	Sat Mar  3 13:34:07 2018
--- gcc-7.5.0/gcc/ipa-inline.c	Fri Feb 15 10:58:49 2019
*************** inline_small_functions (void)
*** 1745,1751 ****
       metrics.  */
  
    max_count = 0;
!   ipa_reduced_postorder (order, true, true, NULL);
    free (order);
  
    FOR_EACH_DEFINED_FUNCTION (node)
--- 1745,1751 ----
       metrics.  */
  
    max_count = 0;
!   ipa_reduced_postorder (order, true, NULL);
    free (order);
  
    FOR_EACH_DEFINED_FUNCTION (node)
diff -Nrcpad gcc-7.4.0/gcc/ipa-prop.c gcc-7.5.0/gcc/ipa-prop.c
*** gcc-7.4.0/gcc/ipa-prop.c	Sat Mar  3 13:39:18 2018
--- gcc-7.5.0/gcc/ipa-prop.c	Wed Jan 16 15:41:07 2019
*************** determine_locally_known_aggregate_parts
*** 1577,1583 ****
        if (TREE_CODE (arg) == SSA_NAME)
  	{
  	  tree type_size;
!           if (!tree_fits_uhwi_p (TYPE_SIZE (TREE_TYPE (arg_type))))
              return;
  	  check_ref = true;
  	  arg_base = arg;
--- 1577,1584 ----
        if (TREE_CODE (arg) == SSA_NAME)
  	{
  	  tree type_size;
!           if (!tree_fits_uhwi_p (TYPE_SIZE (TREE_TYPE (arg_type)))
! 	      || !POINTER_TYPE_P (TREE_TYPE (arg)))
              return;
  	  check_ref = true;
  	  arg_base = arg;
diff -Nrcpad gcc-7.4.0/gcc/ipa-pure-const.c gcc-7.5.0/gcc/ipa-pure-const.c
*** gcc-7.4.0/gcc/ipa-pure-const.c	Mon Mar 13 15:30:17 2017
--- gcc-7.5.0/gcc/ipa-pure-const.c	Fri Feb 15 10:58:49 2019
*************** propagate_pure_const (void)
*** 1233,1239 ****
    bool remove_p = false;
    bool has_cdtor;
  
!   order_pos = ipa_reduced_postorder (order, true, false,
  				     ignore_edge_for_pure_const);
    if (dump_file)
      {
--- 1233,1239 ----
    bool remove_p = false;
    bool has_cdtor;
  
!   order_pos = ipa_reduced_postorder (order, true,
  				     ignore_edge_for_pure_const);
    if (dump_file)
      {
*************** propagate_nothrow (void)
*** 1566,1572 ****
    int i;
    struct ipa_dfs_info * w_info;
  
!   order_pos = ipa_reduced_postorder (order, true, false,
  				     ignore_edge_for_nothrow);
    if (dump_file)
      {
--- 1566,1572 ----
    int i;
    struct ipa_dfs_info * w_info;
  
!   order_pos = ipa_reduced_postorder (order, true,
  				     ignore_edge_for_nothrow);
    if (dump_file)
      {
diff -Nrcpad gcc-7.4.0/gcc/ipa-reference.c gcc-7.5.0/gcc/ipa-reference.c
*** gcc-7.4.0/gcc/ipa-reference.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/ipa-reference.c	Fri Feb 15 10:58:49 2019
*************** propagate (void)
*** 730,736 ****
       the global information.  All the nodes within a cycle will have
       the same info so we collapse cycles first.  Then we can do the
       propagation in one pass from the leaves to the roots.  */
!   order_pos = ipa_reduced_postorder (order, true, true, ignore_edge_p);
    if (dump_file)
      ipa_print_order (dump_file, "reduced", order, order_pos);
  
--- 730,736 ----
       the global information.  All the nodes within a cycle will have
       the same info so we collapse cycles first.  Then we can do the
       propagation in one pass from the leaves to the roots.  */
!   order_pos = ipa_reduced_postorder (order, true, ignore_edge_p);
    if (dump_file)
      ipa_print_order (dump_file, "reduced", order, order_pos);
  
diff -Nrcpad gcc-7.4.0/gcc/ipa-utils.c gcc-7.5.0/gcc/ipa-utils.c
*** gcc-7.4.0/gcc/ipa-utils.c	Tue Mar  6 20:05:36 2018
--- gcc-7.5.0/gcc/ipa-utils.c	Fri Feb 15 10:58:49 2019
*************** struct searchc_env {
*** 63,69 ****
    int order_pos;
    splay_tree nodes_marked_new;
    bool reduce;
-   bool allow_overwritable;
    int count;
  };
  
--- 63,68 ----
*************** searchc (struct searchc_env* env, struct
*** 105,111 ****
  
        if (w->aux
  	  && (avail > AVAIL_INTERPOSABLE
! 	      || (env->allow_overwritable && avail == AVAIL_INTERPOSABLE)))
  	{
  	  w_info = (struct ipa_dfs_info *) w->aux;
  	  if (w_info->new_node)
--- 104,110 ----
  
        if (w->aux
  	  && (avail > AVAIL_INTERPOSABLE
! 	      || avail == AVAIL_INTERPOSABLE))
  	{
  	  w_info = (struct ipa_dfs_info *) w->aux;
  	  if (w_info->new_node)
*************** searchc (struct searchc_env* env, struct
*** 162,168 ****
  
  int
  ipa_reduced_postorder (struct cgraph_node **order,
! 		       bool reduce, bool allow_overwritable,
  		       bool (*ignore_edge) (struct cgraph_edge *))
  {
    struct cgraph_node *node;
--- 161,167 ----
  
  int
  ipa_reduced_postorder (struct cgraph_node **order,
! 		       bool reduce,
  		       bool (*ignore_edge) (struct cgraph_edge *))
  {
    struct cgraph_node *node;
*************** ipa_reduced_postorder (struct cgraph_nod
*** 175,189 ****
    env.nodes_marked_new = splay_tree_new (splay_tree_compare_ints, 0, 0);
    env.count = 1;
    env.reduce = reduce;
-   env.allow_overwritable = allow_overwritable;
  
    FOR_EACH_DEFINED_FUNCTION (node)
      {
        enum availability avail = node->get_availability ();
  
        if (avail > AVAIL_INTERPOSABLE
! 	  || (allow_overwritable
! 	      && (avail == AVAIL_INTERPOSABLE)))
  	{
  	  /* Reuse the info if it is already there.  */
  	  struct ipa_dfs_info *info = (struct ipa_dfs_info *) node->aux;
--- 174,186 ----
    env.nodes_marked_new = splay_tree_new (splay_tree_compare_ints, 0, 0);
    env.count = 1;
    env.reduce = reduce;
  
    FOR_EACH_DEFINED_FUNCTION (node)
      {
        enum availability avail = node->get_availability ();
  
        if (avail > AVAIL_INTERPOSABLE
! 	  || avail == AVAIL_INTERPOSABLE)
  	{
  	  /* Reuse the info if it is already there.  */
  	  struct ipa_dfs_info *info = (struct ipa_dfs_info *) node->aux;
diff -Nrcpad gcc-7.4.0/gcc/ipa-utils.h gcc-7.5.0/gcc/ipa-utils.h
*** gcc-7.4.0/gcc/ipa-utils.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/ipa-utils.h	Fri Feb 15 10:58:49 2019
*************** struct ipa_dfs_info {
*** 36,42 ****
  
  /* In ipa-utils.c  */
  void ipa_print_order (FILE*, const char *, struct cgraph_node**, int);
! int ipa_reduced_postorder (struct cgraph_node **, bool, bool,
  			  bool (*ignore_edge) (struct cgraph_edge *));
  void ipa_free_postorder_info (void);
  vec<cgraph_node *> ipa_get_nodes_in_cycle (struct cgraph_node *);
--- 36,42 ----
  
  /* In ipa-utils.c  */
  void ipa_print_order (FILE*, const char *, struct cgraph_node**, int);
! int ipa_reduced_postorder (struct cgraph_node **, bool,
  			  bool (*ignore_edge) (struct cgraph_edge *));
  void ipa_free_postorder_info (void);
  vec<cgraph_node *> ipa_get_nodes_in_cycle (struct cgraph_node *);
diff -Nrcpad gcc-7.4.0/gcc/ira.c gcc-7.5.0/gcc/ira.c
*** gcc-7.4.0/gcc/ira.c	Wed Oct 18 21:13:16 2017
--- gcc-7.5.0/gcc/ira.c	Fri Sep 20 09:23:50 2019
*************** ira (FILE *f)
*** 5160,5165 ****
--- 5160,5167 ----
    int ira_max_point_before_emit;
    bool saved_flag_caller_saves = flag_caller_saves;
    enum ira_region saved_flag_ira_region = flag_ira_region;
+   unsigned int i;
+   int num_used_regs = 0;
  
    clear_bb_flags ();
  
*************** ira (FILE *f)
*** 5175,5186 ****
  
    ira_conflicts_p = optimize > 0;
  
    /* If there are too many pseudos and/or basic blocks (e.g. 10K
       pseudos and 10K blocks or 100K pseudos and 1K blocks), we will
       use simplified and faster algorithms in LRA.  */
    lra_simple_p
      = (ira_use_lra_p
!        && max_reg_num () >= (1 << 26) / last_basic_block_for_fn (cfun));
    if (lra_simple_p)
      {
        /* It permits to skip live range splitting in LRA.  */
--- 5177,5193 ----
  
    ira_conflicts_p = optimize > 0;
  
+   /* Determine the number of pseudos actually requiring coloring.  */
+   for (i = FIRST_PSEUDO_REGISTER; i < DF_REG_SIZE (df); i++)
+     num_used_regs += !!(DF_REG_USE_COUNT (i) + DF_REG_DEF_COUNT (i));
+ 
    /* If there are too many pseudos and/or basic blocks (e.g. 10K
       pseudos and 10K blocks or 100K pseudos and 1K blocks), we will
       use simplified and faster algorithms in LRA.  */
    lra_simple_p
      = (ira_use_lra_p
!        && num_used_regs >= (1 << 26) / last_basic_block_for_fn (cfun));
! 
    if (lra_simple_p)
      {
        /* It permits to skip live range splitting in LRA.  */
diff -Nrcpad gcc-7.4.0/gcc/jit/ChangeLog gcc-7.5.0/gcc/jit/ChangeLog
*** gcc-7.4.0/gcc/jit/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/jit/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/loop-unroll.c gcc-7.5.0/gcc/loop-unroll.c
*** gcc-7.4.0/gcc/loop-unroll.c	Tue Mar  6 20:06:10 2018
--- gcc-7.5.0/gcc/loop-unroll.c	Fri Aug 30 12:27:50 2019
*************** unroll_loop_constant_iterations (struct
*** 630,636 ****
    if (loop->any_likely_upper_bound)
      loop->nb_iterations_likely_upper_bound
        = wi::udiv_trunc (loop->nb_iterations_likely_upper_bound, max_unroll + 1);
!   desc->niter_expr = GEN_INT (desc->niter);
  
    /* Remove the edges.  */
    FOR_EACH_VEC_ELT (remove_edges, i, e)
--- 630,636 ----
    if (loop->any_likely_upper_bound)
      loop->nb_iterations_likely_upper_bound
        = wi::udiv_trunc (loop->nb_iterations_likely_upper_bound, max_unroll + 1);
!   desc->niter_expr = gen_int_mode (desc->niter, desc->mode);
  
    /* Remove the edges.  */
    FOR_EACH_VEC_ELT (remove_edges, i, e)
*************** unroll_loop_runtime_iterations (struct l
*** 996,1002 ****
        preheader->frequency += iter_freq;
        preheader->count += iter_count;
        single_succ_edge (preheader)->count = preheader->count;
!       branch_code = compare_and_jump_seq (copy_rtx (niter), GEN_INT (j), EQ,
  					  block_label (preheader), p,
  					  NULL);
  
--- 996,1003 ----
        preheader->frequency += iter_freq;
        preheader->count += iter_count;
        single_succ_edge (preheader)->count = preheader->count;
!       branch_code = compare_and_jump_seq (copy_rtx (niter),
! 					  gen_int_mode (j, desc->mode), EQ,
  					  block_label (preheader), p,
  					  NULL);
  
diff -Nrcpad gcc-7.4.0/gcc/lra-constraints.c gcc-7.5.0/gcc/lra-constraints.c
*** gcc-7.4.0/gcc/lra-constraints.c	Tue Mar  6 15:54:30 2018
--- gcc-7.5.0/gcc/lra-constraints.c	Thu Oct 17 19:52:55 2019
*************** process_alt_operands (int only_alternati
*** 2294,2299 ****
--- 2294,2301 ----
  		  break;
  
  		reg:
+ 		  if (mode == BLKmode)
+ 		    break;
  		  this_alternative = reg_class_subunion[this_alternative][cl];
  		  IOR_HARD_REG_SET (this_alternative_set,
  				    reg_class_contents[cl]);
*************** process_alt_operands (int only_alternati
*** 2304,2311 ****
  		      IOR_HARD_REG_SET (this_costly_alternative_set,
  					reg_class_contents[cl]);
  		    }
- 		  if (mode == BLKmode)
- 		    break;
  		  winreg = true;
  		  if (REG_P (op))
  		    {
--- 2306,2311 ----
*************** invariant_p (const_rtx x)
*** 5657,5662 ****
--- 5657,5665 ----
    enum rtx_code code;
    int i, j;
  
+   if (side_effects_p (x))
+     return false;
+ 
    code = GET_CODE (x);
    mode = GET_MODE (x);
    if (code == SUBREG)
diff -Nrcpad gcc-7.4.0/gcc/lra.c gcc-7.5.0/gcc/lra.c
*** gcc-7.4.0/gcc/lra.c	Tue Mar  6 15:54:30 2018
--- gcc-7.5.0/gcc/lra.c	Thu Jan 31 12:05:19 2019
*************** lra_rtx_hash (rtx x)
*** 1670,1679 ****
  
      case SCRATCH:
      case CONST_DOUBLE:
-     case CONST_INT:
      case CONST_VECTOR:
        return val;
  
      default:
        break;
      }
--- 1670,1681 ----
  
      case SCRATCH:
      case CONST_DOUBLE:
      case CONST_VECTOR:
        return val;
  
+     case CONST_INT:
+       return val + UINTVAL (x);
+ 
      default:
        break;
      }
diff -Nrcpad gcc-7.4.0/gcc/lto/ChangeLog gcc-7.5.0/gcc/lto/ChangeLog
*** gcc-7.4.0/gcc/lto/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/lto/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/lto-streamer-in.c gcc-7.5.0/gcc/lto-streamer-in.c
*** gcc-7.4.0/gcc/lto-streamer-in.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/lto-streamer-in.c	Thu Sep  5 12:11:52 2019
*************** input_cfg (struct lto_input_block *ib, s
*** 829,834 ****
--- 829,835 ----
  
        /* Read OMP SIMD related info.  */
        loop->safelen = streamer_read_hwi (ib);
+       loop->owned_clique = streamer_read_hwi (ib);
        loop->dont_vectorize = streamer_read_hwi (ib);
        loop->force_vectorize = streamer_read_hwi (ib);
        loop->simduid = stream_read_tree (ib, data_in);
diff -Nrcpad gcc-7.4.0/gcc/lto-streamer-out.c gcc-7.5.0/gcc/lto-streamer-out.c
*** gcc-7.4.0/gcc/lto-streamer-out.c	Tue Mar  6 20:04:20 2018
--- gcc-7.5.0/gcc/lto-streamer-out.c	Thu Sep  5 12:11:52 2019
*************** output_cfg (struct output_block *ob, str
*** 1914,1919 ****
--- 1914,1920 ----
  
        /* Write OMP SIMD related info.  */
        streamer_write_hwi (ob, loop->safelen);
+       streamer_write_hwi (ob, loop->owned_clique);
        streamer_write_hwi (ob, loop->dont_vectorize);
        streamer_write_hwi (ob, loop->force_vectorize);
        stream_write_tree (ob, loop->simduid, true);
diff -Nrcpad gcc-7.4.0/gcc/lto-streamer.h gcc-7.5.0/gcc/lto-streamer.h
*** gcc-7.4.0/gcc/lto-streamer.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/lto-streamer.h	Thu Sep  5 12:11:52 2019
*************** along with GCC; see the file COPYING3.
*** 129,135 ****
       form followed by the data for the string.  */
  
  #define LTO_major_version 6
! #define LTO_minor_version 0
  
  typedef unsigned char	lto_decl_flags_t;
  
--- 129,135 ----
       form followed by the data for the string.  */
  
  #define LTO_major_version 6
! #define LTO_minor_version 2
  
  typedef unsigned char	lto_decl_flags_t;
  
diff -Nrcpad gcc-7.4.0/gcc/lto-wrapper.c gcc-7.5.0/gcc/lto-wrapper.c
*** gcc-7.4.0/gcc/lto-wrapper.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/lto-wrapper.c	Wed Apr  3 08:47:19 2019
*************** cont:
*** 1403,1409 ****
  	  struct pex_obj *pex;
  	  char jobs[32];
  
! 	  fprintf (mstream, "all:");
  	  for (i = 0; i < nr; ++i)
  	    fprintf (mstream, " \\\n\t%s", output_names[i]);
  	  fprintf (mstream, "\n");
--- 1403,1411 ----
  	  struct pex_obj *pex;
  	  char jobs[32];
  
! 	  fprintf (mstream,
! 		   ".PHONY: all\n"
! 		   "all:");
  	  for (i = 0; i < nr; ++i)
  	    fprintf (mstream, " \\\n\t%s", output_names[i]);
  	  fprintf (mstream, "\n");
diff -Nrcpad gcc-7.4.0/gcc/match.pd gcc-7.5.0/gcc/match.pd
*** gcc-7.4.0/gcc/match.pd	Fri Jun 22 21:18:32 2018
--- gcc-7.5.0/gcc/match.pd	Fri Aug 30 16:44:17 2019
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 1753,1758 ****
--- 1753,1765 ----
         && (TYPE_SIZE (TREE_TYPE (@0)) == TYPE_SIZE (TREE_TYPE (@1))))
     (view_convert @1)))
  
+ /* Simplify a view-converted empty constructor.  */
+ (simplify
+   (view_convert CONSTRUCTOR@0)
+   (if (TREE_CODE (@0) != SSA_NAME
+        && CONSTRUCTOR_NELTS (@0) == 0)
+    { build_zero_cst (type); }))
+ 
  /* Re-association barriers around constants and other re-association
     barriers can be removed.  */
  (simplify
diff -Nrcpad gcc-7.4.0/gcc/objc/ChangeLog gcc-7.5.0/gcc/objc/ChangeLog
*** gcc-7.4.0/gcc/objc/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/objc/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,18 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* objc/objc-act.h (OCTI_INSTANCE_TYPE, OCTI_INSTANCETYPE_NAME): New.
+ 	(objc_global_trees): Add instance type and name.
+ 	(INSTANCE_TYPEDEF_NAME): New.
+ 	* objc/objc-act.c (synth_module_prologue): Build decls for
+ 	objc_instancetype_type and objc_instancetype_name.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/objc/objc-act.c gcc-7.5.0/gcc/objc/objc-act.c
*** gcc-7.4.0/gcc/objc/objc-act.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/objc/objc-act.c	Thu Sep  5 19:06:44 2019
*************** synth_module_prologue (void)
*** 2944,2955 ****
    objc_class_reference = xref_tag (RECORD_TYPE, objc_class_id);
  
    objc_object_type = build_pointer_type (objc_object_reference);
    objc_class_type = build_pointer_type (objc_class_reference);
  
    objc_object_name = get_identifier (OBJECT_TYPEDEF_NAME);
    objc_class_name = get_identifier (CLASS_TYPEDEF_NAME);
  
!   /* Declare the 'id' and 'Class' typedefs.  */
    type = lang_hooks.decls.pushdecl (build_decl (input_location,
  						TYPE_DECL,
  						objc_object_name,
--- 2944,2957 ----
    objc_class_reference = xref_tag (RECORD_TYPE, objc_class_id);
  
    objc_object_type = build_pointer_type (objc_object_reference);
+   objc_instancetype_type = build_pointer_type (objc_object_reference);
    objc_class_type = build_pointer_type (objc_class_reference);
  
    objc_object_name = get_identifier (OBJECT_TYPEDEF_NAME);
+   objc_instancetype_name = get_identifier (INSTANCE_TYPEDEF_NAME);
    objc_class_name = get_identifier (CLASS_TYPEDEF_NAME);
  
!   /* Declare the 'id', 'instancetype' and 'Class' typedefs.  */
    type = lang_hooks.decls.pushdecl (build_decl (input_location,
  						TYPE_DECL,
  						objc_object_name,
*************** synth_module_prologue (void)
*** 2957,2962 ****
--- 2959,2970 ----
    TREE_NO_WARNING (type) = 1;
  
    type = lang_hooks.decls.pushdecl (build_decl (input_location,
+ 						TYPE_DECL,
+ 						objc_instancetype_name,
+ 						objc_instancetype_type));
+   TREE_NO_WARNING (type) = 1;
+ 
+   type = lang_hooks.decls.pushdecl (build_decl (input_location,
  						TYPE_DECL,
  						objc_class_name,
  						objc_class_type));
diff -Nrcpad gcc-7.4.0/gcc/objc/objc-act.h gcc-7.5.0/gcc/objc/objc-act.h
*** gcc-7.4.0/gcc/objc/objc-act.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/objc/objc-act.h	Thu Sep  5 19:06:44 2019
*************** enum objc_tree_index
*** 313,318 ****
--- 313,319 ----
      OCTI_SUPER_TYPE,
      OCTI_SEL_TYPE,
      OCTI_ID_TYPE,
+     OCTI_INSTANCE_TYPE,
      OCTI_CLS_TYPE,
      OCTI_NST_TYPE,
      OCTI_PROTO_TYPE,
*************** enum objc_tree_index
*** 368,373 ****
--- 369,375 ----
      OCTI_OBJ_ID,
      OCTI_CLS_ID,
      OCTI_ID_NAME,
+     OCTI_INSTANCETYPE_NAME,
      OCTI_CLASS_NAME,
      OCTI_CNST_STR_ID,
      OCTI_CNST_STR_TYPE,
*************** extern GTY(()) tree objc_global_trees[OC
*** 443,448 ****
--- 445,451 ----
  #define objc_super_type		objc_global_trees[OCTI_SUPER_TYPE]
  #define objc_selector_type		objc_global_trees[OCTI_SEL_TYPE]
  #define objc_object_type	objc_global_trees[OCTI_ID_TYPE]
+ #define objc_instancetype_type	objc_global_trees[OCTI_INSTANCE_TYPE]
  #define objc_class_type		objc_global_trees[OCTI_CLS_TYPE]
  #define objc_instance_type	objc_global_trees[OCTI_NST_TYPE]
  #define objc_protocol_type	objc_global_trees[OCTI_PROTO_TYPE]
*************** extern GTY(()) tree objc_global_trees[OC
*** 570,576 ****
  
  #define objc_object_id		objc_global_trees[OCTI_OBJ_ID]
  #define objc_class_id		objc_global_trees[OCTI_CLS_ID]
! #define objc_object_name		objc_global_trees[OCTI_ID_NAME]
  #define objc_class_name		objc_global_trees[OCTI_CLASS_NAME]
  
  /* Constant string classes.  */
--- 573,580 ----
  
  #define objc_object_id		objc_global_trees[OCTI_OBJ_ID]
  #define objc_class_id		objc_global_trees[OCTI_CLS_ID]
! #define objc_object_name        objc_global_trees[OCTI_ID_NAME]
! #define objc_instancetype_name	objc_global_trees[OCTI_INSTANCETYPE_NAME]
  #define objc_class_name		objc_global_trees[OCTI_CLASS_NAME]
  
  /* Constant string classes.  */
*************** extern GTY(()) tree objc_global_trees[OC
*** 608,613 ****
--- 612,618 ----
  /* Reserved tag definitions.  */
  
  #define OBJECT_TYPEDEF_NAME		"id"
+ #define INSTANCE_TYPEDEF_NAME		"instancetype"
  #define CLASS_TYPEDEF_NAME		"Class"
  
  #define TAG_OBJECT			"objc_object"
diff -Nrcpad gcc-7.4.0/gcc/objcp/ChangeLog gcc-7.5.0/gcc/objcp/ChangeLog
*** gcc-7.4.0/gcc/objcp/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/objcp/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,16 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR pch/90326
+ 	* config-lang.in (gtfiles): Remove c-family/c-lex.c, add
+ 	c-family/c-cppbuiltin.c.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/objcp/config-lang.in gcc-7.5.0/gcc/objcp/config-lang.in
*** gcc-7.4.0/gcc/objcp/config-lang.in	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/objcp/config-lang.in	Fri Aug 30 12:45:01 2019
*************** subdir_requires="objc cp"
*** 45,50 ****
  
  # This list is separated in two parts: the first one is identical to
  # the C++ one, the second one contains our ObjC++ additions.
! gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.h \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/c-family/c-lex.c \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/except.c \$(srcdir)/cp/vtable-class-hierarchy.c \$(srcdir)/cp/constexpr.c \$(srcdir)/cp/cp-gimplify.c \
  \$(srcdir)/objc/objc-map.h \$(srcdir)/objc/objc-act.h \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-runtime-shared-support.c \$(srcdir)/objc/objc-gnu-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-02.c \$(srcdir)/c-family/c-cppbuiltin.c"
  
--- 45,50 ----
  
  # This list is separated in two parts: the first one is identical to
  # the C++ one, the second one contains our ObjC++ additions.
! gtfiles="\$(srcdir)/cp/rtti.c \$(srcdir)/cp/mangle.c \$(srcdir)/cp/name-lookup.h \$(srcdir)/cp/name-lookup.c \$(srcdir)/cp/cp-tree.h \$(srcdir)/cp/decl.h \$(srcdir)/cp/call.c \$(srcdir)/cp/decl.c \$(srcdir)/cp/decl2.c \$(srcdir)/cp/pt.c \$(srcdir)/cp/repo.c \$(srcdir)/cp/semantics.c \$(srcdir)/cp/tree.c \$(srcdir)/cp/parser.h \$(srcdir)/cp/parser.c \$(srcdir)/cp/method.c \$(srcdir)/cp/typeck2.c \$(srcdir)/c-family/c-common.c \$(srcdir)/c-family/c-common.h \$(srcdir)/c-family/c-objc.h \$(srcdir)/c-family/c-pragma.h \$(srcdir)/c-family/c-pragma.c \$(srcdir)/cp/class.c \$(srcdir)/cp/cp-objcp-common.c \$(srcdir)/cp/except.c \$(srcdir)/cp/vtable-class-hierarchy.c \$(srcdir)/cp/constexpr.c \$(srcdir)/cp/cp-gimplify.c \
  \$(srcdir)/objc/objc-map.h \$(srcdir)/objc/objc-act.h \$(srcdir)/objc/objc-act.c \$(srcdir)/objc/objc-runtime-shared-support.c \$(srcdir)/objc/objc-gnu-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-01.c \$(srcdir)/objc/objc-next-runtime-abi-02.c \$(srcdir)/c-family/c-cppbuiltin.c"
  
diff -Nrcpad gcc-7.4.0/gcc/omp-expand.c gcc-7.5.0/gcc/omp-expand.c
*** gcc-7.4.0/gcc/omp-expand.c	Tue May  1 13:21:19 2018
--- gcc-7.5.0/gcc/omp-expand.c	Fri Aug 30 11:23:16 2019
*************** extract_omp_for_update_vars (struct omp_
*** 1960,1965 ****
--- 1960,1970 ----
  	  t = fold_build2 (fd->loops[i].cond_code, boolean_type_node, v, t);
  	  stmt = gimple_build_cond_empty (t);
  	  gsi_insert_after (&gsi, stmt, GSI_CONTINUE_LINKING);
+ 	  if (walk_tree (gimple_cond_lhs_ptr (as_a <gcond *> (stmt)),
+ 			 expand_omp_regimplify_p, NULL, NULL)
+ 	      || walk_tree (gimple_cond_rhs_ptr (as_a <gcond *> (stmt)),
+ 			    expand_omp_regimplify_p, NULL, NULL))
+ 	    gimple_regimplify_operands (stmt, &gsi);
  	  e = make_edge (bb, body_bb, EDGE_TRUE_VALUE);
  	  e->probability = REG_BR_PROB_BASE * 7 / 8;
  	}
*************** expand_omp_for_generic (struct omp_regio
*** 3042,3061 ****
  
  	  if (fd->ordered && counts[fd->collapse - 1] == NULL_TREE)
  	    {
  	      if (fd->collapse > 1)
! 		t = fd->loop.v;
  	      else
  		{
! 		  t = fold_build2 (MINUS_EXPR, TREE_TYPE (fd->loops[0].v),
! 				   fd->loops[0].v, fd->loops[0].n1);
! 		  t = fold_convert (fd->iter_type, t);
  		}
  	      tree aref = build4 (ARRAY_REF, fd->iter_type,
  				  counts[fd->ordered], size_zero_node,
  				  NULL_TREE, NULL_TREE);
! 	      t = force_gimple_operand_gsi (&gsi, t, true, NULL_TREE,
! 					    true, GSI_SAME_STMT);
! 	      expand_omp_build_assign (&gsi, aref, t);
  	    }
  
  	  t = build2 (fd->loop.cond_code, boolean_type_node,
--- 3047,3067 ----
  
  	  if (fd->ordered && counts[fd->collapse - 1] == NULL_TREE)
  	    {
+ 	      tree tem;
  	      if (fd->collapse > 1)
! 		tem = fd->loop.v;
  	      else
  		{
! 		  tem = fold_build2 (MINUS_EXPR, TREE_TYPE (fd->loops[0].v),
! 				     fd->loops[0].v, fd->loops[0].n1);
! 		  tem = fold_convert (fd->iter_type, tem);
  		}
  	      tree aref = build4 (ARRAY_REF, fd->iter_type,
  				  counts[fd->ordered], size_zero_node,
  				  NULL_TREE, NULL_TREE);
! 	      tem = force_gimple_operand_gsi (&gsi, tem, true, NULL_TREE,
! 					      true, GSI_SAME_STMT);
! 	      expand_omp_build_assign (&gsi, aref, tem);
  	    }
  
  	  t = build2 (fd->loop.cond_code, boolean_type_node,
diff -Nrcpad gcc-7.4.0/gcc/omp-low.c gcc-7.5.0/gcc/omp-low.c
*** gcc-7.4.0/gcc/omp-low.c	Fri Oct 12 14:52:18 2018
--- gcc-7.5.0/gcc/omp-low.c	Fri Aug 30 12:33:00 2019
*************** new_omp_context (gimple *stmt, omp_conte
*** 853,858 ****
--- 853,859 ----
        ctx->cb.copy_decl = omp_copy_decl;
        ctx->cb.eh_lp_nr = 0;
        ctx->cb.transform_call_graph_edges = CB_CGE_MOVE;
+       ctx->cb.dont_remap_vla_if_no_change = true;
        ctx->depth = 1;
      }
  
*************** check_omp_nesting_restrictions (gimple *
*** 2888,2901 ****
  	  case GIMPLE_OMP_FOR:
  	    if (gimple_omp_for_kind (ctx->stmt) == GF_OMP_FOR_KIND_TASKLOOP)
  	      goto ordered_in_taskloop;
! 	    if (omp_find_clause (gimple_omp_for_clauses (ctx->stmt),
! 				 OMP_CLAUSE_ORDERED) == NULL)
  	      {
  		error_at (gimple_location (stmt),
  			  "%<ordered%> region must be closely nested inside "
  			  "a loop region with an %<ordered%> clause");
  		return false;
  	      }
  	    return true;
  	  case GIMPLE_OMP_TARGET:
  	    if (gimple_omp_target_kind (ctx->stmt)
--- 2889,2913 ----
  	  case GIMPLE_OMP_FOR:
  	    if (gimple_omp_for_kind (ctx->stmt) == GF_OMP_FOR_KIND_TASKLOOP)
  	      goto ordered_in_taskloop;
! 	    tree o;
! 	    o = omp_find_clause (gimple_omp_for_clauses (ctx->stmt),
! 				 OMP_CLAUSE_ORDERED);
! 	    if (o == NULL)
  	      {
  		error_at (gimple_location (stmt),
  			  "%<ordered%> region must be closely nested inside "
  			  "a loop region with an %<ordered%> clause");
  		return false;
  	      }
+ 	    if (OMP_CLAUSE_ORDERED_EXPR (o) != NULL_TREE
+ 		&& omp_find_clause (c, OMP_CLAUSE_DEPEND) == NULL_TREE)
+ 	      {
+ 		error_at (gimple_location (stmt),
+ 			  "%<ordered%> region without %<depend%> clause may "
+ 			  "not be closely nested inside a loop region with "
+ 			  "an %<ordered%> clause with a parameter");
+ 		return false;
+ 	      }
  	    return true;
  	  case GIMPLE_OMP_TARGET:
  	    if (gimple_omp_target_kind (ctx->stmt)
diff -Nrcpad gcc-7.4.0/gcc/omp-simd-clone.c gcc-7.5.0/gcc/omp-simd-clone.c
*** gcc-7.4.0/gcc/omp-simd-clone.c	Tue Feb 28 08:42:06 2017
--- gcc-7.5.0/gcc/omp-simd-clone.c	Fri Aug 30 12:17:22 2019
*************** simd_clone_clauses_extract (struct cgrap
*** 240,245 ****
--- 240,249 ----
  	  }
  	case OMP_CLAUSE_ALIGNED:
  	  {
+ 	    /* Ignore aligned (x) for declare simd, for the ABI we really
+ 	       need an alignment specified.  */
+ 	    if (OMP_CLAUSE_ALIGNED_ALIGNMENT (t) == NULL_TREE)
+ 	      break;
  	    tree decl = OMP_CLAUSE_DECL (t);
  	    int argno = tree_to_uhwi (decl);
  	    clone_info->args[argno].alignment
*************** ipa_simd_modify_stmt_ops (tree *tp, int
*** 861,866 ****
--- 865,882 ----
  
    if (tp != orig_tp)
      {
+       if (gimple_code (info->stmt) == GIMPLE_PHI
+ 	  && cand
+ 	  && TREE_CODE (*orig_tp) == ADDR_EXPR
+ 	  && TREE_CODE (TREE_OPERAND (*orig_tp, 0)) == PARM_DECL
+ 	  && cand->alias_ptr_type)
+ 	{
+ 	  gcc_assert (TREE_CODE (cand->alias_ptr_type) == SSA_NAME);
+ 	  *orig_tp = cand->alias_ptr_type;
+ 	  info->modified = true;
+ 	  return NULL_TREE;
+ 	}
+ 
        repl = build_fold_addr_expr (repl);
        gimple *stmt;
        if (is_gimple_debug (info->stmt))
*************** ipa_simd_modify_stmt_ops (tree *tp, int
*** 877,883 ****
  	  stmt = gimple_build_assign (make_ssa_name (TREE_TYPE (repl)), repl);
  	  repl = gimple_assign_lhs (stmt);
  	}
!       gimple_stmt_iterator gsi = gsi_for_stmt (info->stmt);
        gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
        *orig_tp = repl;
      }
--- 893,910 ----
  	  stmt = gimple_build_assign (make_ssa_name (TREE_TYPE (repl)), repl);
  	  repl = gimple_assign_lhs (stmt);
  	}
!       gimple_stmt_iterator gsi;
!       if (gimple_code (info->stmt) == GIMPLE_PHI)
! 	{
! 	  gsi = gsi_after_labels (single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun)));
! 	  /* Cache SSA_NAME for next time.  */
! 	  if (cand
! 	      && TREE_CODE (*orig_tp) == ADDR_EXPR
! 	      && TREE_CODE (TREE_OPERAND (*orig_tp, 0)) == PARM_DECL)
! 	    cand->alias_ptr_type = repl;
! 	}
!       else
! 	gsi = gsi_for_stmt (info->stmt);
        gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);
        *orig_tp = repl;
      }
*************** ipa_simd_modify_function_body (struct cg
*** 978,983 ****
--- 1005,1035 ----
      {
        gimple_stmt_iterator gsi;
  
+       for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+ 	{
+ 	  gphi *phi = as_a <gphi *> (gsi_stmt (gsi));
+ 	  int i, n = gimple_phi_num_args (phi);
+ 	  info.stmt = phi;
+ 	  struct walk_stmt_info wi;
+ 	  memset (&wi, 0, sizeof (wi));
+ 	  info.modified = false;
+ 	  wi.info = &info;
+ 	  for (i = 0; i < n; ++i)
+ 	    {
+ 	      int walk_subtrees = 1;
+ 	      tree arg = gimple_phi_arg_def (phi, i);
+ 	      tree op = arg;
+ 	      ipa_simd_modify_stmt_ops (&op, &walk_subtrees, &wi);
+ 	      if (op != arg)
+ 		{
+ 		  SET_PHI_ARG_DEF (phi, i, op);
+ 		  gcc_assert (TREE_CODE (op) == SSA_NAME);
+ 		  if (gimple_phi_arg_edge (phi, i)->flags & EDGE_ABNORMAL)
+ 		    SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op) = 1;
+ 		}
+ 	    }
+ 	}
+ 
        gsi = gsi_start_bb (bb);
        while (!gsi_end_p (gsi))
  	{
*************** ipa_simd_modify_function_body (struct cg
*** 993,998 ****
--- 1045,1052 ----
  	  if (greturn *return_stmt = dyn_cast <greturn *> (stmt))
  	    {
  	      tree retval = gimple_return_retval (return_stmt);
+ 	      edge e = find_edge (bb, EXIT_BLOCK_PTR_FOR_FN (cfun));
+ 	      e->flags |= EDGE_FALLTHRU;
  	      if (!retval)
  		{
  		  gsi_remove (&gsi, true);
*************** simd_clone_adjust (struct cgraph_node *n
*** 1133,1146 ****
        basic_block orig_exit = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), 0)->src;
        incr_bb = create_empty_bb (orig_exit);
        add_bb_to_loop (incr_bb, body_bb->loop_father);
!       /* The succ of orig_exit was EXIT_BLOCK_PTR_FOR_FN (cfun), with an empty
! 	 flag.  Set it now to be a FALLTHRU_EDGE.  */
!       gcc_assert (EDGE_COUNT (orig_exit->succs) == 1);
!       EDGE_SUCC (orig_exit, 0)->flags |= EDGE_FALLTHRU;
!       for (unsigned i = 0;
! 	   i < EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds); ++i)
  	{
! 	  edge e = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), i);
  	  redirect_edge_succ (e, incr_bb);
  	}
      }
--- 1187,1195 ----
        basic_block orig_exit = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), 0)->src;
        incr_bb = create_empty_bb (orig_exit);
        add_bb_to_loop (incr_bb, body_bb->loop_father);
!       while (EDGE_COUNT (EXIT_BLOCK_PTR_FOR_FN (cfun)->preds))
  	{
! 	  edge e = EDGE_PRED (EXIT_BLOCK_PTR_FOR_FN (cfun), 0);
  	  redirect_edge_succ (e, incr_bb);
  	}
      }
diff -Nrcpad gcc-7.4.0/gcc/optabs.c gcc-7.5.0/gcc/optabs.c
*** gcc-7.4.0/gcc/optabs.c	Fri Jun 22 20:41:55 2018
--- gcc-7.5.0/gcc/optabs.c	Fri Aug 30 11:50:35 2019
*************** prepare_cmp_insn (rtx x, rtx y, enum rtx
*** 3811,3817 ****
  
  	  /* Must make sure the size fits the insn's mode.  */
  	  if ((CONST_INT_P (size)
! 	       && INTVAL (size) >= (1 << GET_MODE_BITSIZE (cmp_mode)))
  	      || (GET_MODE_BITSIZE (GET_MODE (size))
  		  > GET_MODE_BITSIZE (cmp_mode)))
  	    continue;
--- 3811,3817 ----
  
  	  /* Must make sure the size fits the insn's mode.  */
  	  if ((CONST_INT_P (size)
! 	       && UINTVAL (size) > GET_MODE_MASK (cmp_mode))
  	      || (GET_MODE_BITSIZE (GET_MODE (size))
  		  > GET_MODE_BITSIZE (cmp_mode)))
  	    continue;
*************** prepare_cmp_insn (rtx x, rtx y, enum rtx
*** 3830,3836 ****
  	goto fail;
  
        /* Otherwise call a library function.  */
!       result = emit_block_comp_via_libcall (XEXP (x, 0), XEXP (y, 0), size);
  
        x = result;
        y = const0_rtx;
--- 3830,3836 ----
  	goto fail;
  
        /* Otherwise call a library function.  */
!       result = emit_block_comp_via_libcall (x, y, size);
  
        x = result;
        y = const0_rtx;
diff -Nrcpad gcc-7.4.0/gcc/optc-save-gen.awk gcc-7.5.0/gcc/optc-save-gen.awk
*** gcc-7.4.0/gcc/optc-save-gen.awk	Sat Jan  7 19:53:13 2017
--- gcc-7.5.0/gcc/optc-save-gen.awk	Fri Aug 30 12:01:02 2019
*************** print "void";
*** 84,90 ****
  print "cl_optimization_save (struct cl_optimization *ptr, struct gcc_options *opts)";
  print "{";
  
! n_opt_char = 3;
  n_opt_short = 0;
  n_opt_int = 0;
  n_opt_enum = 0;
--- 84,90 ----
  print "cl_optimization_save (struct cl_optimization *ptr, struct gcc_options *opts)";
  print "{";
  
! n_opt_char = 4;
  n_opt_short = 0;
  n_opt_int = 0;
  n_opt_enum = 0;
*************** n_opt_other = 0;
*** 92,100 ****
--- 92,102 ----
  var_opt_char[0] = "optimize";
  var_opt_char[1] = "optimize_size";
  var_opt_char[2] = "optimize_debug";
+ var_opt_char[3] = "optimize_fast";
  var_opt_range["optimize"] = "0, 255";
  var_opt_range["optimize_size"] = "0, 1";
  var_opt_range["optimize_debug"] = "0, 1";
+ var_opt_range["optimize_fast"] = "0, 1";
  
  # Sort by size to mimic how the structure is laid out to be friendlier to the
  # cache.
*************** for (i = 0; i < n_target_val; i++) {
*** 735,747 ****
  
  print "}";
  
! n_opt_val = 3;
  var_opt_val[0] = "x_optimize"
  var_opt_val_type[0] = "char "
  var_opt_val[1] = "x_optimize_size"
- var_opt_val[2] = "x_optimize_debug"
  var_opt_val_type[1] = "char "
  var_opt_val_type[2] = "char "
  for (i = 0; i < n_opts; i++) {
  	if (flag_set_p("(Optimization|PerFunction)", flags[i])) {
  		name = var_name(flags[i])
--- 737,751 ----
  
  print "}";
  
! n_opt_val = 4;
  var_opt_val[0] = "x_optimize"
  var_opt_val_type[0] = "char "
  var_opt_val[1] = "x_optimize_size"
  var_opt_val_type[1] = "char "
+ var_opt_val[2] = "x_optimize_debug"
  var_opt_val_type[2] = "char "
+ var_opt_val[3] = "x_optimize_fast"
+ var_opt_val_type[3] = "char "
  for (i = 0; i < n_opts; i++) {
  	if (flag_set_p("(Optimization|PerFunction)", flags[i])) {
  		name = var_name(flags[i])
diff -Nrcpad gcc-7.4.0/gcc/opth-gen.awk gcc-7.5.0/gcc/opth-gen.awk
*** gcc-7.4.0/gcc/opth-gen.awk	Sat Jan  7 19:53:13 2017
--- gcc-7.5.0/gcc/opth-gen.awk	Fri Aug 30 12:01:02 2019
*************** print "/* Structure to save/restore opti
*** 132,138 ****
  print "struct GTY(()) cl_optimization";
  print "{";
  
! n_opt_char = 3;
  n_opt_short = 0;
  n_opt_int = 0;
  n_opt_enum = 0;
--- 132,138 ----
  print "struct GTY(()) cl_optimization";
  print "{";
  
! n_opt_char = 4;
  n_opt_short = 0;
  n_opt_int = 0;
  n_opt_enum = 0;
*************** n_opt_other = 0;
*** 140,145 ****
--- 140,146 ----
  var_opt_char[0] = "unsigned char x_optimize";
  var_opt_char[1] = "unsigned char x_optimize_size";
  var_opt_char[2] = "unsigned char x_optimize_debug";
+ var_opt_char[3] = "unsigned char x_optimize_fast";
  
  for (i = 0; i < n_opts; i++) {
  	if (flag_set_p("(Optimization|PerFunction)", flags[i])) {
diff -Nrcpad gcc-7.4.0/gcc/opts-common.c gcc-7.5.0/gcc/opts-common.c
*** gcc-7.4.0/gcc/opts-common.c	Fri Sep 15 08:18:34 2017
--- gcc-7.5.0/gcc/opts-common.c	Mon Jul 22 09:38:26 2019
*************** decode_cmdline_option (const char **argv
*** 438,444 ****
  
    extra_args = 0;
  
!   opt_index = find_opt (argv[0] + 1, lang_mask);
    i = 0;
    while (opt_index == OPT_SPECIAL_unknown
  	 && i < ARRAY_SIZE (option_map))
--- 438,445 ----
  
    extra_args = 0;
  
!   const char *opt_value = argv[0] + 1;
!   opt_index = find_opt (opt_value, lang_mask);
    i = 0;
    while (opt_index == OPT_SPECIAL_unknown
  	 && i < ARRAY_SIZE (option_map))
*************** decode_cmdline_option (const char **argv
*** 641,646 ****
--- 642,664 ----
    /* Check if this is a switch for a different front end.  */
    if (!option_ok_for_language (option, lang_mask))
      errors |= CL_ERR_WRONG_LANG;
+   else if (strcmp (option->opt_text, "-Werror=") == 0
+ 	   && strchr (opt_value, ',') == NULL)
+     {
+       /* Verify that -Werror argument is a valid warning
+ 	 for a language.  */
+       char *werror_arg = xstrdup (opt_value + 6);
+       werror_arg[0] = 'W';
+ 
+       size_t warning_index = find_opt (werror_arg, lang_mask);
+       if (warning_index != OPT_SPECIAL_unknown)
+ 	{
+ 	  const struct cl_option *warning_option
+ 	    = &cl_options[warning_index];
+ 	  if (!option_ok_for_language (warning_option, lang_mask))
+ 	    errors |= CL_ERR_WRONG_LANG;
+ 	}
+     }
  
    /* Convert the argument to lowercase if appropriate.  */
    if (arg && option->cl_tolower)
diff -Nrcpad gcc-7.4.0/gcc/opts-global.c gcc-7.5.0/gcc/opts-global.c
*** gcc-7.4.0/gcc/opts-global.c	Fri Sep 15 08:18:34 2017
--- gcc-7.5.0/gcc/opts-global.c	Mon Jul 22 09:38:26 2019
*************** complain_wrong_lang (const struct cl_dec
*** 100,109 ****
  	   text, bad_lang);
    else if (lang_mask == CL_DRIVER)
      gcc_unreachable ();
!   else
      /* Eventually this should become a hard error IMO.  */
      warning (0, "command line option %qs is valid for %s but not for %s",
  	     text, ok_langs, bad_lang);
  
    free (ok_langs);
    free (bad_lang);
--- 100,113 ----
  	   text, bad_lang);
    else if (lang_mask == CL_DRIVER)
      gcc_unreachable ();
!   else if (ok_langs[0] != '\0')
      /* Eventually this should become a hard error IMO.  */
      warning (0, "command line option %qs is valid for %s but not for %s",
  	     text, ok_langs, bad_lang);
+   else
+     /* Happens for -Werror=warning_name.  */
+     warning (0, "%<-Werror=%> argument %qs is not valid for %s",
+ 	     text, bad_lang);
  
    free (ok_langs);
    free (bad_lang);
diff -Nrcpad gcc-7.4.0/gcc/opts.c gcc-7.5.0/gcc/opts.c
*** gcc-7.4.0/gcc/opts.c	Tue Mar  6 20:07:38 2018
--- gcc-7.5.0/gcc/opts.c	Thu Jan 31 12:05:19 2019
*************** default_options_optimization (struct gcc
*** 654,660 ****
    /* For -O1 only do loop invariant motion for very small loops.  */
    maybe_set_param_value
      (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP,
!      opt2 ? default_param_value (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) : 1000,
       opts->x_param_values, opts_set->x_param_values);
  
    /* At -Ofast, allow store motion to introduce potential race conditions.  */
--- 654,669 ----
    /* For -O1 only do loop invariant motion for very small loops.  */
    maybe_set_param_value
      (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP,
!      opt2 ? default_param_value (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
!      : default_param_value (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) / 10,
!      opts->x_param_values, opts_set->x_param_values);
! 
!   /* For -O1 reduce the maximum number of active local stores for RTL DSE
!      since this can consume huge amounts of memory (PR89115).  */
!   maybe_set_param_value
!     (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES,
!      opt2 ? default_param_value (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES)
!      : default_param_value (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES) / 10,
       opts->x_param_values, opts_set->x_param_values);
  
    /* At -Ofast, allow store motion to introduce potential race conditions.  */
diff -Nrcpad gcc-7.4.0/gcc/po/ChangeLog gcc-7.5.0/gcc/po/ChangeLog
*** gcc-7.4.0/gcc/po/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/po/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/resource.c gcc-7.5.0/gcc/resource.c
*** gcc-7.4.0/gcc/resource.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/resource.c	Fri Jul 12 10:17:42 2019
*************** mark_target_live_regs (rtx_insn *insns,
*** 966,974 ****
--- 966,978 ----
      {
        regset regs_live = DF_LR_IN (BASIC_BLOCK_FOR_FN (cfun, b));
        rtx_insn *start_insn, *stop_insn;
+       df_ref def;
  
        /* Compute hard regs live at start of block.  */
        REG_SET_TO_HARD_REG_SET (current_live_regs, regs_live);
+       FOR_EACH_ARTIFICIAL_DEF (def, b)
+ 	if (DF_REF_FLAGS (def) & DF_REF_AT_TOP)
+ 	  SET_HARD_REG_BIT (current_live_regs, DF_REF_REGNO (def));
  
        /* Get starting and ending insn, handling the case where each might
  	 be a SEQUENCE.  */
diff -Nrcpad gcc-7.4.0/gcc/rtl.h gcc-7.5.0/gcc/rtl.h
*** gcc-7.4.0/gcc/rtl.h	Tue Nov 20 09:04:12 2018
--- gcc-7.5.0/gcc/rtl.h	Sun Jan 27 17:42:58 2019
*************** extern void init_lower_subreg (void);
*** 3666,3671 ****
--- 3666,3674 ----
  /* In gcse.c */
  extern bool can_copy_p (machine_mode);
  extern bool can_assign_to_reg_without_clobbers_p (rtx, machine_mode);
+ extern rtx_insn *prepare_copy_insn (rtx, rtx);
+ 
+ /* In cprop.c */
  extern rtx fis_get_condition (rtx_insn *);
  
  /* In ira.c */
diff -Nrcpad gcc-7.4.0/gcc/rtlanal.c gcc-7.5.0/gcc/rtlanal.c
*** gcc-7.4.0/gcc/rtlanal.c	Tue Nov 20 09:04:12 2018
--- gcc-7.5.0/gcc/rtlanal.c	Wed Sep 11 10:44:06 2019
*************** get_initial_register_offset (int from, i
*** 357,366 ****
    if (to == from)
      return 0;
  
!   /* It is not safe to call INITIAL_ELIMINATION_OFFSET
!      before the reload pass.  We need to give at least
!      an estimation for the resulting frame size.  */
!   if (! reload_completed)
      {
        offset1 = crtl->outgoing_args_size + get_frame_size ();
  #if !STACK_GROWS_DOWNWARD
--- 357,366 ----
    if (to == from)
      return 0;
  
!   /* It is not safe to call INITIAL_ELIMINATION_OFFSET before the epilogue
!      is completed, but we need to give at least an estimate for the stack
!      pointer based on the frame size.  */
!   if (!epilogue_completed)
      {
        offset1 = crtl->outgoing_args_size + get_frame_size ();
  #if !STACK_GROWS_DOWNWARD
*************** nonzero_bits1 (const_rtx x, machine_mode
*** 4636,4642 ****
  	       || ((extend_op = load_extend_op (inner_mode)) == SIGN_EXTEND
  		   ? val_signbit_known_set_p (inner_mode, nonzero)
  		   : extend_op != ZERO_EXTEND)
! 	       || (!MEM_P (SUBREG_REG (x)) && !REG_P (SUBREG_REG (x))))
  	      && GET_MODE_PRECISION (GET_MODE (x))
  		  > GET_MODE_PRECISION (inner_mode))
  	    nonzero
--- 4636,4642 ----
  	       || ((extend_op = load_extend_op (inner_mode)) == SIGN_EXTEND
  		   ? val_signbit_known_set_p (inner_mode, nonzero)
  		   : extend_op != ZERO_EXTEND)
! 	       || !MEM_P (SUBREG_REG (x)))
  	      && GET_MODE_PRECISION (GET_MODE (x))
  		  > GET_MODE_PRECISION (inner_mode))
  	    nonzero
diff -Nrcpad gcc-7.4.0/gcc/store-motion.c gcc-7.5.0/gcc/store-motion.c
*** gcc-7.4.0/gcc/store-motion.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/store-motion.c	Sun Jan 27 17:42:58 2019
*************** replace_store_insn (rtx reg, rtx_insn *d
*** 907,914 ****
    rtx_insn *insn;
    rtx mem, note, set;
  
!   mem = smexpr->pattern;
!   insn = gen_move_insn (reg, SET_SRC (single_set (del)));
  
    unsigned int i;
    rtx_insn *temp;
--- 907,913 ----
    rtx_insn *insn;
    rtx mem, note, set;
  
!   insn = prepare_copy_insn (reg, SET_SRC (single_set (del)));
  
    unsigned int i;
    rtx_insn *temp;
*************** replace_store_insn (rtx reg, rtx_insn *d
*** 941,946 ****
--- 940,946 ----
    /* Now we must handle REG_EQUAL notes whose contents is equal to the mem;
       they are no longer accurate provided that they are reached by this
       definition, so drop them.  */
+   mem = smexpr->pattern;
    for (; insn != NEXT_INSN (BB_END (bb)); insn = NEXT_INSN (insn))
      if (NONDEBUG_INSN_P (insn))
        {
diff -Nrcpad gcc-7.4.0/gcc/symtab.c gcc-7.5.0/gcc/symtab.c
*** gcc-7.4.0/gcc/symtab.c	Tue Mar  6 20:04:20 2018
--- gcc-7.5.0/gcc/symtab.c	Fri Aug 30 12:46:13 2019
*************** symtab_node::set_section (symtab_node *n
*** 1520,1526 ****
  void
  symtab_node::set_section (const char *section)
  {
!   gcc_assert (!this->alias);
    call_for_symbol_and_aliases
      (symtab_node::set_section, const_cast<char *>(section), true);
  }
--- 1520,1526 ----
  void
  symtab_node::set_section (const char *section)
  {
!   gcc_assert (!this->alias || !this->analyzed);
    call_for_symbol_and_aliases
      (symtab_node::set_section, const_cast<char *>(section), true);
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/ChangeLog gcc-7.5.0/gcc/testsuite/ChangeLog
*** gcc-7.4.0/gcc/testsuite/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gcc/testsuite/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,2262 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-11-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR c++/79274
+ 	* g++.dg/tls/pr77285-2.C: XFAIL test for Darwin.
+ 
+ 2019-11-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/pr90760.c: Require alias support.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-10-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/i386/indirect-thunk-1.c: Allow 'l' or 'L' in
+ 	indirection label prefix, for Darwin.
+ 	* gcc.target/i386/indirect-thunk-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-4.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
+ 	* gcc.target/i386/pr32219-2.c: Likewise.
+ 	* gcc.target/i386/pr32219-3.c: Likewise.
+ 	* gcc.target/i386/pr32219-4.c: Likewise.
+ 	* gcc.target/i386/pr32219-7.c: Likewise.
+ 	* gcc.target/i386/pr32219-8.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-14.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-15.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-9.c: Likewise.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-08-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* obj-c++.dg/stubify-1.mm: Rename symbol stub option.
+ 	* obj-c++.dg/stubify-2.mm: Likewise.
+ 	* objc.dg/stubify-1.m: Likewise.
+ 	* objc.dg/stubify-2.m: Likewise.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* lib/target-supports.exp 
+ 	(check_effective_target_powerpc_p8vector_ok): No support for Darwin.
+ 	(check_effective_target_powerpc_p9vector_ok): Likewise.
+ 	(check_effective_target_powerpc_float128_sw_ok): Likewise.
+ 	(check_effective_target_powerpc_float128_hw_ok): Likewise.
+ 	(check_effective_target_powerpc_vsx_ok): Likewise.
+ 	* gcc.target/powerpc/bfp/bfp.exp: Don't try to run this for Darwin.
+ 	* gcc.target/powerpc/dfp/dfp.exp: Likewise.
+ 
+ 2019-10-29  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.c-torture/compile/pr72802.c: Skip for Darwin.
+ 
+ 2019-10-29  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	PR fortran/86248
+ 	* gfortran.dg/char_result_19.f90 : New test.
+ 	* gfortran.dg/char_result_mod_19.f90 : Module for the new test.
+ 
+ 2019-10-26  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN):Guard
+ 	against out of range max skip or log values.
+ 
+ 2019-10-25  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backport from mainline
+ 	2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
+ 	   Richard Earnshaw  <rearnsha@arm.com>
+ 	PR target/88167
+ 	* gcc.target/arm/pr88167-1.c: New test.
+ 	* gcc.target/arm/pr88167-2.c: New test.
+ 
+ 2019-10-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-10-17  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/91887
+ 	* g++.dg/debug/dwarf2/pr91887.C: New testcase.
+ 
+ 	2019-09-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91812
+ 	* gcc.dg/torture/pr91812.c: New testcase.
+ 
+ 2019-10-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.c-torture/execute/20191023-1.c: New test.
+ 
+ 2019-10-18  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/69455
+ 	* gfortran.dg/pr69455_1.f90: New test.
+ 	* gfortran.dg/pr69455_2.f90: Ditto.
+ 
+ 2019-10-17  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-10-15  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	PR target/92093
+ 	* gcc.target/powerpc/pr91275.c: Fix type and endian issues.
+ 
+ 2019-10-07  Bill Schmidt  <wschmidt@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-10-01  Bill Schmidt  <wschmdit@linux.ibm.com>
+ 
+ 	PR target/91275
+ 	* gcc.target/powerpc/pr91275.c: New.
+ 
+ 2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/82920
+ 	* gcc.target/i386/indirect-thunk-bnd-1.c: Adjust scan-asms for Darwin,
+ 	do not use -fno-pic on Darwin.
+ 	* gcc.target/i386/indirect-thunk-bnd-2.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-25.c: Skip for Darwin, which has a
+ 	different ABI for returning this category of complex value.
+ 
+ 2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-14  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/82920
+ 	* gcc.target/i386/pr52146.c: Require effective target x32.
+ 	* gcc.target/i386/pr52698.c: Likewise.
+ 	* gcc.target/i386/pr52857-1.c: Likewise.
+ 	* gcc.target/i386/pr52857-2.c: Likewise.
+ 	* gcc.target/i386/pr52876.c: Likewise.
+ 	* gcc.target/i386/pr53698.c: Likewise.
+ 	* gcc.target/i386/pr54157.c: Likewise.
+ 	* gcc.target/i386/pr55049-1.c: Likewise.
+ 	* gcc.target/i386/pr55093.c: Likewise.
+ 	* gcc.target/i386/pr55116-1.c: Likewise.
+ 	* gcc.target/i386/pr55116-2.c: Likewise.
+ 	* gcc.target/i386/pr55597.c: Likewise.
+ 	* gcc.target/i386/pr59929.c: Likewise.
+ 	* gcc.target/i386/pr66470.c: Likewise.
+ 
+ 2019-09-28  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 	    Dominique d'Humieres  <dominiq@gcc.gnu.org>
+ 
+ 	PR target/82920
+ 	* gcc.target/i386/indirect-thunk-1.c: Adjust scan-asms for Darwin,
+ 	do not use -fno-pic on Darwin.
+ 	* gcc.target/i386/indirect-thunk-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-4.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-7.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-1.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-4.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-5.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-6.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-7.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-attr-8.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-1.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-4.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-extern-7.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-1.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-4.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-register-1.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-register-2.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-register-3.c: Likewise.
+ 	* gcc.target/i386/indirect-thunk-register-4.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-1.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-10.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-11.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-12.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-13.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-14.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-15.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-16.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-2.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-22.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-23.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-24.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-3.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-4.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-5.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-6.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-7.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-8.c: Likewise.
+ 	* gcc.target/i386/ret-thunk-9.c: Likewise.
+ 
+ 2019-09-17  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* g++.dg/pr71694.C: Use non-PIC codegen for Darwin m32.
+ 
+ 2019-09-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/cpp/isysroot-1.c: Use <example.h> as the test header.
+ 	* gcc.dg/cpp/usr/include/stdio.h: Rename...
+ 	* gcc.dg/cpp/usr/include/example.h: ... to this.
+ 
+ 2019-09-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/91557
+ 	* gfortran.dg/warn_unused_dummy_argument_5.f90: New test.
+ 
+ 2019-09-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* obj-c++.dg/syntax-error-1.mm: Adjust line number in dg-error.
+ 
+ 2019-09-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR objc/90709
+ 	* obj-c++.dg/proto-lossage-7.mm: Use proxy headers.
+ 	* obj-c++.dg/strings/const-cfstring-2.mm: Likewise.
+ 	* obj-c++.dg/strings/const-cfstring-5.mm: Likewise
+ 	* obj-c++.dg/strings/const-str-12.mm: Likewise.
+ 	* obj-c++.dg/syntax-error-1.mm: Likewise.
+ 	* obj-c++.dg/torture/strings/const-cfstring-1.mm: Likewise.
+ 	* obj-c++.dg/torture/strings/const-str-10.mm: Likewise.
+ 	* obj-c++.dg/torture/strings/const-str-11.mm: Likewise.
+ 	* obj-c++.dg/torture/strings/const-str-9.mm: Likewise.
+ 	* obj-c++.dg/cxx-ivars-3.mm: Skip on later Darwin, where the 10.4 API
+ 	in no longer supported, also on m64 where there's no meaning to it.
+ 	* obj-c++.dg/isa-field-1.mm: Suppress unwanted warning, add comment why.
+ 	* obj-c++.dg/objc-gc-3.mm: Skip for Darwin > 16, the API use is an error
+ 	there.
+ 	* obj-c++.dg/qual-types-1.mm: Prune a spurious l64 warning.
+ 	* obj-c++.dg/stubify-1.mm: Tidy up after better compiler warnings.
+ 	* obj-c++.dg/stubify-2.mm: Likewise.
+ 	* obj-c++.dg/try-catch-1.mm: Likewise.
+ 	* obj-c++.dg/try-catch-3.mm: Likewise.
+ 
+ 	Backport from mainline.
+ 	2019-06-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR objc/90709
+ 	* objc.dg/encode-7-next-64bit.m: Use proxy headers.
+ 	* objc.dg/image-info.m: Likewise.
+ 	* objc.dg/method-6.m: Likewise.
+ 	* objc.dg/no-extra-load.m: Likewise.
+ 	* objc.dg/objc-foreach-4.m: Likewise.
+ 	* objc.dg/objc-foreach-5.m: Likewise.
+ 	* objc.dg/proto-lossage-7.m: Likewise.
+ 	* objc.dg/strings/const-cfstring-2.m: Likewise.
+ 	* objc.dg/strings/const-cfstring-5.m: Likewise.
+ 	* objc.dg/strings/const-str-12b.m: Likewise.
+ 	* objc.dg/symtab-1.m: Likewise.
+ 	* objc.dg/torture/strings/const-cfstring-1.m: Likewise.
+ 	* objc.dg/torture/strings/const-str-10.m: Likewise.
+ 	* objc.dg/torture/strings/const-str-11.m: Likewise.
+ 	* objc.dg/torture/strings/const-str-9.m: Likewise.
+ 	* objc.dg/zero-link-1.m: Likewise.
+ 	* objc.dg/zero-link-2.m: Likewise.
+ 	* objc.dg/zero-link-3.m: Likewise.
+ 	* objc.dg/isa-field-1.m: Suppress unwanted warning, add comment why.
+ 	* objc.dg/headers.m: XFAIL for Darwin14-19.
+ 	* objc.dg/objc-gc-4.m: Skip for Darwin > 16, the API use is an error
+ 	there.
+ 
+ 	Backport from mainline.
+ 	2019-06-15  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR objc/90709
+ 	* objc-obj-c++-shared/CF-CFString.h: New.
+ 	* objc-obj-c++-shared/F-NSArray.h: New.
+ 	* objc-obj-c++-shared/F-NSAutoreleasePool.h: New.
+ 	* objc-obj-c++-shared/F-NSObject.h: New.
+ 	* objc-obj-c++-shared/F-NSString.h: New.
+ 	* objc-obj-c++-shared/F-NSValue.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h: New.
+ 	* objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSArray.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSDate.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSObject.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSRange.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSString.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSValue.h: New.
+ 	* objc-obj-c++-shared/GNUStep/Foundation/NSZone.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h:
+ 	New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h: New.
+ 	* objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h: New.
+ 
+ 2019-09-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/darwin-minversion-1.c: Use compile rather than link/run.
+ 	* gcc.dg/darwin-minversion-2.c: Likewise.
+ 
+ 2019-09-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-27  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/i386/pr22076.c: Adjust options to
+ 	match codegen expected by the scan-asms.
+ 
+ 2019-09-12  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/91686
+ 	* gfortran.dg/pr91686.f90 : New test.
+ 
+ 2019-09-11  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.target/sparc/20161111-1.c: XFAIL redundant zero-extension test.
+ 
+ 2019-09-10  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-26  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/i386/pr39013-1.c: Adjust scan-asms for PIE to
+ 	account for PIC code on Darwin.
+ 	* gcc.target/i386/pr39013-2.c: Likewise.
+ 	* gcc.target/i386/pr64317.c: Likewise.
+ 
+ 2019-09-10  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/i386/pr59874-3.c: Use the spelling of popcnt
+ 	expected for Darwin.
+ 
+ 2019-09-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-07-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR gcov-profile/91087
+ 	* g++.dg/gcov/pr16855.C: Xfail the count lines for the DTORs and the
+ 	"final" line for the failure summaries.  Adjust source layout so that
+ 	dejagnu xfail expressions work.
+ 
+ 2019-09-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-11  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR testsuite/65364
+ 	* gcc.dg/uninit-19.c (fn1): Adjust target condition for Darwin.
+ 	(fn2): Likewise.
+ 
+ 2019-09-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/i386/pr66819-3.c: Specifically, check that there is no
+ 	call to "bar".
+ 	* gcc.target/i386/pr66819-4.c: Likewise.
+ 
+ 2019-09-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/i386/pr67985-2.c: Adjust label checks for
+ 	Darwin.
+ 	* gcc.target/i386/pr77881.c: Likewise.
+ 
+ 2019-09-09  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/i386/pr70738-7.c: Likewise.
+ 	* gcc.target/i386/pr24414.c: Likewise.
+ 
+ 2019-09-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/87853
+ 	* gcc.target/i386/pr87853.c: New test.
+ 
+ 	PR target/91704
+ 	* gcc.target/i386/pr91704.c: New test.
+ 
+ 2019-09-08  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/90698
+ 	* gcc.target/i386/pr49866.c: XFAIL for Darwin.
+ 	* gcc.target/i386/pr63538.c: Likewise.
+ 	* gcc.target/i386/pr61599-1.c: Skip for Darwin.
+ 
+ 2019-09-08  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR rtl-optimisation/64895
+ 	* gcc.target/i386/fuse-caller-save-rec.c: Remove XFAILs.
+ 	* gcc.target/i386/fuse-caller-save.c: Likewise.
+ 	* gcc.target/i386/fuse-caller-save-xmm.c: Adjust tests for
+ 	PIC cases, remove XFAILs.
+ 
+ 2019-09-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR testsuite/27221
+ 	* g++.dg/ext/alignof2.C: XFAIL for 32bit Darwin.
+ 
+ 2019-09-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR testsuite/67958
+ 	* gcc.target/i386/pr32219-1.c: Adjust scan-asms for Darwin, comment
+ 	the differences.
+ 	* gcc.target/i386/pr32219-2.c: Likewise.
+ 	* gcc.target/i386/pr32219-3.c: Likewise.
+ 	* gcc.target/i386/pr32219-4.c: Likewise.
+ 	* gcc.target/i386/pr32219-5.c: Likewise.
+ 	* gcc.target/i386/pr32219-6.c: Likewise.
+ 	* gcc.target/i386/pr32219-7.c: Likewise.
+ 	* gcc.target/i386/pr32219-8.c: Likewise.
+ 
+ 2019-09-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-21  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR target/63891
+ 	* gcc.dg/darwin-weakimport-3.c: Adjust options and explain
+ 	the reasons.
+ 
+ 2019-09-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-20  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR testsuite/58321
+ 	* gcc.target/i386/memcpy-strategy-3.c: Adjust count for Darwin and
+ 	add a comment as to the reason for the difference.
+ 	* gcc.target/i386/memset-strategy-1.c: Likewise.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-07-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/powerpc/stabs-attrib-vect-darwin.c: Require stabs
+ 	support.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/powerpc/safe-indirect-jump-1.c: Skip for Darwin.
+ 	* gcc.target/powerpc/safe-indirect-jump-7.c: Likewise.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/powerpc/builtins-2.c: Require VSX hardware support.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/powerpc/pr80125.c (foo): Use an unsigned char
+ 	vector explicitly for the vec_perm.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/powerpc/pr71785.c: For Darwin, make test non-PIC,
+ 	expect the out-of-line GPR restore, and test specifically for
+ 	absence of branches to local labels.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/powerpc/pr64205.c: Require effective target dfp.
+ 	* gcc.target/powerpc/pr79909.c: Likewise.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/powerpc/darwin-bool-1.c: Suppress the pedantic
+ 	warning about _Bool.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-10  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.target/x86_64/abi/avx512f/abi-avx512f.exp: Darwin is
+ 	now tested.
+ 	* gcc.target/x86_64/abi/avx512f/asm-support-darwin.s: New.
+ 
+ 2019-09-05  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* objc.dg/instancetype-0.m: New.
+ 
+ 2019-09-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90328
+ 	* gcc.dg/torture/pr90328.c: New testcase.
+ 
+ 	2019-02-22  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/87609
+ 	* gcc.dg/torture/restrict-7.c: New testcase.
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/darwin-minversion-link.c: New test.
+ 
+ 2019-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
+ 
+ 	PR tree-optimization/81740
+ 	* gcc.dg/vect/pr81740-1.c: New testcase.
+ 	* gcc.dg/vect/pr81740-2.c: Likewise.
+ 
+ 2019-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2018-11-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88149
+ 	* g++.dg/torture/pr88149.C: New testcase.
+ 
+ 2019-09-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-04-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90006
+ 	* gcc.dg/vect/bb-slp-pr90006.c: New testcase.
+ 
+ 	2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89698
+ 	* g++.dg/torture/pr89698.C: New testcase.
+ 
+ 	2019-01-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88903
+ 	* gcc.dg/vect/pr88903-1.c: New testcase.
+ 	* gcc.dg/vect/pr88903-2.c: Likewise.
+ 
+ 	2018-12-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/88448
+ 	PR middle-end/88415
+ 	* gcc.dg/gomp/pr88415.c: New testcase.
+ 
+ 	2018-11-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88030
+ 	* gcc.dg/tsan/pr88030.c: New testcase.
+ 
+ 	2018-11-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/87929
+ 	* gcc.dg/pr87929.c: New testcase.
+ 
+ 2019-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 
+ 	Backport from mainline
+ 	2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89710
+ 	* gcc.dg/torture/pr89710.c: New testcase.
+ 
+ 	2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89572
+ 	* gcc.dg/torture/pr89572.c: New testcase.
+ 
+ 	2019-02-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89296
+ 	* gcc.dg/uninit-pr89296.c: New testcase.
+ 
+ 	2019-01-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89135
+ 	* gcc.dg/torture/pr89135.c: New testcase.
+ 
+ 2019-09-02  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-07-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91200
+ 	* gcc.dg/torture/pr91200.c: New testcase.
+ 
+ 	2019-07-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/91162
+ 	* gcc.dg/autopar/pr91162.c: New testcase.
+ 
+ 	2019-07-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/91131
+ 	* gcc.target/i386/pr91131.c: New testcase.
+ 
+ 	2019-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91126
+ 	* gcc.dg/torture/pr91126.c: New testcase.
+ 
+ 	2019-07-10  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/91126
+ 	* gcc.dg/torture/pr91126.c: New testcase.
+ 
+ 	2019-04-29  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90278
+ 	* gcc.dg/torture/pr90278.c: New testcase.
+ 
+ 	2019-04-11  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90020
+ 	* gcc.dg/torture/pr90020.c: New testcase.
+ 
+ 2019-09-02  Bin Cheng  <bin.linux@linux.alibaba.com>
+ 
+ 	Backport from mainline
+ 	2019-07-18  Bin Cheng  <bin.linux@linux.alibaba.com>
+ 
+ 	PR tree-optimization/91137
+ 	* gcc.c-torture/execute/pr91137.c: New test.
+ 
+ 2019-08-31  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/91481
+ 	* gcc.target/powerpc/darn-3.c: Fix testcase.
+ 
+ 2019-08-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-04-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/90194
+ 	* g++.dg/torture/pr90194.C: New testcase.
+ 
+ 	2019-04-15  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/90071
+ 	* gcc.dg/torture/pr90071.c: New testcase.
+ 
+ 	2019-03-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89677
+ 	* gcc.dg/torture/pr89677.c: New testcase.
+ 
+ 2019-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2019-08-23  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR target/91481
+ 	* gcc.target/powerpc/darn-3.c: New testcase.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-07-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/91150
+ 	* gcc.target/i386/avx512bw-pr91150.c: New test.
+ 
+ 	2019-07-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/78884
+ 	* gcc.dg/gomp/pr78884.c: New test.
+ 
+ 	PR rtl-optimization/90756
+ 	* gcc.dg/pr90756.c: New test.
+ 
+ 	2019-06-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/90954
+ 	* c-c++-common/gomp/pr90954.c: New test.
+ 
+ 	2019-06-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/90950
+ 	* g++.dg/gomp/lastprivate-1.C: New test.
+ 
+ 	2019-06-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/90760
+ 	* gcc.dg/pr90760.c: New test.
+ 
+ 	2019-05-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR pch/90326
+ 	* g++.dg/pch/pr90326.C: New test.
+ 	* g++.dg/pch/pr90326.Hs: New file.
+ 
+ 	2019-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/90139
+ 	* gcc.c-torture/compile/pr90139.c: New test.
+ 
+ 	2019-04-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/90187
+ 	* g++.dg/opt/pr90187.C: New test.
+ 
+ 	PR tree-optimization/90208
+ 	* gcc.dg/tsan/pr90208-2.c: New test.
+ 
+ 	2019-04-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/90108
+ 	* c-c++-common/pr90108.c: New test.
+ 
+ 	2019-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/90082
+ 	* gcc.dg/pr90082.c: New test.
+ 
+ 	PR tree-optimization/90090
+ 	* g++.dg/opt/pr90090.C: New test.
+ 
+ 	2019-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/89933
+ 	* c-c++-common/pr89933.c: New test.
+ 
+ 	2019-04-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/89998
+ 	* gcc.c-torture/compile/pr89998-1.c: New test.
+ 	* gcc.c-torture/compile/pr89998-2.c: New test.
+ 
+ 	2019-03-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/89869
+ 	* g++.dg/ubsan/vptr-14.C: New test.
+ 
+ 	PR c/89872
+ 	* gcc.dg/tree-ssa/pr89872.c: New test.
+ 
+ 	2019-03-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89621
+ 	* gfortran.dg/gomp/pr89621.f90: New test.
+ 
+ 	2019-03-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89796
+ 	* g++.dg/gomp/pr89796.C: New test.
+ 	* gcc.dg/gomp/pr89796.c: New test.
+ 
+ 	2019-03-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/60702
+ 	* g++.dg/tls/thread_local11.C: Remove scan-tree-dump-times directives
+ 	for _ZTH* calls.
+ 	* g++.dg/tls/thread_local11a.C: New test.
+ 
+ 	2019-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/60702
+ 	* g++.dg/tls/thread_local11.C: New test.
+ 	* g++.dg/tls/thread_local11.h: New test.
+ 	* g++.dg/tls/thread_local12a.C: New test.
+ 	* g++.dg/tls/thread_local12b.C: New test.
+ 	* g++.dg/tls/thread_local12c.C: New test.
+ 	* g++.dg/tls/thread_local12d.C: New test.
+ 	* g++.dg/tls/thread_local12e.C: New test.
+ 	* g++.dg/tls/thread_local12f.C: New test.
+ 	* g++.dg/tls/thread_local12g.C: New test.
+ 	* g++.dg/tls/thread_local12h.C: New test.
+ 	* g++.dg/tls/thread_local12i.C: New test.
+ 	* g++.dg/tls/thread_local12j.C: New test.
+ 	* g++.dg/tls/thread_local12k.C: New test.
+ 	* g++.dg/tls/thread_local12l.C: New test.
+ 
+ 	2019-03-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89767
+ 	* g++.dg/cpp1y/lambda-init18.C: New test.
+ 	* g++.dg/cpp1y/lambda-init19.C: New test.
+ 	* g++.dg/cpp1y/pr89767.C: New test.
+ 
+ 	2019-03-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/89752
+ 	* g++.dg/ext/asm15.C: Check for particular diagnostic wording.
+ 	* g++.dg/ext/asm16.C: Likewise.
+ 	* g++.dg/ext/asm17.C: New test.
+ 
+ 	PR target/89726
+ 	* gcc.target/i386/fpprec-1.c (x): Add 6 new constants.
+ 	(expect_round, expect_rint, expect_floor, expect_ceil, expect_trunc):
+ 	Add expected results for them.
+ 
+ 	PR c/89734
+ 	* gcc.dg/pr89734.c: New test.
+ 
+ 	2019-03-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/89704
+ 	* gcc.dg/debug/pr89704.c: New test.
+ 
+ 	2019-03-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/89679
+ 	* gcc.dg/pr89679.c: New test.
+ 
+ 	PR tree-optimization/89703
+ 	* gcc.c-torture/compile/pr89703-1.c: New test.
+ 	* gcc.c-torture/compile/pr89703-2.c: New test.
+ 
+ 	PR c++/89512
+ 	* g++.dg/cpp1y/var-templ61.C: New test.
+ 
+ 	2019-03-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/88588
+ 	* c-c++-common/gomp/pr88588.c: New test.
+ 
+ 	2019-03-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89663
+ 	* gcc.c-torture/compile/pr89663-1.c: New test.
+ 	* gcc.c-torture/compile/pr89663-2.c: New test.
+ 
+ 	2019-03-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/89651
+ 	* gfortran.dg/gomp/pr89651.f90: New test.
+ 
+ 	2019-03-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/88568
+ 	* g++.dg/other/pr88568.C: New test.
+ 
+ 	2019-03-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/82075
+ 	* g++.dg/cpp1z/decomp49.C: New test.
+ 
+ 	2019-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/87148
+ 	* g++.dg/ext/flexary34.C: New test.
+ 
+ 	2019-03-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89590
+ 	* gcc.dg/pr89590.c: New test.
+ 
+ 	2019-02-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/89521
+ 	* gcc.dg/pr89521-1.c: New test.
+ 	* gcc.dg/pr89521-2.c: New test.
+ 
+ 	PR c/89520
+ 	* gcc.dg/pr89520-1.c: New test.
+ 	* gcc.dg/pr89520-2.c: New test.
+ 
+ 	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89403
+ 	* g++.dg/cpp0x/pr89403.C: New test.
+ 
+ 	PR middle-end/89412
+ 	* gcc.c-torture/compile/pr89412.c: New test.
+ 
+ 	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
+ 		    David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR middle-end/89091
+ 	* gcc.dg/torture/pr89091.c: New test.
+ 
+ 	2019-02-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/88074
+ 	PR middle-end/89415
+ 	* gcc.dg/pr88074-2.c: New test.
+ 
+ 	2019-02-19  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/88074
+ 	* gcc.dg/pr88074.c: New testcase.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-02-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89303
+ 	* g++.dg/torture/pr89303.C: Move everything from std namespace to my
+ 	namespace.
+ 
+ 	2019-02-15  Richard Biener  <rguenther@suse.de>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/89278
+ 	* gcc.dg/pr89278.c: New test.
+ 
+ 	2019-02-15  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR other/89342
+ 	* gcc.dg/pr89342.c: New test.
+ 
+ 	2019-02-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/89354
+ 	* gcc.dg/pr89354.c: New test.
+ 
+ 	PR tree-optimization/89314
+ 	* gcc.dg/pr89314.c: New test.
+ 
+ 	2019-02-13  Jonathan Wakely  <jwakely@redhat.com>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89303
+ 	* g++.dg/torture/pr89303.C: New test.
+ 
+ 	2019-02-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89246
+ 	* gcc.dg/gomp/pr89246-1.c: New test.
+ 	* gcc.dg/gomp/pr89246-2.c: New test.
+ 
+ 	PR target/88861
+ 	* g++.dg/opt/pr89188.C: Include ../torture/pr88861.C.
+ 
+ 	2019-01-16  David Malcolm  <dmalcolm@redhat.com>
+ 
+ 	PR target/88861
+ 	* g++.dg/torture/pr88861.C: New test.
+ 
+ 	2019-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/89234
+ 	* g++.dg/ubsan/pr89234.C: New test.
+ 
+ 	2019-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89187
+ 	* g++.dg/opt/pr89187.C: New test.
+ 
+ 	PR rtl-optimization/11304
+ 	* gcc.target/i386/call-1.c (set_eax): Add "eax" clobber.
+ 	* gcc.target/i386/call-2.c: New test.
+ 
+ 	PR target/89188
+ 	* g++.dg/opt/pr89188.C: New test.
+ 
+ 	PR rtl-optimization/89195
+ 	* gcc.c-torture/execute/pr89195.c: New test.
+ 
+ 	PR target/89186
+ 	* g++.dg/ext/vector36.C: New test.
+ 
+ 	2019-02-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/87887
+ 	* gcc.dg/gomp/pr87887-1.c: New test.
+ 	* gcc.dg/gomp/pr87887-2.c: New test.
+ 
+ 	2019-02-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/83246
+ 	PR fortran/89084
+ 	* gfortran.dg/pr89084.f90: New test.
+ 	* gfortran.dg/lto/pr89084_0.f90: New test.
+ 	* gfortran.dg/pr83246.f90: New test.
+ 
+ 	PR tree-optimization/88107
+ 	* gcc.dg/gomp/pr88107.c: New test.
+ 
+ 	2019-01-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/66676
+ 	PR ipa/89104
+ 	* gcc.dg/gomp/pr89104.c: New test.
+ 
+ 	2019-01-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/87214
+ 	* gcc.target/i386/avx512vl-pr87214-1.c: New test.
+ 	* gcc.target/i386/avx512vl-pr87214-2.c: New test.
+ 
+ 	2019-01-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88976
+ 	* c-c++-common/gomp/cancel-2.c: New test.
+ 	* gcc.dg/gomp/cancel-1.c: New test.
+ 	* g++.dg/gomp/cancel-1.C: New test.
+ 	* g++.dg/gomp/cancel-2.C: New test.
+ 	* g++.dg/gomp/cancel-3.C: New test.
+ 
+ 	2019-01-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/49429
+ 	PR target/49454
+ 	PR rtl-optimization/86334
+ 	PR target/88906
+ 	* gcc.target/i386/pr86334.c: New test.
+ 	* gcc.target/i386/pr88906.c: New test.
+ 
+ 	2019-01-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88949
+ 	* g++.dg/gomp/pr88949.C: New test.
+ 
+ 	2019-01-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/88902
+ 	* gfortran.dg/pr88902.f90: New test.
+ 
+ 	2019-01-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/88870
+ 	* gcc.dg/pr88870.c: New test.
+ 
+ 	2019-01-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/88568
+ 	* gcc.dg/pr88568.c: New test.
+ 
+ 	2019-01-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/82564
+ 	PR target/88620
+ 	* gcc.dg/nested-func-12.c: New test.
+ 	* gcc.c-torture/compile/pr82564.c: New test.
+ 
+ 	2019-01-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/88594
+ 	* gcc.dg/pr88594.c: New test.
+ 
+ 	2019-01-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/88644
+ 	* gcc.dg/debug/dwarf2/pr88644.c: New test.
+ 
+ 	2019-01-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/pubtypes-2.c: Adjust expected pubtypes length.
+ 	* gcc.dg/pubtypes-3.c: Likewise.
+ 	* gcc.dg/pubtypes-4.c: Likewise.
+ 
+ 	2018-12-21  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/85594
+ 	PR middle-end/88553
+ 	* gcc.dg/gomp/pr85594.c: New test.
+ 	* gcc.dg/gomp/pr88553.c: New test.
+ 
+ 	PR rtl-optimization/88563
+ 	* gcc.dg/pr88563.c: New test.
+ 
+ 	2018-12-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/88470
+ 	* gcc.target/i386/pr88470.c: New test.
+ 
+ 	PR rtl-optimization/88416
+ 	* gcc.target/i386/pr88416.c: New test.
+ 
+ 	2018-12-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/86669
+ 	* g++.dg/cpp0x/initlist105.C: New test.
+ 	* g++.dg/cpp0x/initlist106.C: New test.
+ 	* g++.dg/other/pr86669.C: New test.
+ 
+ 	PR fortran/88377
+ 	* gfortran.dg/gomp/pr88377.f90: New test.
+ 
+ 	PR c++/87506
+ 	* g++.dg/cpp0x/constexpr-87506.C: New test.
+ 
+ 	2018-12-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88103
+ 	* g++.dg/cpp0x/rv-cond3.C: New test.
+ 
+ 	2018-12-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/71109
+ 	* gcc.c-torture/compile/pr71109.c: New test.
+ 
+ 	2018-11-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR debug/85550
+ 	* g++.dg/debug/dwarf2/pr85550.C: New test.
+ 
+ 	2018-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/88181
+ 	* g++.dg/debug/pr88181.C: New test.
+ 
+ 	2018-11-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/87895
+ 	* gcc.dg/gomp/pr87895-1.c: New test.
+ 	* gcc.dg/gomp/pr87895-2.c: New test.
+ 	* gcc.dg/gomp/pr87895-3.c: New test.
+ 
+ 	2018-11-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/60994
+ 	* g++.dg/lookup/pr60994.C: New test.
+ 
+ 	2018-10-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/87725
+ 	* c-c++-common/gomp/schedule-modifiers-1.c (bar): Separate modifier
+ 	from kind with a colon rather than comma.
+ 	* gfortran.dg/gomp/schedule-modifiers-1.f90: New test.
+ 	* gfortran.dg/gomp/schedule-modifiers-2.f90: New test.
+ 
+ 	2018-10-20  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/87647
+ 	* gcc.c-torture/compile/pr87647.c: New test.
+ 
+ 	2018-10-19  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/85488
+ 	PR middle-end/87649
+ 	* c-c++-common/gomp/doacross-2.c: New test.
+ 	* c-c++-common/gomp/sink-3.c: Expect another error during error
+ 	recovery.
+ 
+ 2019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.c-torture/execute/20190820-1.c: New test.
+ 
+ 2019-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 	Paul Thomas <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/90786
+ 	PR fortran/90813
+ 	* gfortran.dg/proc_ptr_51.f90: New test.
+ 
+ 2019-07-22  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-07-22  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR driver/91172
+ 	* gcc.dg/pr91172.c: New test.
+ 
+ 2019-07-16  Wilco Dijkstra  <wdijkstr@arm.com>
+ 
+ 	Backport from mainline
+ 	2019-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
+ 
+ 	PR target/89222
+ 	* gcc.target/arm/pr89222.c: Add new test.
+ 
+ 2019-07-15  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* gcc.target/s390/vector/vec-shift-2.c: New test.
+ 
+ 2019-07-12  Wilco Dijkstra  <wdijkstr@arm.com>
+ 
+ 	PR testsuite/78529
+ 	* gcc.c-torture/execute/builtins/builtins.exp: Add -fno-ipa-ra.
+ 
+ 2019-06-21  Jeff Law  <law@redhat.com>
+ 
+ 	Backport fom mainline
+ 	2019-06-21  Jeff Law  <law@redhat.com>
+ 
+ 	PR tree-optimization/90949
+ 	* gcc.c-torture/execute/pr90949.c: New test.
+ 
+ 2019-06-21  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/90937
+ 	* gfortran.dg/external_procedure_4.f90: New test.
+ 
+ 2019-06-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/90870
+ 	* gfortran.dg/deferred_character_33.f90: Remove failing test.
+ 	* gfortran.dg/deferred_character_33a.f90: Likewise.
+ 
+ 2019-06-12  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 	Tomáš Trnka  <trnka@scm.com>
+ 
+ 	Backport from trunk
+ 	PR fortran/90744
+ 	* gfortran.dg/deferred_character_33.f90: New test.
+ 	* gfortran.dg/deferred_character_33a.f90: New test.
+ 
+ 2019-06-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2019-05-02  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* g++.dg/ext/instantiate2.C: Remove special-casing for Darwin.
+ 
+ 2019-05-28  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-04-20  Sandra Loosemore  <sandra@codesourcery.com>
+ 
+ 	* g++.dg/ipa/pr89009.C: Add dg-require-effective-target fpic.
+ 
+ 2019-05-28  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-28  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR testsuite/89441
+ 	* g++.dg/ipa/pr89009.C: Update symbol visibility.
+ 
+ 2019-05-28  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR ipa/89009
+ 	* g++.dg/ipa/pr89009.C: New test.
+ 
+ 2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/opt79.ad[sb]: New test.
+ 
+ 2019-05-23  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backported from mainline
+ 	2019-05-21  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/90547
+ 	* gcc.target/i386/pr90547.c: New test.
+ 
+ 2019-05-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	Backport from mainline.
+ 	2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/89765
+ 	* gcc.target/powerpc/pr89765-mc.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-10c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-10d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-11c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-11d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-12c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-12d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-13c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-13d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-14c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-14d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-15c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-15d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-16c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-16d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-17c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-17d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-18c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-18d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-19c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-19d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-20c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-20d.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-9c.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-9d.c: New test.
+ 
+ 2019-05-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	Backport from mainline.
+ 	2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/89424
+ 	* gcc.target/powerpc/pr89424-0.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-13a.c: Define macro PR89424 to
+ 	enable testing of newly patched capability.
+ 	* gcc.target/powerpc/vsx-builtin-13b.c: Likewise.
+ 	* gcc.target/powerpc/vsx-builtin-20a.c: Likewise.
+ 	* gcc.target/powerpc/vsx-builtin-20b.c: Likewise.
+ 
+ 2019-05-07  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backport from mainline:
+ 	2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR middle-end/89037
+ 	* gcc.dg/pr89037.c: New test.
+ 
+ 2019-05-05  Thomas Koenig <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/90344
+ 	* gfortran.dg/pr90344.f90: New test
+ 
+ 2019-04-30  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
+ 
+ 	PR target/90075
+ 	* gcc.target/aarch64/pr90075.c: New test.
+ 
+ 2019-04-25  Xiong Hu Luo  <luoxhu@linux.ibm.com>
+ 
+ 	* gcc.target/powerpc/vsx-vector-6.p8.c: Fix failure caused by typo.
+ 
+ 2019-04-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/87532
+ 	* gcc.target/powerpc/pr87532-mc.c: New test.
+ 	* gcc.target/powerpc/pr87532.c: New test.
+ 	* gcc.target/powerpc/vec-extract-v16qiu-v2.h: New test.
+ 	* gcc.target/powerpc/vec-extract-v16qiu-v2a.c: New test.
+ 	* gcc.target/powerpc/vec-extract-v16qiu-v2b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-10a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-10b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-11a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-11b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-12a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-12b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-13a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-13b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-14a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-14b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-15a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-15b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-16a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-16b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-17a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-17b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-18a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-18b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-19a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-19b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-20a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-20b.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-9a.c: New test.
+ 	* gcc.target/powerpc/vsx-builtin-9b.c: New test.
+ 
+ 	2019-03-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	PR target/89736
+ 	* gcc.target/powerpc/pr87532-mc.c: Modify dejagnu directives to
+ 	restrict this test to vsx targets.
+ 
+ 2019-04-19  Xiong Hu Luo  <luoxhu@linux.ibm.com>
+ 
+ 	Backport from trunk
+ 	2018-02-07  Will Schmidt  <will_schmidt@vnet.ibm.com>
+ 
+ 	* gcc.target/powerpc/vsx-vector-6-le.c: Update CPU target.
+ 	* gcc.target/powerpc/vsx-vector-6-le.p9.c: New.
+ 
+ 	Backport from trunk
+ 	2018-05-04  Carl Love  <cel@us.ibm.com>
+ 	* gcc.target/powerpc/vsx-vector-6.h (foo): Add test for vec_max,
+ 	vec_trunc.
+ 	* gcc.target/powerpc/vsx-vector-6-le.c (dg-final): Update xvcmpeqdp,
+ 	xvcmpgtdp, xvcmpgedp counts. Add xxsel counts.
+ 	* gcc.target/powerpc/vsx-vector-6-be.c (dg-final): Update xvcmpgtdp,
+ 	xvcmpgedp counts. Add xxsel counts.
+ 
+ 	Backport from trunk
+ 	2018-05-16  Carl Love  <cel@us.ibm.com>
+ 	* gcc.target/powerpc/vsx-vector-6-be.c: Remove file.
+ 	* gcc.target/powerpc/vsx-vector-6-be.p7.c: New test file.
+ 	* gcc.target/powerpc/vsx-vector-6-be.p8.c: New test file.
+ 	* gcc.target/powerpc/vsx-vector-6-le.c (dg-final): Update counts for
+ 	xvcmpeqdp., xvcmpgtdp., xvcmpgedp., xxlxor, xvrdpi.
+ 
+ 	Backport from trunk
+ 	2018-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* lib/target-supports.exp (check_effective_target_be): New.
+ 	(check_effective_target_le): New.
+ 
+ 	Backport from trunk
+ 	2018-06-01  Carl Love  <cel@us.ibm.com>
+ 
+ 	* gcc.target/powerpc/altivec-7-be.c: Delete file.
+ 	* gcc.target/powerpc/altivec-7-le.c: Delete file.
+ 	* gcc.target/powerpc/vsx-7-be.c: Remove file.
+ 
+ 	Backport from trunk
+ 	2018-06-01  Carl Love  <cel@us.ibm.com>
+ 
+ 	Commit 260294 on 2018-05-16 by Carl Love was supposed to add the
+ 	following files.
+ 
+ 	* gcc.target/powerpc/vsx-vector-6-be.p7.c: New test file.
+ 	* gcc.target/powerpc/vsx-vector-6-be.p8.c: New test file.
+ 
+ 	Backport from trunk
+ 	2018-06-08  Carl Love  <cel@us.ibm.com>
+ 
+ 	* gcc.target/powerpc/vsx-vector-6-be.p7.c: Rename this file to
+ 	vsx-vector-6.p7.c.
+ 	* gcc.target/powerpc/vsx-vector-6-le.p9.c: Rename this file to
+ 	vsx-vector-6.p9.c.
+ 	* gcc.target/powerpc/vsx-vector-6-be.p8.c: Move instruction counts
+ 	for BE system that are different then for an LE system from this file
+ 	into vsx-vector-6-le.c using be target qualifier.  Remove this file.
+ 	* gcc.target/powerpc/vsx-vector-6-le.c: Add le qualifiers as needed for
+ 	the various instruction counts.  Rename file to vsx-vector-6.p8.c.
+ 
+ 	Backport from trunk
+ 	2019-02-06  Bill Seurer  <seurer@linux.vnet.ibm.com>
+ 
+ 	* gcc.target/powerpc/vsx-vector-6.p7.c: Update instruction
+ 	counts and target.
+ 	* gcc.target/powerpc/vsx-vector-6.p8.c: Update instruction
+ 	counts and target.
+ 	* gcc.target/powerpc/vsx-vector-6.p9.c: Update instruction
+ 	counts and target.
+ 
+ 2019-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/87352
+ 	* gfortran.dg/finalize_28.f90: Adjust count of __builtin_free.
+ 	* gfortran.dg/finalize_34.f90: New test.
+ 
+ 2019-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/87352
+ 	* gfortran.dg/finalize_28.f90: Adjust count of __builtin_free.
+ 	* gfortran.dg/finalize_34.f90: New test.
+ 
+ 2019-04-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-03-08  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR target/86952
+ 	* gcc.target/i386/pr86952.c: New test.
+ 	* gcc.target/i386/indirect-thunk-7.c: Use jump tables to match
+ 	scanned pattern.
+ 	* gcc.target/i386/indirect-thunk-inline-7.c: Likewise.
+ 
+ 2019-04-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backport from trunk
+ 	PR fortran/89904
+ 	* gfortran.dg/pr85797.f90: Adjust testcase.
+ 
+ 2019-04-10  Matthew Malcomson  <matthew.malcomson@arm.com>
+ 
+ 	PR target/90024
+ 	* gcc.dg/torture/neon-immediate-timode.c: New test.
+ 
+ 2019-04-07  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/89945
+ 	* gcc.target/i386/pr89945.c: New test.
+ 
+ 2019-04-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/opt73.adb: New test.
+ 
+ 2019-04-02  Xiong Hu Luo <luoxhu@linux.ibm.com>
+ 
+ 	Backport from trunk r250477.
+ 
+ 	2017-07-24  Carl Love  <cel@us.ibm.com>
+ 
+ 	* gcc.target/powerpc/builtins-3-p9-runnable.c: Add new test file for
+ 	the new built-ins.
+ 
+ 	Backport from trunk r255555.
+ 
+ 	2017-12-11  Carl Love  <cel@us.ibm.com>
+ 	* gcc.target/powerpc/altivec-7.c: Renamed altivec-7.h.
+ 	* gcc.target/powerpc/altivec-7.h (main): Add testcases for vec_unpackl.
+ 	Add dg-final tests for the instructions generated.
+ 	* gcc.target/powerpc/altivec-7-be.c: New file to test on big endian.
+ 	* gcc.target/powerpc/altivec-7-le.c: New file to test on little endian.
+ 	* gcc.target/powerpc/altivec-13.c (foo): Add vec_sld, vec_srl,
+ 	 vec_sro testcases. Add dg-final tests for the instructions generated.
+ 	* gcc.target/powerpc/builtins-3-p8.c (test_vsi_packs_vui,
+ 	test_vsi_packs_vsi, test_vsi_packs_vssi, test_vsi_packs_vusi,
+ 	test_vsi_packsu-vssi, test_vsi_packsu-vusi, test_vsi_packsu-vsll,
+ 	test_vsi_packsu-vull, test_vsi_packsu-vsi, test_vsi_packsu-vui): Add
+ 	testcases. Add dg-final tests for new instructions.
+ 	* gcc.target/powerpc/p8vector-builtin-2.c (vbschar_eq, vbchar_eq,
+ 	vuchar_eq, vbint_eq, vsint_eq, viint_eq, vuint_eq, vbool_eq, vbint_ne,
+ 	vsint_ne, vuint_ne, vbool_ne, vsign_ne, vuns_ne, vbshort_ne): Add
+ 	tests.
+ 	Add dg-final instruction tests.
+ 	* gcc.target/powerpc/vsx-vector-6.c: Renamed vsx-vector-6.h.
+ 	* gcc.target/powerpc/vsx-vector-6.h (vec_andc,vec_nmsub, vec_nmadd,
+ 	vec_or, vec_nor, vec_andc, vec_or, vec_andc, vec_msums): Add tests.
+ 	Add dg-final tests for the generated instructions.
+ 	* gcc.target/powerpc/builtins-3.c (test_sll_vsc_vsc_vsuc,
+ 	test_sll_vuc_vuc, test_sll_vsi_vsi_vuc, test_sll_vui_vui_vuc,
+ 	test_sll_vbll_vull, test_sll_vbll_vbll_vus, test_sll_vp_vp_vuc,
+ 	test_sll_vssi_vssi_vuc, test_sll_vusi_vusi_vuc, test_slo_vsc_vsc_vsc,
+ 	test_slo_vuc_vuc_vsc, test_slo_vsi_vsi_vsc, test_slo_vsi_vsi_vuc,
+ 	test_slo_vui_vui_vsc, test_slo_vui_vui_vuc, test_slo_vsll_slo_vsll_vsc,
+ 	test_slo_vsll_slo_vsll_vuc, test_slo_vull_slo_vull_vsc,
+ 	test_slo_vull_slo_vull_vuc, test_slo_vp_vp_vsc, test_slo_vp_vp_vuc,
+ 	test_slo_vssi_vssi_vsc, test_slo_vssi_vssi_vuc, test_slo_vusi_vusi_vsc,
+ 	test_slo_vusi_vusi_vuc, test_slo_vusi_vusi_vuc, test_slo_vf_vf_vsc,
+ 	test_slo_vf_vf_vuc, test_cmpb_float): Add tests.
+ 
+ 	Backport from trunk r257253.
+ 
+ 	2018-01-31  Will Schmidt  <will_schmidt@vnet.ibm.com>
+ 
+ 	* gcc.target/powerpc/altivec-13.c: Remove VSX-requiring built-ins.
+ 	* gcc.target/powerpc/vsx-13.c: New.
+ 
+ 	Backport from trunk r258137.
+ 
+ 	2018-03-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
+ 
+ 	* gcc.target/powerpc/altivec-7-be.c: Remove VSX content, allow
+ 	32-bit target.
+ 	* gcc.target/powerpc/altivec-7.h: Remove VSX content.
+ 	* gcc.target/powerpc/vsx-7-be.c: New test (VSX content).
+ 	* gcc.target/powerpc/vsx-7.h: New include (VSX content).
+ 	* gcc.target/powerpc/altivec-7-le.c: Add vsx-7.h include.
+ 
+ 2019-03-31  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backport from trunk
+ 	PR fortran/83515
+ 	PR fortran/85797
+ 	* gfortran.dg/pr85797.f90: New test.
+ 
+ 2019-02-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-02-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89253
+ 	* gfortran.dg/pr89253.f: New testcase.
+ 
+ 	2019-02-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/89223
+ 	* gcc.dg/torture/pr89223.c: New testcase.
+ 
+ 	2019-01-28  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88739
+ 	* gcc.c-torture/execute/pr88739.c: New test.
+ 
+ 2019-03-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-01-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/86554
+ 	* gcc.dg/torture/pr86554-1.c: New testcase.
+ 	* gcc.dg/torture/pr86554-2.c: Likewise.
+ 
+ 	2018-11-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/88105
+ 	* gcc.dg/gomp/pr88105.c: New testcase.
+ 
+ 	2018-03-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/84552
+ 	* gcc.dg/graphite/pr84552.c: New testcase.
+ 
+ 2019-03-25  Janus Weil  <janus@gcc.gnu.org>
+ 
+ 	PR fortran/71861
+ 	Backport from trunk
+ 	* gfortran.dg/interface_abstract_5.f90: New test case.
+ 
+ 2019-03-21  Thomas Schwinge  <thomas@codesourcery.com>
+ 
+ 	PR fortran/56408
+ 	* gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
+ 	(dg-compile-aux-modules): Fix diagnostic.
+ 	* gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Likewise.
+ 	* gfortran.dg/dg.exp (dg-compile-aux-modules): Likewise.
+ 
+ 	PR fortran/56408
+ 	* gfortran.dg/coarray/caf.exp (dg-compile-aux-modules): Workaround
+ 	missing nexted dg-test call support in dejaGNU 1.4.4.
+ 
+ 	PR fortran/29383
+ 	* gfortran.dg/ieee/ieee.exp (DEFAULT_FFLAGS): Set the same as in
+ 	other '*.exp' files.
+ 
+ 2019-03-21  Matthias Klose  <doko@ubuntu.com>
+ 
+ 	Backport from mainline
+ 	2019-02-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89505
+ 	* gcc.dg/torture/pr89505.c: New testcase.
+ 
+ 2019-03-17  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/84394
+ 	Backport from trunk
+ 	* gfortran.dg/blockdata_11.f90: New test.
+ 
+ 2019-03-17  H.J. Lu  <hongjiu.lu@intel.com>
+ 
+ 	Backport from mainline
+ 	2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
+ 
+ 	PR target/89523
+ 	* gcc.target/i386/pr89523-1a.c: New test.
+ 	* gcc.target/i386/pr89523-1b.c: Likewise.
+ 	* gcc.target/i386/pr89523-2.c: Likewise.
+ 	* gcc.target/i386/pr89523-3.c: Likewise.
+ 	* gcc.target/i386/pr89523-4.c: Likewise.
+ 	* gcc.target/i386/pr89523-5.c: Likewise.
+ 	* gcc.target/i386/pr89523-6.c: Likewise.
+ 	* gcc.target/i386/pr89523-7.c: Likewise.
+ 	* gcc.target/i386/pr89523-8.c: Likewise.
+ 	* gcc.target/i386/pr89523-9.c: Likewise.
+ 
+ 2019-03-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/66089
+ 	Backport from trunk
+ 	* gfortran.dg/dependency_53.f90: New test.
+ 	* gfortran.dg/assumed_type_2.f90: Adapted tree dumps.
+ 	* gfortran.dg/no_arg_check_2.f90: Likewise.
+ 
+ 2019-03-16 Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/66695
+ 	PR fortran/77746
+ 	PR fortran/79485
+ 	Backport from trunk
+ 	* gfortran.dg/binding_label_tests_30.f90: New test.
+ 	* gfortran.dg/binding_label_tests_31.f90: New test.
+ 	* gfortran.dg/binding_label_tests_32.f90: New test.
+ 	* gfortran.dg/binding_label_tests_33.f90: New test.
+ 
+ 2019-03-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-03-07  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR lto/87525
+ 	* gcc.dg/ipa/ipcp-5.c: New test.
+ 
+ 2019-03-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2018-02-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/84272
+ 	* g++.dg/opt/pr84272.C: New test.
+ 
+ 2019-03-13  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/87673
+ 	Backport from trunk
+ 	* gfortran.dg/charlen_17.f90: New test.
+ 
+ 2019-03-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	Backport from mainline
+ 	2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
+ 
+ 	* gcc.target/arm/f16_f64_conv_no_dp.c: New test.
+ 
+ 	Backport from mainline
+ 	2019-03-11  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* gcc.target/arm/f16_f64_conv_no_dp.c: Add arm_fp16_ok effective
+ 	target.
+ 
+ 2019-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/71544
+ 	Backport from trunk
+ 	* gfortran.dg/c_ptr_tests_19.f90: New test.
+ 
+ 2019-03-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/87734
+ 	Backport from trunk
+ 	* gfortran.dg/public_private_module_10.f90: New test.
+ 
+ 2019-04-10  Matthias Klose  <doko@ubuntu.com>
+ 
+ 	Backport from the gcc-8 branch
+ 	2019-03-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/89585
+ 	* g++.dg/asm-qual-3.C: Adjust expected diagnostics.
+ 
+ 2019-03-07  Xiong Hu Luo  <luoxhu@linux.ibm.com>
+ 
+ 	Backport of r268834 from mainline to gcc-7-branch.
+ 	2019-01-23  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
+ 
+ 	* gcc.target/powerpc/crypto-builtin-1.c
+ 	(crypto1_be, crypto2_be, crypto3_be, crypto4_be, crypto5_be):
+ 	New testcases.
+ 
+ 2019-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/72714
+ 	Backport from trunk
+ 	* gfortran.dg/coarray_allocate_11.f90: New test.
+ 
+ 2019-03-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backport from trunk
+ 	PR fortran/77583
+ 	* gfortran.dg/pr77583.f90: New test.
+ 
+ 2019-03-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/87689
+ 	Backport from trunk
+ 	* gfortran.dg/lto/20091028-1_0.f90: Add -Wno-lto-type-mismatch to
+ 	options.
+ 	* gfortran.dg/lto/20091028-2_0.f90: Likewise.
+ 	* gfortran.dg/lto/pr87689_0.f: New file.
+ 	* gfortran.dg/lto/pr87689_1.f: New file.
+ 	* gfortran.dg/altreturn_9_0.f90: New file.
+ 	* gfortran.dg/altreturn_9_1.f90: New file.
+ 
+ 2019-02-23  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/88117
+ 	* gfortran.dg/deferred_character_32.f90 : New test
+ 
+ 2019-02-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/71066
+ 	Backport from trunk
+ 	* gfortran.dg/coarray_data_1.f90: New test.
+ 
+ 2019-02-15  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-14  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR rtl-optimization/89242
+ 	* g++.dg/pr89242.C: New test.
+ 
+ 2019-02-15  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR ipa/89009
+ 	* g++.dg/ipa/pr89009.C: New test.
+ 
+ 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.target/sparc/struct-ret-check-1.c: Add -fno-pie option.
+ 
+ 2019-02-11  Stefan Agner  <stefan@agner.ch>
+ 
+ 	Backport from mainline
+ 	2019-01-10  Stefan Agner  <stefan@agner.ch>
+ 
+ 	PR target/88648
+ 	* gcc.target/arm/pr88648-asm-syntax-unified.c: Add test to
+ 	check if -masm-syntax-unified gets applied properly.
+ 
+ 2019-02-10  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backport from trunk
+ 	PR fortran/89077
+ 	* gfortran.dg/pr89077.f90: New test.
+ 
+ 2019-02-10  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/71723
+ 	Backport from trunk
+ 	* gfortran.dg/pointer_init_2.f90: Adjust error messages.
+ 	* gfortran.dg/pointer_init_6.f90: Likewise.
+ 	* gfortran.dg/pointer_init_9.f90: New test.
+ 
+ 2019-02-09  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/71860
+ 	Backport from trunk
+ 	* gfortran.dg/null_10.f90: New test.
+ 
+ 2019-02-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 
+ 	2019-02-05  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 	* gcc.target/powerpc/vec-extract-slong-1.c: Require p8 execution
+ 	hardware.
+ 	* gcc.target/powerpc/vec-extract-schar-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-sint128-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-sshort-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-ulong-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-uchar-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-sint-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-uint128-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-ushort-1.c: Likewise.
+ 	* gcc.target/powerpc/vec-extract-uint-1.c: Likewise.
+ 
+ 	Backport from mainline.
+ 	2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
+ 	* gcc.target/powerpc/vec-extract-schar-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-sint-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-sint128-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-slong-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-sshort-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-uchar-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-uint-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-uint128-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-ulong-1.c: New test.
+ 	* gcc.target/powerpc/vec-extract-ushort-1.c: New test.
+ 
+ 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/opt76.adb: New test.
+ 
+ 2019-02-05  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/67679
+ 	Backport from trunk
+ 	* gfortran.dg/warn_undefined_1.f90: New test.
+ 	* gfortran.dg/coarray_lock_7.f90: Fix patterns in test.
+ 
+ 2019-02-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/88393
+ 	* gfortran.dg/alloc_comp_assign_16.f03 : New test.
+ 
+ 2019-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/88298
+ 	Backport from trunk
+ 	* gfortran.dg/warn_conversion_10.f90: New test.
+ 
+ 2019-02-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	PR fortran/57048
+ 	Backport from trunk
+ 	* gfortran.dg/c_funptr_1.f90: New file.
+ 	* gfortran.dg/c_funptr_1_mod.f90: New file.
+ 
+ 2019-01-30  Manfred Schwarb  <manfred99@gmx.ch>
+ 
+ 	* gfortran.dg/pr68318_1.f90: Fix a dg directive.
+ 
+ 2019-01-30  Kewen Lin  <linkw@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2019-01-20  Kewen Lin  <linkw@gcc.gnu.org>
+ 
+ 	* gcc.target/powerpc/altivec_vld_vst_addr.c: Remove, split into
+ 	altivec_vld_vst_addr-1.c and altivec_vld_vst_addr-2.c.
+ 	* gcc.target/powerpc/altivec_vld_vst_addr-1.c: New test.
+ 	* gcc.target/powerpc/altivec_vld_vst_addr-2.c: Ditto.
+ 
+ 	2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
+ 
+ 	* gcc.target/powerpc/altivec_vld_vst_addr.c: New test.
+ 
+ 2019-01-27  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR fortran/70696
+ 	* gfortran.dg/coarray/event_3.f0: Add save attribue to x.
+ 
+ 2019-01-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/56386
+ 	PR fortran/58906
+ 	PR fortran/77385
+ 	* gfortran.dg/associate_44.f90 : New test.
+ 
+ 	PR fortran/80260
+ 	* gfortran.dg/select_type_45.f90 : New test.
+ 
+ 	PR fortran/82077
+ 	* gfortran.dg/select_type_46.f90 : New test.
+ 
+ 2019-01-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/opt75.adb: New test.
+ 	* gnat.dg/opt75_pkg.ad[sb]: New helper.
+ 
+ 2019-01-27  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88948
+ 	* gcc.target/i386/pr88948.c: New test.
+ 
+ 2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/array34.adb: New test.
+ 
+ 2019-01-26  Dominique d'Humieres  <dominiq@gcc.gnu.org>
+ 
+ 	PR fortran/85579
+ 	* gfortran.dg/pr51434.f90: Fix the TRANSFER argument.
+ 
+ 2019-01-26  Manfred Schwarb  <manfred99@gmx.ch>
+ 
+ 	* gfortran.dg/array_function_5.f90
+ 	* gfortran.dg/class_66.f90
+ 	* gfortran.dg/dec_structure_12.f90
+ 	* gfortran.dg/dec_structure_14.f90
+ 	* gfortran.dg/dec_structure_15.f90
+ 	* gfortran.dg/extends_11.f03
+ 	* gfortran.dg/pr58968.f
+ 	* gfortran.dg/pr78259.f90
+ 	* gfortran.dg/debug/pr35154-stabs.f
+ 
+ 2019-01-24  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88998
+ 	* g++.dg/pr88998.c: New test.
+ 
+ 2019-01-24  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backport from mainline
+ 	2019-01-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/89008
+ 	* gcc.dg/torture/pr89008.c: New testcase.
+ 
+ 2019-01-22  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88938
+ 	* gcc.target/i386/pr88938.c: New test.
+ 
+ 2019-01-16  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	Backport from mainline
+ 	2019-01-07  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/88720
+ 	PR c/88726
+ 	* gcc.dg/inline-40.c, gcc.dg/inline-41.c: New tests.
+ 
+ 2019-01-16  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from mainline
+ 	2018-12-10  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/88214
+ 	* gcc.dg/ipa/pr88214.c: New test.
+ 
+ 2019-01-15  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/81849
+ 	* gfortran.dg/pr81849.f90: New test.
+ 
+ 2019-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR libfortran/88776
+ 	* gfortran.dg/namelist_96.f90: New test.
+ 
+ 2019-01-11  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/35031
+ 	* gfortran.dg/pr35031.f90: new test.
+ 
+ 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gcc.target/sparc/tls-ld-int8.c: New test.
+ 	* gcc.target/sparc/tls-ld-int16.c: Likewise.
+ 	* gcc.target/sparc/tls-ld-int32.c: Likewise.
+ 	* gcc.target/sparc/tls-ld-uint8.c: Likewise.
+ 	* gcc.target/sparc/tls-ld-uint16.c: Likewise.
+ 	* gcc.target/sparc/tls-ld-uint32.c: Likewise.
+ 
+ 2019-01-05  Dominique d'Humieres  <dominiq@gcc.gnu.org>
+ 
+ 	PR target/60563
+ 	* g++.dg/ext/sync-4.C: Add dg-xfail-run-if for darwin.
+ 
+ 2018-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	PR inline-asm/55681
+ 	* gcc.dg/asm-qual-1.c: Test that "const" and "restrict" are refused.
+ 	* gcc.dg/asm-qual-2.c: New test, test that asm-qualifiers are allowed
+ 	in any order, but that duplicates are not allowed.
+ 
+ 	Backport from trunk
+ 	2018-12-06  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* c-c++-common/torture/asm-inline.c: New testcase.
+ 	* gcc.dg/asm-qual-2.c: Test asm inline, too.
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* g++.dg/asm-qual-1.C: New testcase.
+ 	* g++.dg/asm-qual-2.C: New testcase.
+ 	* gcc.dg/asm-qual-1.c: Update.
+ 
+ 	Backport from trunk
+ 	2018-12-19  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* g++.dg/asm-qual-3.C: New testcase.
+ 	* gcc.dg/asm-qual-3.c: New testcase.
+ 
+ 	And extra for the backport
+ 	2019-01-02  Segher Boessenkool  <segher@kernel.crashing.org>
+ 
+ 	* gcc.dg/asm-qual-1.c: Adjust.
+ 
+ 2018-12-30  Dominique d'Humieres  <dominiq@gcc.gnu.org>
+ 
+ 	PR tree-optimization/68356
+ 	PR target/81210
+ 	* gcc.dg/torture/pr68264.c: Skip on darwin.
+ 	* gcc.dg/torture/pr68037-1.c: Likewise.
+ 	* gcc.dg/torture/pr68037-2.c: Likewise.
+ 	* gcc.dg/torture/pr68037-3.c: Likewise.
+ 
+ 2018-12-29  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/82550
+ 	* gfortran.dg/submodule_30.f08 : New test.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR testsuite/67974
+ 	* gcc.target/x86_64/abi/avx/asm-support-darwin.s: New.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-08-16  Iain Sandoe <iain@sandoe.co.uk>
+ 
+ 	* g++.dg/torture/pr44295.C : Skip for Darwin.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-08-22  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/lto/pr85248_0.c (test_alias):
+ 	Stringify __USER_LABEL_PREFIX__.
+ 	(test_noreturn): Likewise.
+ 
+ 	2018-08-16  Iain Sandoe <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/memcmp-1.c (lib_memcmp): Apply __USER_LABEL_PREFIX__.
+ 	(lib_strncmp): Likewise.
+ 
+ 	2018-08-16  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* gcc.dg/asan/pr81923.c: Stringify __USER_LABEL_PREFIX__.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-08-16  Iain Sandoe <iain@sandoe.co.uk>
+ 
+ 	PR testsuite/78544
+ 	* gcc.dg/tree-prof/section-attr-1.c: Add Darwin-specific section
+ 	attributes and matching.
+ 	* gcc.dg/tree-prof/section-attr-2.c: Likewise.
+ 	* gcc.dg/tree-prof/section-attr-3.c: Likewise.
+ 
+ 2018-12-23  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/77703
+ 	* gfortran.dg/ptr_func_assign_5.f08 : New test.
+ 
+ 2018-12-22  Steven G . Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/85798
+ 	* gfortran.dg/pr85798.f90: New test.
+ 
+ 2018-12-22  Thomas Koenig  <tkoenig@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR fortran/85544
+ 	* gfortran.dg/power_7.f90: New test.
+ 
+ 2018-12-21  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88169
+ 	* gfortran.dg/pr88169_1.f90: new test.
+ 	* gfortran.dg/pr88169_2.f90: Ditto.
+ 	* gfortran.dg/pr88169_3.f90: Ditto.
+ 
+ 2018-12-21  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	Backport from mainline
+ 	2018-12-10  Uros Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR target/88418
+ 	* gcc.target/i386/pr88418.c: New test.
+ 
+ 2018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
+ 
+ 	Backport from trunk
+ 	2018-12-17  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
+ 
+ 	PR rtl-optimization/88253
+ 	* gcc.target/avr/pr88253.c: New test.
+ 
+ 2018-12-15  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88138
+ 	* gfortran.dg/pr88138.f90: new test.
+ 
+ 2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-12-13  Andreas Krebbel  <krebbel@linux.ibm.com>
+ 
+ 	* gcc.target/s390/zvector/vec-double-1.c: New test.
+ 	* gcc.target/s390/zvector/vec-double-2.c: New test.
+ 
+ 2018-12-12  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-12-07  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	PR target/87496
+ 	* gcc.target/powerpc/pr87496-1.c: New test.
+ 	* gcc.target/powerpc/pr87496-2.c: New test.
+ 	* gcc.target/powerpc/pr87496-3.c: New test.
+ 
+ 2018-12-11  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88155
+ 	* gfortran.dg/pr70870_1.f90: Update testcase to use -std=gnu.
+ 	* gfortran.dg/pr88155.f90: New test.
+ 
+ 2018-12-11  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88249
+ 	* gfortran.dg/pr88249.f90: New test.
+ 
+ 2018-12-10  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88269
+ 	* gfortran.dg/pr88269.f90: New test.
+ 
+ 2018-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88205
+ 	* gfortran.dg/pr88205.f90: New unit.
+ 
+ 2018-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88206
+ 	* gfortran.dg/pr88206.f90: New test.
+ 
+ 2018-12-09  Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/88228
+ 	* gfortran.dg/pr88228.f90: New test.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/cancel-2.c gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/cancel-2.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/cancel-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/cancel-2.c	Fri Aug 30 11:31:02 2019
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ 
+ void
+ foo (void)
+ {
+   #pragma omp parallel
+   {
+     #pragma omp cancel parallel if (1) if (1)			/* { dg-error "too many 'if' clauses without modifier" } */
+   }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/doacross-2.c gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/doacross-2.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/doacross-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/doacross-2.c	Fri Aug 30 11:07:22 2019
***************
*** 0 ****
--- 1,49 ----
+ /* PR middle-end/87649 */
+ 
+ void
+ foo (void)
+ {
+   int i;
+   #pragma omp for ordered(1)
+   for (i = 0; i < 64; i++)
+     {
+       #pragma omp ordered			/* { dg-error "'ordered' region without 'depend' clause may not be closely nested inside a loop region with an 'ordered' clause with a parameter" } */
+       ;
+     }
+   #pragma omp for ordered(1)
+   for (i = 0; i < 64; i++)
+     {
+       #pragma omp ordered threads		/* { dg-error "'ordered' region without 'depend' clause may not be closely nested inside a loop region with an 'ordered' clause with a parameter" } */
+       ;
+     }
+ }
+ 
+ void
+ bar (void)
+ {
+   int i;
+   #pragma omp for ordered
+   for (i = 0; i < 64; i++)
+     {
+       #pragma omp ordered depend(source)	/* { dg-error "'ordered' construct with 'depend' clause must be closely nested inside a loop with 'ordered' clause with a parameter" } */
+       #pragma omp ordered depend(sink: i - 1)	/* { dg-error "'ordered' construct with 'depend' clause must be closely nested inside a loop with 'ordered' clause with a parameter" } */
+     }
+   #pragma omp for
+   for (i = 0; i < 64; i++)
+     {
+       #pragma omp ordered depend(source)	/* { dg-error "'ordered' construct with 'depend' clause must be closely nested inside a loop with 'ordered' clause with a parameter" } */
+       #pragma omp ordered depend(sink: i - 1)	/* { dg-error "'ordered' construct with 'depend' clause must be closely nested inside a loop with 'ordered' clause with a parameter" } */
+     }
+   #pragma omp for
+   for (i = 0; i < 64; i++)
+     {
+       #pragma omp ordered			/* { dg-error "'ordered' region must be closely nested inside a loop region with an 'ordered' clause" } */
+       ;
+     }
+   #pragma omp for
+   for (i = 0; i < 64; i++)
+     {
+       #pragma omp ordered threads		/* { dg-error "'ordered' region must be closely nested inside a loop region with an 'ordered' clause" } */
+       ;
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/pr88588.c gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/pr88588.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/pr88588.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/pr88588.c	Fri Aug 30 12:17:22 2019
***************
*** 0 ****
--- 1,18 ----
+ /* PR middle-end/88588 */
+ /* { dg-do compile } */
+ /* { dg-options "-fopenmp -O1" } */
+ 
+ int *v;
+ 
+ #pragma omp declare simd
+ void
+ foo (int x)
+ {
+   int *a = &x;
+ 
+   for (;;)
+     {
+       *v = *a;
+       a = v;
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/pr90954.c gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/pr90954.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/pr90954.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/pr90954.c	Fri Aug 30 12:47:28 2019
***************
*** 0 ****
--- 1,27 ----
+ /* PR sanitizer/90954 */
+ /* { dg-do compile } */
+ /* { dg-options "-fopenmp -fsanitize=undefined" } */
+ 
+ float v;
+ int i;
+ 
+ void
+ foo (float x, float y)
+ {
+   #pragma omp atomic
+   v += x / y;
+ }
+ 
+ void
+ bar (int x, int y)
+ {
+   #pragma omp atomic
+   i += x / y;
+ }
+ 
+ void
+ baz (int x, int y)
+ {
+   #pragma omp atomic
+   i *= (x << y);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c	Thu Nov  5 15:08:08 2015
--- gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/schedule-modifiers-1.c	Fri Aug 30 11:09:22 2019
*************** bar (void)
*** 80,100 ****
    #pragma omp for schedule (nonmonotonic : auto)	/* { dg-error ".nonmonotonic. modifier specified for .auto. schedule kind" } */
    for (i = 0; i < 64; i++)
      ;
!   #pragma omp for schedule (nonmonotonic, dynamic) ordered	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      #pragma omp ordered
        ;
!   #pragma omp for ordered schedule(nonmonotonic, dynamic, 5)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      #pragma omp ordered
        ;
!   #pragma omp for schedule (nonmonotonic, guided) ordered(1)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      {
        #pragma omp ordered depend(sink: i - 1)
        #pragma omp ordered depend(source)
      }
!   #pragma omp for ordered(1) schedule(nonmonotonic, guided, 2)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      {
        #pragma omp ordered depend(source)
--- 80,100 ----
    #pragma omp for schedule (nonmonotonic : auto)	/* { dg-error ".nonmonotonic. modifier specified for .auto. schedule kind" } */
    for (i = 0; i < 64; i++)
      ;
!   #pragma omp for schedule (nonmonotonic : dynamic) ordered	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      #pragma omp ordered
        ;
!   #pragma omp for ordered schedule(nonmonotonic : dynamic, 5)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      #pragma omp ordered
        ;
!   #pragma omp for schedule (nonmonotonic : guided) ordered(1)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      {
        #pragma omp ordered depend(sink: i - 1)
        #pragma omp ordered depend(source)
      }
!   #pragma omp for ordered(1) schedule(nonmonotonic : guided, 2)	/* { dg-error ".nonmonotonic. schedule modifier specified together with .ordered. clause" } */
    for (i = 0; i < 64; i++)
      {
        #pragma omp ordered depend(source)
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/sink-3.c gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/sink-3.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/gomp/sink-3.c	Tue Oct 13 19:06:23 2015
--- gcc-7.5.0/gcc/testsuite/c-c++-common/gomp/sink-3.c	Fri Aug 30 11:07:22 2019
*************** foo ()
*** 14,20 ****
    for (i=0; i < 100; ++i)
      {
  #pragma omp ordered depend(sink:poo-1,paa+1) /* { dg-error "poo.*declared.*paa.*declared" } */
!     bar(&i);
  #pragma omp ordered depend(source)
      }
  }
--- 14,20 ----
    for (i=0; i < 100; ++i)
      {
  #pragma omp ordered depend(sink:poo-1,paa+1) /* { dg-error "poo.*declared.*paa.*declared" } */
!     bar(&i);				     /* { dg-error "may not be closely nested" "" { target *-*-* } .-1 } */
  #pragma omp ordered depend(source)
      }
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/pr89933.c gcc-7.5.0/gcc/testsuite/c-c++-common/pr89933.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/pr89933.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/c-c++-common/pr89933.c	Fri Aug 30 12:36:05 2019
***************
*** 0 ****
--- 1,5 ----
+ /* PR c/89933 */
+ /* { dg-do compile } */
+ 
+ typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__));
+ typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__));
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/pr90108.c gcc-7.5.0/gcc/testsuite/c-c++-common/pr90108.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/pr90108.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/c-c++-common/pr90108.c	Fri Aug 30 12:38:31 2019
***************
*** 0 ****
--- 1,6 ----
+ /* PR c++/90108 */
+ /* { dg-do compile } */
+ /* { dg-options "--param ggc-min-heapsize=0" } */
+ 
+ typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__));
+ typedef unsigned int a __attribute__ ((__aligned__(8), __may_alias__));
diff -Nrcpad gcc-7.4.0/gcc/testsuite/c-c++-common/torture/asm-inline.c gcc-7.5.0/gcc/testsuite/c-c++-common/torture/asm-inline.c
*** gcc-7.4.0/gcc/testsuite/c-c++-common/torture/asm-inline.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/c-c++-common/torture/asm-inline.c	Wed Jan  2 22:49:04 2019
***************
*** 0 ****
--- 1,53 ----
+ /* { dg-do compile } */
+ /* -O0 does no inlining, and -O3 does it too aggressively for this test:  */
+ /* { dg-skip-if "" { *-*-* } { "-O0" "-O3" } { "" } }
+ /* The normal asm is not inlined:  */
+ /* { dg-final { scan-assembler-times "w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w" 2 } } */
+ /* But the asm inline is inlined:  */
+ /* { dg-final { scan-assembler-times "x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x" 8 } } */
+ 
+ static void f(void)
+ {
+   asm ("w\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\n"
+        "w\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw");
+ }
+ 
+ int f0(void) { f(); return 0; }
+ int f1(void) { f(); return 1; }
+ int f2(void) { f(); return 2; }
+ int f3(void) { f(); return 3; }
+ 
+ static void fg(void)
+ {
+   asm goto("w\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\n"
+ 	   "w\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw\nw" :::: q);
+   q: ;
+ }
+ 
+ int fg0(void) { fg(); return 0; }
+ int fg1(void) { fg(); return 1; }
+ int fg2(void) { fg(); return 2; }
+ int fg3(void) { fg(); return 3; }
+ 
+ static void g(void)
+ {
+   asm inline("x\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\n"
+ 	     "x\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx");
+ }
+ 
+ int g0(void) { g(); return 0; }
+ int g1(void) { g(); return 1; }
+ int g2(void) { g(); return 2; }
+ int g3(void) { g(); return 3; }
+ 
+ static void gg(void)
+ {
+   asm inline goto("x\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\n"
+ 		  "x\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx\nx" :::: q);
+   q: ;
+ }
+ 
+ int gg0(void) { gg(); return 0; }
+ int gg1(void) { gg(); return 1; }
+ int gg2(void) { gg(); return 2; }
+ int gg3(void) { gg(); return 3; }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/asm-qual-1.C gcc-7.5.0/gcc/testsuite/g++.dg/asm-qual-1.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/asm-qual-1.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/asm-qual-1.C	Wed Jan  2 22:49:04 2019
***************
*** 0 ****
--- 1,13 ----
+ // Test that qualifiers other than volatile are disallowed on asm.
+ // { dg-do compile }
+ // { dg-options "-std=gnu++98" }
+ 
+ void
+ f ()
+ {
+   asm volatile ("");
+ 
+   asm const (""); // { dg-error {'const' is not an asm qualifier} }
+ 
+   asm __restrict (""); // { dg-error {'__restrict' is not an asm qualifier} }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/asm-qual-2.C gcc-7.5.0/gcc/testsuite/g++.dg/asm-qual-2.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/asm-qual-2.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/asm-qual-2.C	Wed Jan  2 22:49:04 2019
***************
*** 0 ****
--- 1,46 ----
+ // Test that qualifiers on asm are allowed in any order.
+ // { dg-do compile }
+ // { dg-options "-std=c++98" }
+ 
+ void
+ f ()
+ {
+   asm volatile goto ("" :::: lab);
+   asm volatile inline ("" :::);
+   asm inline volatile ("" :::);
+   asm inline goto ("" :::: lab);
+   asm goto volatile ("" :::: lab);
+   asm goto inline ("" :::: lab);
+ 
+   asm volatile inline goto ("" :::: lab);
+   asm volatile goto inline ("" :::: lab);
+   asm inline volatile goto ("" :::: lab);
+   asm inline goto volatile ("" :::: lab);
+   asm goto volatile inline ("" :::: lab);
+   asm goto inline volatile ("" :::: lab);
+ 
+   /* Duplicates are not allowed.  */
+   asm goto volatile volatile ("" :::: lab);  /* { dg-error "" } */
+   asm volatile goto volatile ("" :::: lab);  /* { dg-error "" } */
+   asm volatile volatile goto ("" :::: lab);  /* { dg-error "" } */
+   asm goto goto volatile ("" :::: lab);  /* { dg-error "" } */
+   asm goto volatile goto ("" :::: lab);  /* { dg-error "" } */
+   asm volatile goto goto ("" :::: lab);  /* { dg-error "" } */
+ 
+   asm inline volatile volatile ("" :::);  /* { dg-error "" } */
+   asm volatile inline volatile ("" :::);  /* { dg-error "" } */
+   asm volatile volatile inline ("" :::);  /* { dg-error "" } */
+   asm inline inline volatile ("" :::);  /* { dg-error "" } */
+   asm inline volatile inline ("" :::);  /* { dg-error "" } */
+   asm volatile inline inline ("" :::);  /* { dg-error "" } */
+ 
+   asm goto inline inline ("" :::: lab);  /* { dg-error "" } */
+   asm inline goto inline ("" :::: lab);  /* { dg-error "" } */
+   asm inline inline goto ("" :::: lab);  /* { dg-error "" } */
+   asm goto goto inline ("" :::: lab);  /* { dg-error "" } */
+   asm goto inline goto ("" :::: lab);  /* { dg-error "" } */
+   asm inline goto goto ("" :::: lab);  /* { dg-error "" } */
+ 
+ lab:
+   ;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/asm-qual-3.C gcc-7.5.0/gcc/testsuite/g++.dg/asm-qual-3.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/asm-qual-3.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/asm-qual-3.C	Sun Mar 10 07:25:13 2019
***************
*** 0 ****
--- 1,12 ----
+ // Test that asm-qualifiers are not allowed on toplevel asm.
+ // { dg-do compile }
+ // { dg-options "-std=gnu++98" }
+ 
+ asm const ("");    // { dg-error {'const' is not an asm qualifier} }
+ asm volatile ("");
+ asm restrict (""); // { dg-error {expected '\(' before 'restrict'} }
+ asm inline ("");   // { dg-error {asm qualifier outside of function body} }
+ asm goto ("");     // { dg-error {asm qualifier outside of function body} }
+ 
+ // There are many other things wrong with this code, so:
+ // { dg-excess-errors "" }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-87506.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-87506.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-87506.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/constexpr-87506.C	Fri Aug 30 11:17:41 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/87506
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {};
+ struct B { constexpr B (const A) {} };
+ struct C : B { using B::B; };
+ 
+ void
+ foo ()
+ {
+   C c (A{});
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/initlist105.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/initlist105.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/initlist105.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/initlist105.C	Fri Aug 30 11:20:08 2019
***************
*** 0 ****
--- 1,28 ----
+ // PR c++/86669
+ // { dg-do run { target c++11 } }
+ 
+ #include <initializer_list>
+ 
+ struct S { S (); };
+ struct T : public S {};
+ int cnt;
+ void foo (int) { cnt++; }
+ 
+ S::S ()
+ {
+   int e = 1, f = 2, g = 3, h = 4;
+ 
+   for (auto k : { e, f, g, h })
+     foo (k);
+ }
+ 
+ int
+ main ()
+ {
+   S s;
+   if (cnt != 4)
+     __builtin_abort ();
+   T t;
+   if (cnt != 8)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/initlist106.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/initlist106.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/initlist106.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/initlist106.C	Fri Aug 30 11:20:08 2019
***************
*** 0 ****
--- 1,29 ----
+ // PR c++/86669
+ // { dg-do run { target c++11 } }
+ 
+ #include <initializer_list>
+ 
+ struct A { };
+ struct S : virtual public A { S (); };
+ struct T : public S, virtual public A {};
+ int cnt;
+ void foo (int) { cnt++; }
+ 
+ S::S ()
+ {
+   int e = 1, f = 2, g = 3, h = 4;
+ 
+   for (auto k : { e, f, g, h })
+     foo (k);
+ }
+ 
+ int
+ main ()
+ {
+   S s;
+   if (cnt != 4)
+     __builtin_abort ();
+   T t;
+   if (cnt != 8)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/pr89403.C	Fri Aug 30 12:10:10 2019
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/89403
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Os -fsyntax-only" }
+ 
+ template <typename T>
+ struct A : T {
+   constexpr A() : T() { }
+ };
+ 
+ template <typename T>
+ struct B {
+   A<T> b;
+   constexpr B() { }
+ };
+ 
+ struct C { struct {} s; };
+ constexpr B<C> b{};
+ constexpr C c = b.b;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/rv-cond3.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/rv-cond3.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp0x/rv-cond3.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp0x/rv-cond3.C	Fri Aug 30 11:16:55 2019
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/88103
+ // { dg-do compile { target c++11 } }
+ 
+ struct A {
+   A (int);
+   A&& foo () &&;
+   int i;
+ };
+ void free (A&&);
+ 
+ void test_xvalue (A a){
+   A&& ref = true ? static_cast<A&&> (a) : static_cast<A&&> (a); 
+   free (true ? static_cast<A&&> (a) : static_cast<A&&> (a));
+   (true ? static_cast<A&&> (a) : static_cast<A&&> (a)).foo ();
+   int&& k = (true ? static_cast<A&&> (a) : static_cast<A&&> (a)).i;
+ }
+ void test_prvalue (A a){
+   A&& ref = true ? static_cast<A&&> (a) : 1; 
+   free (true ? static_cast<A&&> (a) : 1);
+   (true ? static_cast<A&&> (a) : 1).foo ();
+   int&& k = (true ? static_cast<A&&> (a) : 1).i;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-init18.C	Fri Aug 30 12:29:13 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/89767
+ // { dg-do compile { target c++14 } }
+ 
+ void bar (int);
+ 
+ void
+ foo ()
+ {
+   int x = 0;
+   auto z = [x, y = [x] { bar (x); }] { y (); bar (x); };
+   z ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/lambda-init19.C	Fri Aug 30 12:29:13 2019
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/89767
+ // { dg-do compile { target c++14 } }
+ 
+ void bar (int);
+ 
+ void
+ foo ()
+ {
+   int x = 0;
+   int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, g = 0, h = 0;
+   auto z = [x, y = [x] { bar (x); }, x] { y (); bar (x); };	// { dg-error "already captured 'x' in lambda expression" }
+   auto w = [x, a, b, c, d, y = [x] { bar (x); }, e, f, g, h, x] { y (); bar (x + a + b + c + d + e + f + g + h); };	// { dg-error "already captured 'x' in lambda expression" }
+   z ();
+   w ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/pr89767.C	Fri Aug 30 12:29:13 2019
***************
*** 0 ****
--- 1,32 ----
+ // PR c++/89767
+ // { dg-do compile { target c++14 } }
+ // { dg-options "-O2 -Wall" }
+ 
+ template <typename d> struct e { using g = d; };
+ template <typename d, template <typename> class> using h = e<d>;
+ template <typename d, template <typename> class i>
+ using j = typename h<d, i>::g;
+ template <typename c> int k(c);
+ template <typename...> class au;
+ struct l { template <typename c> using m = typename c::f; };
+ struct s : l { using af = j<au<int, int> *, m>; };
+ template <unsigned long, typename> struct o;
+ template <long p, typename c> using q = typename o<p, c>::g;
+ template <typename> struct r;
+ template <typename c> struct r<c *> { typedef c aj; };
+ template <typename ak, typename> struct al { typename r<ak>::aj operator*(); void operator++(); };
+ template <typename am, typename an, typename ao>
+ bool operator!=(al<am, ao>, al<an, ao>);
+ template <unsigned long, typename...> struct ap;
+ template <unsigned long aq, typename ar, typename... as>
+ struct ap<aq, ar, as...> : ap<1, as...> {};
+ template <unsigned long aq, typename ar> struct ap<aq, ar> {};
+ template <typename... at> class au : public ap<0, at...> {};
+ template <unsigned long p, typename ar, typename... as>
+ struct o<p, au<ar, as...>> : o<p - 1, au<as...>> {};
+ template <typename ar, typename... as> struct o<0, au<ar, as...>> { typedef ar g; };
+ template <long p, typename ar> constexpr ar av(ap<p, ar> __t) { return ar (); }
+ template <int p, typename... at> constexpr q<p, au<at...>> aw(au<at...> __t) { av<p>(__t); return q<p, au<at...>> (); }
+ struct bg { typedef s::af af; };
+ struct F { typedef al<bg::af, int> bk; bk begin(); bk end(); };
+ void bo() { int t = 0; F cv; for (auto bp : cv) [t, n = k(aw<1>(bp))] {}; }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp1y/var-templ61.C	Fri Aug 30 12:18:01 2019
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/89512
+ // { dg-do compile { target c++14 } }
+ 
+ struct A {
+   template <typename T>
+   static const int a = 0;
+ };
+ 
+ struct B {
+   template <typename T>
+   static int foo ()
+   {
+     return T::a;		// { dg-error "missing template arguments" }
+   }
+ };
+ 
+ int bar ()
+ {
+   return B::foo<A> ();		// { dg-message "required from here" }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/cpp1z/decomp49.C gcc-7.5.0/gcc/testsuite/g++.dg/cpp1z/decomp49.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/cpp1z/decomp49.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/cpp1z/decomp49.C	Fri Aug 30 12:14:10 2019
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/82075
+ // { dg-do run { target c++11 } }
+ // { dg-options "" }
+ 
+ struct B { };
+ struct D : B { int i; };
+ 
+ int
+ main ()
+ {
+   auto [i] = D{};	// { dg-warning "only available with" "" { target c++14_down } }
+   if (i != 0)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C gcc-7.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C	Fri Aug 30 11:15:39 2019
***************
*** 0 ****
--- 1,17 ----
+ // PR debug/85550
+ // { dg-do link }
+ // { dg-options "-O2 -g -fdebug-types-section" }
+ 
+ struct A {
+   int bar () const { return 0; }
+ };
+ template <int (A::*foo)() const>
+ struct B {
+ };
+ 
+ B<&A::bar> b;
+ 
+ int
+ main ()
+ {
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C gcc-7.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr91887.C	Thu Oct 24 09:38:56 2019
***************
*** 0 ****
--- 1,12 ----
+ // { dg-do compile }
+ // { dg-require-effective-target c++11 }
+ // { dg-options "-g -fdebug-types-section" }
+ class A {
+ public:
+   A();
+   template <typename U> A(U);
+ };
+ template <class> struct B { typedef A type; };
+ template <class R, typename... Args>
+ int Bind(R(Args...), typename B<Args>::type...) { return 0; }
+ void KeepBufferRefs(A, A) { A a, b(Bind(KeepBufferRefs, a, b)); }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/debug/pr88181.C gcc-7.5.0/gcc/testsuite/g++.dg/debug/pr88181.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/debug/pr88181.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/debug/pr88181.C	Fri Aug 30 11:14:56 2019
***************
*** 0 ****
--- 1,29 ----
+ // PR c++/88181
+ // { dg-do compile }
+ // { dg-options "-fpack-struct -g -std=c++11" }
+ 
+ template <typename T> struct A { typedef T B; };
+ template <typename...> class C;
+ template <typename e> struct D { constexpr D (e) {} };
+ template <int, typename...> struct E;
+ template <int N, typename T, typename... U>
+ struct E<N, T, U...> : E<1, U...>, D<T> {
+   constexpr E (T x, U... y) : E<1, U...>(y...), D<T>(x) {}
+ };
+ template <int N, typename T> struct E<N, T> : D<T> {
+   constexpr E (T x) : D<T>(x) {}
+ };
+ template <typename T, typename U> struct C<T, U> : E<0, T, U> {
+   constexpr C (T x, U y) : E<0, T, U>(x, y) {}
+   void operator= (typename A<const C>::B);
+ };
+ struct F {};
+ struct G {};
+ 
+ int
+ main ()
+ {
+   F f;
+   G g;
+   constexpr C<F, G> c(f, g);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/alignof2.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/alignof2.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/alignof2.C	Thu Nov 27 00:56:34 2014
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/alignof2.C	Fri Sep  6 16:03:42 2019
***************
*** 3,9 ****
  // wrong for some fields.
  
  // { dg-do run }
! // { dg-xfail-run-if "AIX ABI increases struct alignment for first member double" { powerpc-ibm-aix* } { "*" } { "" } }
  
  extern "C" void abort();
  
--- 3,9 ----
  // wrong for some fields.
  
  // { dg-do run }
! // { dg-xfail-run-if "AIX/Darwin ABI increases struct alignment for first member double" { powerpc-ibm-aix* || { ilp32 && powerpc-*-darwin* } } }
  
  extern "C" void abort();
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/asm15.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/asm15.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/asm15.C	Fri Jun 22 21:20:53 2018
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/asm15.C	Fri Aug 30 12:27:21 2019
*************** struct S { S (); ~S (); int s; };
*** 6,10 ****
  void
  foo (S &s)
  {
!   __asm volatile ("" : "+r" (s) : : "memory");	// { dg-error "" }
  }
--- 6,11 ----
  void
  foo (S &s)
  {
!   __asm volatile ("" : "+r" (s) : : "memory");	// { dg-error "impossible constraint" }
! 						// { dg-error "must stay in memory" "" { target *-*-* } .-1 }
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/asm16.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/asm16.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/asm16.C	Fri Jun 22 21:20:53 2018
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/asm16.C	Fri Aug 30 12:27:21 2019
*************** struct S { S (); ~S (); int s[64]; } s;
*** 6,10 ****
  void
  foo ()
  {
!   __asm volatile ("" : "=r" (s) : : "memory");	// { dg-error "" }
  }
--- 6,11 ----
  void
  foo ()
  {
!   __asm volatile ("" : "=r" (s) : : "memory");	// { dg-error "impossible constraint" }
! 						// { dg-error "must stay in memory" "" { target *-*-* } .-1 }
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/asm17.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/asm17.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/asm17.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/asm17.C	Fri Aug 30 12:27:21 2019
***************
*** 0 ****
--- 1,11 ----
+ // PR target/89752
+ // { dg-do compile }
+ 
+ struct A { A (); ~A (); short c; };
+ 
+ void
+ foo ()
+ {
+   A a0, a1;
+   __asm volatile ("" : "+rm" (a0), "+rm" (a1));
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/flexary34.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/flexary34.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/flexary34.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/flexary34.C	Fri Aug 30 12:13:40 2019
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/87148
+ // { dg-do compile }
+ // { dg-options "-pedantic" }
+ 
+ struct Tst { int i; char t[]; };	// { dg-warning "forbids flexible array member" }
+ 
+ Tst t {};				// { dg-warning "extended initializer lists only available with" "" { target c++98_only } }
+ Tst u = Tst();
+ void foo () { Tst u = {}; }
+ Tst *bar () { return new Tst (); }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/instantiate2.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/instantiate2.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/instantiate2.C	Mon Nov 29 14:58:16 2010
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/instantiate2.C	Tue Jun  4 19:08:03 2019
*************** template <class T> struct A {
*** 8,15 ****
  template <class T> T A<T>::t = 0;
  static template struct A<int>;
  
! // { dg-final { scan-assembler "\n_?_ZN1AIiE1tE(:|\n|\t)" { target { ! *-*-darwin* } } } }
! // { dg-final { scan-assembler ".zerofill __DATA,__pu_bss2,__ZN1AIiE1tE" { target *-*-darwin* } } } 
  void test_int() { A<int>::t = 42; }
  
  // { dg-final { scan-assembler-not "\n_?_ZN1AIcE1tE(:|\n|\t)" } }
--- 8,14 ----
  template <class T> T A<T>::t = 0;
  static template struct A<int>;
  
! // { dg-final { scan-assembler "\n_?_ZN1AIiE1tE(:|\n|\t)" } }
  void test_int() { A<int>::t = 42; }
  
  // { dg-final { scan-assembler-not "\n_?_ZN1AIcE1tE(:|\n|\t)" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/sync-4.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/sync-4.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/sync-4.C	Thu Apr 30 20:22:51 2015
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/sync-4.C	Sat Jan  5 12:44:12 2019
***************
*** 1,4 ****
--- 1,6 ----
  /* { dg-do run { target hppa*-*-hpux* *-*-linux* *-*-gnu* powerpc*-*-darwin* *-*-darwin[912]* } } */
+ /* FIXME The following additional option should be removed after the fix for radr://19802258.
+ /* { dg-xfail-run-if "PR60563 radr://19802258" { *-*-darwin* } } */
  /* { dg-require-effective-target sync_long_long_runtime } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* { dg-additional-options "-march=pentium" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ext/vector36.C gcc-7.5.0/gcc/testsuite/g++.dg/ext/vector36.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ext/vector36.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/ext/vector36.C	Fri Aug 30 11:37:41 2019
***************
*** 0 ****
--- 1,6 ----
+ // PR target/89186
+ // { dg-do compile }
+ // { dg-options "-fnon-call-exceptions" }
+ // { dg-additional-options "-mno-sse" { target i?86-*-* x86_64-*-* } }
+ 
+ #include "vector27.C"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/gcov/pr16855.C gcc-7.5.0/gcc/testsuite/g++.dg/gcov/pr16855.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/gcov/pr16855.C	Fri Nov 25 14:23:25 2016
--- gcc-7.5.0/gcc/testsuite/g++.dg/gcov/pr16855.C	Mon Sep  9 20:27:05 2019
***************
*** 1,6 ****
--- 1,8 ----
  /* { dg-options "-fprofile-arcs -ftest-coverage" } */
  /* { dg-do run { target native } } */
  
+ /* See PR91087 for information on Darwin xfails. */
+ 
  #include <stdlib.h>
  #include <stdio.h>
  
*************** class Test
*** 18,24 ****
  {
  public:
    Test (void) { fprintf (stderr, "In Test::Test\n"); /* count(1) */ }
!   ~Test (void) { fprintf (stderr, "In Test::~Test\n"); /* count(1) */ }
  } T1;
  
  void
--- 20,28 ----
  {
  public:
    Test (void) { fprintf (stderr, "In Test::Test\n"); /* count(1) */ }
!   ~Test (void) {
!    fprintf (stderr, "In Test::~Test\n"); /* count(1) { xfail *-*-darwin* } */
!   }
  } T1;
  
  void
*************** static void __attribute__ ((constructor)
*** 42,48 ****
  
  static void __attribute__ ((destructor)) dtor_default ()
  {
!   fprintf (stderr, "in destructor(())\n"); /* count(1) */
  }
  
! /* { dg-final { run-gcov branches { -b pr16855.C } } } */
--- 46,52 ----
  
  static void __attribute__ ((destructor)) dtor_default ()
  {
!   fprintf (stderr, "in destructor(())\n"); /* count(1) { xfail *-*-darwin* } */
  }
  
! /* { dg-final { run-gcov branches { -b pr16855.C } { xfail *-*-darwin* } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/gomp/cancel-1.C gcc-7.5.0/gcc/testsuite/g++.dg/gomp/cancel-1.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/gomp/cancel-1.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/gomp/cancel-1.C	Fri Aug 30 11:31:02 2019
***************
*** 0 ****
--- 1,26 ----
+ // PR c++/88976
+ // { dg-do compile }
+ 
+ template <class T> void
+ foo (T x)
+ {
+ #pragma omp parallel
+   {
+   #pragma omp cancel parallel if (x)
+   }
+ #pragma omp parallel
+   {
+   #pragma omp cancel parallel if (1 == 1)
+   }
+ }
+ 
+ void
+ bar (int x, double y, long long z)
+ {
+   foo (0);
+   foo (1LL);
+   foo (1.25);
+   foo (x);
+   foo (y);
+   foo (z);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/gomp/cancel-2.C gcc-7.5.0/gcc/testsuite/g++.dg/gomp/cancel-2.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/gomp/cancel-2.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/gomp/cancel-2.C	Fri Aug 30 11:31:02 2019
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/88976
+ // { dg-do compile }
+ 
+ template <class T> void
+ foo (T x)
+ {
+ #pragma omp parallel
+   {
+   #pragma omp cancel parallel if (x)	// { dg-error "no match for" }
+   }
+ }
+ 
+ struct S {};
+ 
+ void
+ bar ()
+ {
+   S s;
+   foo (s);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/gomp/cancel-3.C gcc-7.5.0/gcc/testsuite/g++.dg/gomp/cancel-3.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/gomp/cancel-3.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/gomp/cancel-3.C	Fri Aug 30 11:31:02 2019
***************
*** 0 ****
--- 1,12 ----
+ // { dg-do compile }
+ 
+ struct S { int s; } s;
+ 
+ void
+ foo (void)
+ {
+   #pragma omp parallel
+   {
+     #pragma omp cancel parallel if (s)	// { dg-error "could not convert 's' from 'S' to 'bool'" }
+   }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/gomp/lastprivate-1.C gcc-7.5.0/gcc/testsuite/g++.dg/gomp/lastprivate-1.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/gomp/lastprivate-1.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/gomp/lastprivate-1.C	Fri Aug 30 12:46:52 2019
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/90950
+ // { dg-do compile }
+ 
+ template <typename T>
+ T
+ foo (void)
+ {
+   T y = 0;
+   T &x = y;
+   #pragma omp parallel for lastprivate (x)
+   for (int i = 0; i < 8; ++i)
+     x = i;
+   return x;
+ }
+ 
+ int a = foo<int> ();
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/gomp/pr88949.C gcc-7.5.0/gcc/testsuite/g++.dg/gomp/pr88949.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/gomp/pr88949.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/gomp/pr88949.C	Fri Aug 30 11:29:04 2019
***************
*** 0 ****
--- 1,23 ----
+ // PR c++/88949
+ // { dg-do compile }
+ 
+ struct A {
+   int a;
+   A (int x) : a (x) {
+ #pragma omp parallel firstprivate (a)
+     --a;
+   }
+   void foo () {
+ #pragma omp parallel firstprivate (a)
+     --a;
+   }
+ };
+ 
+ int c;
+ 
+ int
+ main ()
+ {
+   A d(c);
+   d.foo ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/gomp/pr89796.C gcc-7.5.0/gcc/testsuite/g++.dg/gomp/pr89796.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/gomp/pr89796.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/gomp/pr89796.C	Fri Aug 30 12:32:15 2019
***************
*** 0 ****
--- 1,53 ----
+ // PR c++/89796
+ // { dg-do compile }
+ // { dg-additional-options "-Wunused-value" }
+ 
+ int
+ f1 (int &c)
+ {
+   int r;
+   #pragma omp atomic capture	// { dg-bogus "value computed is not used" }
+   { r = c; c++; }
+   return r;
+ }
+ 
+ template <int N>
+ int
+ f2 (int &c)
+ {
+   int r;
+   #pragma omp atomic capture	// { dg-bogus "value computed is not used" }
+   { r = c; c++; }
+   return r;
+ }
+ 
+ int
+ f3 (int &c)
+ {
+   return f2 <0> (c);
+ }
+ 
+ int
+ f4 (int *p)
+ {
+   int r;
+   #pragma omp atomic capture	// { dg-bogus "value computed is not used" }
+   { r = *p; (*p)++; }
+   return r;
+ }
+ 
+ template <int N>
+ int
+ f5 (int *p)
+ {
+   int r;
+   #pragma omp atomic capture	// { dg-bogus "value computed is not used" }
+   { r = *p; (*p)++; }
+   return r;
+ }
+ 
+ int
+ f6 (int *p)
+ {
+   return f5 <0> (p);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ipa/pr89009.C gcc-7.5.0/gcc/testsuite/g++.dg/ipa/pr89009.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ipa/pr89009.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/ipa/pr89009.C	Tue May 28 11:55:05 2019
***************
*** 0 ****
--- 1,14 ----
+ /* PR ipa/89009 */
+ /* { dg-do run } */
+ /* { dg-require-effective-target fpic } */
+ /* { dg-options "-fpic -O2 -fno-inline" } */
+ /* { dg-require-visibility "" } */
+ 
+ void foo1() { __builtin_printf ("foo\n"); }
+ #pragma GCC visibility push(hidden)
+ void foo2() { __builtin_printf ("foo\n"); }
+ #pragma GCC visibility pop
+ 
+ int main() { foo2(); return 0; }
+ 
+ /* { dg-output "foo" } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/lookup/pr60994.C gcc-7.5.0/gcc/testsuite/g++.dg/lookup/pr60994.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/lookup/pr60994.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/lookup/pr60994.C	Fri Aug 30 11:09:57 2019
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/60994
+ // { dg-do compile }
+ 
+ struct s
+ {
+   static int i;
+ };
+ 
+ template <typename T>
+ int s()
+ {
+   return s::i;	// { dg-bogus "is not a class" }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr84272.C gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr84272.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr84272.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr84272.C	Thu Mar 14 09:18:07 2019
***************
*** 0 ****
--- 1,23 ----
+ // PR target/84272
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ // { dg-additional-options "-march=armv8-a -mtune=cortex-a57" { target aarch64-*-* } }
+ 
+ struct A
+ {
+   float b, c;
+   A ();
+   A (float, float, float);
+   float operator * (A)
+   {
+     float d = b * b + c * c;
+     return d;
+   }
+ };
+ 
+ void
+ foo ()
+ {
+   A g[1];
+   A h (0, 0, h * g[2]);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr89187.C gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr89187.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr89187.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr89187.C	Fri Aug 30 11:43:53 2019
***************
*** 0 ****
--- 1,23 ----
+ // PR c++/89187
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Os -fno-tree-ccp -fno-tree-sra -fno-inline" }
+ 
+ template <typename T, int N> struct A {
+   typedef T __attribute__((vector_size (N))) type;
+ };
+ template <typename T, int N> using B = typename A<T, N>::type;
+ template <typename T> using C = B<T, 4>;
+ struct D {
+   D (C<int> x) : d{x[3]} {}
+   D foo () { return d; }
+   C<int> d;
+ };
+ extern D d;
+ struct { D bar () { return d; } } l;
+ struct E { void baz () const; };
+ 
+ void
+ E::baz () const
+ {
+   l.bar ().foo ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr89188.C gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr89188.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr89188.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr89188.C	Fri Aug 30 11:49:11 2019
***************
*** 0 ****
--- 1,5 ----
+ // PR target/89188
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Og -flive-range-shrinkage -fnon-call-exceptions" }
+ 
+ #include "../torture/pr88861.C"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr90090.C gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr90090.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr90090.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr90090.C	Fri Aug 30 12:36:49 2019
***************
*** 0 ****
--- 1,19 ----
+ // PR tree-optimization/90090
+ // { dg-do compile }
+ // { dg-options "-Ofast -fno-associative-math -fsignaling-nans -fno-tree-dce -fnon-call-exceptions" }
+ 
+ double bar (double, double, double, double, double);
+ double baz ();
+ 
+ double
+ foo (double a)
+ {
+   try
+     {
+       return bar (1.0/a, 2.0/a, 4.0/a, 8.0/a, 16.0/a);
+     }
+   catch (...)
+     {
+       return baz ();
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr90187.C gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr90187.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/opt/pr90187.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/opt/pr90187.C	Fri Aug 30 12:39:50 2019
***************
*** 0 ****
--- 1,15 ----
+ // PR target/90187
+ // { dg-do compile }
+ // { dg-options "-Ofast -ffloat-store" }
+ 
+ double a[64];
+ double *foo (void);
+ 
+ void
+ bar (int x, const double *y)
+ {
+   int i;
+   for (i = 0; i < x; i++)
+     if (y[i] < a[i])
+       a[i] = y[i];
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/other/pr86669.C gcc-7.5.0/gcc/testsuite/g++.dg/other/pr86669.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/other/pr86669.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/other/pr86669.C	Fri Aug 30 11:20:08 2019
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/86669
+ // { dg-do compile }
+ 
+ struct S { S (); };
+ struct T : public S {};
+ 
+ S::S ()
+ {
+   int *p = { (int *) &p };
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/other/pr88568.C gcc-7.5.0/gcc/testsuite/g++.dg/other/pr88568.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/other/pr88568.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/other/pr88568.C	Fri Aug 30 12:14:46 2019
***************
*** 0 ****
--- 1,13 ----
+ // PR c/88568
+ // { dg-do compile }
+ // { dg-require-dll "" }
+ 
+ struct S {
+   __attribute__((dllimport)) static const char foo[];
+ };
+ 
+ int
+ foo (int x)
+ {
+   return S::foo[x];
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/pch/pr90326.C gcc-7.5.0/gcc/testsuite/g++.dg/pch/pr90326.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/pch/pr90326.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/pch/pr90326.C	Fri Aug 30 12:45:01 2019
***************
*** 0 ****
--- 1,9 ----
+ #include "pr90326.H"
+ 
+ int main()
+ {
+   float f = __FLT_MAX__;
+   if (f == 0.0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/pch/pr90326.Hs gcc-7.5.0/gcc/testsuite/g++.dg/pch/pr90326.Hs
*** gcc-7.4.0/gcc/testsuite/g++.dg/pch/pr90326.Hs	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/pch/pr90326.Hs	Fri Aug 30 12:45:01 2019
***************
*** 0 ****
--- 1 ----
+ // empty
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/pr71694.C gcc-7.5.0/gcc/testsuite/g++.dg/pr71694.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/pr71694.C	Fri Dec 16 09:40:03 2016
--- gcc-7.5.0/gcc/testsuite/g++.dg/pr71694.C	Tue Sep 17 11:48:24 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
+ /* { dg-additional-options "-fno-common -mdynamic-no-pic" { target { ia32 && { x86_64-*-darwin* i?86-*-darwin* } } } } */
  
  struct B {
      B() {}
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/pr88998.C gcc-7.5.0/gcc/testsuite/g++.dg/pr88998.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/pr88998.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/pr88998.C	Thu Jan 24 19:14:58 2019
***************
*** 0 ****
--- 1,31 ----
+ // PR target/88998
+ // { dg-do run { target { { x86_64-*-* i?86-*-* } && sse2_runtime } } }
+ // { dg-options "-O2 -msse2 -mfpmath=387" }
+ // { dg-require-effective-target c++11 }
+ 
+ #include <cassert>
+ #include <unordered_map>
+ #include <x86intrin.h>
+ 
+ double
+ __attribute__((noinline))
+ prepare (int a, int b)
+ {
+   __m128i is = _mm_setr_epi32 (a, b, 0, 0);
+   __m128d ds = _mm_cvtepi32_pd (is);
+   return ds[0] + ds[1];
+ }
+ 
+ int
+ main (int, char **)
+ {
+   double d = prepare (1, 2);
+ 
+   std::unordered_map < int, int >m;
+   m.insert ({0, 0});
+   m.insert ({1, 1});
+   assert (m.load_factor () <= m.max_load_factor ());
+ 
+   assert (d == 3.0);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/pr77285-2.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/pr77285-2.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/pr77285-2.C	Fri Nov 18 21:56:50 2016
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/pr77285-2.C	Sun Nov  3 08:23:33 2019
***************
*** 3,9 ****
  // { dg-require-effective-target tls }
  // { dg-final { scan-assembler "_Z4var1B3tag" } }
  // { dg-final { scan-assembler "_Z4var2B3tag" } }
! // { dg-final { scan-assembler "_ZTH4var1B3tag" } }
  // { dg-final { scan-assembler "_ZTW4var1B3tag" } }
  
  struct __attribute__((abi_tag("tag"))) X { ~X () {} int i = 0; };
--- 3,9 ----
  // { dg-require-effective-target tls }
  // { dg-final { scan-assembler "_Z4var1B3tag" } }
  // { dg-final { scan-assembler "_Z4var2B3tag" } }
! // { dg-final { scan-assembler "_ZTH4var1B3tag" { xfail *-*-darwin* } } }
  // { dg-final { scan-assembler "_ZTW4var1B3tag" } }
  
  struct __attribute__((abi_tag("tag"))) X { ~X () {} int i = 0; };
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local11.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local11.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local11.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local11.C	Fri Aug 30 12:31:21 2019
***************
*** 0 ****
--- 1,36 ----
+ // PR c++/60702
+ // { dg-do compile { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ // { dg-additional-options "-fdump-tree-gimple" }
+ // { dg-final { scan-tree-dump-times "_ZTW2s1" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTW2s2" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTW2s3" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTW2s4" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u1E" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u2E" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u3E" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u4E" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u5E" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u6E" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u7E" 2 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTWN1T2u8E" 2 "gimple" } }
+ 
+ #include "thread_local11.h"
+ 
+ void
+ foo ()
+ {
+   f1 ();
+   f2 ();
+   f3 ();
+   f4 ();
+   f5 ();
+   f6 ();
+   f7<0> ();
+   f8<0> ();
+   f9<0> ();
+   f10<0> ();
+   f11<0> ();
+   f12<0> ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local11.h gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local11.h
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local11.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local11.h	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,26 ----
+ // PR c++/60702
+ 
+ extern "C" void abort ();
+ struct S { S () { i = 42; }; int i; };
+ thread_local S s1, s2, s3, s4;
+ struct T { static thread_local S u1, u2, u3, u4, u5, u6, u7, u8; int i; } t;
+ thread_local S T::u1, T::u2, T::u3, T::u4, T::u5, T::u6, T::u7, T::u8;
+ 
+ S *f1 () { return &s1; }
+ int *f2 () { return &s2.i; }
+ S *f3 () { return &t.u1; }
+ int *f4 () { return &t.u2.i; }
+ S *f5 () { return &T::u3; }
+ int *f6 () { return &T::u4.i; }
+ template <int N>
+ S *f7 () { return &s3; }
+ template <int N>
+ int *f8 () { return &s4.i; }
+ template <int N>
+ S *f9 () { return &t.u5; }
+ template <int N>
+ int *f10 () { return &t.u6.i; }
+ template <int N>
+ S *f11 () { return &T::u7; }
+ template <int N>
+ int *f12 () { return &T::u8.i; }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local11a.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local11a.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local11a.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local11a.C	Fri Aug 30 12:31:21 2019
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/60702
+ // { dg-do compile { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-alias "" }
+ // { dg-require-effective-target tls_runtime }
+ // { dg-additional-options "-fdump-tree-gimple" }
+ // { dg-final { scan-tree-dump-times "_ZTH2s1" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTH2s2" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTH2s3" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTH2s4" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u1E" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u2E" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u3E" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u4E" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u5E" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u6E" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u7E" 1 "gimple" } }
+ // { dg-final { scan-tree-dump-times "_ZTHN1T2u8E" 1 "gimple" } }
+ 
+ #include "thread_local11.C"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12a.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12a.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12a.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12a.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (f1 ()->i != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12b.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12b.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12b.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12b.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (*f2 () != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12c.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12c.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12c.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12c.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (f3 ()->i != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12d.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12d.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12d.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12d.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (*f4 () != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12e.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12e.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12e.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12e.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (f5 ()->i != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12f.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12f.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12f.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12f.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (*f6 () != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12g.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12g.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12g.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12g.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (f7<0> ()->i != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12h.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12h.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12h.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12h.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (*f8<0> () != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12i.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12i.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12i.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12i.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (f9<0> ()->i != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12j.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12j.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12j.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12j.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (*f10<0> () != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12k.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12k.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12k.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12k.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (f11<0> ()->i != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12l.C gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12l.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/tls/thread_local12l.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/tls/thread_local12l.C	Fri Aug 30 12:30:48 2019
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/60702
+ // { dg-do run { target c++11 } }
+ // { dg-add-options tls }
+ // { dg-require-effective-target tls_runtime }
+ 
+ #include "thread_local11.h"
+ 
+ int
+ main ()
+ {
+   if (*f12<0> () != 42) abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr44295.C gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr44295.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr44295.C	Wed Jun  2 21:17:50 2010
--- gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr44295.C	Mon Dec 24 12:42:16 2018
***************
*** 1,4 ****
--- 1,6 ----
  /* { dg-do compile } */
+ /* { dg-skip-if "no pthread_barrier" { *-*-darwin* } } */
+ 
  extern "C" {
    typedef __SIZE_TYPE__ size_t;
    typedef struct   {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr88149.C gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr88149.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr88149.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr88149.C	Wed Sep  4 10:51:02 2019
***************
*** 0 ****
--- 1,63 ----
+ // { dg-do compile }
+ // { dg-additional-options "-ftree-vectorize" }
+ 
+ template <typename> struct a;
+ template <typename b> struct a<b *> {
+   typedef long c;
+   typedef b &d;
+ };
+ template <typename e> class f {
+   e ab;
+   typedef a<e> ac;
+ 
+ public:
+   typename ac::d operator[](typename ac::c o) { return ab[o]; }
+ };
+ template <typename> struct au;
+ template <typename b> au<b> operator+(au<b> o, au<b> p2) {
+   au<b> ax = o;
+   ax += p2;
+   return ax;
+ }
+ template <typename b> au<b> operator-(au<b> o, au<b> p2) {
+   au<b> ax = o;
+   ax -= p2;
+   return ax;
+ }
+ template <typename b> au<b> operator*(au<b>, au<b> &p2) {
+   au<b> ax;
+   ax *= p2;
+   return ax;
+ }
+ template <> struct au<double> {
+   double p() { return __real__ az; }
+   double q() { return __imag__ az; }
+   void operator+=(au o) {
+     az += o.p();
+     __imag__ az += o.q();
+   }
+   void operator-=(au o) {
+     az -= o.p();
+     __imag__ az -= o.q();
+   }
+   void operator*=(au &o) {
+     _Complex bd = o.p();
+     __imag__ bd = o.q();
+     az *= bd;
+   }
+   _Complex az;
+ };
+ long bm, m;
+ f<au<double> *> g;
+ au<double> h, i, l;
+ void bn() {
+   au<double> bq;
+   for (long k; m;) {
+     au<double> br;
+     for (long j = 0; j < bm; ++j) {
+       au<double> n = br * h;
+       i = l + n;
+       g[k] = l - bq;
+     }
+   }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr88861.C gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr88861.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr88861.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr88861.C	Fri Aug 30 11:49:11 2019
***************
*** 0 ****
--- 1,11 ----
+ // { dg-options "-fnon-call-exceptions" }
+ 
+ struct Ax {
+   int n, a[];
+ };
+ 
+ int i = 12345678;
+ int main() {
+   static Ax s{456, i};
+   ((s.a[0]) ? (void)0 : (void)0);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr89303.C gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr89303.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr89303.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr89303.C	Fri Aug 30 12:02:30 2019
***************
*** 0 ****
--- 1,792 ----
+ // PR middle-end/89303
+ // { dg-do run }
+ // { dg-additional-options "-std=c++14" }
+ 
+ namespace my
+ {
+   typedef __SIZE_TYPE__ size_t;
+   typedef decltype(nullptr) nullptr_t;
+ 
+   template<typename _Tp, _Tp __v>
+     struct integral_constant
+     {
+       static constexpr _Tp value = __v;
+       typedef _Tp value_type;
+       typedef integral_constant<_Tp, __v> type;
+       constexpr operator value_type() const noexcept { return value; }
+       constexpr value_type operator()() const noexcept { return value; }
+     };
+ 
+   template<typename _Tp, _Tp __v>
+     constexpr _Tp integral_constant<_Tp, __v>::value;
+ 
+   typedef integral_constant<bool, true> true_type;
+   typedef integral_constant<bool, false> false_type;
+ 
+   template<bool __v>
+     using __bool_constant = integral_constant<bool, __v>;
+ 
+   template<bool, typename, typename>
+     struct conditional;
+ 
+   template<typename...>
+     struct __and_;
+ 
+   template<>
+     struct __and_<>
+     : public true_type
+     { };
+ 
+   template<typename _B1>
+     struct __and_<_B1>
+     : public _B1
+     { };
+ 
+   template<typename _B1, typename _B2>
+     struct __and_<_B1, _B2>
+     : public conditional<_B1::value, _B2, _B1>::type
+     { };
+ 
+   template<typename _B1, typename _B2, typename _B3, typename... _Bn>
+     struct __and_<_B1, _B2, _B3, _Bn...>
+     : public conditional<_B1::value, __and_<_B2, _B3, _Bn...>, _B1>::type
+     { };
+ 
+   template<typename>
+     struct remove_cv;
+ 
+   template<typename>
+     struct __is_void_helper
+     : public false_type { };
+ 
+   template<>
+     struct __is_void_helper<void>
+     : public true_type { };
+ 
+   template<typename _Tp>
+     struct is_void
+     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
+     { };
+ 
+   template<typename _Tp, typename _Up = _Tp&&>
+     _Up
+     __declval(int);
+ 
+   template<typename _Tp>
+     _Tp
+     __declval(long);
+ 
+   template<typename _Tp>
+     auto declval() noexcept -> decltype(__declval<_Tp>(0));
+ 
+   template<typename, typename>
+     struct is_same
+     : public false_type { };
+ 
+   template<typename _Tp>
+     struct is_same<_Tp, _Tp>
+     : public true_type { };
+ 
+   template<typename _Tp>
+     struct remove_const
+     { typedef _Tp type; };
+ 
+   template<typename _Tp>
+     struct remove_const<_Tp const>
+     { typedef _Tp type; };
+ 
+   template<typename _Tp>
+     struct remove_volatile
+     { typedef _Tp type; };
+ 
+   template<typename _Tp>
+     struct remove_volatile<_Tp volatile>
+     { typedef _Tp type; };
+ 
+   template<typename _Tp>
+     struct remove_cv
+     {
+       typedef typename
+       remove_const<typename remove_volatile<_Tp>::type>::type type;
+     };
+ 
+   template<typename _Tp>
+     struct remove_reference
+     { typedef _Tp type; };
+ 
+   template<typename _Tp>
+     struct remove_reference<_Tp&>
+     { typedef _Tp type; };
+ 
+   template<typename _Tp>
+     struct remove_reference<_Tp&&>
+     { typedef _Tp type; };
+ 
+   template<bool, typename _Tp = void>
+     struct enable_if
+     { };
+ 
+   template<typename _Tp>
+     struct enable_if<true, _Tp>
+     { typedef _Tp type; };
+ 
+   template<typename... _Cond>
+     using _Require = typename enable_if<__and_<_Cond...>::value>::type;
+ 
+   template<bool _Cond, typename _Iftrue, typename _Iffalse>
+     struct conditional
+     { typedef _Iftrue type; };
+ 
+   template<typename _Iftrue, typename _Iffalse>
+     struct conditional<false, _Iftrue, _Iffalse>
+     { typedef _Iffalse type; };
+ 
+   template<typename _Tp>
+     struct __declval_protector
+     {
+       static const bool __stop = false;
+     };
+ 
+   template<typename _Tp>
+     auto declval() noexcept -> decltype(__declval<_Tp>(0))
+     {
+       static_assert(__declval_protector<_Tp>::__stop,
+       "declval() must not be used!");
+       return __declval<_Tp>(0);
+     }
+ 
+   namespace void_details {
+     template <class... >
+     struct make_void { using type = void; };
+ }
+ 
+ template <class... T> using __void_t = typename void_details ::make_void<T...>::type;
+ 
+   template<typename _Tp>
+     inline constexpr _Tp*
+     __addressof(_Tp& __r) noexcept
+     {
+       return reinterpret_cast<_Tp*>
+ 	(&const_cast<char&>(reinterpret_cast<const volatile char&>(__r)));
+     }
+ 
+   template<typename _Tp>
+     constexpr _Tp&&
+     forward(typename my::remove_reference<_Tp>::type& __t) noexcept
+     { return static_cast<_Tp&&>(__t); }
+ 
+   template<typename _Tp>
+     constexpr _Tp&&
+     forward(typename my::remove_reference<_Tp>::type&& __t) noexcept
+     {
+       return static_cast<_Tp&&>(__t);
+     }
+ 
+   template<typename _Tp>
+     constexpr typename my::remove_reference<_Tp>::type&&
+     move(_Tp&& __t) noexcept
+     { return static_cast<typename my::remove_reference<_Tp>::type&&>(__t); }
+ }
+        
+ inline void* operator new(my::size_t, void* p) { return p; }
+ 
+ extern "C" void* malloc(my::size_t);
+ extern "C" void free(void*);
+ 
+ namespace my
+ {
+   template<typename T>
+     class allocator
+     {
+     public:
+       using value_type = T;
+ 
+       allocator() { }
+ 
+       template<typename U>
+         allocator(const allocator<U>&) { }
+ 
+       T* allocate(size_t n) { return (T*)malloc(n*sizeof(T)); }
+       void deallocate(T* p, size_t) { free(p); }
+ 
+       template<typename U, typename... Args>
+         void construct(U* p, Args&&... args)
+         { ::new((void*)p) U(args...); }
+ 
+       template<typename U>
+         void destroy(U* p)
+         { p->~U(); }
+     };
+ 
+   class __undefined;
+ 
+   template<typename _Tp, typename _Up>
+     struct __replace_first_arg
+     { };
+ 
+   template<template<typename, typename...> class _Template, typename _Up,
+            typename _Tp, typename... _Types>
+     struct __replace_first_arg<_Template<_Tp, _Types...>, _Up>
+     { using type = _Template<_Up, _Types...>; };
+ 
+   struct __allocator_traits_base
+   {
+     template<typename _Tp, typename _Up, typename = void>
+       struct __rebind : __replace_first_arg<_Tp, _Up> { };
+ 
+     template<typename _Tp, typename _Up>
+       struct __rebind<_Tp, _Up,
+         __void_t<typename _Tp::template rebind<_Up>::other>>
+       { using type = typename _Tp::template rebind<_Up>::other; };
+   };
+ 
+   template<typename _Alloc, typename _Up>
+     using __alloc_rebind
+       = typename __allocator_traits_base::template __rebind<_Alloc, _Up>::type;
+ 
+   template<typename _Alloc>
+     struct allocator_traits;
+ 
+   template<typename _Tp>
+     struct allocator_traits<allocator<_Tp>>
+     {
+       using allocator_type = allocator<_Tp>;
+       using value_type = _Tp;
+       using pointer = _Tp*;
+       using const_pointer = const _Tp*;
+       using size_type = my::size_t;
+ 
+       static pointer
+       allocate(allocator_type& __a, size_type __n)
+       { return __a.allocate(__n); }
+ 
+       static void
+       deallocate(allocator_type& __a, pointer __p, size_type __n)
+       { __a.deallocate(__p, __n); }
+ 
+       template<typename _Up, typename... _Args>
+         static void
+         construct(allocator_type& __a, _Up* __p, _Args&&... __args)
+         { __a.construct(__p, my::forward<_Args>(__args)...); }
+ 
+       template<typename _Up>
+         static void
+         destroy(allocator_type& __a, _Up* __p)
+         { __a.destroy(__p); }
+     };
+ 
+   template<typename _Alloc>
+     struct __allocated_ptr
+     {
+       using pointer = typename allocator_traits<_Alloc>::pointer;
+       using value_type = typename allocator_traits<_Alloc>::value_type;
+ 
+       __allocated_ptr(_Alloc& __a, pointer __ptr) noexcept
+       : _M_alloc(my::__addressof(__a)), _M_ptr(__ptr)
+       { }
+ 
+       template<typename _Ptr,
+         typename _Req = _Require<is_same<_Ptr, value_type*>>>
+       __allocated_ptr(_Alloc& __a, _Ptr __ptr)
+       : _M_alloc(my::__addressof(__a)),
+       _M_ptr(__ptr)
+       { }
+ 
+       __allocated_ptr(__allocated_ptr&& __gd) noexcept
+       : _M_alloc(__gd._M_alloc), _M_ptr(__gd._M_ptr)
+       { __gd._M_ptr = nullptr; }
+ 
+       ~__allocated_ptr()
+       {
+         if (_M_ptr != nullptr)
+           my::allocator_traits<_Alloc>::deallocate(*_M_alloc, _M_ptr, 1);
+       }
+ 
+       __allocated_ptr&
+       operator=(my::nullptr_t) noexcept
+       {
+         _M_ptr = nullptr;
+         return *this;
+       }
+ 
+       value_type* get() { return _M_ptr; }
+ 
+     private:
+       _Alloc* _M_alloc;
+       pointer _M_ptr;
+     };
+ 
+   template<typename _Alloc>
+     __allocated_ptr<_Alloc>
+     __allocate_guarded(_Alloc& __a)
+     {
+       return { __a, my::allocator_traits<_Alloc>::allocate(__a, 1) };
+     }
+ 
+   template<typename _Tp>
+     struct __aligned_buffer
+     {
+       alignas(__alignof__(_Tp)) unsigned char _M_storage[sizeof(_Tp)];
+       __aligned_buffer() = default;
+ 
+       void*
+       _M_addr() noexcept
+       {
+         return static_cast<void*>(&_M_storage);
+       }
+ 
+       const void*
+       _M_addr() const noexcept
+       {
+         return static_cast<const void*>(&_M_storage);
+       }
+ 
+       _Tp*
+       _M_ptr() noexcept
+       { return static_cast<_Tp*>(_M_addr()); }
+ 
+       const _Tp*
+       _M_ptr() const noexcept
+       { return static_cast<const _Tp*>(_M_addr()); }
+     };
+ 
+   class bad_weak_ptr { };
+ 
+   inline void
+   __throw_bad_weak_ptr()
+   { (throw (bad_weak_ptr())); }
+ 
+     class _Sp_counted_base
+     {
+     public:
+       _Sp_counted_base() noexcept
+       : _M_use_count(1), _M_weak_count(1) { }
+ 
+       virtual
+       ~_Sp_counted_base() noexcept
+       { }
+ 
+       virtual void
+       _M_dispose() noexcept = 0;
+ 
+       virtual void
+       _M_destroy() noexcept
+       { delete this; }
+ 
+       void
+       _M_add_ref_copy()
+       { ++_M_use_count; }
+ 
+       void
+       _M_add_ref_lock()
+       {
+         if (_M_use_count == 0)
+           __throw_bad_weak_ptr();
+         ++_M_use_count;
+       }
+ 
+       void
+       _M_release() noexcept
+       {
+         if (--_M_use_count == 0)
+         {
+           _M_dispose();
+           if (--_M_weak_count == 0)
+             _M_destroy();
+         }
+       }
+ 
+       void
+       _M_weak_add_ref() noexcept
+       { ++_M_weak_count; }
+ 
+       void
+       _M_weak_release() noexcept
+       {
+         if (--_M_weak_count == 0)
+           _M_destroy();
+       }
+ 
+       long
+       _M_get_use_count() const noexcept
+       {
+         return _M_use_count;
+       }
+ 
+     private:
+       _Sp_counted_base(_Sp_counted_base const&) = delete;
+       _Sp_counted_base& operator=(_Sp_counted_base const&) = delete;
+ 
+       int _M_use_count;
+       int _M_weak_count;
+     };
+ 
+   template<typename _Tp>
+     class shared_ptr;
+ 
+   template<typename _Tp>
+     class weak_ptr;
+ 
+   template<typename _Tp>
+     class enable_shared_from_this;
+ 
+   class __weak_count;
+ 
+   class __shared_count;
+ 
+   template<typename _Alloc>
+     struct _Sp_alloc_shared_tag
+     {
+       const _Alloc& _M_a;
+     };
+ 
+   template<typename _Tp, typename _Alloc>
+     class _Sp_counted_ptr_inplace final : public _Sp_counted_base
+     {
+       class _Impl : _Alloc
+       {
+       public:
+         explicit _Impl(_Alloc __a) noexcept : _Alloc(__a) { }
+ 
+         _Alloc& _M_alloc() noexcept { return *this; }
+ 
+         __aligned_buffer<_Tp> _M_storage;
+       };
+ 
+     public:
+       using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>;
+ 
+       template<typename... _Args>
+         _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
+         : _M_impl(__a)
+         {
+           allocator_traits<_Alloc>::construct(__a, _M_ptr(),
+               my::forward<_Args>(__args)...);
+         }
+ 
+       ~_Sp_counted_ptr_inplace() noexcept { }
+ 
+       virtual void
+       _M_dispose() noexcept
+       {
+         allocator_traits<_Alloc>::destroy(_M_impl._M_alloc(), _M_ptr());
+       }
+ 
+       virtual void
+       _M_destroy() noexcept
+       {
+         __allocator_type __a(_M_impl._M_alloc());
+         __allocated_ptr<__allocator_type> __guard_ptr{ __a, this };
+         this->~_Sp_counted_ptr_inplace();
+       }
+ 
+     private:
+       friend class __shared_count;
+ 
+       _Tp* _M_ptr() noexcept { return _M_impl._M_storage._M_ptr(); }
+ 
+       _Impl _M_impl;
+     };
+ 
+   class __shared_count
+   {
+   public:
+     constexpr __shared_count() noexcept : _M_pi(0)
+     { }
+ 
+     template<typename _Tp, typename _Alloc, typename... _Args>
+       __shared_count(_Tp*& __p, _Sp_alloc_shared_tag<_Alloc> __a,
+           _Args&&... __args)
+       {
+         typedef _Sp_counted_ptr_inplace<_Tp, _Alloc> _Sp_cp_type;
+         typename _Sp_cp_type::__allocator_type __a2(__a._M_a);
+         auto __guard = my::__allocate_guarded(__a2);
+         _Sp_cp_type* __mem = __guard.get();
+         auto __pi = ::new (__mem)
+           _Sp_cp_type(__a._M_a, my::forward<_Args>(__args)...);
+         __guard = nullptr;
+         _M_pi = __pi;
+         __p = __pi->_M_ptr();
+       }
+ 
+     ~__shared_count() noexcept
+     {
+       if (_M_pi != nullptr)
+         _M_pi->_M_release();
+     }
+ 
+     __shared_count(const __shared_count& __r) noexcept
+     : _M_pi(__r._M_pi)
+     {
+       if (_M_pi != 0)
+         _M_pi->_M_add_ref_copy();
+     }
+ 
+     explicit __shared_count(const __weak_count& __r);
+ 
+     long
+     _M_get_use_count() const noexcept
+     { return _M_pi != 0 ? _M_pi->_M_get_use_count() : 0; }
+ 
+   private:
+     friend class __weak_count;
+ 
+     _Sp_counted_base* _M_pi;
+   };
+ 
+   class __weak_count
+   {
+   public:
+     constexpr __weak_count() noexcept : _M_pi(nullptr)
+     { }
+ 
+     __weak_count(const __shared_count& __r) noexcept
+     : _M_pi(__r._M_pi)
+     {
+       if (_M_pi != nullptr)
+         _M_pi->_M_weak_add_ref();
+     }
+ 
+     __weak_count(const __weak_count& __r) noexcept
+     : _M_pi(__r._M_pi)
+     {
+       if (_M_pi != nullptr)
+         _M_pi->_M_weak_add_ref();
+     }
+ 
+     __weak_count(__weak_count&& __r) noexcept
+     : _M_pi(__r._M_pi)
+     { __r._M_pi = nullptr; }
+ 
+     ~__weak_count() noexcept
+     {
+       if (_M_pi != nullptr)
+       {
+         _M_pi->_M_weak_release();
+       }
+     }
+ 
+     __weak_count&
+     operator=(const __shared_count& __r) noexcept
+     {
+       _Sp_counted_base* __tmp = __r._M_pi;
+       if (__tmp != nullptr)
+         __tmp->_M_weak_add_ref();
+       if (_M_pi != nullptr)
+         _M_pi->_M_weak_release();
+       _M_pi = __tmp;
+       return *this;
+     }
+ 
+     long
+     _M_get_use_count() const noexcept
+     { return _M_pi != nullptr ? _M_pi->_M_get_use_count() : 0; }
+ 
+   private:
+     friend class __shared_count;
+ 
+     _Sp_counted_base* _M_pi;
+   };
+ 
+   inline
+   __shared_count::__shared_count(const __weak_count& __r)
+   : _M_pi(__r._M_pi)
+   {
+     if (_M_pi != nullptr)
+       _M_pi->_M_add_ref_lock();
+     else
+       __throw_bad_weak_ptr();
+   }
+ 
+   template<typename _Tp>
+     class shared_ptr
+     {
+     public:
+       using element_type = _Tp;
+ 
+       constexpr shared_ptr() noexcept
+         : _M_ptr(0), _M_refcount()
+         { }
+ 
+       shared_ptr(const shared_ptr&) noexcept = default;
+       shared_ptr& operator=(const shared_ptr&) noexcept = default;
+       ~shared_ptr() = default;
+ 
+       template<typename _Yp>
+ 	explicit shared_ptr(const weak_ptr<_Yp>& __r)
+ 	: _M_refcount(__r._M_refcount) // may throw
+ 	{
+ 	  // It is now safe to copy __r._M_ptr, as
+ 	  // _M_refcount(__r._M_refcount) did not throw.
+ 	  _M_ptr = __r._M_ptr;
+ 	}
+ 
+       long
+       use_count() const noexcept
+       { return _M_refcount._M_get_use_count(); }
+ 
+       element_type* operator->() const noexcept { return _M_ptr; }
+ 
+     protected:
+ 
+       template<typename _Alloc, typename... _Args>
+         shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
+         : _M_ptr(), _M_refcount(_M_ptr, __tag, my::forward<_Args>(__args)...)
+         { _M_enable_shared_from_this_with(_M_ptr); }
+ 
+       template<typename _Tp1, typename _Alloc,
+         typename... _Args>
+           friend shared_ptr<_Tp1>
+           allocate_shared(const _Alloc& __a, _Args&&... __args);
+ 
+       friend class weak_ptr<_Tp>;
+ 
+     private:
+ 
+       template<typename _Yp>
+         using __esft_base_t = decltype(__enable_shared_from_this_base(
+               my::declval<const __shared_count&>(),
+               my::declval<_Yp*>()));
+ 
+       template<typename _Yp, typename = void>
+         struct __has_esft_base
+         : false_type { };
+ 
+       template<typename _Yp>
+         struct __has_esft_base<_Yp, __void_t<__esft_base_t<_Yp>>>
+         : true_type { };
+ 
+       template<typename _Yp, typename _Yp2 = typename remove_cv<_Yp>::type>
+         typename enable_if<__has_esft_base<_Yp2>::value>::type
+         _M_enable_shared_from_this_with(_Yp* __p) noexcept
+         {
+           if (auto __base = __enable_shared_from_this_base(_M_refcount, __p))
+             __base->_M_weak_assign(const_cast<_Yp2*>(__p), _M_refcount);
+         }
+ 
+       template<typename _Tp1> friend class shared_ptr;
+       template<typename _Tp1> friend class weak_ptr;
+ 
+       element_type* _M_ptr;
+       __shared_count _M_refcount;
+     };
+ 
+   template<typename _Tp>
+     class weak_ptr
+     {
+     public:
+       using element_type = _Tp;
+ 
+       constexpr weak_ptr() noexcept
+       : _M_ptr(nullptr), _M_refcount()
+       { }
+ 
+       weak_ptr(const weak_ptr&) noexcept = default;
+ 
+       ~weak_ptr() = default;
+ 
+       weak_ptr&
+       operator=(const weak_ptr& __r) noexcept = default;
+ 
+       long
+       use_count() const noexcept
+       { return _M_refcount._M_get_use_count(); }
+ 
+     private:
+ 
+       void
+       _M_assign(_Tp* __ptr, const __shared_count& __refcount) noexcept
+       {
+         if (use_count() == 0)
+         {
+           _M_ptr = __ptr;
+           _M_refcount = __refcount;
+         }
+       }
+ 
+       template<typename _Tp1> friend class shared_ptr;
+       template<typename _Tp1> friend class weak_ptr;
+       friend class enable_shared_from_this<_Tp>;
+ 
+       element_type* _M_ptr;
+       __weak_count _M_refcount;
+     };
+ 
+   template<typename _Tp>
+     class enable_shared_from_this
+     {
+     protected:
+       constexpr enable_shared_from_this() noexcept { }
+ 
+       enable_shared_from_this(const enable_shared_from_this&) noexcept { }
+ 
+       enable_shared_from_this&
+       operator=(const enable_shared_from_this&) noexcept
+       { return *this; }
+ 
+       ~enable_shared_from_this() { }
+ 
+     public:
+       shared_ptr<_Tp>
+       shared_from_this()
+       { return shared_ptr<_Tp>(this->_M_weak_this); }
+ 
+       shared_ptr<const _Tp>
+       shared_from_this() const
+       { return shared_ptr<const _Tp>(this->_M_weak_this); }
+ 
+     private:
+       template<typename _Tp1>
+         void
+         _M_weak_assign(_Tp1* __p, const __shared_count& __n) const noexcept
+         { _M_weak_this._M_assign(__p, __n); }
+ 
+       friend const enable_shared_from_this*
+       __enable_shared_from_this_base(const __shared_count&,
+          const enable_shared_from_this* __p)
+       { return __p; }
+ 
+       template<typename>
+         friend class shared_ptr;
+ 
+       mutable weak_ptr<_Tp> _M_weak_this;
+     };
+ 
+   template<typename _Tp, typename _Alloc, typename... _Args>
+     inline shared_ptr<_Tp>
+     allocate_shared(const _Alloc& __a, _Args&&... __args)
+     {
+       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
+         my::forward<_Args>(__args)...);
+     }
+ 
+   template<typename _Tp, typename... _Args>
+     inline shared_ptr<_Tp>
+     make_shared(_Args&&... __args)
+     {
+       typedef typename my::remove_const<_Tp>::type _Tp_nc;
+       return my::allocate_shared<_Tp>(my::allocator<_Tp_nc>(),
+            my::forward<_Args>(__args)...);
+     }
+ }
+ 
+ class blob final: public my::enable_shared_from_this<blob>
+ {
+   int* data;
+ 
+ public:
+   blob() { data = new int; }
+   ~blob() { delete data; }
+ };
+ 
+ static int
+ bar(my::shared_ptr<blob>)
+ {
+   return 0;
+ }
+ 
+ int main()
+ {
+   my::shared_ptr<blob> tg = my::make_shared<blob>();
+   return tg->shared_from_this().use_count() - 2;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr89698.C gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr89698.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr89698.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr89698.C	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ 
+ extern "C" void abort (void);
+ 
+ class A {
+     virtual void f(){};
+ public:
+     int x;
+     A(int in): x(in) {};
+ };
+ 
+ class B: public A {
+ public:
+     int y;
+     B(int in):A(in-1), y(in) {};
+ };
+ 
+ int test(void)
+ {
+   int res;
+   B b(2);
+   A* bp = &b;
+   void* vp = dynamic_cast<void*>(bp);
+   if (((A*)vp)->x == 1 && ((B*)vp)->y == 2)
+     return 1;
+   return 0;
+ }
+ int main() { if (test() != 1) abort (); return 0; }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr90194.C gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr90194.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/torture/pr90194.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/torture/pr90194.C	Fri Aug 30 16:44:17 2019
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile }
+ // { dg-additional-options "-g" }
+ 
+ struct cb {
+     int yr;
+ };
+ 
+ void *
+ operator new (__SIZE_TYPE__, void *nq)
+ {
+   return nq;
+ }
+ 
+ void
+ af (int xn)
+ {
+   new (&xn) cb { };
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ubsan/pr89234.C gcc-7.5.0/gcc/testsuite/g++.dg/ubsan/pr89234.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ubsan/pr89234.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/ubsan/pr89234.C	Fri Aug 30 11:46:29 2019
***************
*** 0 ****
--- 1,11 ----
+ // PR rtl-optimization/89234
+ // { dg-do compile { target dfp } }
+ // { dg-options "-O2 -fnon-call-exceptions -fsanitize=null" }
+ 
+ typedef float __attribute__((mode (SD))) _Decimal32;
+ 
+ void
+ foo (_Decimal32 *b, _Decimal32 c)
+ {
+   *b = c + 1.5;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/g++.dg/ubsan/vptr-14.C gcc-7.5.0/gcc/testsuite/g++.dg/ubsan/vptr-14.C
*** gcc-7.4.0/gcc/testsuite/g++.dg/ubsan/vptr-14.C	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/g++.dg/ubsan/vptr-14.C	Fri Aug 30 12:34:19 2019
***************
*** 0 ****
--- 1,18 ----
+ // PR sanitizer/89869
+ // { dg-do run }
+ // { dg-options "-fsanitize=vptr -fno-sanitize-recover=vptr" }
+ 
+ struct S { S *s = 0; virtual ~S () {} };
+ 
+ void
+ foo (S *x, S *y)
+ {
+   (x->s ? y : x) = x->s;
+ }
+ 
+ int
+ main ()
+ {
+   S a;
+   foo (&a, 0);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr71109.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr71109.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr71109.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr71109.c	Fri Aug 30 11:16:10 2019
***************
*** 0 ****
--- 1,31 ----
+ /* PR tree-optimization/71109 */
+ 
+ struct S { int g, h; signed char i; int j; signed char k; int l[4]; } a, c;
+ struct T { signed char g; } e;
+ int *b, d;
+ static void foo ();
+ 
+ void
+ bar (void)
+ {
+   while (d)
+     {
+       int k;
+       struct T f[3];
+       foo (bar, a);
+       for (k = 0;; k++)
+ 	f[k] = e;
+     }
+ }
+ 
+ static inline void
+ foo (int x, struct S y, struct T z)
+ {
+   for (z.g = 2; z.g; z.g--)
+     {
+       c = a = y;
+       *b |= 6;
+       if (y.g)
+ 	break;
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr72802.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr72802.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr72802.c	Mon Aug  8 09:06:49 2016
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr72802.c	Tue Oct 29 20:09:40 2019
***************
*** 1,3 ****
--- 1,4 ----
+ /* { dg-skip-if "see PR trail" { *-*-darwin* } } */
  static a[];
  static b, h, m, n, o, p, q, t, u, v, t5, t6, t16, t17, t18, t25;
  c;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr82564.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr82564.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr82564.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr82564.c	Fri Aug 30 11:26:01 2019
***************
*** 0 ****
--- 1,15 ----
+ /* PR middle-end/82564 */
+ /* { dg-require-effective-target alloca } */
+ 
+ int
+ main ()
+ {
+   int t = 8, i;
+   typedef struct { char v[t]; } B; 
+   B a, b;
+   B __attribute__ ((noinline)) f () { return b; }
+   for (i = 0; i < 8; i++)
+     b.v[i] = i;
+   a = f ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr87647.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr87647.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr87647.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr87647.c	Fri Aug 30 11:08:10 2019
***************
*** 0 ****
--- 1,15 ----
+ /* PR middle-end/87647 */
+ 
+ struct A {};
+ struct A *const b = &(struct A) {};
+ struct B { char *s; struct A *t; };
+ void bar (struct B *);
+ 
+ void
+ foo (void)
+ {
+   struct B a[] = { "", b, "", b, "", b, "", b, "", b, "", b, "", b, "", b,
+ 		   "", b, "", b, "", b, "", b, "", b, "", b, "", b, "", b,
+ 		   "", b };
+   bar (a);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89412.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89412.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89412.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89412.c	Fri Aug 30 12:08:46 2019
***************
*** 0 ****
--- 1,16 ----
+ /* PR middle-end/89412 */
+ 
+ struct S { double a, b; } d;
+ int e;
+ double f;
+ 
+ void
+ foo ()
+ {
+   _Complex double h;
+   while (e)
+     {
+       f = h;
+       *(struct S *) &h = d;
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89663-1.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89663-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89663-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89663-1.c	Fri Aug 30 12:16:43 2019
***************
*** 0 ****
--- 1,81 ----
+ /* PR middle-end/89663 */
+ 
+ int irint ();
+ long lrint ();
+ long long llrint ();
+ int iround ();
+ long lround ();
+ long long llround ();
+ int iceil ();
+ long lceil ();
+ long long llceil ();
+ int ifloor ();
+ long lfloor ();
+ long long llfloor ();
+ int irintf ();
+ long lrintf ();
+ long long llrintf ();
+ int iroundf ();
+ long lroundf ();
+ long long llroundf ();
+ int iceilf ();
+ long lceilf ();
+ long long llceilf ();
+ int ifloorf ();
+ long lfloorf ();
+ long long llfloorf ();
+ int irintl ();
+ long lrintl ();
+ long long llrintl ();
+ int iroundl ();
+ long lroundl ();
+ long long llroundl ();
+ int iceill ();
+ long lceill ();
+ long long llceill ();
+ int ifloorl ();
+ long lfloorl ();
+ long long llfloorl ();
+ 
+ void
+ foo (long long *p)
+ {
+   int n = 0;
+ #define T(f) p[n++] = f (1);
+   T (irint)
+   T (lrint)
+   T (llrint)
+   T (iround)
+   T (lround)
+   T (llround)
+   T (iceil)
+   T (lceil)
+   T (llceil)
+   T (ifloor)
+   T (lfloor)
+   T (llfloor)
+   T (irintf)
+   T (lrintf)
+   T (llrintf)
+   T (iroundf)
+   T (lroundf)
+   T (llroundf)
+   T (iceilf)
+   T (lceilf)
+   T (llceilf)
+   T (ifloorf)
+   T (lfloorf)
+   T (llfloorf)
+   T (irintl)
+   T (lrintl)
+   T (llrintl)
+   T (iroundl)
+   T (lroundl)
+   T (llroundl)
+   T (iceill)
+   T (lceill)
+   T (llceill)
+   T (ifloorl)
+   T (lfloorl)
+   T (llfloorl)
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89663-2.c	Fri Aug 30 12:16:43 2019
***************
*** 0 ****
--- 1,82 ----
+ /* PR middle-end/89663 */
+ 
+ int irint (double);
+ long lrint (double);
+ long long llrint (double);
+ int iround (double);
+ long lround (double);
+ long long llround (double);
+ int iceil (double);
+ long lceil (double);
+ long long llceil (double);
+ int ifloor (double);
+ long lfloor (double);
+ long long llfloor (double);
+ int irintf (float);
+ long lrintf (float);
+ long long llrintf (float);
+ int iroundf (float);
+ long lroundf (float);
+ long long llroundf (float);
+ int iceilf (float);
+ long lceilf (float);
+ long long llceilf (float);
+ int ifloorf (float);
+ long lfloorf (float);
+ long long llfloorf (float);
+ int irintl (long double);
+ long lrintl (long double);
+ long long llrintl (long double);
+ int iroundl (long double);
+ long lroundl (long double);
+ long long llroundl (long double);
+ int iceill (long double);
+ long lceill (long double);
+ long long llceill (long double);
+ int ifloorl (long double);
+ long lfloorl (long double);
+ long long llfloorl (long double);
+ 
+ void
+ foo (long long *p)
+ {
+   int (*fn) (int);
+   int n = 0;
+ #define T(f) fn = (int (*) (int)) f; p[n++] = fn (1);
+   T (irint)
+   T (lrint)
+   T (llrint)
+   T (iround)
+   T (lround)
+   T (llround)
+   T (iceil)
+   T (lceil)
+   T (llceil)
+   T (ifloor)
+   T (lfloor)
+   T (llfloor)
+   T (irintf)
+   T (lrintf)
+   T (llrintf)
+   T (iroundf)
+   T (lroundf)
+   T (llroundf)
+   T (iceilf)
+   T (lceilf)
+   T (llceilf)
+   T (ifloorf)
+   T (lfloorf)
+   T (llfloorf)
+   T (irintl)
+   T (lrintl)
+   T (llrintl)
+   T (iroundl)
+   T (lroundl)
+   T (llroundl)
+   T (iceill)
+   T (lceill)
+   T (llceill)
+   T (ifloorl)
+   T (lfloorl)
+   T (llfloorl)
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89703-1.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89703-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89703-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89703-1.c	Fri Aug 30 12:18:54 2019
***************
*** 0 ****
--- 1,13 ----
+ /* PR tree-optimization/89703 */
+ 
+ typedef __SIZE_TYPE__ size_t;
+ extern char *strlen (const char *);
+ extern char *strnlen (const char *, size_t);
+ extern char c[2];
+ 
+ void
+ foo (char **q)
+ {
+   q[0] = strlen (c);
+   q[1] = strnlen (c, 2);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89703-2.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89703-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89703-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89703-2.c	Fri Aug 30 12:18:54 2019
***************
*** 0 ****
--- 1,13 ----
+ /* PR tree-optimization/89703 */
+ 
+ typedef __SIZE_TYPE__ size_t;
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strlen (const char *);
+ extern char c[2];
+ 
+ void
+ foo (char **q)
+ {
+   memcpy (c, "a", 2);
+   q[0] = strlen (c);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89998-1.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89998-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89998-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89998-1.c	Fri Aug 30 12:35:05 2019
***************
*** 0 ****
--- 1,42 ----
+ /* PR tree-optimization/89998 */
+ 
+ unsigned int sprintf (char *str, const char *fmt, ...);
+ unsigned int snprintf (char *str, __SIZE_TYPE__ len, const char *fmt, ...);
+ 
+ int
+ f1 (char *s)
+ {
+   return sprintf (s, "foo");
+ }
+ 
+ int
+ f2 (char *s)
+ {
+   return sprintf (s, "%d", 123);
+ }
+ 
+ int
+ f3 (int *p, char *s)
+ {
+   const char *t = "bar";
+   return sprintf (s, "%s", t);
+ }
+ 
+ int
+ f4 (char *s)
+ {
+   return snprintf (s, 8, "foo");
+ }
+ 
+ int
+ f5 (char *s)
+ {
+   return snprintf (s, 8, "%d", 123);
+ }
+ 
+ int
+ f6 (int *p, char *s)
+ {
+   const char *t = "bar";
+   return snprintf (s, 8, "%s", t);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89998-2.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89998-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr89998-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr89998-2.c	Fri Aug 30 12:35:05 2019
***************
*** 0 ****
--- 1,4 ----
+ /* PR tree-optimization/89998 */
+ /* { dg-additional-options "-fno-printf-return-value" } */
+ 
+ #include "pr89998-1.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr90139.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr90139.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/compile/pr90139.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/compile/pr90139.c	Fri Aug 30 12:44:03 2019
***************
*** 0 ****
--- 1,20 ----
+ /* PR middle-end/90139 */
+ 
+ typedef float __attribute__((vector_size (sizeof (float)))) V;
+ void bar (int, V *);
+ int l;
+ 
+ void
+ foo (void)
+ {
+   V n, b, o;
+   while (1)
+     switch (l)
+       {
+       case 0:
+ 	o = n;
+ 	n = b;
+ 	b = o;
+ 	bar (1, &o);
+       }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/20190820-1.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/20190820-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/20190820-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/20190820-1.c	Tue Aug 20 09:22:32 2019
***************
*** 0 ****
--- 1,111 ----
+ /* PR rtl-optimization/91347 */
+ /* Reported by John David Anglin <danglin@gcc.gnu.org> */
+ 
+ typedef unsigned short __u16;
+ typedef __signed__ int __s32;
+ typedef unsigned int __u32;
+ typedef __signed__ long long __s64;
+ typedef unsigned long long __u64;
+ typedef __u16 u16;
+ typedef __s32 s32;
+ typedef __u32 u32;
+ typedef __u64 u64;
+ typedef _Bool bool;
+ typedef s32 int32_t;
+ typedef u32 uint32_t;
+ typedef u64 uint64_t;
+ 
+ char hex_asc_upper[16];
+ u16 decpair[100];
+ 
+ static __attribute__((noinline, noclone)) void
+ put_dec_full4 (char *buf, unsigned r)
+ {
+  unsigned q;
+  q = (r * 0x147b) >> 19;
+  *((u16 *)buf) = decpair[r - 100*q];
+  buf += 2;
+  *((u16 *)buf) = decpair[q];
+ }
+ 
+ static __attribute__((noinline, noclone)) unsigned
+ put_dec_helper4 (char *buf, unsigned x)
+ {
+   uint32_t q = (x * (uint64_t)0x346DC5D7) >> 43;
+   put_dec_full4(buf, x - q * 10000);
+   return q;
+ }
+ 
+ static __attribute__((noinline, noclone)) char *
+ put_dec (char *buf, unsigned long long n)
+ {
+  uint32_t d3, d2, d1, q, h;
+  d1 = ((uint32_t)n >> 16);
+  h = (n >> 32);
+  d2 = (h ) & 0xffff;
+  d3 = (h >> 16);
+  q = 656 * d3 + 7296 * d2 + 5536 * d1 + ((uint32_t)n & 0xffff);
+  q = put_dec_helper4(buf, q);
+  q += 7671 * d3 + 9496 * d2 + 6 * d1;
+  q = put_dec_helper4(buf+4, q);
+  q += 4749 * d3 + 42 * d2;
+  q = put_dec_helper4(buf+8, q);
+  return buf;
+ }
+ 
+ struct printf_spec {
+  unsigned int type:8;
+  signed int field_width:24;
+  unsigned int flags:8;
+  unsigned int base:8;
+  signed int precision:16;
+ } __attribute__((__packed__));
+ 
+ static __attribute__((noinline, noclone)) char *
+ number (char *buf, char *end, unsigned long long num, struct printf_spec spec)
+ {
+ 
+  char tmp[3 * sizeof(num)] __attribute__((__aligned__(2)));
+  char sign;
+  char locase;
+  int need_pfx = ((spec.flags & 64) && spec.base != 10);
+  int i;
+  bool is_zero = num == 0LL;
+  int field_width = spec.field_width;
+  int precision = spec.precision;
+ 
+  i = 0;
+  if (num < spec.base)
+   tmp[i++] = hex_asc_upper[num] | locase;
+  else if (spec.base != 10) {
+   int mask = spec.base - 1;
+   int shift = 3;
+   if (spec.base == 16)
+    shift = 4;
+   else
+     __builtin_abort ();
+   do {
+    tmp[i++] = (hex_asc_upper[((unsigned char)num) & mask] | locase);
+    num >>= shift;
+   } while (num);
+  } else {
+   i = put_dec(tmp, num) - tmp;
+  }
+  return buf;
+ }
+ 
+ static __attribute__((noinline, noclone)) char *
+ pointer_string (char *buf, char *end, const void *ptr, struct printf_spec spec)
+ {
+  spec.base = 16;
+  spec.flags = 0;
+  return number(buf, end, 100, spec);
+ }
+ 
+ int
+ main (void)
+ {
+   struct printf_spec spec;
+   char *s = pointer_string (0, 0, 0, spec);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/20191023-1.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/20191023-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/20191023-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/20191023-1.c	Wed Oct 23 13:17:34 2019
***************
*** 0 ****
--- 1,73 ----
+ /* PR tree-optimization/92131 */
+ /* Testcase by Armin Rigo <arigo@tunes.org> */
+ 
+ long b, c, d, e, f, i;
+ char g, h, j, k;
+ int *aa;
+ 
+ static void error (void) __attribute__((noipa));
+ static void error (void) { __builtin_abort(); }
+ 
+ static void see_me_here (void) __attribute__((noipa));
+ static void see_me_here (void) {}
+ 
+ static void aaa (void) __attribute__((noipa));
+ static void aaa (void) {}
+ 
+ static void a (void) __attribute__((noipa));
+ static void a (void) {
+   long am, ao;
+   if (aa == 0) {
+     aaa();
+     if (j)
+       goto ay;
+   }
+   return;
+ ay:
+   aaa();
+   if (k) {
+     aaa();
+     goto az;
+   }
+   return;
+ az:
+   if (i)
+     if (g)
+       if (h)
+         if (e)
+           goto bd;
+   return;
+ bd:
+   am = 0;
+   while (am < e) {
+     switch (c) {
+     case 8:
+       goto bh;
+     case 4:
+       return;
+     }
+   bh:
+     if (am >= 0)
+       b = -am;
+     ao = am + b;
+     f = ao & 7;
+     if (f == 0)
+       see_me_here();
+     if (ao >= 0)
+       am++;
+     else
+       error();
+   }
+ }
+ 
+ int main (void)
+ {
+     j++;
+     k++;
+     i++;
+     g++;
+     h++;
+     e = 1;
+     a();
+     return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp	Fri Jul 12 17:15:13 2019
*************** load_lib c-torture.exp
*** 37,43 ****
  torture-init
  set-torture-options $C_TORTURE_OPTIONS {{}} $LTO_TORTURE_OPTIONS
  
! set additional_flags "-fno-tree-loop-distribute-patterns -fno-tracer"
  if [istarget "powerpc-*-darwin*"] {
     lappend additional_flags "-Wl,-multiply_defined,suppress"
  }
--- 37,43 ----
  torture-init
  set-torture-options $C_TORTURE_OPTIONS {{}} $LTO_TORTURE_OPTIONS
  
! set additional_flags "-fno-tree-loop-distribute-patterns -fno-tracer -fno-ipa-ra"
  if [istarget "powerpc-*-darwin*"] {
     lappend additional_flags "-Wl,-multiply_defined,suppress"
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr88739.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr88739.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr88739.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr88739.c	Tue Mar 26 13:18:23 2019
***************
*** 0 ****
--- 1,59 ----
+ /* PR tree-optimization/88739 */
+ #if __SIZEOF_SHORT__ == 2 &&  __SIZEOF_INT__ == 4 && __CHAR_BIT__ == 8
+ struct A
+ {
+   unsigned int a, b, c;
+   unsigned int d : 30;
+   unsigned int e : 2;
+ };
+ 
+ union U
+ {
+   struct A f;
+   unsigned int g[4];
+   unsigned short h[8];
+   unsigned char i[16];
+ };
+ volatile union U v = { .f.d = 0x4089 };
+ 
+ __attribute__((noipa)) void
+ bar (int x)
+ {
+   static int i;
+   switch (i++)
+     {
+     case 0: if (x != v.f.d) __builtin_abort (); break;
+     case 1: if (x != v.f.e) __builtin_abort (); break;
+     case 2: if (x != v.g[3]) __builtin_abort (); break;
+     case 3: if (x != v.h[6]) __builtin_abort (); break;
+     case 4: if (x != v.h[7]) __builtin_abort (); break;
+     default: __builtin_abort (); break;
+     }
+ }
+ 
+ void
+ foo (unsigned int x)
+ {
+   union U u;
+   u.f.d = x >> 2;
+   u.f.e = 0;
+   bar (u.f.d);
+   bar (u.f.e);
+   bar (u.g[3]);
+   bar (u.h[6]);
+   bar (u.h[7]);
+ }
+ 
+ int
+ main ()
+ {
+   foo (0x10224);
+   return 0;
+ }
+ #else
+ int
+ main ()
+ {
+   return 0;
+ }
+ #endif
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr89195.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr89195.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr89195.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr89195.c	Fri Aug 30 11:38:28 2019
***************
*** 0 ****
--- 1,22 ----
+ /* PR rtl-optimization/89195 */
+ /* { dg-require-effective-target int32plus } */
+ 
+ struct S { unsigned i : 24; };
+ 
+ volatile unsigned char x;
+ 
+ __attribute__((noipa)) int
+ foo (struct S d) 
+ {
+   return d.i & x;
+ }
+ 
+ int
+ main ()
+ {
+   struct S d = { 0x123456 };
+   x = 0x75;
+   if (foo (d) != (0x56 & 0x75))
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr90949.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr90949.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr90949.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr90949.c	Fri Jun 28 21:01:56 2019
***************
*** 0 ****
--- 1,42 ----
+ void __attribute__ ((noipa, noinline)) my_puts (const char *str) { }
+ 
+ void __attribute__ ((noipa, noinline)) my_free (void *p) { }
+ 
+ 
+ struct Node
+ {
+   struct Node *child;
+ };
+ 
+ struct Node space[2] = { };
+ 
+ struct Node * __attribute__ ((noipa, noinline)) my_malloc (int bytes)
+ {
+   return &space[0];
+ }
+ 
+ void
+ walk (struct Node *module, int cleanup)
+ {
+   if (module == 0)
+     {
+       return;
+     }
+   if (!cleanup)
+     {
+       my_puts ("No cleanup");
+     }
+   walk (module->child, cleanup);
+   if (cleanup)
+     {
+       my_free (module);
+     }
+ }
+ 
+ int
+ main ()
+ {
+   struct Node *node = my_malloc (sizeof (struct Node));
+   node->child = 0;
+   walk (node, 1);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr91137.c gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr91137.c
*** gcc-7.4.0/gcc/testsuite/gcc.c-torture/execute/pr91137.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.c-torture/execute/pr91137.c	Mon Sep  2 10:10:44 2019
***************
*** 0 ****
--- 1,34 ----
+ long long a;
+ unsigned b;
+ int c[70];
+ int d[70][70];
+ int e;
+ 
+ __attribute__ ((noinline)) void f(long long *g, int p2) {
+   *g = p2;
+ }
+ 
+ __attribute__ ((noinline)) void fn2() {
+   for (int j = 0; j < 70; j++) {
+     for (int i = 0; i < 70; i++) {
+       if (b)
+         c[i] = 0;
+       for (int l = 0; l < 70; l++)
+         d[i][1] = d[l][i];
+     }
+     for (int k = 0; k < 70; k++)
+       e = c[0];
+   }
+ }
+ 
+ int main() {
+   b = 5;
+   for (int j = 0; j < 70; ++j)
+     c[j] = 2075593088;
+   fn2();
+   f(&a, e);
+   if (a)
+     __builtin_abort();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/asan/pr81923.c gcc-7.5.0/gcc/testsuite/gcc.dg/asan/pr81923.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/asan/pr81923.c	Thu Sep  7 20:29:04 2017
--- gcc-7.5.0/gcc/testsuite/gcc.dg/asan/pr81923.c	Mon Dec 24 12:38:51 2018
***************
*** 1,7 ****
  /* PR sanitizer/81923 */
  /* { dg-do link } */
  
! int foobar __asm (__USER_LABEL_PREFIX__ "barbaz") = 34;
  
  int
  main ()
--- 1,10 ----
  /* PR sanitizer/81923 */
  /* { dg-do link } */
  
! #define STR1(X) #X
! #define STR2(X) STR1(X)
! 
! int foobar __asm (STR2(__USER_LABEL_PREFIX__) "barbaz") = 34;
  
  int
  main ()
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/asm-qual-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/asm-qual-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/asm-qual-1.c	Thu Jul 12 22:57:32 2007
--- gcc-7.5.0/gcc/testsuite/gcc.dg/asm-qual-1.c	Wed Jan  2 22:49:04 2019
***************
*** 1,4 ****
! /* Test that qualifiers other than volatile are ignored on asm.  */
  /* Origin: Joseph Myers <joseph@codesourcery.com> */
  /* { dg-do compile } */
  /* { dg-options "-std=gnu99" } */
--- 1,4 ----
! /* Test that qualifiers other than volatile are disallowed on asm.  */
  /* Origin: Joseph Myers <joseph@codesourcery.com> */
  /* { dg-do compile } */
  /* { dg-options "-std=gnu99" } */
*************** void
*** 7,12 ****
  f (void)
  {
    asm volatile ("");
!   asm const (""); /* { dg-warning "const qualifier ignored on asm" } */
!   asm restrict (""); /* { dg-warning "restrict qualifier ignored on asm" } */
  }
--- 7,14 ----
  f (void)
  {
    asm volatile ("");
! 
!   asm const (""); /* { dg-warning {'const' is not an asm qualifier} } */
! 
!   asm restrict (""); /* { dg-warning {'restrict' is not an asm qualifier} } */
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/asm-qual-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/asm-qual-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/asm-qual-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/asm-qual-2.c	Wed Jan  2 22:49:04 2019
***************
*** 0 ****
--- 1,46 ----
+ /* Test that qualifiers on asm are allowed in any order.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu99" } */
+ 
+ void
+ f (void)
+ {
+   asm volatile goto ("" :::: lab);
+   asm volatile inline ("" :::);
+   asm inline volatile ("" :::);
+   asm inline goto ("" :::: lab);
+   asm goto volatile ("" :::: lab);
+   asm goto inline ("" :::: lab);
+ 
+   asm volatile inline goto ("" :::: lab);
+   asm volatile goto inline ("" :::: lab);
+   asm inline volatile goto ("" :::: lab);
+   asm inline goto volatile ("" :::: lab);
+   asm goto volatile inline ("" :::: lab);
+   asm goto inline volatile ("" :::: lab);
+ 
+   /* Duplicates are not allowed.  */
+   asm goto volatile volatile ("" :::: lab);  /* { dg-error "" } */
+   asm volatile goto volatile ("" :::: lab);  /* { dg-error "" } */
+   asm volatile volatile goto ("" :::: lab);  /* { dg-error "" } */
+   asm goto goto volatile ("" :::: lab);  /* { dg-error "" } */
+   asm goto volatile goto ("" :::: lab);  /* { dg-error "" } */
+   asm volatile goto goto ("" :::: lab);  /* { dg-error "" } */
+ 
+   asm inline volatile volatile ("" :::);  /* { dg-error "" } */
+   asm volatile inline volatile ("" :::);  /* { dg-error "" } */
+   asm volatile volatile inline ("" :::);  /* { dg-error "" } */
+   asm inline inline volatile ("" :::);  /* { dg-error "" } */
+   asm inline volatile inline ("" :::);  /* { dg-error "" } */
+   asm volatile inline inline ("" :::);  /* { dg-error "" } */
+ 
+   asm goto inline inline ("" :::: lab);  /* { dg-error "" } */
+   asm inline goto inline ("" :::: lab);  /* { dg-error "" } */
+   asm inline inline goto ("" :::: lab);  /* { dg-error "" } */
+   asm goto goto inline ("" :::: lab);  /* { dg-error "" } */
+   asm goto inline goto ("" :::: lab);  /* { dg-error "" } */
+   asm inline goto goto ("" :::: lab);  /* { dg-error "" } */
+ 
+ lab:
+   ;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/asm-qual-3.c gcc-7.5.0/gcc/testsuite/gcc.dg/asm-qual-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/asm-qual-3.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/asm-qual-3.c	Wed Jan  2 22:49:04 2019
***************
*** 0 ****
--- 1,9 ----
+ /* Test that asm-qualifiers are not allowed on toplevel asm.  */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu99" } */
+ 
+ asm const ("");    /* { dg-error {expected '\(' before 'const'} } */
+ asm volatile (""); /* { dg-error {expected '\(' before 'volatile'} } */
+ asm restrict (""); /* { dg-error {expected '\(' before 'restrict'} } */
+ asm inline ("");   /* { dg-error {expected '\(' before 'inline'} } */
+ asm goto ("");     /* { dg-error {expected '\(' before 'goto'} } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/autopar/pr91162.c gcc-7.5.0/gcc/testsuite/gcc.dg/autopar/pr91162.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/autopar/pr91162.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/autopar/pr91162.c	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile { target int128 } } */
+ /* { dg-options "-O -ftree-parallelize-loops=2 -fno-tree-dominator-opts" } */
+ 
+ void
+ zf (__int128 ct)
+ {
+   __int128 *rk = &ct;
+ 
+   if (0)
+     {
+       int jj;
+ 
+ t9:
+       for (jj = 0; jj < 60; ++jj)
+ 	{
+ 	}
+ 
+       __builtin_unreachable ();
+     }
+ 
+   while (*rk < 1)
+     ++*rk;
+ 
+   goto t9;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/cpp/isysroot-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/cpp/isysroot-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/cpp/isysroot-1.c	Tue Nov 30 19:38:15 2004
--- gcc-7.5.0/gcc/testsuite/gcc.dg/cpp/isysroot-1.c	Mon Sep 16 00:30:59 2019
***************
*** 1,10 ****
  /* { dg-options "-isysroot ${srcdir}/gcc.dg/cpp" } */
  /* { dg-do compile  { target *-*-darwin* } } */
  
! #include <stdio.h>
  int main()
  {
!   /* Special stdio.h supplies function foo.  */
    void (*x)(void) = foo;
    return 0;
  }
--- 1,17 ----
  /* { dg-options "-isysroot ${srcdir}/gcc.dg/cpp" } */
  /* { dg-do compile  { target *-*-darwin* } } */
  
! /* For the test to succeed there needs to be some header that is to be found
!    in the 'expected' place i.e. <sysroot>/usr/include/.  It's important that
!    it is not the name of a header for which fixincludes have been applied,
!    since such headers will be found in the gcc include-fixed dir and, in
!    general, reference additional headers.  The dummy sysroot will prevent the
!    additional headers from being found, resulting in a failed test.  So use
!    a header name we don't expect to see. */
! #include <example.h>
  int main()
  {
!   /* Special example.h supplies function foo.  */
    void (*x)(void) = foo;
    return 0;
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/cpp/usr/include/example.h gcc-7.5.0/gcc/testsuite/gcc.dg/cpp/usr/include/example.h
*** gcc-7.4.0/gcc/testsuite/gcc.dg/cpp/usr/include/example.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/cpp/usr/include/example.h	Mon Sep 16 00:30:59 2019
***************
*** 0 ****
--- 1,4 ----
+ /* Used by gcc.dg/cpp/isysroot-1.c to test isysroot.  */
+ void foo()
+ {
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h gcc-7.5.0/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h
*** gcc-7.4.0/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h	Wed Nov 24 17:47:32 2004
--- gcc-7.5.0/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- /* Used by gcc.dg/cpp/isysroot-1.c to test isysroot.  */
- void foo()
- {
- }
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-minversion-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-minversion-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-minversion-1.c	Sun Nov 27 15:07:22 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-minversion-1.c	Fri Sep 13 21:45:28 2019
***************
*** 1,6 ****
  /* Basic test for -mmacosx-version-min switch on Darwin.  */
  /* { dg-options "-mmacosx-version-min=10.5" } */
! /* { dg-do run { target *-*-darwin* } } */
  
  int
  main ()
--- 1,6 ----
  /* Basic test for -mmacosx-version-min switch on Darwin.  */
  /* { dg-options "-mmacosx-version-min=10.5" } */
! /* { dg-do compile { target *-*-darwin* } } */
  
  int
  main ()
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-minversion-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-minversion-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-minversion-2.c	Sun Nov 27 15:07:22 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-minversion-2.c	Fri Sep 13 21:45:28 2019
***************
*** 1,6 ****
  /* Basic test for -mmacosx-version-min switch on Darwin.  */
  /* { dg-options "-mmacosx-version-min=10.1 -mmacosx-version-min=10.5" } */
! /* { dg-do run { target *-*-darwin* } } */
  
  int
  main ()
--- 1,6 ----
  /* Basic test for -mmacosx-version-min switch on Darwin.  */
  /* { dg-options "-mmacosx-version-min=10.1 -mmacosx-version-min=10.5" } */
! /* { dg-do compile { target *-*-darwin* } } */
  
  int
  main ()
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c	Wed Sep  4 19:17:41 2019
***************
*** 0 ****
--- 1,26 ----
+ /* Test that we can handle leading-zeros on mmacosx-version-min for invocations
+    including linking (so that spec processing works).  To make sure that any
+    necessary target libs are present we make this specific to the target version
+    being built.  */
+ /* { dg-do link { target *-*-darwin* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.04.11 -DCHECK=1049" { target *-*-darwin8* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.05.08 -DCHECK=1058" { target *-*-darwin9* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.06.08 -DCHECK=1068" { target *-*-darwin10* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.07.05 -DCHECK=1075" { target *-*-darwin11* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.08.05 -DCHECK=1085" { target *-*-darwin12* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.09.05 -DCHECK=1095" { target *-*-darwin13* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.010.03 -DCHECK=101003" { target *-*-darwin14* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.011.06 -DCHECK=101106" { target *-*-darwin15* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.012.06 -DCHECK=101206" { target *-*-darwin16* } } */
+ /* { dg-additional-options "-mmacosx-version-min=010.013.06 -DCHECK=101306" { target *-*-darwin17* } } */
+ /* This next test covers 10.18 and (currently unreleased) 10.19 for now. */  
+ /* { dg-additional-options "-mmacosx-version-min=010.014.05 -DCHECK=101405" { target *-*-darwin1[89]* } } */
+ 
+ int
+ main ()
+ {
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ != CHECK
+   fail me;
+ #endif
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-weakimport-3.c gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-weakimport-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/darwin-weakimport-3.c	Fri Oct 13 21:37:12 2006
--- gcc-7.5.0/gcc/testsuite/gcc.dg/darwin-weakimport-3.c	Fri Sep  6 15:56:18 2019
***************
*** 1,5 ****
  /* { dg-do compile { target *-*-darwin* } } */
! /* { dg-options "-fno-asynchronous-unwind-tables" } */
  /* { dg-require-weak "" } */
  
  /* { dg-final { scan-assembler-not "coalesced" } } */
--- 1,20 ----
  /* { dg-do compile { target *-*-darwin* } } */
! 
! /* Here we want to test if "foo" gets placed into a coalesced
!    section (it should not).
! 
!    However, for i386, and PIC code we have a "get_pc thunk" that
!    is (correctly) placed in a coalesced section when using an older
!    linker - also unwind tables are emitted into coalesced.
! 
!    With modern linkers this is moot, since even weak symbols
!    are emitted into the regular sections.
! 
!    To avoid the unwind tables -fno-asynchronous-unwind-tables.
!    To ensure that we emit code for an older linker -mtarget-linker
!    To avoid the get_pc thunk optimise at least O1.  */
! 
! /* { dg-options "-fno-asynchronous-unwind-tables -O1 -mtarget-linker 85.2" } */
  /* { dg-require-weak "" } */
  
  /* { dg-final { scan-assembler-not "coalesced" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c gcc-7.5.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c	Fri Aug 30 11:24:34 2019
***************
*** 0 ****
--- 1,7 ----
+ /* PR debug/88644 */
+ /* { dg-do compile } */
+ /* { dg-options "-gdwarf-4 -dA -gpubnames" } */
+ 
+ char array[1];
+ 
+ /* { dg-final { scan-assembler-not {\msizetype} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/debug/pr89704.c gcc-7.5.0/gcc/testsuite/gcc.dg/debug/pr89704.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/debug/pr89704.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/debug/pr89704.c	Fri Aug 30 12:20:12 2019
***************
*** 0 ****
--- 1,14 ----
+ /* PR debug/89704 */
+ /* { dg-do compile } */
+ 
+ typedef __INTPTR_TYPE__ intptr_t;
+ 
+ int
+ foo (void)
+ {
+   lab1:;
+   lab2:;
+   static int i = (intptr_t) &&lab1 - (intptr_t) &&lab2;
+   static int j = (intptr_t) &&lab1 - (intptr_t) &&lab2;
+   return i;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/cancel-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/cancel-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/cancel-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/cancel-1.c	Fri Aug 30 11:31:02 2019
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ 
+ struct S { int s; } s;
+ 
+ void
+ foo (void)
+ {
+   #pragma omp parallel
+   {
+     #pragma omp cancel parallel if (s)	/* { dg-error "used struct type value where scalar is required" } */
+   }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr78884.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr78884.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr78884.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr78884.c	Fri Aug 30 12:48:57 2019
***************
*** 0 ****
--- 1,16 ----
+ /* PR middle-end/78884 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fopenmp" } */
+ 
+ void bar (int *);
+ 
+ void
+ foo (int n)
+ {
+ #pragma omp simd
+   for (int i = 0; i < 1024; i++)
+     {
+       int vla[n];
+       bar (vla);
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr85594.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr85594.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr85594.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr85594.c	Fri Aug 30 11:23:16 2019
***************
*** 0 ****
--- 1,5 ----
+ /* PR middle-end/85594 */
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fwrapv" } */
+ 
+ #include "pr81768-2.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87887-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87887-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87887-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87887-1.c	Fri Aug 30 11:36:58 2019
***************
*** 0 ****
--- 1,26 ----
+ /* PR middle-end/87887 */
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_simd_clones } */
+ /* { dg-additional-options "-w" } */
+ 
+ struct S { int n; };
+ #pragma omp declare simd
+ struct S
+ foo (int x)
+ {
+   return (struct S) { x };
+ }
+ 
+ #pragma omp declare simd
+ int
+ bar (struct S x)
+ {
+   return x.n;
+ }
+ 
+ #pragma omp declare simd uniform (x)
+ int
+ baz (int w, struct S x, int y)
+ {
+   return w + x.n + y;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87887-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87887-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87887-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87887-2.c	Fri Aug 30 11:36:58 2019
***************
*** 0 ****
--- 1,25 ----
+ /* PR middle-end/87887 */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target vect_simd_clones } */
+ 
+ struct S { int n; };
+ #pragma omp declare simd
+ struct S
+ foo (int x)		/* { dg-warning "unsupported return type 'struct S' for simd" } */
+ {
+   return (struct S) { x };
+ }
+ 
+ #pragma omp declare simd
+ int
+ bar (struct S x)	/* { dg-warning "unsupported argument type 'struct S' for simd" } */
+ {
+   return x.n;
+ }
+ 
+ #pragma omp declare simd uniform (x)
+ int
+ baz (int w, struct S x, int y)
+ {
+   return w + x.n + y;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87895-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87895-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87895-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87895-1.c	Fri Aug 30 11:12:23 2019
***************
*** 0 ****
--- 1,19 ----
+ /* PR tree-optimization/87895 */
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O0" } */
+ 
+ #pragma omp declare simd
+ int
+ foo (int x)
+ {
+   if (x == 0)
+     return 0;
+ }
+ 
+ #pragma omp declare simd
+ int
+ bar (int *x, int y)
+ {
+   if ((y == 0) ? (*x = 0) : *x)
+     return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87895-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87895-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87895-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87895-2.c	Fri Aug 30 11:12:23 2019
***************
*** 0 ****
--- 1,5 ----
+ /* PR tree-optimization/87895 */
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O1" } */
+ 
+ #include "pr87895-1.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87895-3.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87895-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr87895-3.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr87895-3.c	Fri Aug 30 11:12:23 2019
***************
*** 0 ****
--- 1,18 ----
+ /* PR tree-optimization/87895 */
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O2" } */
+ 
+ #pragma omp declare simd
+ int foo (int x) __attribute__((noreturn));
+ 
+ #pragma omp declare simd
+ int
+ bar (int x, int y)
+ {
+   if (y == 1)
+     foo (x + 2);
+   if (y == 10)
+     foo (x + 6);
+   if (y != 25)
+     return 4;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88105.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88105.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88105.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88105.c	Tue Mar 26 11:18:26 2019
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fopenmp -O -fexceptions -fnon-call-exceptions -fno-tree-fre" } */
+ 
+ int
+ s0 (void)
+ {
+   int g6, oh = 0;
+   int *a6 = &g6;
+ 
+   (void) a6;
+ 
+ #pragma omp parallel for
+   for (g6 = 0; g6 < 1; ++g6)
+     {
+       int zk;
+ 
+       for (zk = 0; zk < 1; ++zk)
+         {
+           oh += zk / (zk + 1);
+ 
+           for (;;)
+             {
+             }
+         }
+ 
+       a6 = &zk;
+     }
+ 
+   return oh;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88107.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88107.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88107.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88107.c	Fri Aug 30 11:35:08 2019
***************
*** 0 ****
--- 1,35 ----
+ /* PR tree-optimization/88107 */
+ /* { dg-do compile { target fgraphite } } */
+ /* { dg-require-effective-target vect_simd_clones } */
+ /* { dg-options "-O2 -fexceptions -floop-nest-optimize -fnon-call-exceptions -fopenmp-simd -ftree-parallelize-loops=2" } */
+ 
+ #define N 1024
+ int a[N], b[N];
+ long int c[N];
+ unsigned char d[N];
+ 
+ #pragma omp declare simd notinbranch
+ __attribute__((noinline)) static int
+ foo (long int a, int b, int c)
+ {
+   return a + b + c;
+ }
+ 
+ #pragma omp declare simd notinbranch
+ __attribute__((noinline)) static long int
+ bar (int a, int b, long int c)
+ {
+   return a + b + c;
+ }
+ 
+ void
+ baz (void)
+ {
+   int i;
+   #pragma omp simd
+   for (i = 0; i < N; i++)
+     a[i] = foo (c[i], a[i], b[i]) + 6;
+   #pragma omp simd
+   for (i = 0; i < N; i++)
+     c[i] = bar (a[i], b[i], c[i]) * 2;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88415.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88415.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88415.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88415.c	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fexceptions -fnon-call-exceptions -fopenmp -fsignaling-nans -funsafe-math-optimizations -fno-associative-math" } */
+ 
+ void
+ lx (_Complex int *yn)
+ {
+   int mj;
+ 
+ #pragma omp for
+   for (mj = 0; mj < 1; ++mj)
+     yn[mj] += 1;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88553.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88553.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr88553.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr88553.c	Fri Aug 30 11:23:16 2019
***************
*** 0 ****
--- 1,5 ----
+ /* PR middle-end/88553 */
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O1 -ftree-loop-vectorize -fwrapv" } */
+ 
+ #include "pr81768-2.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89104.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89104.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89104.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89104.c	Fri Aug 30 11:34:08 2019
***************
*** 0 ****
--- 1,11 ----
+ /* PR c++/66676 */
+ /* PR ipa/89104 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fopenmp-simd" } */
+ 
+ #pragma omp declare simd uniform (x) aligned (x)
+ int
+ foo (int *x, int y)
+ {
+   return x[y];
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89246-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89246-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89246-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89246-1.c	Fri Aug 30 11:50:04 2019
***************
*** 0 ****
--- 1,19 ----
+ /* PR middle-end/89246 */
+ /* { dg-do link { target { int128 && vect_simd_clones } } } */
+ /* { dg-options "-O2 -fopenmp-simd -w" } */
+ /* { dg-additional-sources "pr89246-2.c" } */
+ 
+ #pragma omp declare simd
+ int foo (__int128 x)
+ {
+   return x;
+ }
+ 
+ #pragma omp declare simd
+ extern int bar (int x);
+ 
+ int
+ main ()
+ {
+   return foo (0) + bar (0);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89246-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89246-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89246-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89246-2.c	Fri Aug 30 11:50:04 2019
***************
*** 0 ****
--- 1,13 ----
+ /* PR middle-end/89246 */
+ /* { dg-do compile { target int128 } } */
+ /* { dg-options "-O0 -fno-openmp -fno-openmp-simd" } */
+ 
+ #pragma omp declare simd
+ extern int foo (__int128 x);
+ 
+ #pragma omp declare simd
+ int
+ bar (int x)
+ {
+   return x + foo (0);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89796.c gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89796.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/gomp/pr89796.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/gomp/pr89796.c	Fri Aug 30 12:32:15 2019
***************
*** 0 ****
--- 1,23 ----
+ /* PR c++/89796 */
+ /* { dg-do compile } */
+ /* { dg-additional-options "-Wunused-value" } */
+ 
+ int
+ f1 (int *p)
+ {
+   int r;
+   #pragma omp atomic capture		/* { dg-bogus "value computed is not used" } */
+   { r = *p; (*p)++; }
+   return r;
+ }
+ 
+ int
+ f2 (int *p)
+ {
+   int s
+     = ({ int r;
+ 	 #pragma omp atomic capture	/* { dg-bogus "value computed is not used" } */
+ 	 { r = *p; (*p)++; }
+ 	 r; });
+   return s;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/graphite/pr84552.c gcc-7.5.0/gcc/testsuite/gcc.dg/graphite/pr84552.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/graphite/pr84552.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/graphite/pr84552.c	Tue Mar 26 11:18:26 2019
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -floop-nest-optimize -fno-tree-copy-prop -fno-tree-fre -fno-tree-loop-ivcanon" } */
+ 
+ int cx;
+ 
+ int
+ e6 (int pj, int xe)
+ {
+   for (cx = 0; cx < 2; ++cx)
+     while (xe < 1)
+       {
+ 	for (cx = 0; cx < 2; ++cx)
+ 	  pj *= 2;
+ 
+ 	if (cx != 0)
+ 	  goto o3;
+ 
+ 	++xe;
+       }
+ 
+ o3:
+   return pj;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/inline-40.c gcc-7.5.0/gcc/testsuite/gcc.dg/inline-40.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/inline-40.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/inline-40.c	Wed Jan 16 21:40:33 2019
***************
*** 0 ****
--- 1,49 ----
+ /* Test inline functions declared in inner scopes.  Bugs 88720 and 88726.  */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ void
+ inline_1 (void)
+ {
+ }
+ 
+ void
+ inline_2 (void)
+ {
+ }
+ 
+ static void
+ inline_static_1 (void)
+ {
+ }
+ 
+ static void
+ inline_static_2 (void)
+ {
+ }
+ 
+ static void inline_static_3 (void);
+ static void inline_static_4 (void);
+ 
+ static void
+ test (void)
+ {
+   inline void inline_1 (void);
+   extern inline void inline_2 (void);
+   inline void inline_3 (void);
+   extern inline void inline_4 (void);
+   inline void inline_static_1 (void);
+   extern inline void inline_static_2 (void);
+   inline void inline_static_3 (void);
+   extern inline void inline_static_4 (void);
+ }
+ 
+ void
+ inline_3 (void)
+ {
+ }
+ 
+ void
+ inline_4 (void)
+ {
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/inline-41.c gcc-7.5.0/gcc/testsuite/gcc.dg/inline-41.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/inline-41.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/inline-41.c	Wed Jan 16 21:40:33 2019
***************
*** 0 ****
--- 1,49 ----
+ /* Test inline functions declared in inner scopes.  Bugs 88720 and 88726.  */
+ /* { dg-do compile } */
+ /* { dg-options "-fgnu89-inline" } */
+ 
+ void
+ inline_1 (void)
+ {
+ }
+ 
+ void
+ inline_2 (void)
+ {
+ }
+ 
+ static void
+ inline_static_1 (void)
+ {
+ }
+ 
+ static void
+ inline_static_2 (void)
+ {
+ }
+ 
+ static void inline_static_3 (void);
+ static void inline_static_4 (void);
+ 
+ static void
+ test (void)
+ {
+   inline void inline_1 (void);
+   extern inline void inline_2 (void);
+   inline void inline_3 (void);
+   extern inline void inline_4 (void);
+   inline void inline_static_1 (void);
+   extern inline void inline_static_2 (void);
+   inline void inline_static_3 (void);
+   extern inline void inline_static_4 (void);
+ }
+ 
+ void
+ inline_3 (void)
+ {
+ }
+ 
+ void
+ inline_4 (void)
+ {
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/ipa/ipcp-5.c gcc-7.5.0/gcc/testsuite/gcc.dg/ipa/ipcp-5.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/ipa/ipcp-5.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/ipa/ipcp-5.c	Thu Mar 14 16:54:43 2019
***************
*** 0 ****
--- 1,45 ----
+ /* Test that estimated local cloning time benefit of extern inline functions is
+    zero.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fdump-ipa-cp -fno-early-inlining"  } */
+ /* { dg-add-options bind_pic_locally } */
+ 
+ extern int get_int (void);
+ extern void use_stuff (int);
+ 
+ int arr[10];
+ 
+ inline void
+ f (int a)
+ {
+   arr[0] += a + 5;
+   arr[1] += a + 50;
+   arr[2] += a - 3;
+   arr[3] += a;
+   arr[4] += a + 21;
+   arr[5] += a + 900;
+   arr[6] += a + 2;
+   arr[7] += a + 3456;
+   arr[8] += a + 3;
+   arr[9] += a + 32;
+   use_stuff (a);
+ }
+ 
+ 
+ int
+ entry (void)
+ {
+   int i;
+   for (i = 0; i < 100; i++)
+     f (7);
+   for (i = 0; i < 100; i++)
+     f (get_int ());
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-ipa-dump "loc_time: 0" "cp" } } */
+ /* { dg-final { scan-ipa-dump-not "replacing param.*with const" "cp"  } } */
+ 
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/ipa/pr88214.c gcc-7.5.0/gcc/testsuite/gcc.dg/ipa/pr88214.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/ipa/pr88214.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/ipa/pr88214.c	Wed Jan 16 15:41:07 2019
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ void i();
+   short a;
+   void b(e) char * e;
+   {
+     i();
+     b(a);
+   }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/lto/pr85248_0.c gcc-7.5.0/gcc/testsuite/gcc.dg/lto/pr85248_0.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/lto/pr85248_0.c	Tue Apr 24 15:18:25 2018
--- gcc-7.5.0/gcc/testsuite/gcc.dg/lto/pr85248_0.c	Mon Dec 24 12:38:51 2018
***************
*** 2,9 ****
  /* { dg-lto-do run } */
  /* { dg-lto-options { { -flto -O2 } } } */
  
! extern void test_alias (int s, int e) __asm__ (__USER_LABEL_PREFIX__ "test");
! extern void test_noreturn (int s, int e) __asm__ (__USER_LABEL_PREFIX__ "test")
    __attribute__ ((__noreturn__));
  
  extern inline __attribute__ ((__always_inline__, __gnu_inline__)) void
--- 2,14 ----
  /* { dg-lto-do run } */
  /* { dg-lto-options { { -flto -O2 } } } */
  
! #define STR1(X) #X
! #define STR2(X) STR1(X)
! 
! extern void test_alias (int s, int e) 
!   __asm__ (STR2(__USER_LABEL_PREFIX__) "test");
! extern void test_noreturn (int s, int e)
!   __asm__ (STR2(__USER_LABEL_PREFIX__)  "test")
    __attribute__ ((__noreturn__));
  
  extern inline __attribute__ ((__always_inline__, __gnu_inline__)) void
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/memcmp-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/memcmp-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/memcmp-1.c	Tue Jan 31 14:03:56 2017
--- gcc-7.5.0/gcc/testsuite/gcc.dg/memcmp-1.c	Mon Dec 24 12:38:51 2018
***************
*** 8,15 ****
  #include <string.h>
  #include <stdint.h>
  
! int lib_memcmp(const void *a, const void *b, size_t n) asm("memcmp");
! int lib_strncmp(const char *a, const char *b, size_t n) asm("strncmp");
  
  #ifndef NRAND
  #define NRAND 10000
--- 8,20 ----
  #include <string.h>
  #include <stdint.h>
  
! #define STR1(X) #X
! #define STR2(X) STR1(X)
! 
! int lib_memcmp(const void *a, const void *b, size_t n)
!  asm(STR2(__USER_LABEL_PREFIX__) "memcmp");
! int lib_strncmp(const char *a, const char *b, size_t n)
!  asm(STR2(__USER_LABEL_PREFIX__) "strncmp");
  
  #ifndef NRAND
  #define NRAND 10000
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/nested-func-12.c gcc-7.5.0/gcc/testsuite/gcc.dg/nested-func-12.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/nested-func-12.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/nested-func-12.c	Fri Aug 30 11:26:01 2019
***************
*** 0 ****
--- 1,48 ----
+ /* PR target/88620 */
+ /* { dg-do run } */
+ /* { dg-options "-Ofast --param ipa-cp-eval-threshold=0 -fno-guess-branch-probability -fno-inline-small-functions" } */
+ /* { dg-require-effective-target alloca } */
+ 
+ void
+ foo (int n)
+ {
+   struct S { int a[n]; };
+ 
+   struct S
+   fn (void)
+   {
+     struct S s;
+     s.a[0] = 42;
+     return s;
+   }
+ 
+   auto struct S
+   fn2 (void)
+   {
+     return fn ();
+   }
+ 
+   struct S x;
+   fn ();
+   fn2 ();
+   x = fn ();
+ 
+   if (x.a[0] != 42)
+     __builtin_abort ();
+ 
+   if (fn ().a[0] != 42)
+     __builtin_abort ();
+ 
+   __typeof__ (fn ()) *p = &x;
+   if (p->a[0] != 42)
+     __builtin_abort ();
+ 
+   if (fn2 ().a[0] != 42)
+     __builtin_abort ();
+ }
+ 
+ int
+ main (void)
+ {
+   foo (1);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr87929.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr87929.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr87929.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr87929.c	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fexceptions -fnon-call-exceptions -fsignaling-nans" } */
+ 
+ #define complex __complex__
+ #define _Complex_I (1.0iF)
+ 
+ extern void f2c_4d__( complex float *, complex float *);
+ extern void abort (void);
+ 
+ void f2c_4c__(void)
+ {
+   complex float x,ret_val;
+   x = 1234 + 5678 * _Complex_I;
+   f2c_4d__(&ret_val,&x);
+   if ( x != ret_val ) abort();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr88074-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr88074-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr88074-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr88074-2.c	Fri Aug 30 12:07:12 2019
***************
*** 0 ****
--- 1,17 ----
+ /* PR middle-end/88074 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ /* { dg-add-options float128 } */
+ /* { dg-require-effective-target float128 } */
+ /* { dg-final { scan-tree-dump-not "link_error " "optimized" } } */
+ 
+ extern void link_error (void);
+ int
+ main ()
+ {
+   if (((__FLT128_MAX__ * 0.5 + __FLT128_MAX__ * 0.5i)
+        / (__FLT128_MAX__ * 0.25 + __FLT128_MAX__ * 0.25i))
+       != (_Complex _Float128) 2)
+     link_error ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr88074.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr88074.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr88074.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr88074.c	Fri Aug 30 12:07:12 2019
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O" } */
+ 
+ #include <complex.h>
+ 
+ int main()
+ {
+   _Complex double x;
+   __real x = 3.091e+8;
+   __imag x = -4.045e+8;
+   /* This used to spend huge amounts of compile-time inside mpc.  */
+   volatile _Complex double y = ctan (x);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr88563.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr88563.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr88563.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr88563.c	Fri Aug 30 11:22:27 2019
***************
*** 0 ****
--- 1,15 ----
+ /* PR rtl-optimization/88563 */
+ /* { dg-do run { target int128 } } */
+ /* { dg-options "-O2 -fno-code-hoisting -fno-tree-ccp -fno-tree-dominator-opts -fno-tree-forwprop -fno-tree-fre -fno-tree-pre -fno-tree-vrp" } */
+ 
+ int
+ main ()
+ {
+ #if __SIZEOF_LONG_LONG__ == 8 && __SIZEOF_INT128__ == 16 && __CHAR_BIT__ == 8
+   unsigned __int128 a = 5;
+   __builtin_mul_overflow (0xffffffffffffffffULL, (unsigned long long) a, &a);
+   if (a != ((unsigned __int128)4 << 64 | 0xfffffffffffffffb))
+     __builtin_abort ();
+ #endif
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr88568.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr88568.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr88568.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr88568.c	Fri Aug 30 11:26:42 2019
***************
*** 0 ****
--- 1,4 ----
+ /* PR c/88568 */
+ /* { dg-do compile } */
+ /* { dg-require-dll "" } */
+ __attribute__((dllimport)) struct S var;	/* { dg-bogus "storage size of .var. isn.t known" } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr88594.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr88594.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr88594.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr88594.c	Fri Aug 30 11:25:16 2019
***************
*** 0 ****
--- 1,16 ----
+ /* PR target/88594 */
+ /* { dg-do compile { target int128 } } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fno-tree-forwprop -fno-tree-vrp" } */
+ 
+ __int128
+ foo (__int128 x, __int128 *y)
+ {
+   int a;
+   __int128 z, r;
+   for (a = 0; a < 17; ++a)
+     ;
+   z = x / a;
+   r = x % a;
+   *y = z;
+   return r;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr88870.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr88870.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr88870.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr88870.c	Fri Aug 30 11:27:33 2019
***************
*** 0 ****
--- 1,23 ----
+ /* PR rtl-optimization/88870 */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fexceptions -fnon-call-exceptions -ftrapv -fno-tree-dominator-opts" } */
+ 
+ int a, b;
+ 
+ void
+ foo (int *x)
+ {
+   int c = 0;
+   {
+     int d;
+     x = &c;
+     for (;;)
+       {
+         x = &d;
+         b = 0;
+         d = c + 1;
+         b = c = 1;
+         ++a;
+       }
+   }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89037.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89037.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89037.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89037.c	Tue May  7 08:49:05 2019
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-options "" } */
+ 
+ struct s
+ {
+   __int128 y : 66;
+ };
+ typedef struct s T;
+ T a[] = { 1, 10000, 0x12345, 0xff000001, 1ULL << 63, (__int128) 1 << 64,
+ 	  ((__int128) 1 << 64) | 1 };
+ 
+ int
+ main (void)
+ {
+   if (a[0].y != 1
+       || a[1].y != 10000
+       || a[2].y != 0x12345
+       || a[3].y != 0xff000001
+       || a[4].y != (1ULL << 63)
+       || a[5].y != ((__int128) 1 << 64)
+       || a[6].y != (((__int128) 1 << 64) | 1))
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89278.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89278.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89278.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89278.c	Fri Aug 30 12:02:02 2019
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/89278 */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -ftrapv -ftree-loop-distribute-patterns --param max-loop-header-insns=2" } */
+ 
+ void
+ foo (int *w, int x, int y, int z)
+ {
+   while (x < y + z)
+     {
+       w[x] = 0;
+       ++x;
+     }
+ }
+ 
+ void
+ bar (int *__restrict u, int *__restrict w, int x, int y, int z)
+ {
+   while (x < y + z)
+     {
+       w[x] = u[x];
+       ++x;
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89314.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89314.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89314.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89314.c	Fri Aug 30 11:52:29 2019
***************
*** 0 ****
--- 1,13 ----
+ /* PR tree-optimization/89314 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ extern __SIZE_TYPE__ strlen (const float *);
+ void bar (void);
+ 
+ void
+ foo (float *s)
+ {
+   if (strlen (s) > 0)
+     bar ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89342.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89342.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89342.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89342.c	Fri Aug 30 12:01:02 2019
***************
*** 0 ****
--- 1,11 ----
+ /* PR other/89342 */
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ __attribute__((optimize("Ofast")))
+ void foo (void)
+ {
+   __attribute__((optimize("no-inline")))
+   void bar (void) {}
+   bar ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89354.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89354.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89354.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89354.c	Fri Aug 30 11:59:10 2019
***************
*** 0 ****
--- 1,22 ----
+ /* PR rtl-optimization/89354 */
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ /* { dg-additional-options "-msse2" { target sse2_runtime } } */
+ 
+ static unsigned long long q = 0;
+ 
+ __attribute__((noinline, noclone)) static void
+ foo (void)
+ {
+   q = (q & ~0x1ffffffffULL) | 0x100000000ULL;
+ }
+ 
+ int
+ main ()
+ {
+   __asm volatile ("" : "+m" (q));
+   foo ();
+   if (q != 0x100000000ULL)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89520-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89520-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89520-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89520-1.c	Fri Aug 30 12:11:06 2019
***************
*** 0 ****
--- 1,13 ----
+ /* PR c/89520 */
+ /* { dg-do compile } */
+ /* { dg-options "-Ofast -w" } */
+ 
+ #define A(name) __typeof (__builtin_##name (0)) name (); long name##1 () { return name (); }
+ #define B(name) A(name) A(name##f) A(name##l)
+ B (ceil)
+ B (floor)
+ B (round)
+ B (trunc)
+ B (nearbyint)
+ B (rint)
+ B (logb)
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89520-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89520-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89520-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89520-2.c	Fri Aug 30 12:11:06 2019
***************
*** 0 ****
--- 1,42 ----
+ /* PR c/89520 */
+ /* { dg-do compile } */
+ /* { dg-options "-Ofast -w" } */
+ 
+ #define A(name) __typeof (__builtin_##name (0)) name (); \
+   float name##1 () { return name (); } \
+   double name##2 () { return name (); }
+ #define B(name) A(name) A(name##l)
+ B (cosh)
+ B (exp)
+ B (exp10)
+ B (exp2)
+ B (expm1)
+ B (gamma)
+ B (j0)
+ B (j1)
+ B (lgamma)
+ B (pow10)
+ B (sinh)
+ B (tgamma)
+ B (y0)
+ B (y1)
+ B (acos)
+ B (acosh)
+ B (asin)
+ B (asinh)
+ B (atan)
+ B (atanh)
+ B (cbrt)
+ B (cos)
+ B (erf)
+ B (erfc)
+ B (log)
+ B (log10)
+ B (log2)
+ B (log1p)
+ B (sin)
+ B (tan)
+ B (tanh)
+ B (sqrt)
+ B (fabs)
+ B (logb)
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89521-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89521-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89521-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89521-1.c	Fri Aug 30 12:11:38 2019
***************
*** 0 ****
--- 1,13 ----
+ /* PR c/89521 */
+ /* { dg-do compile } */
+ /* { dg-options "-Ofast -w" } */
+ 
+ #define A(name) __typeof (__builtin_##name (0)) name (); long name##1 () { return name (1); }
+ #define B(name) A(name) A(name##f) A(name##l)
+ B (ceil)
+ B (floor)
+ B (round)
+ B (trunc)
+ B (nearbyint)
+ B (rint)
+ B (logb)
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89521-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89521-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89521-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89521-2.c	Fri Aug 30 12:11:38 2019
***************
*** 0 ****
--- 1,42 ----
+ /* PR c/89521 */
+ /* { dg-do compile } */
+ /* { dg-options "-Ofast -w" } */
+ 
+ #define A(name) __typeof (__builtin_##name (0)) name (); \
+   float name##1 () { return name (1); } \
+   double name##2 () { return name (1); }
+ #define B(name) A(name) A(name##l)
+ B (cosh)
+ B (exp)
+ B (exp10)
+ B (exp2)
+ B (expm1)
+ B (gamma)
+ B (j0)
+ B (j1)
+ B (lgamma)
+ B (pow10)
+ B (sinh)
+ B (tgamma)
+ B (y0)
+ B (y1)
+ B (acos)
+ B (acosh)
+ B (asin)
+ B (asinh)
+ B (atan)
+ B (atanh)
+ B (cbrt)
+ B (cos)
+ B (erf)
+ B (erfc)
+ B (log)
+ B (log10)
+ B (log2)
+ B (log1p)
+ B (sin)
+ B (tan)
+ B (tanh)
+ B (sqrt)
+ B (fabs)
+ B (logb)
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89590.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89590.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89590.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89590.c	Fri Aug 30 12:12:24 2019
***************
*** 0 ****
--- 1,11 ----
+ /* PR middle-end/89590 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wall -w" } */
+ 
+ void free (void *);
+ 
+ void
+ foo (void)
+ {
+   ((void (*)()) free) ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89679.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89679.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89679.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89679.c	Fri Aug 30 12:19:33 2019
***************
*** 0 ****
--- 1,26 ----
+ /* PR rtl-optimization/89679 */
+ /* { dg-do run } */
+ /* { dg-options "-Og -frerun-cse-after-loop -fno-tree-fre" } */
+ 
+ unsigned short g;
+ 
+ void
+ foo (unsigned long long x)
+ {
+   if (x != 0xffff)
+     __builtin_abort ();
+ }
+ 
+ int
+ main ()
+ {
+ #if __SIZEOF_SHORT__ == 2 && __SIZEOF_INT__ == 4 && __CHAR_BIT__ == 8
+   unsigned short d = 0;
+   unsigned long long x, c = ~0;
+   c = c >> d;
+   __builtin_memset (&d, c, 2);
+   x = d + g;
+   foo (x);
+ #endif
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr89734.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr89734.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr89734.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr89734.c	Fri Aug 30 12:25:43 2019
***************
*** 0 ****
--- 1,12 ----
+ /* PR c/89734 */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ typedef const int CI;
+ typedef _Atomic int AI;
+ 
+ CI foo (void);
+ const int foo (void);
+ 
+ AI baz (void);
+ _Atomic int baz (void);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr90082.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr90082.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr90082.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr90082.c	Fri Aug 30 12:37:28 2019
***************
*** 0 ****
--- 1,13 ----
+ /* PR rtl-optimization/90082 */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fnon-call-exceptions -ftrapv" } */
+ 
+ void *buf[5];
+ 
+ void
+ foo (int a)
+ {
+   if (__builtin_setjmp (buf) == 0)
+     __asm__ ("" : : "n" (a * 2));	/* { dg-error "impossible constraint in 'asm'" } */
+ 					/* { dg-warning "asm operand 0 probably doesn't match constraints" "" { target *-*-* } .-1 } */
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr90756.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr90756.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr90756.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr90756.c	Fri Aug 30 12:48:18 2019
***************
*** 0 ****
--- 1,26 ----
+ /* PR rtl-optimization/90756 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wno-psabi" } */
+ /* { dg-additional-options "-mno-sse" { target ia32 } } */
+ 
+ typedef float B __attribute__((vector_size(4 * sizeof (float))));
+ typedef unsigned long long C __attribute__((vector_size(4 * sizeof (long long))));
+ typedef short D __attribute__((vector_size(4 * sizeof (short))));
+ B z;
+ void foo (C);
+ C bar (D);
+ B baz ();
+ D qux (B);
+ 
+ void
+ quux (int x)
+ {
+   B n = z, b = z;
+   while (1)
+     switch (x)
+       {
+       case 0: n = baz (); /* FALLTHRU */
+       case 1: { B o = n; n = b; b = o; } /* FALLTHRU */
+       case 2: { D u = qux (b); C v = bar (u); foo (v); }
+       }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pr90760.c gcc-7.5.0/gcc/testsuite/gcc.dg/pr90760.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pr90760.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pr90760.c	Sat Nov  2 12:27:29 2019
***************
*** 0 ****
--- 1,9 ----
+ /* PR c/90760 */
+ /* { dg-do compile } */
+ /* { dg-require-alias "" } */
+ /* { dg-require-named-sections "" } */
+ 
+ void bar (void) {}
+ void foo (void) __attribute__ ((alias ("bar")));	/* { dg-error "section of alias 'foo' must match section of its target" } */
+ void foo (void) __attribute__ ((section ("baz")));
+ void qux (void) __attribute__ ((alias ("bar"), section ("baz")));	/* { dg-error "section of alias 'qux' must match section of its target" } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pubtypes-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/pubtypes-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pubtypes-2.c	Fri Dec  6 19:26:26 2013
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pubtypes-2.c	Fri Aug 30 11:24:34 2019
***************
*** 2,8 ****
  /* { dg-options "-O0 -gdwarf-2 -dA" } */
  /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "__debug_pubtypes" } } */
! /* { dg-final { scan-assembler "long+\[ \t\]+0x13b+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
  /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  
--- 2,8 ----
  /* { dg-options "-O0 -gdwarf-2 -dA" } */
  /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "__debug_pubtypes" } } */
! /* { dg-final { scan-assembler "long+\[ \t\]+0x12e+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
  /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pubtypes-3.c gcc-7.5.0/gcc/testsuite/gcc.dg/pubtypes-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pubtypes-3.c	Sat Nov 15 16:06:55 2014
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pubtypes-3.c	Fri Aug 30 11:24:34 2019
***************
*** 2,8 ****
  /* { dg-options "-O0 -gdwarf-2 -dA" } */
  /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "__debug_pubtypes" } } */
! /* { dg-final { scan-assembler "long+\[ \t\]+0x13b+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
  /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
--- 2,8 ----
  /* { dg-options "-O0 -gdwarf-2 -dA" } */
  /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "__debug_pubtypes" } } */
! /* { dg-final { scan-assembler "long+\[ \t\]+0x12e+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
  /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/pubtypes-4.c gcc-7.5.0/gcc/testsuite/gcc.dg/pubtypes-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/pubtypes-4.c	Sat Nov 15 16:06:55 2014
--- gcc-7.5.0/gcc/testsuite/gcc.dg/pubtypes-4.c	Fri Aug 30 11:24:34 2019
***************
*** 2,8 ****
  /* { dg-options "-O0 -gdwarf-2 -dA" } */
  /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "__debug_pubtypes" } } */
! /* { dg-final { scan-assembler "long+\[ \t\]+0x172+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
  /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
--- 2,8 ----
  /* { dg-options "-O0 -gdwarf-2 -dA" } */
  /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "__debug_pubtypes" } } */
! /* { dg-final { scan-assembler "long+\[ \t\]+0x165+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
  /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/neon-immediate-timode.c	Wed Apr 10 13:34:54 2019
***************
*** 0 ****
--- 1,10 ----
+ union a {
+   char b;
+   long long c;
+ };
+ union a d;
+ int g(int, union a, union a);
+ void e() {
+   union a f[2] = {-1L};
+   g(0, d, f[0]);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68037-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68037-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68037-1.c	Fri Jun 10 12:38:16 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68037-1.c	Sun Dec 30 12:28:54 2018
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-skip-if "PR81210 sp not aligned to 16 bytes" { *-*-darwin* } } */
  /* { dg-options "-mgeneral-regs-only" } */
  
  extern void exit (int);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68037-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68037-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68037-2.c	Fri Jun 10 12:38:16 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68037-2.c	Sun Dec 30 12:28:54 2018
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-skip-if "PR81210 sp not aligned to 16 bytes" { *-*-darwin* } } */
  /* { dg-options "-mgeneral-regs-only" } */
  
  extern void exit (int);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68037-3.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68037-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68037-3.c	Fri Jun 10 12:38:16 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68037-3.c	Sun Dec 30 12:28:54 2018
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-skip-if "PR81210 sp not aligned to 16 bytes" { *-*-darwin* } } */
  /* { dg-options "-mgeneral-regs-only" } */
  
  #include <stddef.h>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68264.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68264.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr68264.c	Wed Jan 27 23:04:25 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr68264.c	Sun Dec 30 12:28:54 2018
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do run } */
+ /* { dg-skip-if "PR68356 no math-errno on darwin" { "*-*-darwin*" } } */
  /* { dg-add-options ieee } */
  /* { dg-require-effective-target fenv_exceptions } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr86554-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr86554-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr86554-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr86554-1.c	Tue Mar 26 11:18:26 2019
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do run } */
+ 
+ struct foo
+ {
+   unsigned x;
+ };
+ typedef struct foo foo;
+ 
+ static inline int zot(foo *f)
+ {
+   int ret;
+ 
+   if (f->x > 0x7FFFFFFF)
+     ret = (int)(f->x - 0x7FFFFFFF);
+   else
+     ret = (int)f->x - 0x7FFFFFFF;
+   return ret;
+ }
+ 
+ void __attribute__((noinline,noclone)) bar(foo *f)
+ {
+   int ret = zot(f);
+   volatile int x = ret;
+   if (ret < 1)
+     __builtin_abort ();
+ }
+ 
+ int main()
+ {
+   foo f;
+   f.x = 0x800003f8;
+ 
+   bar(&f);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr86554-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr86554-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr86554-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr86554-2.c	Tue Mar 26 11:18:26 2019
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target int32plus } */
+ 
+ struct s { __INT64_TYPE__ e; };
+ 
+ static void f (struct s *ps)
+ {
+   volatile __INT64_TYPE__ m = 9223372036854775807;
+   const char *str = "11E";
+   int r;
+   __INT64_TYPE__ sum;
+ 
+   ps->e = 0;
+ 
+   for (;;)
+     {
+       if (*str++ != '1')
+ 	break;
+       ps->e ++;
+     }
+ 
+   r = 1;
+   sum = m;
+ 
+   if (sum >= 0 && ps->e >= 0)
+     {
+       __UINT64_TYPE__ uc;
+       uc = (__UINT64_TYPE__) sum + (__UINT64_TYPE__) ps->e;
+       if (uc > 9223372036854775807)
+ 	r = 2;
+       else
+ 	sum = 17;
+     }
+   else
+     sum = sum + ps->e;
+ 
+   if (sum != 9223372036854775807)
+     __builtin_abort ();
+   if (r != 2)
+     __builtin_abort ();
+   ps->e = sum;
+ }
+ 
+ int main (void)
+ {
+   struct s s;
+   f (&s);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89008.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89008.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89008.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89008.c	Thu Jan 24 11:07:19 2019
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target int32plus } */
+ 
+ unsigned long a, c;
+ unsigned b;
+ int d, e;
+ long f()
+ {
+   unsigned long g = 0;
+   for (d = 0; d < 5; d += 2)
+     for (e = 0; e < 5; e += 3)
+       {
+ 	c = 4 + b;
+ 	g = -b - b;
+ 	b = 5 * (b << 24);
+       }
+   a = g;
+   return 0;
+ }
+ 
+ int main()
+ {
+   f();
+   if (a)
+     __builtin_abort();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89091.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89091.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89091.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89091.c	Fri Aug 30 12:08:04 2019
***************
*** 0 ****
--- 1,10 ----
+ /* PR middle-end/89091 */
+ /* { dg-do compile { target int128 } } */
+ 
+ struct S { unsigned __int128 s : 65; };
+ 
+ int
+ foo (struct S *x, int y)
+ {
+   return y && x->s;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89135.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89135.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89135.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89135.c	Mon Sep  2 14:14:14 2019
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target indirect_jumps } */
+ /* { dg-require-effective-target label_values } */
+ 
+ typedef __INTPTR_TYPE__ intptr_t;
+ intptr_t a, b, c, d;
+ int foo (void) { return 0; }
+ int baz (void);
+ 
+ void
+ bar (void)
+ {
+   intptr_t g = (intptr_t) &&h;
+   void *i = &&j, *k = &&l;
+ j:
+   if (baz ())
+     {
+       intptr_t **n = (intptr_t **) &a;
+ l:
+       b = 0;
+       for (; b >= 0;)
+ 	goto *k;
+ h:
+       **n = 0;
+       for (;;)
+ 	{
+ 	  intptr_t *o = &c;
+ 	  g = foo ();
+ 	  *o = g;
+ 	  if (c)
+ 	    goto *d;
+ 	}
+     }
+   goto *i;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89223.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89223.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89223.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89223.c	Tue Mar 26 13:18:23 2019
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target int128 } } */
+ 
+ int a[5];
+ unsigned __int128 b;
+ void c()
+ {
+   b = 4;
+   for (;; b--)
+     a[b] = ({ a[b + b]; });
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89505.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89505.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89505.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89505.c	Thu Mar 21 12:28:26 2019
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run } */
+ 
+ struct S { int i; void *p; int j; };
+ int a;
+ int __attribute__((noinline))
+ foo (struct S * __restrict p, int q)
+ {
+   int *x = &p->j;
+   if (q)
+     x = &a;
+   p->j = 1;
+   *x = 2;
+   return p->j;
+ }
+ 
+ int main()
+ {
+   struct S s;
+   if (foo (&s, 0) != 2)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89572.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89572.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89572.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89572.c	Mon Sep  2 14:14:14 2019
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-finline-functions" } */
+ 
+ int vh, it, k1;
+ 
+ void
+ vn (void)
+ {
+   ++vh;
+   if (vh == 0 && it == 0)
+     k1 = -k1;
+ }
+ 
+ __attribute__ ((returns_twice)) void
+ ef (int *uw)
+ {
+   while (uw != (void *) 0)
+     {
+       vn ();
+       *uw = 0;
+     }
+ }
+ 
+ void
+ gu (int *uw)
+ {
+   ef (uw);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89677.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89677.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89677.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89677.c	Fri Aug 30 16:44:17 2019
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target int32plus } */
+ 
+ int a, b, d;
+ unsigned c;
+ float e, f, g;
+ void h() {
+     float *i = &g;
+     for (; c < 10; c += 3)
+       for (; d; d += 3) {
+ 	  a = *i;
+ 	  g = f + 0;
+ 	  f = b + *i + (b - e + 305219) + -b + 3;
+       }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89710.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89710.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr89710.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr89710.c	Mon Sep  2 14:14:14 2019
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ 
+ void
+ gm (int *);
+ 
+ __attribute__ ((returns_twice)) void
+ jg (void)
+ {
+ }
+ 
+ void
+ eb (void)
+ {
+   int r6 = 0;
+ 
+   if (r6 != 0)
+     gm (&r6);
+ }
+ 
+ void
+ gm (int *r6)
+ {
+   jg ();
+ 
+   for (;;)
+     {
+       eb ();
+       *r6 = 0;
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90020.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90020.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90020.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90020.c	Mon Sep  2 12:56:24 2019
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run } */
+ /* { dg-require-weak "" } */
+ /* { dg-additional-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } } */
+ /* { dg-additional-options "-Wl,-flat_namespace" { target *-*-darwin[89]* } } */
+ 
+ void __attribute__((noinline,noclone))
+ check (int i)
+ {
+   if (i == 0)
+     __builtin_exit (0);
+ }
+ 
+ int i;
+ extern int x __attribute__((weak));
+ 
+ int main(int argc, char **argv)
+ {
+   if (argc)
+     {
+       check (i);
+       return x;
+     }
+   else
+     {
+       check (i);
+       return x-1;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90071.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90071.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90071.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90071.c	Fri Aug 30 16:44:17 2019
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ 
+ int a;
+ static int b;
+ 
+ void
+ foo ()
+ {
+   int d;
+   int e = (int) (__INTPTR_TYPE__) &&f;
+   void *g = &&h;
+ h: ++e;
+    if (a)
+      i: goto *g;
+    for (;;)
+      {
+        e = 0;
+        if (b)
+ 	 goto i;
+      }
+ f:
+    goto *({ d || e < 0 || e >= 2; });
+    &e;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90278.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90278.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90278.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90278.c	Mon Sep  2 12:56:24 2019
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fexceptions -fnon-call-exceptions" } */
+ 
+ double
+ hc (void)
+ {
+   double dp = 0.0;
+   double ek[1];
+ 
+   ek[0] = 1.0 / dp < 0.0;
+ 
+   return ek[0];
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90328.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90328.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr90328.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr90328.c	Thu Sep  5 12:11:52 2019
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ 
+ void g(int*__restrict x, int*y)
+ {
+   *x = *y;
+ }
+ 
+ void __attribute__((noinline,noclone)) f(int* a,int* b)
+ {
+   for(int i=0;i<1024;++i)
+     g(a+i,b+i);
+ }
+ 
+ int main()
+ {
+   int x[1025];
+   for (int i = 0; i < 1025; ++i)
+     x[i] = i+1;
+   f(x+1, x);
+   for (int i = 0; i < 1025; ++i)
+     if (x[i] != 1)
+       __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr91126.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr91126.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr91126.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr91126.c	Mon Sep  2 12:56:24 2019
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ 
+ struct S
+ {
+   __INT32_TYPE__ a : 24;
+   __INT32_TYPE__ b : 8;
+ } s;
+ 
+ int
+ main()
+ {
+   s.a = 0xfefefe;
+   s.b = 0xfe;
+   unsigned char c;
+   c = ((unsigned char *)&s)[0];
+   if (c != 0xfe)
+     __builtin_abort ();
+   c = ((unsigned char *)&s)[1];
+   if (c != 0xfe)
+     __builtin_abort ();
+   c = ((unsigned char *)&s)[2];
+   if (c != 0xfe)
+     __builtin_abort ();
+   c = ((unsigned char *)&s)[3];
+   if (c != 0xfe)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr91200.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr91200.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr91200.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr91200.c	Mon Sep  2 12:56:24 2019
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ 
+ int printf (const char *, ...);
+ 
+ char a;
+ int b, c, **d;
+ 
+ int main ()
+ {
+   int f = -128, *g, *h[2] = {0, 0}, i;
+   printf("0");
+   if (a)
+     {
+       while (f > a) {
+         int *j = &i;
+         *j |= 0;
+       }
+       h[i] = &c;
+     }
+   if (h[1])
+     {
+       int **k = &g;
+       *k = &f;
+       while (i)
+         {
+           int **l[] = {&g};
+         }
+       int **m = &g;
+       *d = *m = &b;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr91812.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr91812.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/pr91812.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/pr91812.c	Thu Oct 24 09:38:56 2019
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } */
+ /* { dg-options "-fdump-tree-optimized-blocks" } */
+ 
+ unsigned register1;
+ unsigned register2;
+ 
+ void busy_wait_for_register (int x)
+ {
+   volatile unsigned* ptr;
+   switch(x) {
+     case 0x1111:
+     ptr = &register1;
+     break;
+ 
+     case 0x2222:
+     ptr = &register2;
+     break;
+ 
+     default:
+     return;
+   }
+   while (*ptr) {}
+ }
+ 
+ /* { dg-final { scan-tree-dump "loop depth 1" "optimized" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/torture/restrict-7.c gcc-7.5.0/gcc/testsuite/gcc.dg/torture/restrict-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/torture/restrict-7.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/torture/restrict-7.c	Thu Sep  5 12:11:52 2019
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ 
+ extern void abort (void);
+ 
+ static inline __attribute__((always_inline)) void
+ copy(int *restrict a, int *restrict b)
+ {
+   *b = *a;
+   *a = 7;
+ }
+ 
+ void __attribute__((noinline))
+ floppy(int mat[static 2], unsigned idxs[static 3])
+ {
+   for (int i = 0; i < 3; i++)
+     copy(&mat[i%2], &mat[idxs[i]]);
+ }
+ 
+ int main()
+ {
+   int mat[2] = {10, 20};
+   unsigned idxs[3] = {1, 0, 1};
+   floppy(mat, idxs);
+   if (mat[0] != 7 || mat[1] != 10)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-1.c	Wed Nov 16 22:10:52 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-1.c	Mon Dec 24 12:30:24 2018
*************** const char *buf_cold;
*** 13,19 ****
--- 13,23 ----
  
  void foo (int path);
  
+ #ifdef __APPLE__
+ __attribute__ ((section ("__TEXT,__text")))
+ #else
  __attribute__((section(".text")))
+ #endif
  int
  main (int argc, char *argv[])
  {
*************** foo (int path)
*** 43,45 ****
--- 47,50 ----
  }
  
  /* { dg-final-use { scan-assembler "\.section\[\t \]*\.text\.unlikely\[\\n\\r\]+\[\t \]*\.size\[\t \]*foo\.cold\.0" { target *-*-linux* *-*-gnu* } } } */
+ /* { dg-final-use { scan-assembler "\.section\[\t \]*__TEXT,__text_cold\.\*\[\\n\\r\]+_foo\.cold\.0" { target *-*-darwin* } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-2.c	Wed Nov 16 22:10:52 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-2.c	Mon Dec 24 12:30:24 2018
*************** main (int argc, char *argv[])
*** 28,34 ****
--- 28,38 ----
  void NOINLINE
  foo (int path)
  {
+ #ifdef __APPLE__
+   static int i __attribute__ ((section ("__DATA,__data")));
+ #else
    static int i __attribute__((section(".data")));
+ #endif
    if (path)
      {
        for (i = 0; i < SIZE; i++)
*************** foo (int path)
*** 42,44 ****
--- 46,49 ----
  }
  
  /* { dg-final-use { scan-assembler "\.section\[\t \]*\.text\.unlikely\[\\n\\r\]+\[\t \]*\.size\[\t \]*foo\.cold\.0" { target *-*-linux* *-*-gnu* } } } */
+ /* { dg-final-use { scan-assembler "\.section\[\t \]*__TEXT,__text_cold\.\*\[\\n\\r\]+_foo\.cold\.0:" { target *-*-darwin* } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-3.c gcc-7.5.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-3.c	Wed Nov 16 22:10:52 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/tree-prof/section-attr-3.c	Mon Dec 24 12:30:24 2018
***************
*** 9,15 ****
--- 9,19 ----
  #define NOINLINE __attribute__((noinline)) __attribute__ ((noclone))
  
  const char *sarr[SIZE];
+ #ifdef __APPLE__
+ const char *buf_hot __attribute__ ((section ("__DATA,__data")));
+ #else
  const char *buf_hot __attribute__ ((section (".data")));
+ #endif
  const char *buf_cold;
  
  void foo (int path);
*************** foo (int path)
*** 43,45 ****
--- 47,50 ----
  }
  
  /* { dg-final-use { scan-assembler "\.section\[\t \]*\.text\.unlikely\[\\n\\r\]+\[\t \]*\.size\[\t \]*foo\.cold\.0" { target *-*-linux* *-*-gnu* } } } */
+ /* { dg-final-use { scan-assembler "\.section\[\t \]*__TEXT,__text_cold\.\*\[\\n\\r\]+_foo\.cold\.0:" { target *-*-darwin* } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr89872.c gcc-7.5.0/gcc/testsuite/gcc.dg/tree-ssa/pr89872.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/tree-ssa/pr89872.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/tree-ssa/pr89872.c	Fri Aug 30 12:33:40 2019
***************
*** 0 ****
--- 1,27 ----
+ /* PR c/89872 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ /* { dg-final { scan-tree-dump-times " ={v} 1;" 1 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times " ={v} 2;" 1 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times " ={v} 3;" 1 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times " ={v} 4;" 1 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times " ={v} 0;" 1 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times " ={v} " 10 "optimized" } } */
+ 
+ void
+ foo (void)
+ {
+   (volatile int){1} + (volatile int){2};
+ }
+ 
+ void
+ bar (void)
+ {
+   (volatile int){3};
+ }
+ 
+ void
+ baz (void)
+ {
+   (volatile int){4} / (volatile int){0};
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/tsan/pr88030.c gcc-7.5.0/gcc/testsuite/gcc.dg/tsan/pr88030.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/tsan/pr88030.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/tsan/pr88030.c	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fsanitize=thread -fnon-call-exceptions -fexceptions" } */
+ 
+ typedef __complex__ float Value;
+ typedef struct {
+   Value a[16 / sizeof (Value)];
+ } A;
+ 
+ A sum(A a,A b)
+ {
+   a.a[0]+=b.a[0];
+   a.a[1]+=b.a[1];
+   return a;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/tsan/pr90208-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/tsan/pr90208-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/tsan/pr90208-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/tsan/pr90208-2.c	Fri Aug 30 12:39:09 2019
***************
*** 0 ****
--- 1,20 ----
+ /* PR tree-optimization/90208 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fexceptions -fsanitize=thread" } */
+ 
+ void *b[5];
+ void foo (void);
+ 
+ void
+ bar (int d)
+ {
+   while (d)
+     foo ();
+ }
+ 
+ void
+ baz (void)
+ {
+   bar (2);
+   __builtin_setjmp (b);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/uninit-19.c gcc-7.5.0/gcc/testsuite/gcc.dg/uninit-19.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/uninit-19.c	Wed Nov 23 09:49:25 2016
--- gcc-7.5.0/gcc/testsuite/gcc.dg/uninit-19.c	Mon Sep  9 20:21:30 2019
*************** fn2 ()
*** 23,27 ****
    fn1 (l, &d, &e, &g, &i, &h, &k, n);  /* 23.  */
  }
  
! /* { dg-warning "may be used uninitialized" "" { target { { nonpic } || { hppa*64*-*-* } } } 14 } */
! /* { dg-warning "may be used uninitialized" "" { target { ! { { nonpic } || { hppa*64*-*-* } } } } 23 } */
--- 23,27 ----
    fn1 (l, &d, &e, &g, &i, &h, &k, n);  /* 23.  */
  }
  
! /* { dg-warning "may be used uninitialized" "" { target { { nonpic } || { hppa*64*-*-* *-*-darwin* } } } 14 } */
! /* { dg-warning "may be used uninitialized" "" { target { ! { { nonpic } || { hppa*64*-*-* *-*-darwin* } } } } 23 } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/uninit-pr89296.c gcc-7.5.0/gcc/testsuite/gcc.dg/uninit-pr89296.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/uninit-pr89296.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/uninit-pr89296.c	Mon Sep  2 14:14:14 2019
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wuninitialized" } */
+ 
+ int get_a_value ();
+ void printk(const char *);
+ void test_func()
+ {
+     int loop;
+     while (!loop) {             /* { dg-warning "is used uninitialized" } */
+ 	loop = get_a_value();
+ 	printk("...");
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c gcc-7.5.0/gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fno-math-errno" } */
+ /* { dg-additional-options "-march=x86-64" { target x86_64-*-* i?86-*-* } } */
+ 
+ long int lrint(double x);
+ 
+ int a, b;
+ union c {
+     int d;
+ };
+ 
+ int e()
+ {
+   int f, g, h;
+   long i, j, k;
+   double l, m = b = lrint(0.3127);
+   a = b >> 16 >> 8 & 255;
+   ((union c *)e)->d = a;
+   k = m;
+   h = k >> 16 >> 8 & 255;
+   ((union c *)(e + 4))->d = h;
+   j = lrint(l);
+   g = j >> 16 >> 8 & 255;
+   ((union c *)(e + 8))->d = g;
+   i = lrint(0.292);
+   f = i >> 16 >> 8 & 255;
+   ((union c *)(e + 12))->d = f;
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "basic block vectorized" "slp2" { target { { x86_64-*-* i?86-*-* } && ilp32 } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr81740-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr81740-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr81740-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr81740-1.c	Wed Sep  4 11:56:15 2019
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include "tree-vect.h"
+ 
+ int a[8][10] = { [2][5] = 4 }, c;
+ 
+ int
+ main ()
+ {
+   short b;
+   int i, d;
+   check_vect ();
+   for (b = 4; b >= 0; b--)
+     for (c = 0; c <= 6; c++)
+       a[c + 1][b + 2] = a[c][b + 1];
+   for (i = 0; i < 8; i++)
+     for (d = 0; d < 10; d++)
+       if (a[i][d] != (i == 3 && d == 6) * 4)
+ 	__builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr81740-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr81740-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr81740-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr81740-2.c	Wed Sep  4 11:56:15 2019
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include "tree-vect.h"
+ 
+ int a[8][10] = { [2][5] = 4 }, c;
+ 
+ int
+ main ()
+ {
+   short b;
+   int i, d;
+   check_vect ();
+   for (b = 4; b >= 0; b--)
+     for (c = 6; c >= 0; c--)
+       a[c + 1][b + 2] = a[c][b + 1];
+   for (i = 0; i < 8; i++)
+     for (d = 0; d < 10; d++)
+       if (a[i][d] != (i == 3 && d == 6) * 4)
+ 	__builtin_abort ();
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "OUTER LOOP VECTORIZED" "vect" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr88903-1.c gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr88903-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr88903-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr88903-1.c	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,26 ----
+ #include "tree-vect.h"
+ 
+ int x[1024];
+ 
+ void __attribute__((noinline))
+ foo()
+ {
+   for (int i = 0; i < 512; ++i)
+     {
+       x[2*i] = x[2*i] << ((i+1) & 31);
+       x[2*i+1] = x[2*i+1] << ((i+1) & 31);
+     }
+ }
+ 
+ int
+ main()
+ {
+   check_vect ();
+   for (int i = 0; i < 1024; ++i)
+     x[i] = i;
+   foo ();
+   for (int i = 0; i < 1024; ++i)
+     if (x[i] != i << ((i/2+1) & 31))
+       __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr88903-2.c gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr88903-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.dg/vect/pr88903-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.dg/vect/pr88903-2.c	Wed Sep  4 08:06:24 2019
***************
*** 0 ****
--- 1,28 ----
+ #include "tree-vect.h"
+ 
+ int x[1024];
+ int y[1024];
+ int z[1024];
+ 
+ void __attribute__((noinline)) foo()
+ {
+   for (int i = 0; i < 512; ++i)
+     {
+       x[2*i] = x[2*i] << y[2*i];
+       x[2*i+1] = x[2*i+1] << y[2*i];
+       z[2*i] = y[2*i];
+       z[2*i+1] = y[2*i+1];
+     }
+ }
+ 
+ int main()
+ {
+   check_vect ();
+   for (int i = 0; i < 1024; ++i)
+     x[i] = i, y[i] = i % 8;
+   foo ();
+   for (int i = 0; i < 1024; ++i)
+     if (x[i] != i << ((i & ~1) % 8))
+       __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/aarch64/pr90075.c gcc-7.5.0/gcc/testsuite/gcc.target/aarch64/pr90075.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/aarch64/pr90075.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/aarch64/pr90075.c	Tue Apr 30 09:31:04 2019
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O1" } */
+ 
+ typedef struct {
+   float one, two;
+ } twofloats;
+ 
+ float
+ bug (twofloats tf)
+ {
+   float f1, f2;
+   union {
+     twofloats tfloats;
+     float arr[2];
+   } utfloats;
+ 
+   utfloats.tfloats = tf;
+   f1 = utfloats.arr[1];
+   f2 = __builtin_copysignf (0, f1);
+   return f2;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c gcc-7.5.0/gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/arm/f16_f64_conv_no_dp.c	Wed Mar 13 11:46:56 2019
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target arm_fp16_ok } */
+ /* { dg-skip-if "do not override fpu" { *-*-* } { "-mfpu=*" } { "-mfpu=fpv5-sp-d16" } } */
+ /* { dg-skip-if "do not disable fpu" { *-*-* } { "-mfloat-abi=soft" } { * } } */
+ /* { dg-skip-if "do not override fp16-format" { *-*-* } { "-mfp16-format=*" } { "-mfp16-format=ieee" } } */
+ /* { dg-options "-O1 -mfpu=fpv5-sp-d16 -mfloat-abi=hard -mfp16-format=ieee" } */
+ 
+ __fp16 foo (double a)
+ {
+   return a;
+ }
+ 
+ double bar (__fp16 a)
+ {
+   return a;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr88167-1.c gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr88167-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr88167-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr88167-1.c	Fri Oct 25 14:39:06 2019
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target arm_thumb1_ok } */
+ /* { dg-options "-O2 -mthumb" }  */
+ 
+ void *retaddr;
+ 
+ void foo (void) {
+   retaddr = __builtin_return_address (0);
+ 
+   /* Used for enforcing registers stacking.  */
+   asm volatile ("" : : : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
+ 			 "r8", "r9", "r10", "r11", "r12");
+ }
+ 
+ /* { dg-final { scan-assembler-not "mov\tlr," } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr88167-2.c gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr88167-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr88167-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr88167-2.c	Fri Oct 25 14:39:06 2019
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" }  */
+ /* { dg-skip-if "" { ! { arm_thumb1 } } } */
+ 
+ int __attribute__((noclone, noinline))
+ foo (int a, long long b) {
+   /* Used for enforcing registers stacking.  */
+   asm volatile ("" : : : "r0", "r1", "r2", "r3",
+ 			 "r8", "r9", "r10", "r11", "r12");
+   return (int) b;
+ }
+ 
+ int main ()
+ {
+   if (foo (1, 0x1000000000000003LL) != 3)
+     __builtin_abort ();
+   __builtin_exit (0);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr88648-asm-syntax-unified.c	Mon Feb 11 09:31:13 2019
***************
*** 0 ****
--- 1,14 ----
+ /* Test for unified syntax assembly generation.  */
+ /* { dg-do compile } */
+ /* { dg-require-effective-target arm_arch_v7a_ok } */
+ /* { dg-add-options arm_arch_v7a } */
+ /* { dg-options "-marm -march=armv7-a -masm-syntax-unified" } */
+ 
+ void test ()
+ {
+   asm("nop");
+ }
+ 
+ /* { dg-final { scan-assembler-times {\.syntax\sunified} 3 } } */
+ /* { dg-final { scan-assembler-not {\.syntax\sdivided} } } */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr89222.c gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr89222.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/arm/pr89222.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/arm/pr89222.c	Tue Jul 16 13:13:26 2019
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ void g (void);
+ 
+ void f1 (int x)
+ {
+   if (x != (int) g + 3)
+     return;
+   g();
+ }
+ 
+ void (*a2)(void);
+ 
+ void f2 (void)
+ {
+   a2 = &g + 3;
+ }
+ 
+ typedef void (*__sighandler_t)(int);
+ void handler (int);
+ 
+ void f3 (int x)
+ {
+   __sighandler_t h = &handler;
+   if (h != (__sighandler_t) 2 && h != (__sighandler_t) 1)
+     h (x);
+ }
+ 
+ /* { dg-final { scan-assembler-times {add(?:s)?\tr[0-9]+, r[0-9]+, #3} 2 } } */
+ /* { dg-final { scan-assembler-not {.word\tg\+3} } } */
+ /* { dg-final { scan-assembler-not {.word\thandler-1} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/avr/pr88253.c gcc-7.5.0/gcc/testsuite/gcc.target/avr/pr88253.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/avr/pr88253.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/avr/pr88253.c	Mon Dec 17 13:26:50 2018
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Os -w" } */
+  
+ static int aRead() __attribute__((always_inline));
+ static int aRead() {
+     unsigned char h,l;
+     l = (*(volatile unsigned char *)(0x78)) ;
+     h = (*(volatile unsigned char *)(0x79)) ;
+     return (h<<8) | l;
+ }
+  
+ int main() {
+     volatile unsigned char x;
+      x = aRead()^42;
+  }
+  /* { dg-final { scan-assembler "lds r\\d+,121" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/avx512bw-pr91150.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/avx512bw-pr91150.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/avx512bw-pr91150.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/avx512bw-pr91150.c	Fri Aug 30 12:49:27 2019
***************
*** 0 ****
--- 1,37 ----
+ /* PR target/91150 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -mavx512bw" } */
+ /* { dg-require-effective-target avx512bw } */
+ 
+ #include "avx512bw-check.h"
+ 
+ typedef unsigned char V __attribute__((vector_size (64)));
+ 
+ __attribute__((noinline, noclone)) void
+ foo (V *x, V *y, V *z)
+ {
+   *x = __builtin_shuffle (*y, *z, (V) { 0, 1, 2, 3, 4, 5, 6, 7, 8,
+ 					9, 10, 11, 12, 13, 14, 15,
+ 					80, 81, 82, 83, 84, 85, 86, 87,
+ 					88, 89, 90, 91, 92, 93, 94, 95,
+ 					96, 97, 98, 99, 100, 101, 102, 103,
+ 					104, 105, 106, 107, 108, 109, 110, 111,
+ 				        112, 113, 114, 115, 116, 117, 118, 119,
+ 					120, 121, 122, 123, 124, 125, 126, 127 });
+ }
+ 
+ static void
+ avx512bw_test (void)
+ {
+   union U { unsigned char a[64]; V v; } a, b, c;
+   int i;
+   for (i = 0; i < 64; i++)
+     {
+       b.a[i] = i + 1;
+       c.a[i] = i + 65;
+     }
+   foo (&a.v, &b.v, &c.v);
+   for (i = 0; i < 64; i++)
+     if (a.a[i] != (i < 16 ? i + 1 : i + 65))
+       __builtin_abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c	Fri Aug 30 11:32:15 2019
***************
*** 0 ****
--- 1,39 ----
+ /* PR target/87214 */
+ /* { dg-do run { target { avx512vl } } } */
+ /* { dg-options "-O3 -mavx512vl -mtune=skylake-avx512" } */
+ 
+ #define AVX512VL
+ #define AVX512F_LEN 512
+ #define AVX512F_LEN_HALF 256
+ #include "avx512f-check.h"
+ 
+ struct s { unsigned long a, b, c; };
+ 
+ void __attribute__ ((noinline, noclone))
+ foo (struct s *restrict s1, struct s *restrict s2, int n)
+ {
+   for (int i = 0; i < n; ++i)
+     {
+       s1[i].b = s2[i].b;
+       s1[i].c = s2[i].c;
+       s2[i].c = 0;
+     }
+ }
+                             
+ #define N 12
+ 
+ static void
+ avx512f_test (void)
+ {
+   struct s s1[N], s2[N];
+   for (unsigned int j = 0; j < N; ++j)
+     {
+       s2[j].a = j * 5;
+       s2[j].b = j * 5 + 2;
+       s2[j].c = j * 5 + 4;
+     }
+   foo (s1, s2, N);
+   for (unsigned int j = 0; j < N; ++j)
+   if (s1[j].b != j * 5 + 2)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c	Fri Aug 30 11:32:15 2019
***************
*** 0 ****
--- 1,123 ----
+ /* PR target/87214 */
+ /* { dg-do run { target { avx512vl } } } */
+ /* { dg-options "-O2 -mavx512vl" } */
+ 
+ #define AVX512VL
+ #define AVX512F_LEN 512
+ #define AVX512F_LEN_HALF 256
+ #include "avx512f-check.h"
+ 
+ typedef long long int v4di __attribute__((vector_size (4 * sizeof (long long int))));
+ typedef double v4df __attribute__((vector_size (4 * sizeof (double))));
+ typedef long long int v8di __attribute__((vector_size (8 * sizeof (long long int))));
+ typedef double v8df __attribute__((vector_size (8 * sizeof (double))));
+ typedef int v8si __attribute__((vector_size (8 * sizeof (int))));
+ typedef float v8sf __attribute__((vector_size (8 * sizeof (float))));
+ typedef int v16si __attribute__((vector_size (16 * sizeof (int))));
+ typedef float v16sf __attribute__((vector_size (16 * sizeof (float))));
+ 
+ __attribute__((noinline, noclone)) void
+ f1 (v4di *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v4di) { 2, 3, 5, 6 });
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f2 (v4df *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v4di) { 1, 2, 6, 7 });
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f3 (v8di *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v8di) { 2, 3, 5, 6, 8, 9, 11, 12 });
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f4 (v8df *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v8di) { 1, 2, 6, 7, 9, 10, 12, 13 });
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f5 (v8si *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v8si) { 2, 3, 4, 5, 9, 10, 11, 12 });
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f6 (v8sf *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v8si) { 1, 2, 3, 4, 12, 13, 14, 15 });
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f7 (v16si *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v16si) { 0, 1, 2, 3, 1, 2, 3, 4, 16, 17, 18, 19, 25, 26, 27, 28 });
+ }
+ 
+ __attribute__((noinline, noclone)) void
+ f8 (v16sf *p)
+ {
+   p[0] = __builtin_shuffle (p[1], p[2], (v16si) { 1, 2, 3, 4, 4, 5, 6, 7, 17, 18, 19, 20, 18, 19, 20, 21 });
+ }
+ 
+ static void
+ avx512f_test (void)
+ {
+   v4di a[3] = { { 0, 0, 0, 0 }, { 10, 11, 12, 13 }, { 14, 15, 16, 17 } };
+   f1 (a);
+   if (a[0][0] != 12 || a[0][1] != 13 || a[0][2] != 15 || a[0][3] != 16)
+     __builtin_abort ();
+   v4df b[3] = { { 0.0, 0.0, 0.0, 0.0 }, { 10.0, 11.0, 12.0, 13.0 }, { 14.0, 15.0, 16.0, 17.0 } };
+   f2 (b);
+   if (b[0][0] != 11.0 || b[0][1] != 12.0 || b[0][2] != 16.0 || b[0][3] != 17.0)
+     __builtin_abort ();
+   v8di c[3] = { { 0, 0, 0, 0, 0, 0, 0, 0 }, { 10, 11, 12, 13, 14, 15, 16, 17 }, { 18, 19, 20, 21, 22, 23, 24, 25 } };
+   f3 (c);
+   if (c[0][0] != 12 || c[0][1] != 13 || c[0][2] != 15 || c[0][3] != 16
+       || c[0][4] != 18 || c[0][5] != 19 || c[0][6] != 21 || c[0][7] != 22)
+     __builtin_abort ();
+   v8df d[3] = { { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 },
+ 		{ 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0 },
+ 		{ 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0 } };
+   f4 (d);
+   if (d[0][0] != 11.0 || d[0][1] != 12.0 || d[0][2] != 16.0 || d[0][3] != 17.0
+       || d[0][4] != 19.0 || d[0][5] != 20.0 || d[0][6] != 22.0 || d[0][7] != 23.0)
+     __builtin_abort ();
+   v8si e[3] = { { 0, 0, 0, 0, 0, 0, 0, 0 }, { 10, 11, 12, 13, 14, 15, 16, 17 }, { 18, 19, 20, 21, 22, 23, 24, 25 } };
+   f5 (e);
+   if (e[0][0] != 12 || e[0][1] != 13 || e[0][2] != 14 || e[0][3] != 15
+       || e[0][4] != 19 || e[0][5] != 20 || e[0][6] != 21 || e[0][7] != 22)
+     __builtin_abort ();
+   v8sf f[3] = { { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f },
+ 		{ 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f },
+ 		{ 18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 25.0f } };
+   f6 (f);
+   if (f[0][0] != 11.0f || f[0][1] != 12.0f || f[0][2] != 13.0f || f[0][3] != 14.0f
+       || f[0][4] != 22.0f || f[0][5] != 23.0f || f[0][6] != 24.0f || f[0][7] != 25.0f)
+     __builtin_abort ();
+   v16si g[3] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ 		 { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 },
+ 		 { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 } };
+   f7 (g);
+   if (g[0][0] != 10 || g[0][1] != 11 || g[0][2] != 12 || g[0][3] != 13
+       || g[0][4] != 11 || g[0][5] != 12 || g[0][6] != 13 || g[0][7] != 14
+       || g[0][8] != 26 || g[0][9] != 27 || g[0][10] != 28 || g[0][11] != 29
+       || g[0][12] != 35 || g[0][13] != 36 || g[0][14] != 37 || g[0][15] != 38)
+     __builtin_abort ();
+   v16sf h[3] = { { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,
+ 		   0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f },
+ 		 { 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 16.0f, 17.0f,
+ 		   18.0f, 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 25.0f },
+ 		 { 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, 31.0f, 32.0f, 33.0f,
+ 		   34.0f, 35.0f, 36.0f, 37.0f, 38.0f, 39.0f, 40.0f, 41.0f } };
+   f8 (h);
+   if (h[0][0] != 11.0f || h[0][1] != 12.0f || h[0][2] != 13.0f || h[0][3] != 14.0f
+       || h[0][4] != 14.0f || h[0][5] != 15.0f || h[0][6] != 16.0f || h[0][7] != 17.0f
+       || h[0][8] != 27.0f || h[0][9] != 28.0f || h[0][10] != 29.0f || h[0][11] != 30.0f
+       || h[0][12] != 28.0f || h[0][13] != 29.0f || h[0][14] != 30.0f || h[0][15] != 31.0f)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/call-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/call-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/call-1.c	Wed Aug 22 09:59:14 2007
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/call-1.c	Fri Aug 30 11:43:04 2019
*************** volatile int r;
*** 11,17 ****
  
  void set_eax(int val)
  {
!   __asm__ __volatile__ ("mov %0, %%eax" : : "m" (val));
  }
  
  void foo(int val)
--- 11,17 ----
  
  void set_eax(int val)
  {
!   __asm__ __volatile__ ("mov %0, %%eax" : : "m" (val) : "eax");
  }
  
  void foo(int val)
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/call-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/call-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/call-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/call-2.c	Fri Aug 30 11:43:04 2019
***************
*** 0 ****
--- 1,12 ----
+ /* PR optimization/11304 */
+ /* Originator: <manuel.serrano@sophia.inria.fr> */
+ /* { dg-do run } */
+ /* { dg-options "-O -fomit-frame-pointer" } */
+ 
+ /* Verify that %eax is always restored after a call.  */
+ 
+ __attribute__((noinline, noclone)) void set_eax(int val);
+ __attribute__((noinline, noclone)) void foo(int val);
+ __attribute__((noinline, noclone)) int bar(int x);
+ 
+ #include "call-1.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/fpprec-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/fpprec-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/fpprec-1.c	Wed May 19 16:10:05 2010
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/fpprec-1.c	Fri Aug 30 12:26:30 2019
*************** double x[] = { __builtin_nan(""), __buil
*** 11,16 ****
--- 11,19 ----
  	0x1.0000000000001p-1, 0x1.fffffffffffffp-2,
  	0x1.0000000000001p+0, 0x1.fffffffffffffp-1,
  	0x1.8000000000001p+0, 0x1.7ffffffffffffp+0,
+ 	-0x1.0000000000001p-1, -0x1.fffffffffffffp-2,
+ 	-0x1.0000000000001p+0, -0x1.fffffffffffffp-1,
+ 	-0x1.8000000000001p+0, -0x1.7ffffffffffffp+0,
  	-0.0, 0.0, -0.5, 0.5, -1.0, 1.0, -1.5, 1.5, -2.0, 2.0,
  	-2.5, 2.5 };
  #define NUM (sizeof(x)/sizeof(double))
*************** double expect_round[] = { __builtin_nan(
*** 19,24 ****
--- 22,28 ----
  	-0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023,
  	-0.0, 0.0,
  	1.0, 0.0, 1.0, 1.0, 2.0, 1.0,
+ 	-1.0, -0.0, -1.0, -1.0, -2.0, -1.0,
  	-0.0, 0.0, -1.0, 1.0, -1.0, 1.0, -2.0, 2.0, -2.0, 2.0,
  	-3.0, 3.0 };
  
*************** double expect_rint[] = { __builtin_nan("
*** 26,31 ****
--- 30,36 ----
          -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023,
          -0.0, 0.0,
          1.0, 0.0, 1.0, 1.0, 2.0, 1.0,
+         -1.0, -0.0, -1.0, -1.0, -2.0, -1.0,
          -0.0, 0.0, -0.0, 0.0, -1.0, 1.0, -2.0, 2.0, -2.0, 2.0,
          -2.0, 2.0 };
  
*************** double expect_floor[] = { __builtin_nan(
*** 33,38 ****
--- 38,44 ----
          -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023,
          -1.0, 0.0,
          0.0, 0.0, 1.0, 0.0, 1.0, 1.0,
+         -1.0, -1.0, -2.0, -1.0, -2.0, -2.0,
          -0.0, 0.0, -1.0, 0.0, -1.0, 1.0, -2.0, 1.0, -2.0, 2.0,
          -3.0, 2.0 };
  
*************** double expect_ceil[] = { __builtin_nan("
*** 40,45 ****
--- 46,52 ----
          -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023,
          -0.0, 1.0,
          1.0, 1.0, 2.0, 1.0, 2.0, 2.0,
+         -0.0, -0.0, -1.0, -0.0, -1.0, -1.0,
          -0.0, 0.0, -0.0, 1.0, -1.0, 1.0, -1.0, 2.0, -2.0, 2.0,
          -2.0, 3.0 };
  
*************** double expect_trunc[] = { __builtin_nan(
*** 47,52 ****
--- 54,60 ----
          -0x1.fffffffffffffp+1023, 0x1.fffffffffffffp+1023,
          -0.0, 0.0,
          0.0, 0.0, 1.0, 0.0, 1.0, 1.0,
+         -0.0, -0.0, -1.0, -0.0, -1.0, -1.0,
          -0.0, 0.0, -0.0, 0.0, -1.0, 1.0, -1.0, 1.0, -2.0, 2.0,
          -2.0, 2.0 };
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c	Mon Mar 16 10:11:11 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-rec.c	Sun Sep  8 19:41:20 2019
*************** foo (int y)
*** 18,31 ****
    return y + bar (y);
  }
  
- /* For !nonpic && ia32 xfails, see PR64895.  */
- 
  /* Check that no registers are saved/restored. */
! /* { dg-final { scan-assembler-not "push" { xfail { { ! nonpic } && ia32 } } } } */
! /* { dg-final { scan-assembler-not "pop" { xfail { { ! nonpic } && ia32 } } } } */
  
  /* Check that addition uses dx. */
! /* { dg-final { scan-assembler-times "addl\t%\[re\]?dx, %\[re\]?ax" 1 { xfail { { ! nonpic } && ia32 } } } } */
  
  /* Verify that bar is self-recursive.  */
  /* { dg-final { scan-assembler-times "call\t_?bar" 2 } } */
--- 18,29 ----
    return y + bar (y);
  }
  
  /* Check that no registers are saved/restored. */
! /* { dg-final { scan-assembler-not "push" } } */
! /* { dg-final { scan-assembler-not "pop" } } */
  
  /* Check that addition uses dx. */
! /* { dg-final { scan-assembler-times "addl\t%\[re\]?dx, %\[re\]?ax" 1 } } */
  
  /* Verify that bar is self-recursive.  */
  /* { dg-final { scan-assembler-times "call\t_?bar" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c	Mon Mar 16 10:11:11 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/fuse-caller-save-xmm.c	Sun Sep  8 19:41:20 2019
*************** foo (v2df y)
*** 15,27 ****
    return y + bar (y);
  }
  
- /* For !nonpic && ia32 xfails, see PR64895.  */
- 
  /* Check presence of all insns on xmm registers.  These checks are expected to
     pass with both -fipa-ra and -fno-ipa-ra.  */
! /* { dg-final { scan-assembler-times "addpd\t\\.?LC0.*, %xmm0" 1 } } */
! /* { dg-final { scan-assembler-times "addpd\t%xmm1, %xmm0" 1 { xfail { { ! nonpic } && ia32 } } } } */
! /* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm1" 1 { xfail { { ! nonpic } && ia32 } } } } */
  
  /* Check absence of save/restore of xmm1 register.  */
  /* { dg-final { scan-assembler-not "movaps\t%xmm1, \\(%\[re\]?sp\\)" } } */
--- 15,33 ----
    return y + bar (y);
  }
  
  /* Check presence of all insns on xmm registers.  These checks are expected to
     pass with both -fipa-ra and -fno-ipa-ra.  */
! 
! /* Darwin local constant symbol is "lC0", ELF targets ".LC0" */
! /* { dg-final { scan-assembler-times {addpd\t\.?[Ll]C0.*, %xmm0} 1 { target { { ! ia32 } || nonpic } } } } */
! /* { dg-final { scan-assembler-times {movapd\t\.?[Ll]C0.*, %xmm1} 1 { target { ia32 && { ! nonpic } } } } } */
! 
! /* We happen to get this for both cases, but in different positions.  */
! /* { dg-final { scan-assembler-times "addpd\t%xmm1, %xmm0" 1 } } */
! 
! /* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm1" 1 { target { { ! ia32 } || nonpic } } } } */
! /* { dg-final { scan-assembler-times "movapd\t%xmm0, %xmm2" 1 { target { ia32 && { ! nonpic } } } } } */
! /* { dg-final { scan-assembler-times "addpd\t%xmm2, %xmm0" 1 { target { ia32 && { ! nonpic } } } } } */
  
  /* Check absence of save/restore of xmm1 register.  */
  /* { dg-final { scan-assembler-not "movaps\t%xmm1, \\(%\[re\]?sp\\)" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/fuse-caller-save.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/fuse-caller-save.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/fuse-caller-save.c	Mon Mar 16 10:11:11 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/fuse-caller-save.c	Sun Sep  8 19:41:20 2019
*************** foo (int y)
*** 16,26 ****
    return y + bar (y);
  }
  
- /* For !nonpic && ia32 xfails, see PR64895.  */
- 
  /* Check that no registers are saved/restored. */
! /* { dg-final { scan-assembler-not "push" { xfail { { ! nonpic } && ia32 } } } } */
! /* { dg-final { scan-assembler-not "pop" { xfail { { ! nonpic } && ia32 } } } } */
  
  /* PR61605.  If the first argument register and the return register differ, then
     bar leaves the first argument register intact.  That means in foo that the
--- 16,24 ----
    return y + bar (y);
  }
  
  /* Check that no registers are saved/restored. */
! /* { dg-final { scan-assembler-not "push" } } */
! /* { dg-final { scan-assembler-not "pop" } } */
  
  /* PR61605.  If the first argument register and the return register differ, then
     bar leaves the first argument register intact.  That means in foo that the
*************** foo (int y)
*** 31,34 ****
  /* { dg-final { scan-assembler-not "movl" { target { ! ia32 } } } } */
  
  /* Check that addition uses di (in case of no copy) or dx (in case of copy). */
! /* { dg-final { scan-assembler-times "addl\t%\[re\]?d\[ix\], %\[re\]?ax" 1 { xfail { { ! nonpic } && ia32 } } } } */
--- 29,32 ----
  /* { dg-final { scan-assembler-not "movl" { target { ! ia32 } } } } */
  
  /* Check that addition uses di (in case of no copy) or dx (in case of copy). */
! /* { dg-final { scan-assembler-times "addl\t%\[re\]?d\[ix\], %\[re\]?ax" 1 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-1.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-1.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk" } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,19 ****
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 12,22 ----
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-2.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-2.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,19 ****
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 12,22 ----
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-3.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-3.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk" } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 12,20 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 13,23 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-4.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-4.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 12,20 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 13,23 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-7.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-7.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */
  
  void func0 (void);
  void func1 (void);
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fjump-tables" } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  void func0 (void);
  void func1 (void);
*************** bar (int i)
*** 36,43 ****
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 37,46 ----
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {leaq[ \t]*L[0-9]+\(%rip\)} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {addl[ \t]*L[0-9]+-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-1.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 14,22 ****
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 15,25 ----
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-2.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 12,20 ****
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 13,23 ----
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-3.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 14,22 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler-times "jmp\[ \t\]*\.LIND" 2 } } */
! /* { dg-final { scan-assembler-times "call\[ \t\]*\.LIND" 2 } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
--- 15,25 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-times {jmp[ \t]*\.?LIND} 2 } } */
! /* { dg-final { scan-assembler-times {call[ \t]*\.?LIND} 2 } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-4.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 13,21 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler-times "jmp\[ \t\]*\.LIND" 2 } } */
! /* { dg-final { scan-assembler-times "call\[ \t\]*\.LIND" 2 } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
--- 14,24 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-times {jmp[ \t]*\.?LIND} 2 } } */
! /* { dg-final { scan-assembler-times {call[ \t]*\.?LIND} 2 } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-5.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 14,21 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 15,24 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-6.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 13,20 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 14,23 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-7.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -fno-pic" } */
  
  void func0 (void);
  void func1 (void);
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  void func0 (void);
  void func1 (void);
*************** bar (int i)
*** 37,43 ****
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 38,46 ----
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {leaq[ \t]*L[0-9]+\(%rip\)} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {addl[ \t]*L[0-9]+-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-attr-8.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */
  
  void func0 (void);
  void func1 (void);
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mfunction-return=keep -mindirect-branch=thunk " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  void func0 (void);
  void func1 (void);
*************** bar (int i)
*** 36,42 ****
      }
  }
  
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 37,43 ----
      }
  }
  
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-1.c	Sat Sep 28 20:05:38 2019
***************
*** 1,5 ****
  /* { dg-do compile { target { ! x32 } } } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fcheck-pointer-bounds -mmpx -fno-pic" } */
  
  void (*dispatch) (char *);
  char buf[10];
--- 1,6 ----
  /* { dg-do compile { target { ! x32 } } } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fcheck-pointer-bounds -mmpx" } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  void (*dispatch) (char *);
  char buf[10];
*************** foo (void)
*** 11,18 ****
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "bnd jmp\[ \t\]*__x86_indirect_thunk_bnd_rax" { target lp64 } } } */
! /* { dg-final { scan-assembler "bnd call\[ \t\]*__x86_indirect_thunk_bnd_eax" { target ia32 } } } */
  /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler "bnd call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler "bnd ret" } } */
--- 12,19 ----
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "bnd jmp\[ \t\]*_?__x86_indirect_thunk_bnd_rax" { target lp64 } } } */
! /* { dg-final { scan-assembler "bnd call\[ \t\]*_?__x86_indirect_thunk_bnd_eax" { target ia32 } } } */
  /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler "bnd call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler "bnd ret" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-bnd-2.c	Sat Sep 28 20:05:38 2019
***************
*** 1,5 ****
  /* { dg-do compile { target { ! x32 } } } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fcheck-pointer-bounds -mmpx -fno-pic" } */
  
  void (*dispatch) (char *);
  char buf[10];
--- 1,6 ----
  /* { dg-do compile { target { ! x32 } } } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fcheck-pointer-bounds -mmpx" } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  void (*dispatch) (char *);
  char buf[10];
*************** foo (void)
*** 12,19 ****
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "bnd call\[ \t\]*__x86_indirect_thunk_bnd_(r|e)ax" } } */
! /* { dg-final { scan-assembler "bnd call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler "bnd ret" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 13,20 ----
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "bnd call\[ \t\]*_?__x86_indirect_thunk_bnd_(r|e)ax" } } */
! /* { dg-final { scan-assembler "bnd call\[ \t\]*\.?LIND" } } */
  /* { dg-final { scan-assembler "bnd ret" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-1.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,18 ****
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 12,21 ----
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.�LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-2.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,18 ****
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 12,21 ----
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-3.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 12,19 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 13,22 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-4.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 12,18 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" { target x32 } } } */
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
--- 13,20 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-extern-7.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern -fno-pic" } */
  
  void func0 (void);
  void func1 (void);
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern -fjump-tables" } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  void func0 (void);
  void func1 (void);
*************** bar (int i)
*** 36,42 ****
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 37,43 ----
  }
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.?LIND" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-1.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,20 ****
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
--- 12,23 ----
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-2.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,20 ****
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
--- 12,23 ----
    dispatch[offset](offset);
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-3.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 12,21 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler-times "jmp\[ \t\]*\.LIND" 2 } } */
! /* { dg-final { scan-assembler-times "call\[ \t\]*\.LIND" 2 } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
--- 13,24 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-times {jmp[ \t]*\.?LIND} 2 } } */
! /* { dg-final { scan-assembler-times {call[ \t]*\.?LIND} 2 } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-4.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 12,21 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler-times "jmp\[ \t\]*\.LIND" 2 } } */
! /* { dg-final { scan-assembler-times "call\[ \t\]*\.LIND" 2 } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
--- 13,24 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*dispatch" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_dispatch} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_dispatch\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-times {jmp[ \t]*\.?LIND} 2 } } */
! /* { dg-final { scan-assembler-times {call[ \t]*\.?LIND} 2 } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" { target x32 } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-inline-7.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline -fno-pic" } */
  
  void func0 (void);
  void func1 (void);
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline -fjump-tables" } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  void func0 (void);
  void func1 (void);
*************** bar (int i)
*** 37,44 ****
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
--- 38,45 ----
  
  /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*\.L\[0-9\]+\\(,%" { target *-*-linux* } } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c	Tue Jan 16 11:17:49 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-1.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=thunk -mindirect-branch-register -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=thunk -mindirect-branch-register " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,22 ****
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler "mov\[ \t\](%eax|%rax), \\((%esp|%rsp)\\)" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler-not "push(?:l|q)\[ \t\]*_?dispatch"  } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk\n" } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk_bnd\n" } } */
--- 12,23 ----
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler "mov\[ \t\](%eax|%rax), \\((%esp|%rsp)\\)" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler-not "push(?:l|q)\[ \t\]*_?dispatch"  } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk\n" } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk_bnd\n" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c	Tue Jan 16 11:17:49 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-2.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=thunk-inline -mindirect-branch-register -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=thunk-inline -mindirect-branch-register " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,20 ****
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler "mov\[ \t\](%eax|%rax), \\((%esp|%rsp)\\)" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler-not "push(?:l|q)\[ \t\]*_?dispatch"  } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
--- 12,21 ----
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler "mov\[ \t\](%eax|%rax), \\((%esp|%rsp)\\)" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler-not "push(?:l|q)\[ \t\]*_?dispatch"  } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c	Tue Jan 16 11:17:49 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-3.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=thunk-extern -mindirect-branch-register -fno-pic" } */
  
  typedef void (*dispatch_t)(long offset);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=thunk-extern -mindirect-branch-register " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  typedef void (*dispatch_t)(long offset);
  
*************** male_indirect_jump (long offset)
*** 11,19 ****
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "push(?:l|q)\[ \t\]*_?dispatch"  } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
  /* { dg-final { scan-assembler-not {\t(pause|pause|nop)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 12,20 ----
    dispatch(offset);
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "push(?:l|q)\[ \t\]*_?dispatch"  } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
  /* { dg-final { scan-assembler-not {\t(pause|pause|nop)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c	Tue Jan 16 11:19:51 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/indirect-thunk-register-4.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=keep -fno-pic" } */
  
  extern void (*func_p) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mindirect-branch=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*func_p) (void);
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c	Sat Aug 10 03:48:01 2013
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c	Fri Sep  6 15:51:01 2019
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-options "-O2 -march=atom -mmemcpy-strategy=vector_loop:2000:align,libcall:-1:align" } */
! /* { dg-final { scan-assembler-times "memcpy" 2  } } */
  
  char a[2048];
  char b[2048];
--- 1,9 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -march=atom -mmemcpy-strategy=vector_loop:2000:align,libcall:-1:align" } */
! /* On ELF platforms, one hit comes from the .file directive.  */
! /* { dg-final { scan-assembler-times "memcpy" 2 { target { ! *-*-darwin* } } } } */
! /* But not on Darwin, which doesn't have a .file directive by default.  */
! /* { dg-final { scan-assembler-times "_memcpy" 1  { target *-*-darwin* } } } */
  
  char a[2048];
  char b[2048];
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/memset-strategy-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/memset-strategy-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/memset-strategy-1.c	Sat Aug 10 03:48:01 2013
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/memset-strategy-1.c	Fri Sep  6 15:51:01 2019
***************
*** 1,10 ****
  /* { dg-do compile } */
  /* { dg-options "-O2 -march=atom -mmemset-strategy=libcall:-1:align" } */
! /* { dg-final { scan-assembler-times "memset" 2  } } */
  
  char a[2048];
  void t (void)
  {
    __builtin_memset (a, 1, 2048);
  }
- 
--- 1,12 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -march=atom -mmemset-strategy=libcall:-1:align" } */
! /* On ELF platforms, one hit comes from the .file directive.  */
! /* { dg-final { scan-assembler-times "memset" 2 { target { ! *-*-darwin* } } } } */
! /* But not on Darwin, which doesn't have a .file directive by default.  */
! /* { dg-final { scan-assembler-times "_memset" 1 { target *-*-darwin* } } } */
  
  char a[2048];
  void t (void)
  {
    __builtin_memset (a, 1, 2048);
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr22076.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr22076.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr22076.c	Tue Apr 22 12:30:59 2014
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr22076.c	Thu Sep 12 19:26:49 2019
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-options "-O2 -fomit-frame-pointer -flax-vector-conversions -mmmx" } */
! /* { dg-options "-O2 -fomit-frame-pointer -flax-vector-conversions -mmmx -mno-vect8-ret-in-mem" { target *-*-vxworks* } } */
  
  #include <mmintrin.h>
  
--- 1,8 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -fomit-frame-pointer -flax-vector-conversions -mmmx" } */
! /* { dg-additional-options "-mno-vect8-ret-in-mem" { target *-*-vxworks* } } */
! /* { dg-additional-options "-fno-common" { target *-*-darwin* } } */
! /* { dg-additional-options "-mdynamic-no-pic" { target { ia32 && *-*-darwin* } } } */
  
  #include <mmintrin.h>
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr24414.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr24414.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr24414.c	Mon Jun  6 12:31:59 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr24414.c	Mon Sep  9 19:58:23 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do run } */
  /* { dg-options "-O2" } */
+ /* { dg-skip-if "asm insert mismatches ABI for Darwin" { *-*-darwin* } } */
  int test;
  
  int
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-1.c	Thu May 21 18:13:06 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-1.c	Fri Sep  6 15:59:54 2019
*************** foo ()
*** 12,18 ****
    return xxx;
  }
  
! /* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target ia32 } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { target ia32 } } } */
--- 12,22 ----
    return xxx;
  }
  
! /* { dg-final { scan-assembler {movl[ \t]_?xxx\(%rip\),[ \t]%eax} { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "_?xxx@GOTPCREL" { target { ! ia32 } } } } */
! 
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]_?xxx@GOT\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* For Darwin, we default to PIC - but that's needed for Darwin's PIE.  */
! /* { dg-final { scan-assembler {movl[ \t]_xxx-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-2.c	Tue Apr 26 12:25:52 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-2.c	Fri Nov  1 20:52:21 2019
*************** foo ()
*** 12,17 ****
  }
  
  /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target ia32 } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target ia32 } } } */
--- 12,24 ----
  }
  
  /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { ! ia32 } } } } */
+ /* For Darwin m64 we are always PIC, but common symbols are indirected, which happens to
+    match the general "ELF" case.  */
  /* { dg-final { scan-assembler "xxx@GOTPCREL" { target { ! ia32 } } } } */
! 
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* Darwin m32 defaults to PIC but common symbols need to be indirected.  */
! /* { dg-final { scan-assembler {movl[ \t][Ll]_xxx\$non_lazy_ptr-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
! 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-3.c	Thu May 21 18:13:06 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-3.c	Fri Nov  1 20:52:21 2019
*************** foo ()
*** 12,18 ****
    return xxx;
  }
  
! /* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target ia32 } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { target ia32 } } } */
--- 12,27 ----
    return xxx;
  }
  
! /* { dg-final { scan-assembler {movl[ \t]xxx\(%rip\),[ \t]%eax} { target { { ! ia32 } && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { { ! ia32 } && { ! *-*-darwin* } } } } } */
! 
! /* For Darwin m64, code is always PIC and we need to indirect through the GOT to allow
!    weak symbols to be interposed.  The dynamic loader knows how to apply PIE to this.  */
! /* { dg-final { scan-assembler {movq[ \t]_xxx@GOTPCREL\(%rip\),[ \t]%rax} { target { { ! ia32 } && *-*-darwin* } } } } */
! 
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* For Darwin, we need PIC to allow PIE, but also we must indirect weak symbols so that
!    they can be indirected.  Again, dyld knows how to deal with this. */
! /* { dg-final { scan-assembler {movl[ \t][Ll]_xxx\$non_lazy_ptr-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-4.c	Tue Apr 26 12:25:52 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-4.c	Fri Nov  1 20:52:21 2019
*************** foo ()
*** 13,18 ****
  }
  
  /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target ia32 } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target ia32 } } } */
--- 13,24 ----
  }
  
  /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { ! ia32 } } } } */
+ /* Darwin is always PIC for PIE so no change, weak symbols need to be indirect and this
+    happens to match the ELF case.  */
  /* { dg-final { scan-assembler "xxx@GOTPCREL" { target { ! ia32 } } } } */
! 
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* Darwin m32 equivalent (indirect and PIC).  */
! /* { dg-final { scan-assembler {movl[ \t][Ll]_xxx\$non_lazy_ptr-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-5.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-5.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-5.c	Thu May 21 18:13:06 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-5.c	Fri Sep  6 15:59:54 2019
*************** foo ()
*** 11,17 ****
    return xxx;
  }
  
! /* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target ia32 } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { target ia32 } } } */
--- 11,21 ----
    return xxx;
  }
  
! /* { dg-final { scan-assembler "movl\[ \t\]_?xxx\\(%rip\\), %eax" { target { ! ia32 } } } } */
  /* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
! 
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* For Darwin m32, we need PIC (the default) to allow PIE.  */
! /* { dg-final { scan-assembler {movl[ \t]_xxx-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-6.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-6.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-6.c	Tue Apr 26 12:25:52 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-6.c	Fri Sep  6 15:59:54 2019
*************** foo ()
*** 11,17 ****
    return xxx;
  }
  
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target ia32 } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target ia32 } } } */
--- 11,24 ----
    return xxx;
  }
  
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { { ! ia32 } && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler "xxx@GOTPCREL" { target { { ! ia32 } && { ! *-*-darwin* } } } } } */
! 
! /* Darwin m64 is always PIC, and the dynamic linker doesn't need an indirection.  */
! /* { dg-final { scan-assembler {movl[ \t]_xxx\(%rip\),[ \t]%eax} { target { { ! ia32 } && *-*-darwin* } } } } */
! 
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* Darwin m32 defaults to PIC, so no change.  */
! /* { dg-final { scan-assembler {movl[ \t]_xxx-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-7.c	Thu May 21 18:13:06 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-7.c	Fri Nov  1 20:52:21 2019
*************** foo ()
*** 12,18 ****
    return xxx;
  }
  
! /* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target ia32 } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { target ia32 } } } */
--- 12,26 ----
    return xxx;
  }
  
! /* { dg-final { scan-assembler "movl\[ \t\]xxx\\(%rip\\), %eax" { target { { ! ia32 } && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler-not "xxx@GOTPCREL" { target { { ! ia32 } && { ! *-*-darwin* } } } } } */
! 
! /* For Darwin m64, code is always PIC but we need to indirect through the GOT to allow
!    weak symbols to be interposed.  The dynamic loader knows how to apply PIE to this.  */
! /* { dg-final { scan-assembler {movq[ \t]_xxx@GOTPCREL\(%rip\),[ \t]%rax} { target { { ! ia32 } && *-*-darwin* } } } } */
! 
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %eax" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* Darwin m32 equivalent (indirect and PIC).  */
! /* { dg-final { scan-assembler {movl[ \t][Ll]_xxx\$non_lazy_ptr-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-8.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr32219-8.c	Tue Apr 26 12:25:52 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr32219-8.c	Fri Nov  1 20:52:21 2019
*************** foo ()
*** 13,18 ****
  }
  
  /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler "xxx@GOTPCREL" { target { ! ia32 } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target ia32 } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target ia32 } } } */
--- 13,24 ----
  }
  
  /* { dg-final { scan-assembler-not "movl\[ \t\]xxx\\(%rip\\), %" { target { ! ia32 } } } } */
! /* Darwin is always PIC so no change, weak symbols needs to be indirect and this
!    happens to match the ELF case.  */
! /* { dg-final { scan-assembler "_?xxx@GOTPCREL" { target { ! ia32 } } } } */
! 
! /* { dg-final { scan-assembler-not "movl\[ \t\]xxx@GOTOFF\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! /* { dg-final { scan-assembler "movl\[ \t\]xxx@GOT\\(%\[^,\]*\\), %" { target { ia32 && { ! *-*-darwin* } } } } } */
! 
! /* Darwin m32 default to PIC but needs indirection for the weak symbol.  */
! /* { dg-final { scan-assembler {movl[ \t][Ll]_xxx\$non_lazy_ptr-L1\$pb\(%eax\),[ \t]%eax} { target { ia32 && *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr39013-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr39013-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr39013-1.c	Thu May 21 18:13:06 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr39013-1.c	Tue Sep 10 20:43:34 2019
*************** main (void)
*** 12,16 ****
    return foo () + bar ();
  }
  
! /* { dg-final { scan-assembler "foo@PLT" } } */
! /* { dg-final { scan-assembler "bar@PLT" } } */
--- 12,20 ----
    return foo () + bar ();
  }
  
! /* { dg-final { scan-assembler "foo@PLT" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "bar@PLT" { target { ! *-*-darwin* } } } } */
! 
! /* Darwin's dynamic linker does PIE without indirection.  */
! /* { dg-final { scan-assembler {call[ \t]_foo} { target *-*-darwin* } } } */
! /* { dg-final { scan-assembler {call[ \t]_bar} { target *-*-darwin* } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr39013-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr39013-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr39013-2.c	Thu May 21 18:13:06 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr39013-2.c	Tue Sep 10 20:43:34 2019
*************** main (void)
*** 12,16 ****
    return foo () + bar ();
  }
  
! /* { dg-final { scan-assembler "foo@PLT" } } */
! /* { dg-final { scan-assembler "bar@PLT" } } */
--- 12,20 ----
    return foo () + bar ();
  }
  
! /* { dg-final { scan-assembler "foo@PLT" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "bar@PLT" { target { ! *-*-darwin* } } } } */
! 
! /* Darwin's dynamic linker does PIE without indirection.  */
! /* { dg-final { scan-assembler {call[ \t]_foo} { target *-*-darwin* } } } */
! /* { dg-final { scan-assembler {call[ \t]_bar} { target *-*-darwin* } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr49866.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr49866.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr49866.c	Wed Jul 27 18:19:40 2011
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr49866.c	Sun Sep  8 19:49:27 2019
***************
*** 1,6 ****
  /* PR target/49866 */
! /* { dg-do assemble } */
! /* { dg-options "-O2 -mcmodel=large" { target lp64 } } */
  
  void fn (void *, int, int);
  int fn2 (void);
--- 1,7 ----
  /* PR target/49866 */
! /* { dg-do assemble { target lp64 } } */
! /* { dg-xfail-if "PR90698" { *-*-darwin* } } */
! /* { dg-options "-O2 -mcmodel=large"  } */
  
  void fn (void *, int, int);
  int fn2 (void);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52146.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52146.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52146.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52146.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32" } */
  
  void
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52698.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52698.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52698.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52698.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32 -maddress-mode=long" } */
  
  extern void abort (void);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52857-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52857-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52857-1.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52857-1.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-g -O -mx32 -maddress-mode=long" } */
  
  extern void get_BID128 (int *);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52857-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52857-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52857-2.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52857-2.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-g -O -mx32 -maddress-mode=long" } */
  
  void uw_init_context_1 (void *);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52876.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52876.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr52876.c	Wed Apr 11 19:31:45 2012
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr52876.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do run { target { x32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32 -maddress-mode=long" } */
  
  extern void abort (void);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr53698.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr53698.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr53698.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr53698.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O -mx32 -maddress-mode=long -fno-tree-dominator-opts" } */
  
  extern char foo[];
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr54157.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr54157.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr54157.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr54157.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32 -maddress-mode=long -ftree-vectorize" } */
  
  struct s2{
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55049-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55049-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55049-1.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55049-1.c	Sat Sep 28 20:00:22 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile { target { ! ia32 } } } */
  /* { dg-require-effective-target fpic } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -fPIC -mx32" } */
  
  extern void __morestack_fail (const char *msg);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55093.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55093.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55093.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55093.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32 -maddress-mode=long" } */
  /* { dg-skip-if "different ABI" { x86_64-*-mingw* } } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55116-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55116-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55116-1.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55116-1.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32 -maddress-mode=long" } */
  
  int glob_int_arr[100];
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55116-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55116-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55116-2.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55116-2.c	Sat Sep 28 20:00:22 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32 -maddress-mode=long" } */
  
  typedef struct rtx_def *rtx;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55597.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55597.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr55597.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr55597.c	Sat Sep 28 20:00:22 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile { target { ! ia32 } } } */
  /* { dg-require-effective-target fpic } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -fPIC -mx32 -maddress-mode=long" } */
  
  struct initial_sp
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr59874-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr59874-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr59874-3.c	Mon Dec 19 20:23:08 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr59874-3.c	Tue Sep 10 20:39:23 2019
***************
*** 1,7 ****
  /* PR target/59874 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -mpopcnt -masm=att" } */
! /* { dg-final { scan-assembler "popcntw" } } */
  
  unsigned int
  foo (unsigned short x)
--- 1,8 ----
  /* PR target/59874 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -mpopcnt -masm=att" } */
! /* { dg-final { scan-assembler "\tpopcntw" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "\tpopcnt" { target *-*-darwin* } } } */
  
  unsigned int
  foo (unsigned short x)
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr59929.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr59929.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr59929.c	Fri Jan 24 03:38:10 2014
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr59929.c	Sat Sep 28 20:00:22 2019
***************
*** 1,5 ****
  /* { dg-do run } */
! /* { dg-options "-O0 -mno-accumulate-outgoing-args" } */
  /* { dg-options "-O0 -mno-accumulate-outgoing-args -mx32 -maddress-mode=short" { target x32 } } */
  
  void
--- 1,5 ----
  /* { dg-do run } */
! /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O0 -mno-accumulate-outgoing-args -mx32 -maddress-mode=short" { target x32 } } */
  
  void
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr61599-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr61599-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr61599-1.c	Fri May 13 17:27:13 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr61599-1.c	Sun Sep  8 19:49:27 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* PR target/61599 */
  /* { dg-do run { target lp64 } } */
+ /* { dg-skip-if "PR90698" { *-*-darwin* } } */
  /* { dg-additional-sources pr61599-2.c } */
  /* { dg-options "-mcmodel=medium -fdata-sections" } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr63538.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr63538.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr63538.c	Wed Nov  5 21:00:07 2014
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr63538.c	Sun Sep  8 19:49:27 2019
*************** char *foo ()
*** 9,13 ****
  {
    return str;
  }
! 
! /* { dg-final { scan-assembler "movabs" } } */
--- 9,13 ----
  {
    return str;
  }
! /* See PR90698 re. Darwin xfail.  */
! /* { dg-final { scan-assembler "movabs" { xfail { *-*-darwin* } } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr64317.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr64317.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr64317.c	Mon May 25 08:50:43 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr64317.c	Tue Sep 10 20:43:34 2019
***************
*** 2,10 ****
  /* { dg-require-effective-target ia32 } */
  /* { dg-require-effective-target pie } */
  /* { dg-options "-O2 -fpie" } */
! /* { dg-final { scan-assembler "addl\[ \\t\]+\[$\]_GLOBAL_OFFSET_TABLE_, %ebx" } } */
! /* { dg-final { scan-assembler "movl\[ \\t\]+c@GOTOFF\[(\]%ebx\[)\]" } } */
! /* { dg-final { scan-assembler-not "movl\[ \\t\]+\[0-9]+\[(\]%esp\[)\], %ebx" } } */
  long c = 1;
  
  int bar();
--- 2,15 ----
  /* { dg-require-effective-target ia32 } */
  /* { dg-require-effective-target pie } */
  /* { dg-options "-O2 -fpie" } */
! /* { dg-final { scan-assembler "addl\[ \\t\]+\[$\]_GLOBAL_OFFSET_TABLE_, %ebx" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "movl\[ \\t\]+c@GOTOFF\[(\]%ebx\[)\]" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-not "movl\[ \\t\]+\[0-9]+\[(\]%esp\[)\], %ebx" { target { ! *-*-darwin* } } } } */
! 
! /* Check PIC access to c and t1 on Darwin (PIC is default, needed for PIE).  */
! /* { dg-final { scan-assembler {_c-L1\$pb\(%} { target *-*-darwin* } } } */
! /* { dg-final { scan-assembler {_t1.[0-9]+-L1\$pb\(%} { target *-*-darwin* } } } */
! 
  long c = 1;
  
  int bar();
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr66470.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr66470.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr66470.c	Tue Dec 29 10:32:21 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr66470.c	Sat Sep 28 20:00:22 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* PR target/66470 */
  /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
  /* { dg-options "-O2 -mx32 -maddress-mode=long" } */
  /* { dg-require-effective-target tls } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr66819-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr66819-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr66819-3.c	Fri Jul 10 20:30:10 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr66819-3.c	Mon Sep  9 20:13:24 2019
***************
*** 1,6 ****
  /* { dg-do compile { target ia32 } } */
  /* { dg-options "-O2 -mregparm=3" } */
! /* { dg-final { scan-assembler-not "call" } } */
  
  void (*bar)(int, int);
  
--- 1,6 ----
  /* { dg-do compile { target ia32 } } */
  /* { dg-options "-O2 -mregparm=3" } */
! /* { dg-final { scan-assembler-not {call[ \t]+_?bar} } } */
  
  void (*bar)(int, int);
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr66819-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr66819-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr66819-4.c	Fri Jul 10 20:30:10 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr66819-4.c	Mon Sep  9 20:13:24 2019
***************
*** 1,6 ****
  /* { dg-do compile { target ia32 } } */
  /* { dg-options "-O2 -mregparm=3" } */
! /* { dg-final { scan-assembler-not "call" } } */
  
  #include <stdarg.h>
  
--- 1,6 ----
  /* { dg-do compile { target ia32 } } */
  /* { dg-options "-O2 -mregparm=3" } */
! /* { dg-final { scan-assembler-not {call[ \t]+_?bar} } } */
  
  #include <stdarg.h>
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr67985-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr67985-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr67985-2.c	Tue Oct 20 15:12:37 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr67985-2.c	Mon Sep  9 20:07:18 2019
*************** foo (float x, float y)
*** 10,13 ****
  
  /* { dg-final { scan-assembler-not "mulss" } } */
  /* { dg-final { scan-assembler-not "movl\[ \t\].*, %eax" } } */
! /* { dg-final { scan-assembler "call\[ \t\]__mulsf3" } } */
--- 10,13 ----
  
  /* { dg-final { scan-assembler-not "mulss" } } */
  /* { dg-final { scan-assembler-not "movl\[ \t\].*, %eax" } } */
! /* { dg-final { scan-assembler "call\[ \t\]_?__mulsf3" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr70738-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr70738-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr70738-7.c	Wed May 25 18:58:49 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr70738-7.c	Mon Sep  9 19:58:23 2019
***************
*** 1,4 ****
! /* { dg-do compile { target ia32 } } */
  /* { dg-options "-msse2 -mgeneral-regs-only" } */
  
  extern float a, b, c;
--- 1,4 ----
! /* { dg-do compile { target { ia32 && { ! *-*-darwin* } } } } */
  /* { dg-options "-msse2 -mgeneral-regs-only" } */
  
  extern float a, b, c;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr77881.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr77881.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr77881.c	Tue Nov 15 14:02:28 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr77881.c	Mon Sep  9 20:07:18 2019
*************** foo (long long int a, long long int a2,
*** 8,12 ****
      if (a < 0 || b)
            baz ();
  }
! /* { dg-final { scan-assembler "js\[ \t\]\.L" } } */
! /* { dg-final { scan-assembler "jne\[ \t\]\.L" } } */
--- 8,12 ----
      if (a < 0 || b)
            baz ();
  }
! /* { dg-final { scan-assembler "js\[ \t\]\.?L" } } */
! /* { dg-final { scan-assembler "jne\[ \t\]\.?L" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr86334.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr86334.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr86334.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr86334.c	Fri Aug 30 11:29:57 2019
***************
*** 0 ****
--- 1,21 ----
+ /* PR rtl-optimization/86334 */
+ /* { dg-do run { target ia32 } } */
+ /* { dg-options "-O -march=i386 -mtune=athlon -minline-all-stringops -minline-stringops-dynamically -mmemcpy-strategy=libcall:-1:align -Wno-psabi" } */
+ 
+ typedef int V __attribute__ ((vector_size (64)));
+ 
+ static inline V
+ foo (V g)
+ {
+   g[0] = 4;
+   return g;
+ }
+ 
+ int
+ main ()
+ {
+   V x = foo ((V) { });
+   if (x[0] != 4 || x[1] || x[2] || x[3] || x[4] || x[5] || x[6] || x[7])
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr86952.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr86952.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr86952.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr86952.c	Thu Apr 11 08:59:48 2019
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mindirect-branch=thunk" } */
+ 
+ int global;
+ 
+ int
+ foo (int x)
+ {
+   switch (x & 7)
+     {
+       case 0: ; return 1722;
+       case 1: global += 1; return 1060;
+       case 2: ; return 1990;
+       case 3: ; return 1242;
+       case 4: ; return 1466;
+       case 5: ; return 894;
+       case 6: ; return 570;
+       case 7: ; return 572;
+       default: return 0;
+     }
+ }
+ 
+ /* { dg-final { scan-assembler-not "jmp\[ \t\]\\*" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr87853.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr87853.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr87853.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr87853.c	Mon Sep  9 11:44:17 2019
***************
*** 0 ****
--- 1,20 ----
+ /* PR target/87853 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -funsigned-char -msse2 -mno-sse3 -masm=att" } */
+ /* { dg-final { scan-assembler-times "\tpcmpgtb\t%xmm" 2 } } */
+ /* { dg-final { scan-assembler-not "\tpsubusb\t" } } */
+ /* { dg-final { scan-assembler-not "\tpcmpeqb\t" } } */
+ 
+ #include <x86intrin.h>
+ 
+ __m128i
+ foo (__m128i x, __m128i y)
+ {
+   return _mm_cmpgt_epi8 (x, y);
+ }
+ 
+ __m128i
+ bar (__m128i x, __m128i y)
+ {
+   return _mm_cmplt_epi8 (x, y);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88416.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88416.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88416.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88416.c	Fri Aug 30 11:20:47 2019
***************
*** 0 ****
--- 1,5 ----
+ /* PR rtl-optimization/88416 */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fvar-tracking-assignments -fno-forward-propagate --param max-cse-insns=1" } */
+ 
+ #include "writeeflags-1.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88418.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88418.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88418.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88418.c	Fri Dec 21 18:11:04 2018
***************
*** 0 ****
--- 1,15 ----
+ /* PR target/88418 */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fpack-struct -msse4.1 -mno-avx" } */
+ 
+ typedef long long v2di __attribute__ ((__vector_size__ (16)));
+ 
+ union df {
+   v2di se[2];
+ };
+ 
+ void
+ qg (union df *jz, union df *pl)
+ {
+   jz->se[0] = jz->se[0] == pl->se[0];
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88470.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88470.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88470.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88470.c	Fri Aug 30 11:21:45 2019
***************
*** 0 ****
--- 1,16 ----
+ /* PR rtl-optimization/88470 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -maccumulate-outgoing-args -ftrapv -fno-ivopts -fno-reorder-blocks-and-partition" } */
+ 
+ void
+ foo (long x, long *y)
+ {
+   long *a = y - 64, i;
+   for (i = 0; i < x; i++)
+     {
+       long v = y[i];
+       *a++ = v;
+     }
+   register void **c __asm__ ("di");
+   goto **c;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88906.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88906.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88906.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88906.c	Fri Aug 30 11:29:57 2019
***************
*** 0 ****
--- 1,21 ----
+ /* PR target/88906 */
+ /* { dg-do run { target ia32 } } */
+ /* { dg-options "-O -march=i386 -mtune=k6 -minline-all-stringops -minline-stringops-dynamically -mmemcpy-strategy=libcall:-1:align -Wno-psabi" } */
+ 
+ typedef unsigned V __attribute__ ((vector_size (16)));
+ 
+ static inline V
+ foo (V v)
+ {
+   __builtin_sub_overflow (0, 0, &v[0]);
+   return v;
+ }
+ 
+ int
+ main ()
+ {
+   V v = foo ((V) { ~0 });
+   if (v[0] || v[1] || v[2] || v[3])
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88938.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88938.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88938.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88938.c	Tue Jan 22 16:35:53 2019
***************
*** 0 ****
--- 1,5 ----
+ /* PR target/88938 */
+ /* { dg-do compile } */
+ /* { dg-options "-Og -fno-tree-ccp -fno-tree-fre -mtbm" } */
+ 
+ #include "tbm-bextri-1.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88948.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88948.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr88948.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr88948.c	Sun Jan 27 17:42:58 2019
***************
*** 0 ****
--- 1,5 ----
+ /* PR rtl-optimization/88948 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fgcse-sm -msse3 -mfpmath=387" } */
+ 
+ #include "../../gcc.c-torture/execute/stdarg-3.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-1a.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-1a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-1a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-1a.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-maddress-mode=short -mx32 -Ofast -funroll-loops -march=haswell" } */
+ /* { dg-final { scan-assembler-not "\tvgather" } } */
+ /* { dg-final { scan-assembler "addr32 vgather" } } */
+ 
+ void foo (void);
+ 
+ extern float *ncost;
+ 
+ float
+ bar (int type, int num)
+ {
+   int i;
+   float cost;
+ 
+   cost = 0;
+   for (i = 0; i < num; i++)
+     if (type)
+       cost += ncost[i];
+     else
+       foo ();
+   return (cost);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-1b.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-1b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-1b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-1b.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-maddress-mode=long -mx32 -Ofast -funroll-loops -march=haswell" } */
+ /* { dg-final { scan-assembler-not "\tvgather" } } */
+ /* { dg-final { scan-assembler "addr32 vgather" } } */
+ 
+ #include "pr89523-1a.c"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-2.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -march=haswell" } */
+ /* { dg-final { scan-assembler "\tvgather" } } */
+ /* { dg-final { scan-assembler-not "addr32 vgather" } } */
+ 
+ typedef double __v2df __attribute__ ((__vector_size__ (16)));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ 
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+ typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
+ 
+ extern __inline __m128d
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm_i32gather_pd (double const *__base, __m128i __index, const int __scale)
+ {
+   __v2df __zero = { 0.0, 0.0 };
+   __v2df __mask = __builtin_ia32_cmpeqpd (__zero, __zero);
+   __v2df x = x;
+ 
+   return (__m128d) __builtin_ia32_gathersiv2df (x,
+ 						__base,
+ 						(__v4si)__index,
+ 						__mask,
+ 						__scale);
+ }
+ 
+ __m128d x;
+ double *base;
+ __m128i idx;
+ 
+ void extern
+ avx2_test (void)
+ {
+   x = _mm_i32gather_pd (base, idx, 1);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-3.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-3.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -march=haswell" } */
+ /* { dg-final { scan-assembler "\tvgather" } } */
+ /* { dg-final { scan-assembler-not "addr32 vgather" } } */
+ 
+ typedef double __v2df __attribute__ ((__vector_size__ (16)));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ 
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+ typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
+ 
+ extern __inline __m128d
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm_i64gather_pd (double const *__base, __m128i __index, const int __scale)
+ {
+   __v2df __zero = { 0.0, 0.0 };
+   __v2df __mask = __builtin_ia32_cmpeqpd (__zero, __zero);
+ 
+   return (__m128d) __builtin_ia32_gatherdiv2df (__zero,
+ 						__base,
+ 						(__v2di)__index,
+ 						__mask,
+ 						__scale);
+ }
+ 
+ __m128d x;
+ double *base;
+ __m128i idx;
+ 
+ void extern
+ avx2_test (void)
+ {
+   x = _mm_i64gather_pd (base, idx, 1);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-4.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-4.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -march=haswell" } */
+ /* { dg-final { scan-assembler-not "\tvgather" } } */
+ /* { dg-final { scan-assembler "addr32 vgather" } } */
+ 
+ typedef double __v2df __attribute__ ((__vector_size__ (16)));
+ typedef int __v4si __attribute__ ((__vector_size__ (16)));
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ 
+ typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+ typedef double __m128d __attribute__ ((__vector_size__ (16), __may_alias__));
+ 
+ extern __inline __m128d
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm_i32gather_pd (double const *__base, __m128i __index, const int __scale)
+ {
+   __v2df __zero = { 0.0, 0.0 };
+   __v2df __mask = __builtin_ia32_cmpeqpd (__zero, __zero);
+   __v2df x = x;
+ 
+   return (__m128d) __builtin_ia32_gathersiv2df (x,
+ 						__base,
+ 						(__v4si)__index,
+ 						__mask,
+ 						__scale);
+ }
+ 
+ __m128d x;
+ __m128i idx;
+ 
+ void extern
+ avx2_test (void)
+ {
+   x = _mm_i32gather_pd ((void *) 0, idx, 1);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-5.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-5.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-5.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-5.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -mavx512pf" } */
+ /* { dg-final { scan-assembler "\tvgather" } } */
+ /* { dg-final { scan-assembler-not "addr32 vgather" } } */
+ 
+ typedef int __v8si __attribute__ ((__vector_size__ (32)));
+ typedef long long __m256i __attribute__ ((__vector_size__ (32),
+ 					  __may_alias__));
+ typedef unsigned char  __mmask8;
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_prefetch_i32gather_pd (__m256i __index, void const *__addr,
+ 			      int __scale, int __hint)
+ {
+   __builtin_ia32_gatherpfdpd ((__mmask8) 0xFF, (__v8si) __index, __addr,
+ 			      __scale, __hint);
+ }
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_mask_prefetch_i32gather_pd (__m256i __index, __mmask8 __mask,
+ 				   void const *__addr, int __scale, int __hint)
+ {
+   __builtin_ia32_gatherpfdpd (__mask, (__v8si) __index, __addr, __scale,
+ 			      __hint);
+ }
+ 
+ volatile __m256i idx;
+ volatile __mmask8 m8;
+ void *base;
+ 
+ void extern
+ avx512pf_test (void)
+ {
+   _mm512_prefetch_i32gather_pd (idx, base, 8, 3);
+   _mm512_mask_prefetch_i32gather_pd (idx, m8, base, 8, 3);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-6.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-6.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-6.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-6.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -mavx512pf" } */
+ /* { dg-final { scan-assembler-not "\tvgather" } } */
+ /* { dg-final { scan-assembler "addr32 vgather" } } */
+ 
+ typedef int __v8si __attribute__ ((__vector_size__ (32)));
+ typedef long long __m256i __attribute__ ((__vector_size__ (32),
+ 					  __may_alias__));
+ typedef unsigned char  __mmask8;
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_prefetch_i32gather_pd (__m256i __index, void const *__addr,
+ 			      int __scale, int __hint)
+ {
+   __builtin_ia32_gatherpfdpd ((__mmask8) 0xFF, (__v8si) __index, __addr,
+ 			      __scale, __hint);
+ }
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_mask_prefetch_i32gather_pd (__m256i __index, __mmask8 __mask,
+ 				   void const *__addr, int __scale, int __hint)
+ {
+   __builtin_ia32_gatherpfdpd (__mask, (__v8si) __index, __addr, __scale,
+ 			      __hint);
+ }
+ 
+ volatile __m256i idx;
+ volatile __mmask8 m8;
+ 
+ void extern
+ avx512pf_test (void)
+ {
+   _mm512_prefetch_i32gather_pd (idx, (void *) 0, 8, 3);
+   _mm512_mask_prefetch_i32gather_pd (idx, m8, (void *) 0, 8, 3);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-7.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-7.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -mavx512f" } */
+ /* { dg-final { scan-assembler "\tvscatter" } } */
+ /* { dg-final { scan-assembler-not "addr32 vscatter" } } */
+ 
+ typedef int __v8si __attribute__ ((__vector_size__ (32)));
+ typedef double __v8df __attribute__ ((__vector_size__ (64)));
+ typedef long long __m256i __attribute__ ((__vector_size__ (32),
+ 					  __may_alias__));
+ typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
+ typedef unsigned char  __mmask8;
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_i32scatter_pd (void *__addr, __m256i __index, __m512d __v1,
+ 		      int __scale)
+ {
+   __builtin_ia32_scattersiv8df (__addr, (__mmask8) 0xFF,
+ 				(__v8si) __index, (__v8df) __v1, __scale);
+ }
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_mask_i32scatter_pd (void *__addr, __mmask8 __mask,
+ 			   __m256i __index, __m512d __v1, int __scale)
+ {
+   __builtin_ia32_scattersiv8df (__addr, __mask, (__v8si) __index,
+ 				(__v8df) __v1, __scale);
+ }
+ 
+ volatile __m512d src;
+ volatile __m256i idx;
+ volatile __mmask8 m8;
+ double *addr;
+ 
+ void extern
+ avx512f_test (void)
+ {
+   _mm512_i32scatter_pd (addr, idx, src, 8);
+   _mm512_mask_i32scatter_pd (addr, m8, idx, src, 8);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-8.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-8.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-8.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -mavx512f" } */
+ /* { dg-final { scan-assembler "\tvscatter" } } */
+ /* { dg-final { scan-assembler-not "addr32 vscatter" } } */
+ 
+ typedef long long __v8di __attribute__ ((__vector_size__ (64)));
+ typedef double __v8df __attribute__ ((__vector_size__ (64)));
+ typedef long long __m512i __attribute__ ((__vector_size__ (64), __may_alias__));
+ typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
+ typedef unsigned char  __mmask8;
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_i64scatter_pd (void *__addr, __m512i __index, __m512d __v1,
+ 		      int __scale)
+ {
+   __builtin_ia32_scatterdiv8df (__addr, (__mmask8) 0xFF,
+ 				(__v8di) __index, (__v8df) __v1, __scale);
+ }
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_mask_i64scatter_pd (void *__addr, __mmask8 __mask,
+ 			   __m512i __index, __m512d __v1, int __scale)
+ {
+   __builtin_ia32_scatterdiv8df (__addr, __mask, (__v8di) __index,
+ 				(__v8df) __v1, __scale);
+ }
+ 
+ volatile __m512d src;
+ volatile __m512i idx;
+ volatile __mmask8 m8;
+ double *addr;
+ 
+ void extern
+ avx512f_test (void)
+ {
+   _mm512_i64scatter_pd (addr, idx, src, 8);
+   _mm512_mask_i64scatter_pd (addr, m8, idx, src, 8);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-9.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-9.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89523-9.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89523-9.c	Sun Mar 17 09:27:56 2019
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile { target { ! ia32 } } } */
+ /* { dg-require-effective-target maybe_x32 } */
+ /* { dg-options "-mx32 -O2 -mavx512f" } */
+ /* { dg-final { scan-assembler-not "\tvscatter" } } */
+ /* { dg-final { scan-assembler "addr32 vscatter" } } */
+ 
+ typedef int __v8si __attribute__ ((__vector_size__ (32)));
+ typedef double __v8df __attribute__ ((__vector_size__ (64)));
+ typedef long long __m256i __attribute__ ((__vector_size__ (32),
+ 					  __may_alias__));
+ typedef double __m512d __attribute__ ((__vector_size__ (64), __may_alias__));
+ typedef unsigned char  __mmask8;
+ 
+ extern __inline void
+ __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
+ _mm512_i32scatter_pd (void *__addr, __m256i __index, __m512d __v1,
+ 		      int __scale)
+ {
+   __builtin_ia32_scattersiv8df (__addr, (__mmask8) 0xFF,
+ 				(__v8si) __index, (__v8df) __v1, __scale);
+ }
+ 
+ volatile __m512d src;
+ volatile __m256i idx;
+ 
+ void extern
+ avx512f_test (void)
+ {
+   _mm512_i32scatter_pd ((void *) 0, idx, src, 8);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89945.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89945.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr89945.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr89945.c	Mon Apr  8 05:33:01 2019
***************
*** 0 ****
--- 1,21 ----
+ /* PR target/89945 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ void
+ foo ()
+ {
+   void *g[] = {&&a, &&b};
+ 
+   for (unsigned c = 0x1F;; c >>= 1)
+     {
+       unsigned d = (long)"a";
+       long e = 8;
+ 
+       while (e)
+         {
+           a: goto *g[c&d];
+           b: e--;
+         }
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr90547.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr90547.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr90547.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr90547.c	Thu May 23 04:55:40 2019
***************
*** 0 ****
--- 1,21 ----
+ /* PR target/90547 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ void
+ foo ()
+ {
+   void *g[] = {&&a, &&b};
+ 
+   for (unsigned c = 0x1F;; c >>= 1)
+     {
+       unsigned d = (long)("a"+1);
+       long e = 8;
+ 
+       while (e)
+         {
+           a: goto *g[c&d];
+           b: e--;
+         }
+     }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr91131.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr91131.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr91131.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr91131.c	Mon Sep  2 12:56:24 2019
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O" } */
+ 
+ struct Reg_T {
+     unsigned int a : 3;
+     unsigned int b : 1;
+     unsigned int c : 4;
+ };
+ 
+ volatile struct Reg_T Reg_A;
+ 
+ int
+ main ()
+ {
+   Reg_A = (struct Reg_T){ .a = 0, .b = 0, .c = 0 };
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler-times "mov\[^\r\n\]*Reg_A" 1 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr91704.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr91704.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/pr91704.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/pr91704.c	Mon Sep  9 11:43:08 2019
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/91704 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -funsigned-char -mavx2 -mavx512f -masm=att" } */
+ /* { dg-final { scan-assembler-times "\tvpcmpgtb\t%ymm" 1 } } */
+ /* { dg-final { scan-assembler-not "\tvpsubusb\t" } } */
+ /* { dg-final { scan-assembler-not "\tvpcmpeqb\t" } } */
+ 
+ #include <x86intrin.h>
+ 
+ __m256i
+ foo (__m256i x, __m256i y)
+ {
+   return _mm256_cmpgt_epi8 (x, y);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-1.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-1.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-1.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 6,13 ****
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 6,13 ----
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-10.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-10.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-10.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-10.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=thunk-inline -mindirect-branch=thunk -fno-pic" } */
  
  extern void (*bar) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=thunk-inline -mindirect-branch=thunk " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  
*************** foo (void)
*** 10,20 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 2 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 2 } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "__x86_indirect_thunk_(r|e)ax:" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
--- 11,21 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 2 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 2 } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "_?__x86_indirect_thunk_(r|e)ax:" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-11.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-11.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-11.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-11.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=thunk-extern -mindirect-branch=thunk -fno-pic" } */
  
  extern void (*bar) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=thunk-extern -mindirect-branch=thunk " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  
*************** foo (void)
*** 10,20 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "__x86_indirect_thunk_(r|e)ax:" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
--- 11,21 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "_?__x86_indirect_thunk_(r|e)ax:" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-12.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-12.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-12.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-12.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk -fno-pic" } */
  
  extern void (*bar) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  
*************** foo (void)
*** 10,20 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "__x86_indirect_thunk_(r|e)ax:" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
--- 11,21 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
! /* { dg-final { scan-assembler "_?__x86_indirect_thunk_(r|e)ax:" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-13.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-13.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-13.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-13.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline -fno-pic" } */
  
  extern void (*bar) (void);
  extern int foo (void) __attribute__ ((function_return("thunk")));
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-inline " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  extern int foo (void) __attribute__ ((function_return("thunk")));
*************** foo (void)
*** 11,21 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 2 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 2 } } */
! /* { dg-final { scan-assembler-times "jmp\[ \t\]*\.LIND" 3 } } */
! /* { dg-final { scan-assembler-times "call\[ \t\]*\.LIND" 3 } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_indirect_thunk" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
--- 12,22 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-times {\tpause} 2 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 2 } } */
! /* { dg-final { scan-assembler-times {jmp[ \t]*\.?LIND} 3 } } */
! /* { dg-final { scan-assembler-times {call[ \t]*\.?LIND} 3 } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_indirect_thunk" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-14.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-14.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-14.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-14.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern -fno-pic" } */
  
  extern void (*bar) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=thunk-extern " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  
*************** foo (void)
*** 13,21 ****
  
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?bar" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
--- 14,24 ----
  
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*bar" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_bar} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_bar\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-15.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-15.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-15.c	Fri Mar  2 13:09:55 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-15.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=keep -fno-pic" } */
  
  extern void (*bar) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=keep -mindirect-branch=keep " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  
*************** foo (void)
*** 11,21 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?bar" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
--- 12,24 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler-times {\tpause} 1 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 1 } } */
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*bar" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_bar} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_bar\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-16.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-16.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-16.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-16.c	Sat Sep 28 19:54:00 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mfunction-return=thunk-inline -mindirect-branch=thunk-extern -fno-pic" } */
  
  extern void (*bar) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mfunction-return=thunk-inline -mindirect-branch=thunk-extern " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  
*************** foo (void)
*** 11,18 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler-not "__x86_indirect_thunk" } } */
! /* { dg-final { scan-assembler-not "__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 12,19 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler-not "_?__x86_indirect_thunk" } } */
! /* { dg-final { scan-assembler-not "_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-2.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-2.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-2.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 6,13 ****
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk" } } */
--- 6,13 ----
  {
  }
  
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-22.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-22.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-22.c	Fri Mar  2 13:05:18 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-22.c	Sat Sep 28 19:54:00 2019
*************** struct s { _Complex unsigned short x; };
*** 6,15 ****
  struct s gs = { 100 + 200i };
  struct s __attribute__((noinline)) foo (void) { return gs; }
  
! /* { dg-final { scan-assembler-times "popl\[\\t \]*%ecx" 1 } } */
! /* { dg-final { scan-assembler "lea\[l\]?\[\\t \]*4\\(%esp\\), %esp" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk_ecx" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 6,17 ----
  struct s gs = { 100 + 200i };
  struct s __attribute__((noinline)) foo (void) { return gs; }
  
! /* { dg-final { scan-assembler-times "popl\[\\t \]*%ecx" 1 { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "lea\[l\]?\[\\t \]*4\\(%esp\\), %esp" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk_ecx" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {call[ \t]*___x86.get_pc_thunk.cx} { target { *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {jmp[ \t]*___x86_return_thunk} { target { *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-23.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-23.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-23.c	Fri Mar  2 13:05:18 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-23.c	Sat Sep 28 19:54:00 2019
*************** struct s { _Complex unsigned short x; };
*** 6,15 ****
  struct s gs = { 100 + 200i };
  struct s __attribute__((noinline)) foo (void) { return gs; }
  
! /* { dg-final { scan-assembler-times "popl\[\\t \]*%ecx" 1 } } */
! /* { dg-final { scan-assembler "lea\[l\]?\[\\t \]*4\\(%esp\\), %esp" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk_ecx" } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler-not {\tpause} } } */
  /* { dg-final { scan-assembler-not {\tlfence} } } */
--- 6,17 ----
  struct s gs = { 100 + 200i };
  struct s __attribute__((noinline)) foo (void) { return gs; }
  
! /* { dg-final { scan-assembler-times "popl\[\\t \]*%ecx" 1 { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "lea\[l\]?\[\\t \]*4\\(%esp\\), %esp" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk_ecx" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {call[ \t]*___x86.get_pc_thunk.cx} { target { *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {jmp[ \t]*___x86_return_thunk} { target { *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler-not {\tpause} } } */
  /* { dg-final { scan-assembler-not {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-24.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-24.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-24.c	Fri Mar  2 13:05:18 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-24.c	Sat Sep 28 19:54:00 2019
*************** struct s { _Complex unsigned short x; };
*** 6,15 ****
  struct s gs = { 100 + 200i };
  struct s __attribute__((noinline)) foo (void) { return gs; }
  
! /* { dg-final { scan-assembler-times "popl\[\\t \]*%ecx" 1 } } */
! /* { dg-final { scan-assembler "lea\[l\]?\[\\t \]*4\\(%esp\\), %esp" } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk_ecx" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 6,17 ----
  struct s gs = { 100 + 200i };
  struct s __attribute__((noinline)) foo (void) { return gs; }
  
! /* { dg-final { scan-assembler-times "popl\[\\t \]*%ecx" 1 { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler "lea\[l\]?\[\\t \]*4\\(%esp\\), %esp" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk_ecx" { target { ! *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {call[ \t]*___x86.get_pc_thunk.cx} { target { *-*-darwin* } } } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*___x86_return_thunk} { target { *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-25.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-25.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-25.c	Fri Mar  2 13:05:18 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-25.c	Sat Sep 28 20:05:38 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* PR target/r84530 */
  /* { dg-do compile { target ia32 } } */
+ /* { dg-skip-if "ABI differs for return complex value" { *-*-darwin* } } */
  /* { dg-options "-O2 -mfunction-return=thunk -fcheck-pointer-bounds -mmpx -fno-pic" } */
  
  struct s { _Complex unsigned short x; };
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-3.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-3.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-3.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 6,12 ****
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 6,12 ----
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-4.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-4.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-4.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-4.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 6,12 ****
  {
  }
  
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 6,12 ----
  {
  }
  
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-5.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-5.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-5.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-5.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 8,15 ****
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
--- 8,15 ----
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-6.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-6.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-6.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-6.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 7,14 ****
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk" } } */
--- 7,14 ----
  {
  }
  
! /* { dg-final { scan-assembler {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]*\.?LIND} } } */
  /* { dg-final { scan-assembler {\tpause} } } */
  /* { dg-final { scan-assembler {\tlfence} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-7.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-7.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-7.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 7,13 ****
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 7,13 ----
  {
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-8.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-8.c	Tue Jan 16 11:10:44 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-8.c	Sat Sep 28 19:54:00 2019
*************** foo (void)
*** 8,14 ****
  {
  }
  
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler-not "call\[ \t\]*\.LIND" } } */
--- 8,14 ----
  {
  }
  
! /* { dg-final { scan-assembler-not "jmp\[ \t\]*_?__x86_return_thunk" } } */
  /* { dg-final { scan-assembler-not {\t(lfence|pause)} } } */
! /* { dg-final { scan-assembler-not {jmp[ \t]*\.?LIND} } } */
! /* { dg-final { scan-assembler-not {call[ \t]*\.?LIND} } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-9.c gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-9.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/i386/ret-thunk-9.c	Mon Mar 19 16:52:13 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/i386/ret-thunk-9.c	Fri Nov  1 20:52:21 2019
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=thunk -mindirect-branch=thunk -fno-pic" } */
  
  extern void (*bar) (void);
  
--- 1,6 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -mno-indirect-branch-register -mno-indirect-branch-register -mfunction-return=thunk -mindirect-branch=thunk " } */
! /* { dg-additional-options "-fno-pic" { target { ! *-*-darwin* } } } */
  
  extern void (*bar) (void);
  
*************** foo (void)
*** 10,21 ****
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*__x86_return_thunk" } } */
! /* { dg-final { scan-assembler "jmp\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "call\[ \t\]*\.LIND" } } */
! /* { dg-final { scan-assembler "__x86_return_thunk:" } } */
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*_?bar" { target *-*-linux* } } } */
  /* { dg-final { scan-assembler-times {\tpause} 2 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 2 } } */
! /* { dg-final { scan-assembler "call\[ \t\]*__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
--- 11,24 ----
    return 0;
  }
  
! /* { dg-final { scan-assembler "jmp\[ \t\]*_?__x86_return_thunk" } } */
! /* { dg-final { scan-assembler {jmp[ \t]+\.?LIND} } } */
! /* { dg-final { scan-assembler {call[ \t]+\.?LIND} } } */
! /* { dg-final { scan-assembler "_?__x86_return_thunk:" } } */
! /* { dg-final { scan-assembler "mov(?:l|q)\[ \t\]*bar" { target *-*-linux* } } } */
! /* { dg-final { scan-assembler {movq[ \t]*_bar} { target { lp64 && *-*-darwin* } } } } */
! /* { dg-final { scan-assembler {movl[ \t]*[Ll]_bar\$non_lazy_ptr-L[0-9]+\$pb} { target { ia32 && *-*-darwin* } } } } */
  /* { dg-final { scan-assembler-times {\tpause} 2 } } */
  /* { dg-final { scan-assembler-times {\tlfence} 2 } } */
! /* { dg-final { scan-assembler "call\[ \t\]*_?__x86_indirect_thunk_(r|e)ax" } } */
  /* { dg-final { scan-assembler-not "pushq\[ \t\]%rax" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec-13.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec-13.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec-13.c	Thu May 11 19:56:21 2006
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec-13.c	Tue Apr  2 01:08:31 2019
***************
*** 1,21 ****
  /* { dg-do compile { target powerpc*-*-* } } */
  /* { dg-require-effective-target powerpc_altivec_ok } */
  /* { dg-options "-maltivec" } */
  /* Author: Ziemowit Laski  <zlaski@apple.com>  */
  
  /* This test case exercises intrinsic/argument combinations that,
     while not in the Motorola AltiVec PIM, have nevertheless crept
     into the AltiVec vernacular over the years.  */
  
  #include <altivec.h>
  
! void foo (void) 
  {
    vector bool int boolVec1 = (vector bool int) vec_splat_u32(3);
    vector bool short boolVec2 = (vector bool short) vec_splat_u16(3);
    vector bool char boolVec3 = (vector bool char) vec_splat_u8(3);
! 
    boolVec1 = vec_sld( boolVec1, boolVec1, 4 );
    boolVec2 = vec_sld( boolVec2, boolVec2, 2 );
    boolVec3 = vec_sld( boolVec3, boolVec3, 1 );
  }
--- 1,77 ----
  /* { dg-do compile { target powerpc*-*-* } } */
  /* { dg-require-effective-target powerpc_altivec_ok } */
  /* { dg-options "-maltivec" } */
+ 
  /* Author: Ziemowit Laski  <zlaski@apple.com>  */
  
  /* This test case exercises intrinsic/argument combinations that,
     while not in the Motorola AltiVec PIM, have nevertheless crept
     into the AltiVec vernacular over the years.  */
  
+ /* Tests requiring VSX support (vector long long and vector double) have
+    been moved over to vsx-13.c.  */
+ 
  #include <altivec.h>
  
! void foo (void)
  {
    vector bool int boolVec1 = (vector bool int) vec_splat_u32(3);
    vector bool short boolVec2 = (vector bool short) vec_splat_u16(3);
    vector bool char boolVec3 = (vector bool char) vec_splat_u8(3);
!   vector signed char vsc1, vsc2, vscz;
!   vector unsigned char vuc1, vuc2, vucz;
!   vector signed short int vssi1, vssi2, vssiz;
!   vector signed int vsi1, vsi2, vsiz;
!   vector unsigned int vui1, vui2, vuiz;
!   vector unsigned short int vusi1, vusi2, vusiz;
!   vector pixel vp1, vp2, vpz;
!   vector float vf1, vf2, vfz;
!   
    boolVec1 = vec_sld( boolVec1, boolVec1, 4 );
    boolVec2 = vec_sld( boolVec2, boolVec2, 2 );
    boolVec3 = vec_sld( boolVec3, boolVec3, 1 );
+ 
+   vscz = vec_sld( vsc1, vsc2, 1 );
+   vucz = vec_sld( vuc1, vuc2, 1 );
+   vsiz = vec_sld( vsi1, vsi2, 1 );
+   vuiz = vec_sld( vui1, vui2, 1 );
+   vssiz = vec_sld( vssi1, vssi2, 1 );
+   vusiz = vec_sld( vusi1, vusi2, 1 );
+   
+   vfz = vec_sld( vf1, vf2, 1 );
+ 
+   vpz = vec_sld( vp1, vp2, 1 );
+ 
+   vucz = vec_srl(vuc1, vuc2);
+   vsiz = vec_srl(vsi1, vuc2);
+   vuiz = vec_srl(vui1, vuc2);
+   vpz = vec_srl(vp1, vuc2);
+   vssiz = vec_srl(vssi1, vuc2);
+   vusiz = vec_srl(vusi1, vuc2);
+ 
+   vscz = vec_sro(vsc1, vsc2);
+   vscz = vec_sro(vsc1, vuc2);
+   vucz = vec_sro(vuc1, vsc2);
+   vucz = vec_sro(vuc1, vuc2);
+   vsiz = vec_sro(vsi1, vsc2);
+   vsiz = vec_sro(vsi1, vuc2);
+   vuiz = vec_sro(vui1, vsc2);
+   vuiz = vec_sro(vui1, vuc2);
+   vpz = vec_sro(vp1, vsc2);
+   vpz = vec_sro(vp1, vuc2);
+   vssiz = vec_sro(vssi1, vsc2);
+   vssiz = vec_sro(vssi1, vuc2);
+   vusiz = vec_sro(vusi1, vsc2);
+   vusiz = vec_sro(vusi1, vuc2);
+   vfz = vec_sro(vf1, vsc2);
+   vfz = vec_sro(vf1, vuc2);
  }
+ 
+ /* Expected results:
+    vec_sld          vsldoi
+    vec_srl          vsr
+    vec_sro          vsro  */
+ 
+ /* { dg-final { scan-assembler-times "vsldoi" 11 } } */
+ /* { dg-final { scan-assembler-times "vsr " 6 } } */
+ /* { dg-final { scan-assembler-times "vsro" 16 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec-7.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec-7.c	Thu May 11 19:56:21 2006
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec-7.c	Thu Jan  1 00:00:00 1970
***************
*** 1,46 ****
- /* Origin: Aldy Hernandez  <aldyh@redhat.com>  */
- 
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-require-effective-target powerpc_altivec_ok } */
- /* { dg-options "-maltivec" } */
- 
- #include <altivec.h>
- 
- int **intp;
- int *var_int;
- unsigned int **uintp;
- vector pixel *varpixel;
- vector signed char *vecchar;
- vector signed int *vecint;
- vector signed short *vecshort;
- vector unsigned char *vecuchar;
- vector unsigned int *vecuint;
- vector unsigned short *vecushort;
- vector float *vecfloat;
- 
- int main ()
- {
-   *vecfloat++ = vec_andc((vector bool int)vecint[0], vecfloat[1]);
-   *vecfloat++ = vec_andc(vecfloat[0], (vector bool int)vecint[1]);
-   *vecfloat++ = vec_vxor((vector bool int)vecint[0], vecfloat[1]);
-   *vecfloat++ = vec_vxor(vecfloat[0], (vector bool int)vecint[1]);
-   *varpixel++ = vec_packpx(vecuint[0], vecuint[1]);
-   *varpixel++ = vec_vpkpx(vecuint[0], vecuint[1]);
-   *vecshort++ = vec_vmulosb(vecchar[0], vecchar[1]);
-   *vecint++ = vec_ld(var_int[0], intp[1]);
-   *vecint++ = vec_lde(var_int[0], intp[1]);
-   *vecint++ = vec_ldl(var_int[0], intp[1]);
-   *vecint++ = vec_lvewx(var_int[0], intp[1]);
-   *vecint++ = vec_unpackh(vecshort[0]);
-   *vecint++ = vec_unpackl(vecshort[0]);
-   *vecushort++ = vec_andc((vector bool short)vecshort[0], vecushort[1]);
-   *vecushort++ = vec_andc(vecushort[0], (vector bool short)vecshort[1]);
-   *vecushort++ = vec_vxor((vector bool short)vecshort[0], vecushort[1]);
-   *vecushort++ = vec_vxor(vecushort[0], (vector bool short)vecshort[1]);
-   *vecuint++ = vec_ld(var_int[0], uintp[1]);
-   *vecuint++ = vec_lvx(var_int[0], uintp[1]);
-   *vecuint++ = vec_vmsumubm(vecuchar[0], vecuchar[1], vecuint[2]);
-   *vecuchar++ = vec_xor(vecuchar[0], (vector unsigned char)vecchar[1]);
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec-7.h gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec-7.h
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec-7.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec-7.h	Tue Apr  2 01:08:31 2019
***************
*** 0 ****
--- 1,47 ----
+ /* Origin: Aldy Hernandez  <aldyh@redhat.com>  */
+ 
+ /* This test code is included into altivec-7-be.c and altivec-7-le.c.  
+    The two files have the tests for the number of instructions generated for
+    LE versus BE.  */
+ 
+ #include <altivec.h>
+ 
+ int **intp;
+ int *var_int;
+ unsigned int **uintp;
+ vector pixel *varpixel;
+ vector signed char *vecchar;
+ vector signed int *vecint;
+ vector signed short *vecshort;
+ vector unsigned char *vecuchar;
+ vector unsigned int *vecuint;
+ vector unsigned short *vecushort;
+ vector float *vecfloat;
+ 
+ int main ()
+ {
+   *vecfloat++ = vec_andc((vector bool int)vecint[0], vecfloat[1]);
+   *vecfloat++ = vec_andc(vecfloat[0], (vector bool int)vecint[1]);
+   *vecfloat++ = vec_vxor((vector bool int)vecint[0], vecfloat[1]);
+   *vecfloat++ = vec_vxor(vecfloat[0], (vector bool int)vecint[1]);
+   *varpixel++ = vec_packpx(vecuint[0], vecuint[1]);
+   *varpixel++ = vec_vpkpx(vecuint[0], vecuint[1]);
+   *vecshort++ = vec_vmulesb(vecchar[0], vecchar[1]);
+   *vecshort++ = vec_vmulosb(vecchar[0], vecchar[1]);
+   *vecint++ = vec_ld(var_int[0], intp[1]);
+   *vecint++ = vec_lde(var_int[0], intp[1]);
+   *vecint++ = vec_ldl(var_int[0], intp[1]);
+   *vecint++ = vec_lvewx(var_int[0], intp[1]);
+   *vecint++ = vec_unpackh(vecshort[0]);
+   *vecint++ = vec_unpackl(vecshort[0]);
+   *vecushort++ = vec_andc((vector bool short)vecshort[0], vecushort[1]);
+   *vecushort++ = vec_andc(vecushort[0], (vector bool short)vecshort[1]);
+   *vecushort++ = vec_vxor((vector bool short)vecshort[0], vecushort[1]);
+   *vecushort++ = vec_vxor(vecushort[0], (vector bool short)vecshort[1]);
+   *vecuint++ = vec_ld(var_int[0], uintp[1]);
+   *vecuint++ = vec_lvx(var_int[0], uintp[1]);
+   *vecuint++ = vec_vmsumubm(vecuchar[0], vecuchar[1], vecuint[2]);
+   *vecuchar++ = vec_xor(vecuchar[0], (vector unsigned char)vecchar[1]);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-1.c	Wed Jan 30 08:18:05 2019
***************
*** 0 ****
--- 1,184 ----
+ /* { dg-require-effective-target powerpc_altivec_ok } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* Test vec_ld and vec_st can support both scalar and vector
+    type address points, the list is:
+      - address of unsigned char/short/int
+      - address of signed char/short/int
+      - address of float
+      - address of vector unsigned char/short/int
+      - address of vector signed char/short/int
+      - address of vector float */
+ #include <altivec.h>
+ 
+ /* Test vec_ld can allow scalar and vector type address. */
+ vector unsigned char
+ test_vld_scalar_uc (const unsigned char *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector unsigned short
+ test_vld_scalar_us (const unsigned short *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector unsigned int
+ test_vld_scalar_ui (const unsigned int *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed char
+ test_vld_scalar_sc (const signed char *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed short
+ test_vld_scalar_ss (const signed short *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed int
+ test_vld_scalar_si (const signed int *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector float
+ test_vld_scalar_f (const float *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector unsigned char
+ test_vld_vector_uc (const vector unsigned char *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector unsigned short
+ test_vld_vector_us (const vector unsigned short *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector unsigned int
+ test_vld_vector_ui (const vector unsigned int *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed char
+ test_vld_vector_sc (const vector signed char *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed short
+ test_vld_vector_ss (const vector signed short *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed int
+ test_vld_vector_si (const vector signed int *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector float
+ test_vld_vector_f (const vector float *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ /* Test vec_st can allow scalar and vector type address. */
+ 
+ void
+ test_vst_scalar_uc (vector unsigned char v, unsigned char *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_us (vector unsigned short v, unsigned short *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_ui (vector unsigned int v, unsigned int *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_sc (vector signed char v, signed char *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_ss (vector signed short v, signed short *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_si (vector signed int v, signed int *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_f (vector float v, float *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_uc (vector unsigned char v, vector unsigned char *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_us (vector unsigned short v, vector unsigned short *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_ui (vector unsigned int v, vector unsigned int *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_sc (vector signed char v, vector signed char *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_ss (vector signed short v, vector signed short *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_si (vector signed int v, vector signed int *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_f (vector float v, vector float *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/altivec_vld_vst_addr-2.c	Wed Jan 30 08:18:05 2019
***************
*** 0 ****
--- 1,92 ----
+ /* { dg-require-effective-target powerpc_vsx_ok } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* Note that vector long long and vector double type require vsx support. */
+ 
+ /* Test vec_ld and vec_st can support both scalar and vector
+    type address points, the list is:
+      - address of unsigned long long
+      - address of signed long long
+      - address of double
+      - address of vector unsigned long long
+      - address of vector signed long long
+      - address of vector double */
+ #include <altivec.h>
+ 
+ /* Test vec_ld can allow scalar and vector type address. */
+ 
+ vector unsigned long long
+ test_vld_scalar_ul (const unsigned long long *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed long long
+ test_vld_scalar_sl (const signed long long *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector double
+ test_vld_scalar_d (const double *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector unsigned long long
+ test_vld_vector_ul (const vector unsigned long long *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector signed long long
+ test_vld_vector_sl (const vector signed long long *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ vector double
+ test_vld_vector_d (const vector double *address)
+ {
+   return __builtin_vec_ld (0, address);
+ }
+ 
+ /* Test vec_st can allow scalar and vector type address. */
+ 
+ void
+ test_vst_scalar_ul (vector unsigned long long v, unsigned long long *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_sl (vector signed long long v, signed long long *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_scalar_d (vector double v, double *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_ul (vector unsigned long long v,
+ 		    vector unsigned long long *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_sl (vector signed long long v, vector signed long long *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
+ void
+ test_vst_vector_d (vector double v, vector double *address)
+ {
+   __builtin_vec_st (v, 0, address);
+ }
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/bfp/bfp.exp	Fri Nov  1 20:01:52 2019
***************
*** 16,24 ****
  # along with GCC; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
  
! # Exit immediately if this isn't a PowerPC target or if the target is aix.
  if { (![istarget powerpc*-*-*] && ![istarget rs6000-*-*])
!      || [istarget "powerpc*-*-aix*"] } then {
    return
  }
  
--- 16,26 ----
  # along with GCC; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
  
! # Exit immediately if this isn't a PowerPC target or if the target is
! # aix or Darwin.
  if { (![istarget powerpc*-*-*] && ![istarget rs6000-*-*])
!      || [istarget "powerpc*-*-aix*"]
!      || [istarget "powerpc*-*-darwin*"]  } then {
    return
  }
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-2.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-2.c	Tue Nov  4 12:09:50 2014
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-2.c	Thu Sep  5 19:50:50 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do run { target { powerpc64le-*-* } } } */
  /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ /* { dg-require-effective-target vsx_hw } */
  /* { dg-options "-mcpu=power8 " } */
  
  #include <altivec.h>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c	Mon Mar  5 17:11:16 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p8.c	Tue Apr  2 01:08:31 2019
*************** test_pack_float (vector double x, vector
*** 17,22 ****
--- 17,50 ----
    return vec_pack (x, y);
  }
  
+ vector unsigned char
+ test_vsi_packs_vusi_vusi (vector unsigned short x,
+                           vector unsigned short y)
+ {
+   return vec_packs (x, y);
+ }
+ 
+ vector signed char
+ test_vsi_packs_vssi_vssi (vector signed short x,
+                           vector signed short y)
+ {
+   return vec_packs (x, y);
+ }
+ 
+ vector signed short int
+ test_vsi_packs_vsi_vsi (vector signed int x,
+ 			vector signed int y)
+ {
+   return vec_packs (x, y);
+ }
+ 
+ vector unsigned short int
+ test_vsi_packs_vui_vui (vector unsigned int x,
+ 			vector unsigned int y)
+ {
+   return vec_packs (x, y);
+ }
+ 
  vector long long
  test_nabs_long_long (vector long long x)
  {
*************** test_vui_packs_vull_vull (vector unsigne
*** 37,49 ****
    return vec_packs (x, y);
  }
  
  /* Expected test results:
  
       test_eq_long_long          1 vcmpequd inst
       test_pack_float            1 vpkudum inst
       test_nabs_long_long        1 vspltisw, 1 vsubudm, 1 vminsd
       test_vsi_packs_vsll_vsll   1 vpksdss
!      test_vui_packs_vull_vull   1 vpkudus */
  
  /* { dg-final { scan-assembler-times "vcmpequd" 1 } } */
  /* { dg-final { scan-assembler-times "vpkudum"  1 } } */
--- 65,121 ----
    return vec_packs (x, y);
  }
  
+ vector unsigned char
+ test_vsi_packsu_vssi_vssi (vector signed short x,
+ 			   vector signed short y)
+ {
+   return vec_packsu (x, y);
+ }
+ 
+ vector unsigned char
+ test_vsi_packsu_vusi_vusi (vector unsigned short x,
+ 			   vector unsigned short y)
+ {
+   return vec_packsu (x, y);
+ }
+ 
+ vector unsigned int
+ test_vsi_packsu_vsll_vsll (vector signed long long x,
+ 			   vector signed long long y)
+ {
+   return vec_packsu (x, y);
+ }
+ 
+ vector unsigned int
+ test_vsi_packsu_vull_vull (vector unsigned long long x,
+ 			   vector unsigned long long y)
+ {
+   return vec_packsu (x, y);
+ }
+ 
+ vector unsigned short int
+ test_vsi_packsu_vsi_vsi (vector signed int x,
+ 			 vector signed int y)
+ {
+   return vec_packsu (x, y);
+ }
+ 
+ vector unsigned short int
+ test_vsi_packsu_vui_vui (vector unsigned int x,
+ 			 vector unsigned int y)
+ {
+   return vec_packsu (x, y);
+ }
+ 
  /* Expected test results:
  
       test_eq_long_long          1 vcmpequd inst
       test_pack_float            1 vpkudum inst
       test_nabs_long_long        1 vspltisw, 1 vsubudm, 1 vminsd
       test_vsi_packs_vsll_vsll   1 vpksdss
!      test_vui_packs_vull_vull   1 vpkudus
!      test_vui_packs_vssi_vssi   1 vpkshss
!      test_vsi_packsu_vssi_vssi  1 vpkshus */
  
  /* { dg-final { scan-assembler-times "vcmpequd" 1 } } */
  /* { dg-final { scan-assembler-times "vpkudum"  1 } } */
*************** test_vui_packs_vull_vull (vector unsigne
*** 51,54 ****
  /* { dg-final { scan-assembler-times "vsubudm"  1 } } */
  /* { dg-final { scan-assembler-times "vminsd"   1 } } */
  /* { dg-final { scan-assembler-times "vpksdss"  1 } } */
! /* { dg-final { scan-assembler-times "vpkudus"  1 } } */  
--- 123,131 ----
  /* { dg-final { scan-assembler-times "vsubudm"  1 } } */
  /* { dg-final { scan-assembler-times "vminsd"   1 } } */
  /* { dg-final { scan-assembler-times "vpksdss"  1 } } */
! /* { dg-final { scan-assembler-times "vpkudus"  2 } } */  
! /* { dg-final { scan-assembler-times "vpkuhus"  2 } } */
! /* { dg-final { scan-assembler-times "vpkshss"  1 } } */
! /* { dg-final { scan-assembler-times "vpkshus"  1 } } */
! /* { dg-final { scan-assembler-times "vpksdus"  1 } } */
! /* { dg-final { scan-assembler-times "vpkuwus"  2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-3-p9-runnable.c	Tue Apr  2 01:08:31 2019
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do run { target { powerpc64*-*-* && { lp64 && p9vector_hw } } } } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+ /* { dg-options "-mcpu=power9 -O2 -mupper-regs-di" } */
+ 
+ #include <altivec.h> // vector
+ 
+ void abort (void);
+ 
+ int main() {
+    int i;
+    vector float vfr, vfexpt;
+    vector unsigned short vusha;
+ 
+    /* 1.0, -2.0, 0.0, 8.5, 1.5, 0.5, 1.25, -0.25 */
+    vusha = (vector unsigned short){0B011110000000000, 0B1100000000000000,
+                                    0B000000000000000, 0B0100100001000000,
+                                    0B011111000000000, 0B0011100000000000,
+                                    0B011110100000000, 0B1011010000000000};
+    
+    vfexpt = (vector float){1.0, -2.0, 0.0, 8.5};
+    vfr = vec_extract_fp_from_shorth(vusha);
+ 
+    for (i=0; i<4; i++) {
+       if (vfr[i] != vfexpt[i])
+          abort();
+    }
+ 
+    vfexpt = (vector float){1.5, 0.5, 1.25, -0.25};
+    vfr = vec_extract_fp_from_shortl(vusha);
+ 
+    for (i=0; i<4; i++) {
+       if (vfr[i] != vfexpt[i])
+          abort();
+    }
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-3.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/builtins-3.c	Mon Mar  5 17:11:16 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/builtins-3.c	Tue Apr  2 01:08:31 2019
*************** test_nabs_double (vector double x)
*** 59,64 ****
--- 59,228 ----
  	return vec_nabs (x);
  }
  
+ vector signed char
+ test_sll_vsc_vsc_vsuc (vector signed char x, vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector unsigned char
+ test_sll_vuc_vuc_vuc (vector unsigned char x, vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector signed int
+ test_sll_vsi_vsi_vuc (vector signed int x, vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector unsigned int
+ test_sll_vui_vui_vuc (vector unsigned int x, vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector bool long long
+ test_sll_vbll_vbll_vuc (vector bool long long x,
+ 			vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector bool long long
+ test_sll_vbll_vbll_vull (vector bool long long x,
+ 			vector unsigned long long y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector bool long long
+ test_sll_vbll_vbll_vus (vector bool long long x,
+ 			vector unsigned short y)
+ {
+ 	return vec_sll (x, y);
+ }
+ vector pixel
+ test_sll_vp_vp_vuc (vector pixel x, vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector signed short int
+ test_sll_vssi_vssi_vuc (vector signed short x, vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector unsigned short int
+ test_sll_vusi_vusi_vuc (vector unsigned short x, vector unsigned char y)
+ {
+ 	return vec_sll (x, y);
+ }
+ 
+ vector signed char
+ test_slo_vsc_vsc_vsc (vector signed char x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector signed char
+ test_slo_vsc_vsc_vuc (vector signed char x, vector unsigned char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector unsigned char
+ test_slo_vuc_vuc_vsc (vector unsigned char x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector unsigned char
+ test_slo_vuc_vuc_vuc (vector unsigned char x, vector unsigned char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector signed int
+ test_slo_vsi_vsi_vsc (vector signed int x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector signed int
+ test_slo_vsi_vsi_vuc (vector signed int x, vector unsigned char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector unsigned int
+ test_slo_vui_vui_vsc (vector unsigned int x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector unsigned int
+ test_slo_vui_vui_vuc (vector unsigned int x, vector unsigned char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector pixel
+ test_slo_vp_vp_vsc (vector pixel int x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector pixel
+ test_slo_vp_vp_vuc (vector pixel int x, vector unsigned char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector signed short int
+ test_slo_vssi_vssi_vsc (vector signed short int x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector signed short int
+ test_slo_vssi_vssi_vuc (vector signed short int x, vector unsigned char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector unsigned short int
+ test_slo_vusi_vusi_vsc (vector unsigned short int x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector unsigned short int
+ test_slo_vusi_vusi_vuc (vector unsigned short int x, vector unsigned char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector float
+ test_slo_vf_vf_vsc (vector float x, vector signed char y)
+ {
+ 	return vec_slo (x, y);
+ }
+ 
+ vector float
+ test_slo_vf_vf_vuc (vector float x, vector unsigned char y)
+  {
+  	return vec_slo (x, y);
+  }
+ 
+ vector int
+ test_cmpb_float (vector float x, vector float y)
+ {
+ 	return vec_cmpb (x, y);
+ }
+ 
  /* Expected test results:
  
       test_eq_char              1 vcmpequb inst
*************** test_nabs_double (vector double x)
*** 69,75 ****
       test_nabs_short           1 vspltisw, 1 vsubuhm, 1 vminsh
       test_nabs_int             1 vspltisw, 1 vsubuwm, 1 vminsw
       test_nabs_float           1 xvnabssp
!      test_nabs_double          1 xvnabsdp */
  
  /* { dg-final { scan-assembler-times "vcmpequb" 1 } } */
  /* { dg-final { scan-assembler-times "vcmpequh" 1 } } */
--- 233,240 ----
       test_nabs_short           1 vspltisw, 1 vsubuhm, 1 vminsh
       test_nabs_int             1 vspltisw, 1 vsubuwm, 1 vminsw
       test_nabs_float           1 xvnabssp
!      test_nabs_double          1 xvnabsdp
!      test_cmpb_float           1 vcmpbfp */
  
  /* { dg-final { scan-assembler-times "vcmpequb" 1 } } */
  /* { dg-final { scan-assembler-times "vcmpequh" 1 } } */
*************** test_nabs_double (vector double x)
*** 84,87 ****
--- 249,253 ----
  /* { dg-final { scan-assembler-times "vspltisw" 3 } } */
  /* { dg-final { scan-assembler-times "xvnabssp" 1 } } */
  /* { dg-final { scan-assembler-times "xvnabsdp" 1 } } */
+ /* { dg-final { scan-assembler-times "vcmpbfp"  1 } } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c	Tue Nov  4 12:09:50 2014
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/crypto-builtin-1.c	Thu Mar  7 01:54:46 2019
***************
*** 4,40 ****
  /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
  /* { dg-options "-mcpu=power8 -O2 -ftree-vectorize -fvect-cost-model=dynamic -fno-unroll-loops -fno-unroll-all-loops" } */
  
  typedef vector unsigned long long	crypto_t;
  typedef vector unsigned long long	v2di_t;
  typedef vector unsigned int		v4si_t;
  typedef vector unsigned short		v8hi_t;
  typedef vector unsigned char		v16qi_t;
  
! crypto_t crpyto1 (crypto_t a)
  {
    return __builtin_crypto_vsbox (a);
  }
  
  crypto_t crypto2 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vcipher (a, b);
  }
  
  crypto_t crypto3 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vcipherlast (a, b);
  }
  
  crypto_t crypto4 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vncipher (a, b);
  }
  
  crypto_t crypto5 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vncipherlast (a, b);
  }
  
  v16qi_t crypto6a (v16qi_t a, v16qi_t b, v16qi_t c)
  {
    return __builtin_crypto_vpermxor (a, b, c);
--- 4,66 ----
  /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
  /* { dg-options "-mcpu=power8 -O2 -ftree-vectorize -fvect-cost-model=dynamic -fno-unroll-loops -fno-unroll-all-loops" } */
  
+ #include <altivec.h>
  typedef vector unsigned long long	crypto_t;
  typedef vector unsigned long long	v2di_t;
  typedef vector unsigned int		v4si_t;
  typedef vector unsigned short		v8hi_t;
  typedef vector unsigned char		v16qi_t;
  
! crypto_t crypto1 (crypto_t a)
  {
    return __builtin_crypto_vsbox (a);
  }
  
+ v16qi_t crypto1_be (v16qi_t a)
+ {
+   return vec_sbox_be (a);
+ }
+ 
  crypto_t crypto2 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vcipher (a, b);
  }
  
+ v16qi_t crypto2_be (v16qi_t a, v16qi_t b)
+ {
+   return vec_cipher_be (a, b);
+ }
+ 
  crypto_t crypto3 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vcipherlast (a, b);
  }
  
+ v16qi_t crypto3_be (v16qi_t a, v16qi_t b)
+ {
+   return vec_cipherlast_be (a, b);
+ }
+ 
  crypto_t crypto4 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vncipher (a, b);
  }
  
+ v16qi_t crypto4_be (v16qi_t a, v16qi_t b)
+ {
+   return vec_ncipher_be (a, b);
+ }
+ 
  crypto_t crypto5 (crypto_t a, crypto_t b)
  {
    return __builtin_crypto_vncipherlast (a, b);
  }
  
+ v16qi_t crypto5_be (v16qi_t a, v16qi_t b)
+ {
+   return vec_ncipherlast_be (a, b);
+ }
+ 
  v16qi_t crypto6a (v16qi_t a, v16qi_t b, v16qi_t c)
  {
    return __builtin_crypto_vpermxor (a, b, c);
*************** v4si_t crypto8d (v4si_t a)
*** 117,131 ****
  
  /* Note space is used after the instruction so that vcipherlast does not match
     vcipher.  */
! /* { dg-final { scan-assembler-times "vcipher "      1 } } */
! /* { dg-final { scan-assembler-times "vcipherlast "  1 } } */
! /* { dg-final { scan-assembler-times "vncipher "     1 } } */
! /* { dg-final { scan-assembler-times "vncipherlast " 1 } } */
  /* { dg-final { scan-assembler-times "vpermxor "     4 } } */
  /* { dg-final { scan-assembler-times "vpmsumb "      2 } } */
  /* { dg-final { scan-assembler-times "vpmsumd "      2 } } */
  /* { dg-final { scan-assembler-times "vpmsumh "      2 } } */
  /* { dg-final { scan-assembler-times "vpmsumw "      2 } } */
! /* { dg-final { scan-assembler-times "vsbox "        1 } } */
  /* { dg-final { scan-assembler-times "vshasigmad "   2 } } */
  /* { dg-final { scan-assembler-times "vshasigmaw "   2 } } */
--- 143,157 ----
  
  /* Note space is used after the instruction so that vcipherlast does not match
     vcipher.  */
! /* { dg-final { scan-assembler-times "vcipher "      2 } } */
! /* { dg-final { scan-assembler-times "vcipherlast "  2 } } */
! /* { dg-final { scan-assembler-times "vncipher "     2 } } */
! /* { dg-final { scan-assembler-times "vncipherlast " 2 } } */
  /* { dg-final { scan-assembler-times "vpermxor "     4 } } */
  /* { dg-final { scan-assembler-times "vpmsumb "      2 } } */
  /* { dg-final { scan-assembler-times "vpmsumd "      2 } } */
  /* { dg-final { scan-assembler-times "vpmsumh "      2 } } */
  /* { dg-final { scan-assembler-times "vpmsumw "      2 } } */
! /* { dg-final { scan-assembler-times "vsbox "        2 } } */
  /* { dg-final { scan-assembler-times "vshasigmad "   2 } } */
  /* { dg-final { scan-assembler-times "vshasigmaw "   2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/darn-3.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/darn-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/darn-3.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/darn-3.c	Sat Aug 31 19:01:52 2019
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target { powerpc*-*-* } } } */
+ /* { dg-skip-if "" { powerpc*-*-aix* } } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+ /* { dg-options "-O2 -mcpu=power9" } */
+ 
+ static int darn32(void) { return __builtin_darn_32(); }
+ 
+ int four(void)
+ {
+ 	int sum = 0;
+ 	int i;
+ 	for (i = 0; i < 4; i++)
+ 		sum += darn32();
+ 	return sum;
+ }
+ 
+ /* { dg-final { scan-assembler-times {(?n)\mdarn .*,0\M} 4 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c	Tue Nov 24 19:09:26 2009
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c	Thu Sep  5 19:37:30 2019
***************
*** 1,6 ****
--- 1,8 ----
  /* Check that sizeof(bool) is 4 if we don't use special options. */
  /* Matt Austern  <austern@apple.com> */
  /* { dg-do run { target { powerpc*-*-darwin* && ilp32 } } } */
+ /* We do need to suppress the ISO C doesn't support _Bool message tho.  */
+ /* { dg-options "-Wno-pedantic" } */
  
  int dummy1[sizeof(_Bool) - 3];
  int dummy2[5 - sizeof(_Bool)];
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/dfp/dfp.exp	Fri Nov  1 20:01:52 2019
***************
*** 16,23 ****
  # along with GCC; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
  
! # Exit immediately if this isn't a PowerPC target.
! if { ![istarget powerpc*-*-*] && ![istarget rs6000-*-*] } then {
    return
  }
  
--- 16,26 ----
  # along with GCC; see the file COPYING3.  If not see
  # <http://www.gnu.org/licenses/>.
  
! # Exit immediately if this isn't a PowerPC target, also exit if we
! # are on Darwin which doesn't support decimal float.
! if { (![istarget powerpc*-*-*] && ![istarget rs6000-*-*])
!     || [istarget "powerpc*-*-darwin*"]
! } then {
    return
  }
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c	Tue Nov  4 12:09:50 2014
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/p8vector-builtin-2.c	Tue Apr  2 01:08:31 2019
***************
*** 9,14 ****
--- 9,22 ----
  typedef vector long long		v_sign;
  typedef vector unsigned long long	v_uns;
  typedef vector bool long long		v_bool;
+ typedef vector bool char		v_bchar;
+ typedef vector bool int 		v_bint;
+ typedef vector bool short		v_bshort;
+ typedef vector signed int		v_sint;
+ typedef vector unsigned int		v_uint;
+ typedef vector signed char		v_schar;
+ typedef vector unsigned char		v_uchar;
+ typedef vector float			v_float;
  
  v_sign sign_add_1 (v_sign a, v_sign b)
  {
*************** v_sign sign_sra_3 (v_sign a, v_uns b)
*** 191,205 ****
    return vec_vsrad (a, b);
  }
  
  /* { dg-final { scan-assembler-times "vaddudm" 	5 } } */
  /* { dg-final { scan-assembler-times "vsubudm" 	6 } } */
  /* { dg-final { scan-assembler-times "vmaxsd"  	4 } } */
  /* { dg-final { scan-assembler-times "vminsd"  	3 } } */
  /* { dg-final { scan-assembler-times "vmaxud"  	2 } } */
  /* { dg-final { scan-assembler-times "vminud"  	2 } } */
! /* { dg-final { scan-assembler-times "vcmpequd" 2 } } */
  /* { dg-final { scan-assembler-times "vcmpgtsd" 1 } } */
  /* { dg-final { scan-assembler-times "vcmpgtud" 1 } } */
  /* { dg-final { scan-assembler-times "vrld"     3 } } */
  /* { dg-final { scan-assembler-times "vsld"     5 } } */
  /* { dg-final { scan-assembler-times "vsrad"    3 } } */
--- 199,286 ----
    return vec_vsrad (a, b);
  }
  
+ v_bchar vbchar_eq (v_bchar a, v_bchar b)
+ {
+   return vec_cmpeq (a, b);
+ }
+ 
+ v_bchar vbschar_eq (v_schar a, v_schar b)
+ {
+   return vec_cmpeq (a, b);
+ }
+ 
+ v_bchar vuchar_eq (v_uchar a, v_uchar b)
+ {
+   return vec_cmpeq (a, b);
+ }
+ 
+ v_bint vbint_eq (v_bint a, v_bint b)
+ {
+   return vec_cmpeq (a, b);
+ }
+ 
+ v_bint vsint_eq (v_sint a, v_sint b)
+ {
+   return vec_cmpeq (a, b);
+ }
+ 
+ v_bint vuint_eq (v_uint a, v_uint b)
+ {
+   return vec_cmpeq (a, b);
+ }
+ 
+ v_bool vbool_eq (v_bool a, v_bool b)
+ {
+   return vec_cmpeq (a, b);
+ }
+ 
+ v_bint vbint_ne (v_bint a, v_bint b)
+ {
+   return vec_cmpne (a, b);
+ }
+ 
+ v_bint vsint_ne (v_sint a, v_sint b)
+ {
+   return vec_cmpne (a, b);
+ }
+ 
+ v_bint vuint_ne (v_uint a, v_uint b)
+ {
+   return vec_cmpne (a, b);
+ }
+ 
+ v_bool vbool_ne (v_bool a, v_bool b)
+ {
+   return vec_cmpne (a, b);
+ }
+ 
+ v_bool vsign_ne (v_sign a, v_sign b)
+ {
+   return vec_cmpne (a, b);
+ }
+ 
+ v_bool vuns_ne (v_uns a, v_uns b)
+ {
+   return vec_cmpne (a, b);
+ }
+ 
+ v_bshort vbshort_ne (v_bshort a, v_bshort b)
+ {
+   return vec_cmpne (a, b);
+ }
+ 
+ 
  /* { dg-final { scan-assembler-times "vaddudm" 	5 } } */
  /* { dg-final { scan-assembler-times "vsubudm" 	6 } } */
  /* { dg-final { scan-assembler-times "vmaxsd"  	4 } } */
  /* { dg-final { scan-assembler-times "vminsd"  	3 } } */
  /* { dg-final { scan-assembler-times "vmaxud"  	2 } } */
  /* { dg-final { scan-assembler-times "vminud"  	2 } } */
! /* { dg-final { scan-assembler-times "vcmpequd" 6 } } */
  /* { dg-final { scan-assembler-times "vcmpgtsd" 1 } } */
  /* { dg-final { scan-assembler-times "vcmpgtud" 1 } } */
  /* { dg-final { scan-assembler-times "vrld"     3 } } */
  /* { dg-final { scan-assembler-times "vsld"     5 } } */
  /* { dg-final { scan-assembler-times "vsrad"    3 } } */
+ /* { dg-final { scan-assembler-times "vcmpequb" 3 } } */
+ /* { dg-final { scan-assembler-times "vcmpequw" 6 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp	Mon Apr 10 19:01:37 2017
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/ppc-fortran/ppc-fortran.exp	Thu Mar 21 19:31:30 2019
*************** proc dg-compile-aux-modules { args } {
*** 36,42 ****
      global gfortran_test_path
      global gfortran_aux_module_flags
      if { [llength $args] != 2 } {
! 	error "dg-set-target-env-var: needs one argument"
  	return
      }
  
--- 36,42 ----
      global gfortran_test_path
      global gfortran_aux_module_flags
      if { [llength $args] != 2 } {
! 	error "dg-compile-aux-modules: needs one argument"
  	return
      }
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr64205.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr64205.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr64205.c	Wed Jan 18 17:39:56 2017
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr64205.c	Thu Sep  5 19:40:20 2019
***************
*** 1,5 ****
  /* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
! /* { dg-skip-if "" { powerpc*-*-aix* } { "*" } { "" } } */
  /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=G5" } } */
  /* { dg-options "-O2 -mcpu=G5 -maltivec" } */
  
--- 1,6 ----
  /* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
! /* { dg-require-effective-target dfp } */
! /* { dg-skip-if "" { powerpc*-*-aix* } } */
  /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=G5" } } */
  /* { dg-options "-O2 -mcpu=G5 -maltivec" } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr71785.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr71785.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr71785.c	Mon Nov 21 15:15:21 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr71785.c	Thu Sep  5 19:42:59 2019
***************
*** 1,6 ****
  /* { dg-do compile { target { powerpc*-*-* } } } */
  /* { dg-options "-O2" } */
! /* { dg-final { scan-assembler-not {\mb\M} } } */
  
  /* Check that all computed gotos in this testcase end up unfactored completely.
     If some is not there will be a unconditional jump left; if all works fine,
--- 1,11 ----
  /* { dg-do compile { target { powerpc*-*-* } } } */
  /* { dg-options "-O2" } */
! /* We have to lose the default pic codegen on Darwin.  */
! /* { dg-additional-options "-mdynamic-no-pic" { target powerpc*-*-darwin* } } */
! /* ... and account for the out-of-line GPR restore.  */
! /* { dg-final { scan-assembler-times {\mb[ \t]*restGPR} 1 { target powerpc*-*-darwin* } } } */
! /* { dg-final { scan-assembler-not {\mb[ \t]L} { target powerpc*-*-darwin* } } } */
! /* { dg-final { scan-assembler-not {\mb\M} { target { ! powerpc*-*-darwin* } } } } */
  
  /* Check that all computed gotos in this testcase end up unfactored completely.
     If some is not there will be a unconditional jump left; if all works fine,
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr79909.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr79909.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr79909.c	Fri Mar 10 07:57:45 2017
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr79909.c	Thu Sep  5 19:40:20 2019
***************
*** 1,6 ****
--- 1,7 ----
  /* PR rtl-optimization/79909 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -mxl-compat" } */
+ /* { dg-require-effective-target dfp } */
  
  typedef float T __attribute__ ((mode (TD)));
  T b, c, d, e, f, g;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr80125.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr80125.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr80125.c	Tue Mar 21 14:49:51 2017
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr80125.c	Thu Sep  5 19:47:27 2019
*************** foo ()
*** 16,22 ****
    vector int k = vec_mergel (i, j);
    vector int l = vec_sl (k, c);
    vector int m = vec_sl (l, d);
!   vector char o;
    vector int p = vec_perm (m, n, o);
    e = vec_sra (p, c);
    vec_st (e, 0, a);
--- 16,22 ----
    vector int k = vec_mergel (i, j);
    vector int l = vec_sl (k, c);
    vector int m = vec_sl (l, d);
!   vector unsigned char o;
    vector int p = vec_perm (m, n, o);
    e = vec_sra (p, c);
    vec_st (e, 0, a);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87496-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87496-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87496-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87496-1.c	Wed Dec 12 17:20:41 2018
***************
*** 0 ****
--- 1,11 ----
+ /* PR target/87496 */
+ /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
+ /* { dg-skip-if "" { powerpc*-*-darwin* } } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
+ /* { dg-require-effective-target longdouble128 } */
+ /* { dg-options "-O2 -mcpu=power7 -mabi=ieeelongdouble -mno-popcntd -Wno-psabi" } */
+ 
+ int i;
+ 
+ /* { dg-error "'-mabi=ieeelongdouble' requires full ISA 2.06 support" "PR87496" { target *-*-* } 0 } */
+ /* { dg-warning "using IEEE extended precision long double" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87496-2.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87496-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87496-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87496-2.c	Wed Dec 12 17:20:41 2018
***************
*** 0 ****
--- 1,10 ----
+ /* PR target/87496 */
+ /* { dg-do compile { target { powerpc*-*-* } } } */
+ /* { dg-skip-if "" { powerpc*-*-darwin* } } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
+ /* { dg-options "-O2 -mcpu=power7 -mabi=ieeelongdouble -mlong-double-64 -Wno-psabi" } */
+ 
+ int i;
+ 
+ /* { dg-error "'-mabi=ieeelongdouble' requires '-mlong-double-128'" "PR87496" { target *-*-* } 0 } */
+ /* { dg-warning "using IEEE extended precision long double" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87496-3.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87496-3.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87496-3.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87496-3.c	Wed Dec 12 17:20:41 2018
***************
*** 0 ****
--- 1,9 ----
+ /* PR target/87496 */
+ /* { dg-do compile { target { powerpc*-*-* } } } */
+ /* { dg-skip-if "" { powerpc*-*-darwin* } } */
+ /* { dg-options "-O2 -mabi=ibmlongdouble -mlong-double-64 -Wno-psabi" } */
+ 
+ int i;
+ 
+ /* { dg-error "'-mabi=ibmlongdouble' requires '-mlong-double-128'" "PR87496" { target *-*-* } 0 } */
+ /* { dg-warning "using IBM extended precision long double" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87532-mc.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,258 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O2" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <stdlib.h>
+ #include <stddef.h>
+ #include <altivec.h>
+ 
+ #include <stdio.h>
+ 
+ static vector unsigned __int128
+ deoptimize_uint128 (vector unsigned __int128  a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned long long int
+ deoptimize_ulong (vector unsigned long long int a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned int
+ deoptimize_uint (vector unsigned int a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned char
+ deoptimize_uchar (vector unsigned char a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned short
+ deoptimize_ushort (vector unsigned short a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ __attribute ((noinline)) unsigned __int128
+ get_auto_n_uint128 (vector unsigned __int128 a, int n)
+ {
+   return __builtin_vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline)) unsigned long long int
+ get_auto_n_ulong (vector unsigned long long int a, int n)
+ {
+   return __builtin_vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned int get_auto_n_uint (vector unsigned int a, int n)
+ {
+   return __builtin_vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned char get_auto_n_uchar (vector unsigned char a, int n)
+ {
+   return __builtin_vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned short get_auto_n_ushort (vector unsigned short a, int n)
+ {
+   return __builtin_vec_extract (a, n);
+ }
+ 
+ 
+ int check_uint128_element (int i, unsigned __int128 entry)
+ {
+   printf ("checking uint128 entry at index %d\n", i);
+ 
+   return (entry == ((((unsigned __int128) 0xffeeddccbbaa9988ULL) << 64)
+ 		    | 0x0706050403020100ULL));
+ }
+ 
+ int check_ulong_element (int i, unsigned long long int entry)
+ {
+   printf ("checking ulong entry 0x%llx at index %d\n", entry, i);
+ 
+   switch (i % 2)
+     {
+       case 0: return (entry == 0x9999901010ULL);
+       case 1: return (entry == 0x7777733333ULL);
+       default:
+ 	return 0;
+     }
+ }
+ 
+ int check_uint_element (int i, unsigned int entry)
+ {
+   printf ("checking uint entry 0x%x at index %d\n", entry, i);
+ 
+   switch (i % 4)
+     {
+     case 0: return (entry == 0x99999);
+     case 1: return (entry == 0x01010);
+     case 2: return (entry == 0x77777);
+     case 3: return (entry == 0x33333);
+     default:
+       return 0;
+     }
+ }
+ 
+ int check_uchar_element (int i, unsigned char entry)
+ {
+   printf ("checking uchar entry 0x%x at index %d\n", entry, i);
+   switch (i % 16)
+     {
+     case 0: return (entry == 0x90);
+     case 1: return (entry == 0x80);
+     case 2: return (entry == 0x70);
+     case 3: return (entry == 0x60);
+     case 4: return (entry == 0x50);
+     case 5: return (entry == 0x40);
+     case 6: return (entry == 0x30);
+     case 7: return (entry == 0x20);
+     case 8: return (entry == 0x10);
+     case 9: return (entry == 0xf0);
+     case 10: return (entry == 0xe0);
+     case 11: return (entry == 0xd0);
+     case 12: return (entry == 0xc0);
+     case 13: return (entry == 0xb0);
+     case 14: return (entry == 0xa0);
+     case 15: return (entry == 0xff);
+     default:
+       return 0;
+     }
+ }
+ 
+ int check_ushort_element (int i, unsigned short entry)
+ {
+   printf ("checking ushort entry 0x%x at index %d\n", entry, i);
+   switch (i % 8)
+     {
+     case 0: return (entry == 0x9988);
+     case 1: return (entry == 0x8877);
+     case 2: return (entry == 0x7766);
+     case 3: return (entry == 0x6655);
+     case 4: return (entry == 0x5544);
+     case 5: return (entry == 0x4433);
+     case 6: return (entry == 0x3322);
+     case 7: return (entry == 0x2211);
+     default:
+       return 0;
+     }
+ }
+ 
+ void do_auto_uint128 ( vector unsigned __int128 a )
+ {
+   int i;
+   unsigned __int128 c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_uint128 (a,i);
+       if (!check_uint128_element (i, c)) abort ();
+     }
+  }
+ 
+ void do_auto_ulong ( vector unsigned long long int a )
+ {
+   int i;
+   unsigned long long int c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_ulong (a,i);
+       if (!check_ulong_element (i, c)) abort ();
+     }
+  }
+ 
+ void do_auto_uint ( vector unsigned int a )
+ {
+   int i;
+   unsigned int c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_uint (a,i);
+       if (!check_uint_element (i, c)) abort ();
+     }
+  }
+ 
+ void do_auto_ushort ( vector unsigned short a )
+ {
+   int i;
+   unsigned short c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_ushort (a,i);
+       if (!check_ushort_element (i, c)) abort ();
+     }
+ }
+ 
+ void do_auto_uchar ( vector unsigned char a )
+ {
+   int i;
+   unsigned char c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_uchar (a,i);
+       if (!check_uchar_element (i, c)) abort ();
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   size_t i;
+ 
+   vector unsigned __int128 u = {
+     ((((unsigned __int128) 0xffeeddccbbaa9988ULL) << 64)
+      | 0x0706050403020100ULL) };
+   vector unsigned __int128 du;
+ 
+   vector unsigned long long int v = { 0x9999901010ULL, 0x7777733333ULL };
+   vector unsigned long long int dv;
+ 
+   vector unsigned int x = { 0x99999, 0x01010, 0x77777, 0x33333 };
+   vector unsigned int dx;
+ 
+   vector unsigned char y = { 0x90, 0x80, 0x70, 0x60, 0x50, 0x40, 0x30, 0x20,
+ 			     0x10, 0xf0, 0xe0, 0xd0, 0xc0, 0xb0, 0xa0, 0xff };
+   vector unsigned char dy;
+ 
+   vector unsigned short z = { 0x9988, 0x8877, 0x7766, 0x6655,
+ 			      0x5544, 0x4433, 0x3322, 0x2211 };
+   vector unsigned short dz;
+ 
+   do_auto_uint128 (u);
+   do_auto_ulong (v);
+   do_auto_uint (x);
+   do_auto_uchar (y);
+   do_auto_ushort (z);
+ 
+   du = deoptimize_uint128 (u);
+   dv = deoptimize_ulong (v);
+   dx = deoptimize_uint (x);
+   dy = deoptimize_uchar (y);
+   dz = deoptimize_ushort (z);
+ 
+   do_auto_uint128 (du);
+   do_auto_ulong (dv);
+   do_auto_uint (dx);
+   do_auto_uchar (dy);
+   do_auto_ushort (dz);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87532.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87532.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr87532.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr87532.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,72 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <stdlib.h>
+ #include <stddef.h>
+ #include <altivec.h>
+ #include <stdio.h>
+ 
+ static void
+ check (unsigned char, unsigned char) __attribute__((__noinline__));
+ 
+ static __attribute__((altivec(vector__))) unsigned char
+ deoptimize (__attribute__((altivec(vector__))) unsigned char)
+ __attribute__((__noinline__));
+ 
+ static __attribute__((altivec(vector__))) unsigned char
+ deoptimize (__attribute__((altivec(vector__))) unsigned char a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ // Toggle this attribute inline/noinline to see pass/fail.
+ // fails with the noinline attribute applied.
+ __attribute__ ((__noinline__))
+ unsigned char
+ get_auto_n (__attribute__((altivec(vector__))) unsigned char a, size_t n)
+ {
+   return (unsigned char) __builtin_vec_extract (a, n);
+ }
+ 
+ void
+ do_auto (__attribute__((altivec(vector__))) unsigned char a)
+ {
+   size_t i;
+   for (i = 1; i < 3 ; i++)
+   {
+     do
+       {
+ 	printf ("get_auto_n (a, %d) produces 0x0%x\n",
+ 		i, (int) get_auto_n (a, i));
+ 
+ 	if ((int) get_auto_n (a,i) > 250) abort();
+       } while (0);
+   }
+ }
+ 
+ int
+ main (void)
+ {
+   size_t i;
+   __attribute__((altivec(vector__))) unsigned char x =
+     { 3, 2, 3, 8, 5, 6, 7, 8, 240, 241, 242, 243, 244, 245, 246, 247 };
+   __attribute__((altivec(vector__))) unsigned char a;
+ 
+   printf (" first elements of x are: %d %d %d %d %d\n",
+ 	  x[0], x[1], x[2], x[3], x[4]);
+ 
+   a = deoptimize (x);
+ 
+   printf (" after deoptimization, first elements of a are: %d %d %d %d %d\n",
+ 	  a[0], a[1], a[2], a[3], a[4]);
+ 
+   do_auto (a);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr89424-0.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr89424-0.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr89424-0.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr89424-0.c	Mon May 13 21:27:29 2019
***************
*** 0 ****
--- 1,76 ----
+ /* { dg-do run { target { powerpc*-*-* && lp64 } } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ /* Define PR89626 after that pr is addressed.  */
+ #ifdef PR89626
+ #define SIGNED
+ #else
+ #define SIGNED signed
+ #endif
+ 
+ #define CONST0		(((__int128) 31415926539) << 60)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ __int128 ei (vector SIGNED __int128 v, int i)
+ {
+   return __builtin_vec_ext_v1ti (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __int128 mei (vector SIGNED __int128 *vp, int i)
+ {
+   return __builtin_vec_ext_v1ti (*vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector SIGNED __int128 dv = { CONST0 };
+   __int128 d;
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr89765-mc.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr89765-mc.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr89765-mc.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr89765-mc.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,400 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O2" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <stdlib.h>
+ #include <stddef.h>
+ #include <altivec.h>
+ 
+ #include <stdio.h>
+ 
+ static vector unsigned __int128
+ deoptimize_uint128 (vector unsigned __int128  a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned long long int
+ deoptimize_ulong (vector unsigned long long int a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned int
+ deoptimize_uint (vector unsigned int a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned char
+ deoptimize_uchar (vector unsigned char a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector unsigned short
+ deoptimize_ushort (vector unsigned short a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ __attribute ((noinline))
+ vector unsigned __int128
+ set_auto_n_uint128 (vector unsigned __int128 a, int n, unsigned __int128 x)
+ {
+   return vec_insert (x, a, n);
+ }
+ 
+ __attribute ((noinline))
+ vector unsigned long long int
+ set_auto_n_ulong (vector unsigned long long int a, int n,
+ 		  unsigned long long int x)
+ {
+   return vec_insert (x, a, n);
+ }
+ 
+ __attribute ((noinline))
+ vector unsigned int
+ set_auto_n_uint (vector unsigned int a, int n, unsigned int x)
+ {
+   return vec_insert (x, a, n);
+ }
+ 
+ __attribute ((noinline))
+ vector unsigned char
+ set_auto_n_uchar (vector unsigned char a, int n, unsigned char x)
+ {
+   return vec_insert (x, a, n);
+ }
+ 
+ __attribute ((noinline))
+ vector unsigned short
+ set_auto_n_ushort (vector unsigned short a, int n, unsigned short x)
+ {
+   return vec_insert (x, a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned __int128
+ get_auto_n_uint128 (vector unsigned __int128 a, int n)
+ {
+   return vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned long long int
+ get_auto_n_ulong (vector unsigned long long int a, int n)
+ {
+   return vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned int
+ get_auto_n_uint (vector unsigned int a, int n)
+ {
+   return vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned char
+ get_auto_n_uchar (vector unsigned char a, int n)
+ {
+   return vec_extract (a, n);
+ }
+ 
+ __attribute ((noinline))
+ unsigned short
+ get_auto_n_ushort (vector unsigned short a, int n)
+ {
+   return vec_extract (a, n);
+ }
+ 
+ int check_uint128_element (int i, unsigned __int128 entry)
+ {
+   printf ("checking uint128 entry at index %d\n", i);
+ 
+   return (entry == ((((unsigned __int128) 0xffeeddccbbaa9988ULL) << 64)
+ 		    | 0x0706050403020100ULL));
+ }
+ 
+ unsigned __int128 get_uint128_element (int i)
+ {
+   return ((((unsigned __int128) 0xffeeddccbbaa9988ULL) << 64)
+ 	  | 0x0706050403020100ULL);
+ }
+ 
+ int check_ulong_element (int i, unsigned long long int entry)
+ {
+   printf ("checking ulong entry 0x%llx at index %d\n", entry, i);
+ 
+   switch (i % 2)
+     {
+       case 0: return (entry == 0x9999901010ULL);
+       case 1: return (entry == 0x7777733333ULL);
+       default:
+ 	return 0;
+     }
+ }
+ 
+ unsigned long long int get_ulong_element (int i)
+ {
+   switch (i % 2)
+     {
+     case 0: return 0x9999901010ULL;
+     case 1: return 0x7777733333ULL;
+     }
+ }
+ 
+ int check_uint_element (int i, unsigned int entry)
+ {
+   printf ("checking uint entry 0x%x at index %d\n", entry, i);
+ 
+   switch (i % 4)
+     {
+     case 0: return (entry == 0x99999);
+     case 1: return (entry == 0x01010);
+     case 2: return (entry == 0x77777);
+     case 3: return (entry == 0x33333);
+     default:
+       return 0;
+     }
+ }
+ 
+ unsigned int get_uint_element (int i)
+ {
+   switch (i % 4)
+     {
+     case 0: return 0x99999;
+     case 1: return 0x01010;
+     case 2: return 0x77777;
+     case 3: return 0x33333;
+     }
+ }
+ 
+ int check_uchar_element (int i, unsigned char entry)
+ {
+   printf ("checking uchar entry 0x%x at index %d\n", entry, i);
+   switch (i % 16)
+     {
+     case 0: return (entry == 0x90);
+     case 1: return (entry == 0x80);
+     case 2: return (entry == 0x70);
+     case 3: return (entry == 0x60);
+     case 4: return (entry == 0x50);
+     case 5: return (entry == 0x40);
+     case 6: return (entry == 0x30);
+     case 7: return (entry == 0x20);
+     case 8: return (entry == 0x10);
+     case 9: return (entry == 0xf0);
+     case 10: return (entry == 0xe0);
+     case 11: return (entry == 0xd0);
+     case 12: return (entry == 0xc0);
+     case 13: return (entry == 0xb0);
+     case 14: return (entry == 0xa0);
+     case 15: return (entry == 0xff);
+     default:
+       return 0;
+     }
+ }
+ 
+ unsigned char get_uchar_element (int i)
+ {
+   switch (i % 16)
+     {
+     case 0: return 0x90;
+     case 1: return 0x80;
+     case 2: return 0x70;
+     case 3: return 0x60;
+     case 4: return 0x50;
+     case 5: return 0x40;
+     case 6: return 0x30;
+     case 7: return 0x20;
+     case 8: return 0x10;
+     case 9: return 0xf0;
+     case 10: return 0xe0;
+     case 11: return 0xd0;
+     case 12: return 0xc0;
+     case 13: return 0xb0;
+     case 14: return 0xa0;
+     case 15: return 0xff;
+     }
+ }
+ 
+ int check_ushort_element (int i, unsigned short entry)
+ {
+   printf ("checking ushort entry 0x%x at index %d\n", entry, i);
+   switch (i % 8)
+     {
+     case 0: return (entry == 0x9988);
+     case 1: return (entry == 0x8877);
+     case 2: return (entry == 0x7766);
+     case 3: return (entry == 0x6655);
+     case 4: return (entry == 0x5544);
+     case 5: return (entry == 0x4433);
+     case 6: return (entry == 0x3322);
+     case 7: return (entry == 0x2211);
+     default:
+       return 0;
+     }
+ }
+ 
+ unsigned short get_ushort_element (int i)
+ {
+   switch (i % 8)
+     {
+     case 0: return 0x9988;
+     case 1: return 0x8877;
+     case 2: return 0x7766;
+     case 3: return 0x6655;
+     case 4: return 0x5544;
+     case 5: return 0x4433;
+     case 6: return 0x3322;
+     case 7: return 0x2211;
+     }
+ }
+ 
+ vector unsigned __int128
+ init_auto_uint128 (vector unsigned __int128 a)
+ {
+   int i;
+   for (i = 0; i < 32; i += 3)
+     a = set_auto_n_uint128 (a, i, get_uint128_element (i));
+   return a;
+ }
+ 
+ void do_auto_uint128 (vector unsigned __int128 a)
+ {
+   int i;
+   unsigned __int128 c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_uint128 (a, i);
+       if (!check_uint128_element (i, c)) abort ();
+     }
+ }
+ 
+ vector unsigned long long int
+ init_auto_ulong (vector unsigned long long int a)
+ {
+   int i;
+   for (i = 0; i < 32; i += 3)
+     a = set_auto_n_ulong (a, i, get_ulong_element (i));
+   return a;
+ }
+ 
+ void do_auto_ulong (vector unsigned long long int a)
+ {
+   int i;
+   unsigned long long int c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_ulong (a, i);
+       if (!check_ulong_element (i, c)) abort ();
+     }
+  }
+ 
+ vector unsigned int init_auto_uint (vector unsigned int a)
+ {
+   int i;
+   for (i = 0; i < 32; i += 3)
+     a = set_auto_n_uint (a, i, get_uint_element (i));
+   return a;
+ }
+ 
+ void do_auto_uint (vector unsigned int a)
+ {
+   int i;
+   unsigned int c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_uint (a, i);
+       if (!check_uint_element (i, c)) abort ();
+     }
+  }
+ 
+ vector unsigned short init_auto_ushort ( vector unsigned short a )
+ {
+   int i;
+   for (i = 0; i < 32; i += 3)
+     a = set_auto_n_ushort (a, i, get_ushort_element (i));
+   return a;
+ }
+ 
+ void do_auto_ushort (vector unsigned short a)
+ {
+   int i;
+   unsigned short c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_ushort (a, i);
+       if (!check_ushort_element (i, c)) abort ();
+     }
+ }
+ 
+ vector unsigned char init_auto_uchar (vector unsigned char a)
+ {
+   int i;
+   for (i = 0; i < 32; i += 3)
+     a = set_auto_n_uchar (a, i, get_uchar_element (i));
+   return a;
+ }
+ 
+ void do_auto_uchar (vector unsigned char a)
+ {
+   int i;
+   unsigned char c;
+   for (i = 0; i < 32; i += 3)
+     {
+       c = get_auto_n_uchar (a, i);
+       if (!check_uchar_element (i, c)) abort ();
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   size_t i;
+ 
+   vector unsigned __int128 u = { 0 };
+   vector unsigned __int128 du;
+ 
+   vector unsigned long long int v = { 0, 0 };
+   vector unsigned long long int dv;
+ 
+   vector unsigned int x = { 0, 0, 0, 0 };
+   vector unsigned int dx;
+ 
+   vector unsigned char y = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+   vector unsigned char dy;
+ 
+   vector unsigned short z = { 0, 0, 0, 0, 0, 0, 0, 0 };
+   vector unsigned short dz;
+ 
+   du = init_auto_uint128 (u);
+   dv = init_auto_ulong (v);
+   dx = init_auto_uint (x);
+   dy = init_auto_uchar (y);
+   dz = init_auto_ushort (z);
+ 
+   du = deoptimize_uint128 (du);
+   dv = deoptimize_ulong (dv);
+   dx = deoptimize_uint (dx);
+   dy = deoptimize_uchar (dy);
+   dz = deoptimize_ushort (dz);
+ 
+   do_auto_uint128 (du);
+   do_auto_ulong (dv);
+   do_auto_uint (dx);
+   do_auto_uchar (dy);
+   do_auto_ushort (dz);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr91275.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr91275.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/pr91275.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/pr91275.c	Thu Oct 17 15:35:28 2019
***************
*** 0 ****
--- 1,26 ----
+ /* Test that we generate vpmsumd correctly without a swap error.  */
+ 
+ /* { dg-do run { target { p8vector_hw } } } */
+ /* { dg-options "-O2 -std=gnu11" } */
+ 
+ #include <altivec.h>
+ 
+ int main() {
+ 
+   const unsigned long long r0l = 0x8e7dfceac070e3a0;
+   vector unsigned long long r0 = (vector unsigned long long) {r0l, 0}, v;
+   const vector unsigned long long pd
+     = (vector unsigned long long) {0xc2LLU << 56, 0};
+ 
+   v = __builtin_crypto_vpmsumd ((vector unsigned long long) {r0[0], 0}, pd);
+ 
+ #if __LITTLE_ENDIAN__
+   if (v[0] != 0x4000000000000000 || v[1] != 0x65bd7ab605a4a8ff)
+     __builtin_abort ();
+ #else
+   if (v[1] != 0x4000000000000000 || v[0] != 0x65bd7ab605a4a8ff)
+     __builtin_abort ();
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c	Wed Feb  7 20:04:39 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-1.c	Thu Sep  5 19:53:12 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-skip-if "not implemented for Darwin" { powerpc*-*-darwin* } } */
  /* { dg-additional-options "-mno-speculate-indirect-jumps" } */
  /* { dg-warning "'-mno-speculate-indirect-jumps' is deprecated" "" { target *-*-* } 0 } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c	Wed Feb  7 20:04:39 2018
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/safe-indirect-jump-7.c	Thu Sep  5 19:53:12 2019
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do compile } */
+ /* { dg-skip-if "not implemented for Darwin" { powerpc*-*-darwin* } } */
  /* { dg-additional-options "-mno-speculate-indirect-jumps" } */
  /* { dg-warning "'-mno-speculate-indirect-jumps' is deprecated" "" { target *-*-* } 0 } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c	Tue Oct  2 19:56:50 2007
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c	Thu Sep  5 19:55:27 2019
***************
*** 1,5 ****
--- 1,6 ----
  /* Test Attribute Vector associated with vector type stabs.  */
  /* { dg-do compile { target powerpc*-*-darwin* } } */
+ /* { dg-require-effective-target stabs } */
  /* { dg-options "-gstabs+ -fno-eliminate-unused-debug-types -faltivec" } */
  
  int main ()
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-schar-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,29 ----
+ /* Test to verify that the vec_extract from a vector of
+    signed chars remains signed.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(signed char sc) {
+   int sce;
+ 
+   vector signed char v = vec_splats(sc);
+   sce = vec_extract(v,0);
+ 
+   if (sce != sc)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf6);
+   test1 (0x76);
+   test1 (0x06);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,29 ----
+ /* Test to verify that the vec_extract from a vector of
+    signed ints remains signed.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(signed int si) {
+   long long int sie;
+ 
+   vector signed int v = vec_splats(si);
+   sie = vec_extract(v,0);
+ 
+   if (sie != si)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf6000000);
+   test1 (0x76000000);
+   test1 (0x06000000);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sint128-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,27 ----
+ /* Test to verify that the vec_extract from a vector of
+    signed __int128s remains signed.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(signed __int128 st) {
+ 
+   vector signed __int128 v = vec_splats(st);
+ 
+   if (vec_extract (v, 0) > st)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (((__int128) 0xf600000000000000LL) << 64);
+   test1 (((__int128) 0x7600000000000000LL) << 64);
+   test1 (((__int128) 0x0600000000000000LL) << 64);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-slong-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-slong-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-slong-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-slong-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,27 ----
+ /* Test to verify that the vec_extract from a vector of
+    signed longs remains signed.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(signed long long int sl) {
+ 
+   vector signed long long int v = vec_splats(sl);
+ 
+   if (vec_extract (v, 0) > sl)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf600000000000000LL);
+   test1 (0x7600000000000000LL);
+   test1 (0x0600000000000000LL);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sshort-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sshort-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sshort-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-sshort-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,29 ----
+ /* Test to verify that the vec_extract from a vector of
+    signed shorts remains signed.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(signed short ss) {
+   int sse;
+ 
+   vector signed short v = vec_splats(ss);
+   sse = vec_extract(v,0);
+ 
+   if (sse != ss)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf600);
+   test1 (0x7600);
+   test1 (0x0600);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uchar-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uchar-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uchar-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uchar-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,29 ----
+ /* Test to verify that the vec_extract from a vector of
+    unsigned chars remains unsigned.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(unsigned char uc) {
+   int uce;
+ 
+   vector unsigned char v = vec_splats(uc);
+   uce = vec_extract(v,0);
+ 
+   if (uce != uc)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf6);
+   test1 (0x76);
+   test1 (0x06);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,29 ----
+ /* Test to verify that the vec_extract from a vector of
+    unsigned ints remains unsigned.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(unsigned int ui) {
+   long long int uie;
+ 
+   vector unsigned int v = vec_splats(ui);
+   uie = vec_extract(v,0);
+ 
+   if (uie != ui)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf6000000);
+   test1 (0x76000000);
+   test1 (0x06000000);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint128-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint128-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint128-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-uint128-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,27 ----
+ /* Test to verify that the vec_extract from a vector of
+    unsigned __int128s remains unsigned.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(unsigned __int128 ul) {
+ 
+   vector unsigned __int128 v = vec_splats(ul);
+ 
+   if (vec_extract (v, 0) < ul)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (((__int128) 0xf600000000000000LL) << 64);
+   test1 (((__int128) 0x7600000000000000LL) << 64);
+   test1 (((__int128) 0x0600000000000000LL) << 64);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ulong-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ulong-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ulong-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ulong-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,27 ----
+ /* Test to verify that the vec_extract from a vector of
+    unsigned longs remains unsigned.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(unsigned long long int ul) {
+ 
+   vector unsigned long long int v = vec_splats(ul);
+ 
+   if (vec_extract (v, 0) < ul)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf600000000000000LL);
+   test1 (0x7600000000000000LL);
+   test1 (0x0600000000000000LL);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ushort-1.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ushort-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ushort-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-ushort-1.c	Wed Feb  6 21:35:44 2019
***************
*** 0 ****
--- 1,29 ----
+ /* Test to verify that the vec_extract from a vector of
+    signed shorts remains signed.  */
+ /* { dg-do run } */
+ /* { dg-options "-ansi -mcpu=power8 " } */
+ /* { dg-require-effective-target p8vector_hw } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ #include <altivec.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int test1(unsigned short us) {
+   int use;
+ 
+   vector unsigned short v = vec_splats(us);
+   use = vec_extract(v,0);
+ 
+   if (use != us)
+     abort();
+   return 0;
+ }
+ 
+ int main()
+ {
+   test1 (0xf600);
+   test1 (0x7600);
+   test1 (0x0600);
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2.h	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,253 ----
+ #include <stdlib.h>
+ #include <stddef.h>
+ #include <altivec.h>
+ 
+ #ifndef RTYPE
+ #define RTYPE TYPE
+ #endif
+ 
+ #ifdef DO_TRACE
+ #include <stdio.h>
+ 
+ #define TRACE(STRING, NUM)						\
+ do									\
+   {									\
+     fprintf (stderr, "%s: %2d\n", STRING, (int) NUM);			\
+     fflush (stderr);							\
+   }									\
+ while (0)
+ 
+ #ifndef FAIL_FORMAT
+ #define FAIL_FORMAT "%ld"
+ #define FAIL_CAST(X) ((long)(X))
+ #endif
+ 
+ #define FAIL(EXP, GOT)							 \
+ do									 \
+   {									 \
+     fprintf (stderr, "Expected: " FAIL_FORMAT ", got " FAIL_FORMAT "\n", \
+ 	     FAIL_CAST (EXP), FAIL_CAST (GOT));				 \
+     fflush (stderr);							 \
+     abort ();								 \
+   }									 \
+ while (0)
+ 
+ #else
+ #define TRACE(STRING, NUM)
+ #define FAIL(EXP, GOT) abort ()
+ #endif
+ 
+ static void
+ check (RTYPE, RTYPE) __attribute__((__noinline__));
+ 
+ static vector TYPE
+ deoptimize (vector TYPE) __attribute__((__noinline__));
+ 
+ static vector TYPE
+ *deoptimize_ptr (vector TYPE *)	__attribute__((__noinline__));
+ 
+ static void
+ check (RTYPE expected, RTYPE got)
+ {
+   if (expected != got)
+     FAIL (expected, got);
+ }
+ 
+ static vector TYPE
+ deoptimize (vector TYPE a)
+ {
+   __asm__ (" # %x0" : "+v" (a));
+   return a;
+ }
+ 
+ static vector TYPE *
+ deoptimize_ptr (vector TYPE *p)
+ {
+   __asm__ (" # %0" : "+r" (p));
+   return p;
+ }
+ 
+ 
+ RTYPE
+ get_auto_0 (vector TYPE a)
+ {
+   TRACE ("get_auto_", 0);
+   return (RTYPE) vec_extract (a, 0);
+ }
+ 
+ RTYPE
+ get_auto_1 (vector TYPE a)
+ {
+   TRACE ("get_auto_", 1);
+   return (RTYPE) vec_extract (a, 1);
+ }
+ 
+ #if ELEMENTS >= 4
+ RTYPE
+ get_auto_2 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 2);
+ }
+ 
+ RTYPE
+ get_auto_3 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 3);
+ }
+ 
+ #if ELEMENTS >= 8
+ RTYPE
+ get_auto_4 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 4);
+ }
+ 
+ RTYPE
+ get_auto_5 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 5);
+ }
+ 
+ RTYPE
+ get_auto_6 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 6);
+ }
+ 
+ RTYPE
+ get_auto_7 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 7);
+ }
+ 
+ #if ELEMENTS >= 16
+ RTYPE
+ get_auto_8 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 8);
+ }
+ 
+ RTYPE
+ get_auto_9 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 9);
+ }
+ 
+ RTYPE
+ get_auto_10 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 10);
+ }
+ 
+ RTYPE
+ get_auto_11 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 11);
+ }
+ 
+ RTYPE
+ get_auto_12 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 12);
+ }
+ 
+ RTYPE
+ get_auto_13 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 13);
+ }
+ 
+ RTYPE
+ get_auto_14 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 14);
+ }
+ 
+ RTYPE
+ get_auto_15 (vector TYPE a)
+ {
+   return (RTYPE) vec_extract (a, 15);
+ }
+ 
+ #endif
+ #endif
+ #endif
+ 
+ 
+ /* Tests for the normal case of vec_extract where the vector is in a register
+    and returning the result in a register as a return value.  */
+ #ifdef DISABLE_INLINE_OF_GET_AUTO_N
+ __attribute__ ((__noinline__))
+ #else
+ /* gcc issues warning: always_inline function might not be inlinable
+ 
+    __attribute__ ((__always_inline__))
+ */
+ #endif
+ RTYPE
+ get_auto_n (vector TYPE a, ssize_t n)
+ {
+   return (RTYPE) vec_extract (a, n);
+ }
+ 
+ typedef RTYPE (*auto_func_type) (vector TYPE);
+ 
+ static auto_func_type get_auto_const[] = {
+   get_auto_0,
+   get_auto_1,
+ #if ELEMENTS >= 4
+   get_auto_2,
+   get_auto_3,
+ #if ELEMENTS >= 8
+   get_auto_4,
+   get_auto_5,
+   get_auto_6,
+   get_auto_7,
+ #if ELEMENTS >= 16
+   get_auto_8,
+   get_auto_9,
+   get_auto_10,
+   get_auto_11,
+   get_auto_12,
+   get_auto_13,
+   get_auto_14,
+   get_auto_15,
+ #endif
+ #endif
+ #endif
+ };
+ 
+ extern void do_auto (vector TYPE a) __attribute__((__noinline__));
+ 
+ void
+ do_auto (vector TYPE a)
+ {
+   size_t i;
+ 
+   for (i = 1; i < 40; i += 3)
+     {
+       TRACE ("do_auto, i: ", i);
+       TRACE ("  get_auto_const[i] returns: ",
+ 	     (*get_auto_const [i % ELEMENTS]) (a));
+       TRACE ("  get_auto_n returns", get_auto_n (a, i));
+       check (get_auto_n (a, i), (*get_auto_const [i % ELEMENTS]) (a));
+     }
+ }
+ 
+ 
+ 
+ /* Main program to test all of the possibilities.  */
+ int
+ main (void)
+ {
+   size_t i;
+   vector TYPE x = INITIAL;
+   vector TYPE *p, *p2, a, y;
+   vector TYPE z[2];
+ 
+   a = deoptimize (x);
+ 
+   do_auto (a);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-O2 -mvsx" } */
+ 
+ #define TYPE unsigned char
+ /* ELEMENTS is number of elements in a vector of TYPE.  */
+ #define ELEMENTS 16
+ #define INITIAL \
+   {  3, 2, 3, 4, 5, 6, 7, 8, 240, 241, 242, 243, 244, 245, 246, 247 }
+ 
+ #define DO_TRACE
+ #define DISABLE_INLINE_OF_GET_AUTO_N
+ 
+ #include "vec-extract-v16qiu-v2.h"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vec-extract-v16qiu-v2b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-O2 -mvsx" } */
+ 
+ #define TYPE unsigned char
+ /* ELEMENTS is number of elements in a vector of TYPE.  */
+ #define ELEMENTS 16
+ #define INITIAL \
+   {  3, 2, 3, 4, 5, 6, 7, 8, 240, 241, 242, 243, 244, 245, 246, 247 }
+ 
+ #define DO_TRACE
+ #undef DISABLE_INLINE_OF_GET_AUTO_N
+ 
+ #include "vec-extract-v16qiu-v2.h"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-13.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-13.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-13.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-13.c	Tue Apr  2 01:08:31 2019
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-require-effective-target powerpc_vsx_ok } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* Variations of tests that require VSX support.  This is a variation of
+    the altivec-13.c testcase.  */
+ 
+ #include <altivec.h>
+ 
+ void foo (void)
+ {
+ 
+   vector signed char vsc1, vsc2, vscz;
+   vector unsigned char vuc1, vuc2, vucz;
+   vector bool long long vubll1, vubll2, vubllz;
+   vector signed int long long vsill1, vsill2, vsillz;
+   vector unsigned int long long vuill1, vuill2, vuillz;
+   vector double vd1, vd2, vdz;
+ 
+   vubllz = vec_sld( vubll1, vubll2, 1 );
+   vsillz = vec_sld( vsill1, vsill2, 1 );
+   vuillz = vec_sld( vuill1, vuill2, 1 );
+ 
+   vsillz = vec_srl(vsill1, vuc2);
+   vuillz = vec_srl(vuill1, vuc2);
+ 
+   vsillz = vec_sro(vsill1, vsc2);
+   vsillz = vec_sro(vsill1, vuc2);
+   vuillz = vec_sro(vuill1, vsc2);
+   vuillz = vec_sro(vuill1, vuc2);
+ 
+   vdz = vec_sld( vd1, vd2, 1 );
+ }
+ 
+ /* Expected results:
+    vec_sld          vsldoi
+    vec_srl          vsr
+    vec_sro          vsro  */
+ 
+ /* { dg-final { scan-assembler-times "vsldoi" 4 } } */
+ /* { dg-final { scan-assembler-times "vsr " 2 } } */
+ /* { dg-final { scan-assembler-times "vsro" 4 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-7.h gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-7.h
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-7.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-7.h	Tue Apr  2 01:08:31 2019
***************
*** 0 ****
--- 1,18 ----
+ 
+ /* This test code is included into vsx-7-be.c.
+  * this is meant to supplement code in altivec-7.h.  */
+ 
+ #include <altivec.h>
+ 
+ 
+ vector float *vecfloat;
+ vector double *vecdouble;
+ 
+ int main2 ()
+ {
+ 
+   *vecdouble++ = vec_unpackl(vecfloat[0]);
+   *vecdouble++ = vec_unpackh(vecfloat[0]);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,155 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ short s3 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 3);
+ }
+ 
+ short s7 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 7);
+ }
+ 
+ short s21 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 21);
+ }
+ 
+ short s30 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ short ms3 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 3);
+ }
+ 
+ short ms7 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 7);
+ }
+ 
+ short ms21 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 21);
+ }
+ 
+ short ms30 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ short ci (vector short v, int i)
+ {
+   return __builtin_vec_ext_v8hi (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ short mci (vector short *vp, int i)
+ {
+   return __builtin_vec_ext_v8hi (*vp, i);
+ }
+ 
+ 
+ int main (int argc, short *argv[]) {
+   vector short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+   short s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s7 (sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms7 (&sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,155 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ short s3 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 3);
+ }
+ 
+ short s7 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 7);
+ }
+ 
+ short s21 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 21);
+ }
+ 
+ short s30 (vector short v)
+ {
+   return __builtin_vec_ext_v8hi (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ short ms3 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 3);
+ }
+ 
+ short ms7 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 7);
+ }
+ 
+ short ms21 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 21);
+ }
+ 
+ short ms30 (vector short *vp)
+ {
+   return __builtin_vec_ext_v8hi (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ short ci (vector short v, int i)
+ {
+   return __builtin_vec_ext_v8hi (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ short mci (vector short *vp, int i)
+ {
+   return __builtin_vec_ext_v8hi (*vp, i);
+ }
+ 
+ 
+ int main (int argc, short *argv[]) {
+   vector short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+   short s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s7 (sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms7 (&sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,155 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector short s3 (vector short v, short x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector short s7 (vector short v, short x)
+ {
+   return vec_insert (x, v, 7);
+ }
+ 
+ vector short s21 (vector short v, short x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector short s30 (vector short v, short x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector short ms3 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector short ms7 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 7);
+ }
+ 
+ vector short ms21 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector short ms30 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector short ci (vector short v, int i, short x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector short mci (vector short *vp, int i, short x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, short *argv[]) {
+   vector short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+   short s;
+ 
+   sv = s3 (sv, CONST6);
+   if (sv [3] != CONST6)
+     abort ();
+ 
+   sv = s7 (sv, CONST4);
+   if (sv [7] != CONST4)
+     abort ();
+ 
+   sv = s21 (sv, CONST3);
+   if (sv [5] != CONST3)
+     abort ();
+ 
+   sv = s30 (sv, CONST2);
+   if (sv [6] != CONST2)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST5);
+   if (sv [3] != CONST5)
+     abort ();
+ 
+   sv = ms7 (&sv, CONST1);
+   if (sv [7] != CONST1)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST2);
+   if (sv [5] != CONST2)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [6] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST6);
+   if (sv [5] != CONST6)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST4);
+   if (sv [2] != CONST4)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST3);
+   if (sv [7] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST3);
+   if (sv [4] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST3);
+   if (sv [5] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST7);
+   if (sv [4] != CONST7)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST6);
+   if (sv [1] != CONST6)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST5);
+   if (sv [0] != CONST5)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-10d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,155 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector short s3 (vector short v, short x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector short s7 (vector short v, short x)
+ {
+   return vec_insert (x, v, 7);
+ }
+ 
+ vector short s21 (vector short v, short x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector short s30 (vector short v, short x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector short ms3 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector short ms7 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 7);
+ }
+ 
+ vector short ms21 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector short ms30 (vector short *vp, short x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector short ci (vector short v, int i, short x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector short mci (vector short *vp, int i, short x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, short *argv[]) {
+   vector short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+   short s;
+ 
+   sv = s3 (sv, CONST6);
+   if (sv [3] != CONST6)
+     abort ();
+ 
+   sv = s7 (sv, CONST4);
+   if (sv [7] != CONST4)
+     abort ();
+ 
+   sv = s21 (sv, CONST3);
+   if (sv [5] != CONST3)
+     abort ();
+ 
+   sv = s30 (sv, CONST2);
+   if (sv [6] != CONST2)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST5);
+   if (sv [3] != CONST5)
+     abort ();
+ 
+   sv = ms7 (&sv, CONST1);
+   if (sv [7] != CONST1)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST2);
+   if (sv [5] != CONST2)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [6] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST6);
+   if (sv [5] != CONST6)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST4);
+   if (sv [2] != CONST4)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST3);
+   if (sv [7] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST3);
+   if (sv [4] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST3);
+   if (sv [5] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST7);
+   if (sv [4] != CONST7)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST6);
+   if (sv [1] != CONST6)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST5);
+   if (sv [0] != CONST5)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ int s3 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 3);
+ }
+ 
+ int s1 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 1);
+ }
+ 
+ int s21 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 21);
+ }
+ 
+ int s30 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ int ms3 (vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 3);
+ }
+ 
+ int ms1(vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 1);
+ }
+ 
+ int ms21(vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 21);
+ }
+ 
+ int ms30(vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ int ci (vector int v, int i)
+ {
+   return __builtin_vec_ext_v4si (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ int mci(vector int *vp, int i)
+ {
+   return __builtin_vec_ext_v4si (*vp, i);
+ }
+ 
+ 
+ int main (int argc, int *argv[]) {
+   vector int sv = { CONST0, CONST1, CONST2, CONST3 };
+   int s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s1 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms1 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ int s3 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 3);
+ }
+ 
+ int s1 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 1);
+ }
+ 
+ int s21 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 21);
+ }
+ 
+ int s30 (vector int v)
+ {
+   return __builtin_vec_ext_v4si (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ int ms3 (vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 3);
+ }
+ 
+ int ms1(vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 1);
+ }
+ 
+ int ms21(vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 21);
+ }
+ 
+ int ms30(vector int *vp)
+ {
+   return __builtin_vec_ext_v4si (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ int ci (vector int v, int i)
+ {
+   return __builtin_vec_ext_v4si (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ int mci(vector int *vp, int i)
+ {
+   return __builtin_vec_ext_v4si (*vp, i);
+ }
+ 
+ 
+ int main (int argc, int *argv[]) {
+   vector int sv = { CONST0, CONST1, CONST2, CONST3 };
+   int s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s1 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms1 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector int s3 (vector int v, int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector int s1 (vector int v, int x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector int s21 (vector int v, int x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector int s30 (vector int v, int x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector int ms3  (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector int ms1 (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector int ms21 (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector int ms30 (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector int ci (vector int v, int i, int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector int mci(vector int *vp, int i, int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, int *argv[]) {
+   vector int sv = { CONST0, CONST1, CONST2, CONST3 };
+   int s;
+ 
+   sv = s3 (sv, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = s1 (sv, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = s21 (sv, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = s30 (sv, CONST1);
+   if (sv [2] != CONST1)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST2);
+   if (sv [3] != CONST2)
+     abort ();
+ 
+   sv = ms1 (&sv, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [2] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST3);
+   if (sv [2] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST3);
+   if (sv [0] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST2);
+   if (sv [1] != CONST2)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST1);
+   if (sv [0] != CONST1)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST2);
+   if (sv [1] != CONST2)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST3);
+   if (sv [0] != CONST3)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-11d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector int s3 (vector int v, int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector int s1 (vector int v, int x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector int s21 (vector int v, int x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector int s30 (vector int v, int x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector int ms3  (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector int ms1 (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector int ms21 (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector int ms30 (vector int *vp, int x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector int ci (vector int v, int i, int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector int mci(vector int *vp, int i, int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, int *argv[]) {
+   vector int sv = { CONST0, CONST1, CONST2, CONST3 };
+   int s;
+ 
+   sv = s3 (sv, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = s1 (sv, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = s21 (sv, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = s30 (sv, CONST1);
+   if (sv [2] != CONST1)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST2);
+   if (sv [3] != CONST2)
+     abort ();
+ 
+   sv = ms1 (&sv, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [2] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST3);
+   if (sv [2] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST3);
+   if (sv [0] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST2);
+   if (sv [1] != CONST2)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST1);
+   if (sv [0] != CONST1)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST2);
+   if (sv [1] != CONST2)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST3);
+   if (sv [0] != CONST3)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,109 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ long long int e0 (vector long long int v)
+ {
+   return __builtin_vec_ext_v2di (v, 0);
+ }
+ 
+ long long int e3 (vector long long int v)
+ {
+   return __builtin_vec_ext_v2di (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ long long int me0 (vector long long int *vp)
+ {
+   return __builtin_vec_ext_v2di (*vp, 0);
+ }
+ 
+ long long int me3 (vector long long int *vp)
+ {
+   return __builtin_vec_ext_v2di (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ long long int ei (vector long long int v, int i)
+ {
+   return __builtin_vec_ext_v2di (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ long long int mei (vector long long int *vp, int i)
+ {
+   return __builtin_vec_ext_v2di (*vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector long long int dv = { CONST0, CONST1 };
+   long long int d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,109 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ long long int e0 (vector long long int v)
+ {
+   return __builtin_vec_ext_v2di (v, 0);
+ }
+ 
+ long long int e3 (vector long long int v)
+ {
+   return __builtin_vec_ext_v2di (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ long long int me0 (vector long long int *vp)
+ {
+   return __builtin_vec_ext_v2di (*vp, 0);
+ }
+ 
+ long long int me3 (vector long long int *vp)
+ {
+   return __builtin_vec_ext_v2di (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ long long int ei (vector long long int v, int i)
+ {
+   return __builtin_vec_ext_v2di (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ long long int mei (vector long long int *vp, int i)
+ {
+   return __builtin_vec_ext_v2di (*vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector long long int dv = { CONST0, CONST1 };
+   long long int d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,112 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ #define CONST2		(3 * 31415926539LL)
+ #define CONST3		(4 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector long long int e0 (vector long long int v, long long int x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector long long int e3 (vector long long int v, long long int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector long long int me0 (vector long long int *vp, long long int x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector long long int me3 (vector long long int *vp, long long int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector long long int ei (vector long long int v, int i, long long int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector long long int mei (vector long long int *vp, int i, long long int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector long long int dv = { CONST0, CONST1 };
+   long long int d;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e3 (dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = me0 (&dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me3 (&dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-12d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,112 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ #define CONST2		(3 * 31415926539LL)
+ #define CONST3		(4 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector long long int e0 (vector long long int v, long long int x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector long long int e3 (vector long long int v, long long int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector long long int me0 (vector long long int *vp, long long int x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector long long int me3 (vector long long int *vp, long long int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector long long int ei (vector long long int v, int i, long long int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector long long int mei (vector long long int *vp, int i, long long int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector long long int dv = { CONST0, CONST1 };
+   long long int d;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e3 (dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = me0 (&dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me3 (&dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13a.c	Mon May 13 21:27:29 2019
***************
*** 0 ****
--- 1,124 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ /* Define this after PR89424 is addressed.  */
+ #define PR89424
+ 
+ /* Define this after PR89626 is addressed.  */
+ #undef PR89626
+ 
+ #ifdef PR89626
+ #define SIGNED
+ #else
+ #define SIGNED signed
+ #endif
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((SIGNED __int128) 31415926539) << 60)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ SIGNED __int128 e0 (vector SIGNED __int128 v)
+ {
+   return __builtin_vec_ext_v1ti (v, 0);
+ }
+ 
+ SIGNED __int128 e3 (vector SIGNED __int128 v)
+ {
+   return __builtin_vec_ext_v1ti (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ SIGNED __int128 me0 (vector SIGNED __int128 *vp)
+ {
+   return __builtin_vec_ext_v1ti (*vp, 0);
+ }
+ 
+ SIGNED __int128 me3 (vector SIGNED __int128 *vp)
+ {
+   return __builtin_vec_ext_v1ti (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ #ifdef PR89424
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ SIGNED __int128 ei (vector SIGNED __int128 v, int i)
+ {
+   return __builtin_vec_ext_v1ti (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ SIGNED __int128 mei (vector SIGNED __int128 *vp, int i)
+ {
+   return __builtin_vec_ext_v1ti (*vp, i);
+ }
+ #endif
+ 
+ int main (int argc, char *argv[]) {
+   vector SIGNED __int128 dv = { CONST0 };
+   SIGNED __int128 d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+ #ifdef PR89424
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST0)
+     abort ();
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13b.c	Mon May 13 21:27:29 2019
***************
*** 0 ****
--- 1,124 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ /* Define this after PR89424 is addressed.  */
+ #define PR89424
+ 
+ /* Define this after PR89626 is addressed.  */
+ #undef PR89626
+ 
+ #ifdef PR89626
+ #define SIGNED
+ #else
+ #define SIGNED signed
+ #endif
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((SIGNED __int128) 31415926539) << 60)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ SIGNED __int128 e0 (vector SIGNED __int128 v)
+ {
+   return __builtin_vec_ext_v1ti (v, 0);
+ }
+ 
+ SIGNED __int128 e3 (vector SIGNED __int128 v)
+ {
+   return __builtin_vec_ext_v1ti (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ SIGNED __int128 me0 (vector SIGNED __int128 *vp)
+ {
+   return __builtin_vec_ext_v1ti (*vp, 0);
+ }
+ 
+ SIGNED __int128 me3 (vector SIGNED __int128 *vp)
+ {
+   return __builtin_vec_ext_v1ti (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ #ifdef PR89424
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ SIGNED __int128 ei (vector SIGNED __int128 v, int i)
+ {
+   return __builtin_vec_ext_v1ti (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ SIGNED __int128 mei (vector SIGNED __int128 *vp, int i)
+ {
+   return __builtin_vec_ext_v1ti (*vp, i);
+ }
+ #endif
+ 
+ int main (int argc, char *argv[]) {
+   vector SIGNED __int128 dv = { CONST0 };
+   SIGNED __int128 d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+ #ifdef PR89424
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST0)
+     abort ();
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,115 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ #define SIGNED signed
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((SIGNED __int128) 31415926539) << 60)
+ #define CONST1		(((SIGNED __int128) 31415926539) << 55)
+ #define CONST2		(((SIGNED __int128) 31415926539) << 50)
+ #define CONST3		(((SIGNED __int128) 31415926539) << 45)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector SIGNED __int128 e0 (vector SIGNED __int128 v, SIGNED __int128 x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector SIGNED __int128 e3 (vector SIGNED __int128 v, SIGNED __int128 x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector SIGNED __int128 me0 (vector SIGNED __int128 *vp, SIGNED __int128 x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector SIGNED __int128 me3 (vector SIGNED __int128 *vp, SIGNED __int128 x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector SIGNED __int128
+ ei (vector SIGNED __int128 v, int i, SIGNED __int128 x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector SIGNED __int128
+ mei (vector SIGNED __int128 *vp, int i, SIGNED __int128 x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector SIGNED __int128 dv = { CONST0 };
+   SIGNED __int128 d;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e3 (dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me0 (&dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me3 (&dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-13d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,115 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ #define SIGNED signed
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((SIGNED __int128) 31415926539) << 60)
+ #define CONST1		(((SIGNED __int128) 31415926539) << 55)
+ #define CONST2		(((SIGNED __int128) 31415926539) << 50)
+ #define CONST3		(((SIGNED __int128) 31415926539) << 45)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector SIGNED __int128 e0 (vector SIGNED __int128 v, SIGNED __int128 x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector SIGNED __int128 e3 (vector SIGNED __int128 v, SIGNED __int128 x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector SIGNED __int128 me0 (vector SIGNED __int128 *vp, SIGNED __int128 x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector SIGNED __int128 me3 (vector SIGNED __int128 *vp, SIGNED __int128 x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector SIGNED __int128
+ ei (vector SIGNED __int128 v, int i, SIGNED __int128 x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector SIGNED __int128
+ mei (vector SIGNED __int128 *vp, int i, SIGNED __int128 x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector SIGNED __int128 dv = { CONST0 };
+   SIGNED __int128 d;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e3 (dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me0 (&dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me3 (&dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,126 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		((float) (3.1415926539))
+ #define CONST1		((float) (3.1415926539 * 2))
+ #define CONST2		((float) (3.1415926539 * 3))
+ #define CONST3		((float) (3.1415926539 * 4))
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ float e0(vector float v){ return __builtin_vec_ext_v4sf (v, 0); }
+ float e1(vector float v){ return __builtin_vec_ext_v4sf (v, 1); }
+ float e7(vector float v){ return __builtin_vec_ext_v4sf (v, 7); }
+ float e8(vector float v){ return __builtin_vec_ext_v4sf (v, 8); }
+ 
+ /* Test for vector residing in memory.  */
+ float me0(vector float *vp){ return __builtin_vec_ext_v4sf (*vp, 0); }
+ float me1(vector float *vp){ return __builtin_vec_ext_v4sf (*vp, 1); }
+ 
+ float me13(vector float *vp)
+ {
+   return __builtin_vec_ext_v4sf (*vp, 13);
+ }
+ 
+ float me15(vector float *vp)
+ {
+   return __builtin_vec_ext_v4sf (*vp, 15);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ float ei(vector float v, int i)
+ {
+   return __builtin_vec_ext_v4sf (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ float mei(vector float *vp, int i)
+ {
+   return __builtin_vec_ext_v4sf (*vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector float dv = { CONST0, CONST1, CONST2, CONST3 };
+   float d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e1 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = e7 (dv);
+   if (d != CONST3)
+     abort ();
+ 
+   d = e8 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me1 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me13 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me15 (&dv);
+   if (d != CONST3)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST2)
+     abort ();
+ 
+   d = ei (dv, 11);
+   if (d != CONST3)
+     abort ();
+ 
+   d = ei (dv, 17);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 15);
+   if (d != CONST3)
+     abort ();
+ 
+   d = mei (&dv, 6);
+   if (d != CONST2)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,126 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		((float) (3.1415926539))
+ #define CONST1		((float) (3.1415926539 * 2))
+ #define CONST2		((float) (3.1415926539 * 3))
+ #define CONST3		((float) (3.1415926539 * 4))
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ float e0(vector float v){ return __builtin_vec_ext_v4sf (v, 0); }
+ float e1(vector float v){ return __builtin_vec_ext_v4sf (v, 1); }
+ float e7(vector float v){ return __builtin_vec_ext_v4sf (v, 7); }
+ float e8(vector float v){ return __builtin_vec_ext_v4sf (v, 8); }
+ 
+ /* Test for vector residing in memory.  */
+ float me0(vector float *vp){ return __builtin_vec_ext_v4sf (*vp, 0); }
+ float me1(vector float *vp){ return __builtin_vec_ext_v4sf (*vp, 1); }
+ 
+ float me13(vector float *vp)
+ {
+   return __builtin_vec_ext_v4sf (*vp, 13);
+ }
+ 
+ float me15(vector float *vp)
+ {
+   return __builtin_vec_ext_v4sf (*vp, 15);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ float ei(vector float v, int i)
+ {
+   return __builtin_vec_ext_v4sf (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ float mei(vector float *vp, int i)
+ {
+   return __builtin_vec_ext_v4sf (*vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector float dv = { CONST0, CONST1, CONST2, CONST3 };
+   float d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e1 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = e7 (dv);
+   if (d != CONST3)
+     abort ();
+ 
+   d = e8 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me1 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me13 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me15 (&dv);
+   if (d != CONST3)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST2)
+     abort ();
+ 
+   d = ei (dv, 11);
+   if (d != CONST3)
+     abort ();
+ 
+   d = ei (dv, 17);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 15);
+   if (d != CONST3)
+     abort ();
+ 
+   d = mei (&dv, 6);
+   if (d != CONST2)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		((float) (3.1415926539))
+ #define CONST1		((float) (3.1415926539 * 2))
+ #define CONST2		((float) (3.1415926539 * 3))
+ #define CONST3		((float) (3.1415926539 * 4))
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector float e0(vector float v, float x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector float e1(vector float v, float x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector float e7(vector float v, float x)
+ {
+   return vec_insert (x, v, 7);
+ }
+ 
+ vector float e8(vector float v, float x)
+ {
+   return vec_insert (x, v, 8);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector float me0(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector float me1(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector float me13(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 13);
+ }
+ 
+ vector float me15(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 15);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector float ei(vector float v, int i, float x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector float mei(vector float *vp, int i, float x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector float dv = { CONST0, CONST1, CONST2, CONST3 };
+   float d;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e1 (dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = e7 (dv, CONST2);
+   if (dv [3] != CONST2)
+     abort ();
+ 
+   dv = e8 (dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me0 (&dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me1 (&dv, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = me13 (&dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = me15 (&dv, CONST1);
+   if (dv [3] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST1);
+   if (dv [2] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 11, CONST0);
+   if (dv [3] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 17, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 15, CONST1);
+   if (dv [3] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 6, CONST0);
+   if (dv [2] != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-14d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		((float) (3.1415926539))
+ #define CONST1		((float) (3.1415926539 * 2))
+ #define CONST2		((float) (3.1415926539 * 3))
+ #define CONST3		((float) (3.1415926539 * 4))
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector float e0(vector float v, float x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector float e1(vector float v, float x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector float e7(vector float v, float x)
+ {
+   return vec_insert (x, v, 7);
+ }
+ 
+ vector float e8(vector float v, float x)
+ {
+   return vec_insert (x, v, 8);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector float me0(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector float me1(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector float me13(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 13);
+ }
+ 
+ vector float me15(vector float *vp, float x)
+ {
+   return vec_insert (x, *vp, 15);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector float ei(vector float v, int i, float x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector float mei(vector float *vp, int i, float x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector float dv = { CONST0, CONST1, CONST2, CONST3 };
+   float d;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e1 (dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = e7 (dv, CONST2);
+   if (dv [3] != CONST2)
+     abort ();
+ 
+   dv = e8 (dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me0 (&dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me1 (&dv, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = me13 (&dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = me15 (&dv, CONST1);
+   if (dv [3] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST1);
+   if (dv [2] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 11, CONST0);
+   if (dv [3] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 17, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 15, CONST1);
+   if (dv [3] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 6, CONST0);
+   if (dv [2] != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,113 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(3.1415926539)
+ #define CONST1		(3.1415926539 * 2)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ double e0(vector double v){ return __builtin_vec_ext_v2df (v, 0); }
+ double e1(vector double v){ return __builtin_vec_ext_v2df (v, 1); }
+ double e2(vector double v){ return __builtin_vec_ext_v2df (v, 2); }
+ double e3(vector double v){ return __builtin_vec_ext_v2df (v, 3); }
+ 
+ /* Test for vector residing in memory.  */
+ double me0(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 0); }
+ double me1(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 1); }
+ double me2(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 2); }
+ double me3(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 3); }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ double ei(vector double v, int i){ return __builtin_vec_ext_v2df (v, i); }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ double mei(vector double *vp, int i){ return __builtin_vec_ext_v2df (*vp, i); }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector double dv;
+   double d;
+   dv[0] = CONST0;
+   dv[1] = CONST1;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e1 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = e2 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me1 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me2 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,113 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(3.1415926539)
+ #define CONST1		(3.1415926539 * 2)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ double e0(vector double v){ return __builtin_vec_ext_v2df (v, 0); }
+ double e1(vector double v){ return __builtin_vec_ext_v2df (v, 1); }
+ double e2(vector double v){ return __builtin_vec_ext_v2df (v, 2); }
+ double e3(vector double v){ return __builtin_vec_ext_v2df (v, 3); }
+ 
+ /* Test for vector residing in memory.  */
+ double me0(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 0); }
+ double me1(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 1); }
+ double me2(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 2); }
+ double me3(vector double *vp){ return __builtin_vec_ext_v2df (*vp, 3); }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ double ei(vector double v, int i){ return __builtin_vec_ext_v2df (v, i); }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ double mei(vector double *vp, int i){ return __builtin_vec_ext_v2df (*vp, i); }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector double dv;
+   double d;
+   dv[0] = CONST0;
+   dv[1] = CONST1;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e1 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = e2 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me1 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me2 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,151 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(3.1415926539)
+ #define CONST1		(3.1415926539 * 2)
+ #define CONST2		(3.1415926539 * 3)
+ #define CONST3		(3.1415926539 * 4)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector double e0(vector double v, double x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector double e1(vector double v, double x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector double e2(vector double v, double x)
+ {
+   return vec_insert (x, v, 2);
+ }
+ 
+ vector double e3(vector double v, double x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector double me0(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector double me1(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector double me2(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 2);
+ }
+ 
+ vector double me3(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector double ei(vector double v, int i, double x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector double mei(vector double *vp, int i, double x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector double dv;
+   double d;
+   dv[0] = CONST0;
+   dv[1] = CONST1;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e1 (dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = e2 (dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = e3 (dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = me0 (&dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me1 (&dv, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = me2 (&dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me3 (&dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-15d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,151 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(3.1415926539)
+ #define CONST1		(3.1415926539 * 2)
+ #define CONST2		(3.1415926539 * 3)
+ #define CONST3		(3.1415926539 * 4)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector double e0(vector double v, double x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector double e1(vector double v, double x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector double e2(vector double v, double x)
+ {
+   return vec_insert (x, v, 2);
+ }
+ 
+ vector double e3(vector double v, double x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector double me0(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector double me1(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector double me2(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 2);
+ }
+ 
+ vector double me3(vector double *vp, double x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector double ei(vector double v, int i, double x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector double mei(vector double *vp, int i, double x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector double dv;
+   double d;
+   dv[0] = CONST0;
+   dv[1] = CONST1;
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e1 (dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = e2 (dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = e3 (dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = me0 (&dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me1 (&dv, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = me2 (&dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me3 (&dv, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST0);
+   if (dv [1] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,165 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned char c0 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 0);
+ }
+ 
+ unsigned char c9 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 9);
+ }
+ 
+ unsigned char c21 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 21);
+ }
+ 
+ unsigned char c30 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned char mc0 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 0);
+ }
+ 
+ unsigned char mc9 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 9);
+ }
+ 
+ unsigned char mc21 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 21);
+ }
+ 
+ unsigned char mc30 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned char ci (vector unsigned char v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ unsigned char mci (vector unsigned char *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			    CONST4, CONST5, CONST6, CONST7,
+ 			    CONST8, CONST9, CONSTA, CONSTB,
+ 			    CONSTC, CONSTD, CONSTE, CONSTF };
+   unsigned char c;
+ 
+   c = c0 (cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = c9 (cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = c21 (cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = c30 (cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = mc0 (&cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = mc9 (&cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mc21 (&cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mc30 (&cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = ci (cv, 8);
+   if (c != CONST8)
+     abort ();
+ 
+   c = ci (cv, 13);
+   if (c != CONSTD)
+     abort ();
+ 
+   c = ci (cv, 23);
+   if (c != CONST7)
+     abort ();
+ 
+   c = ci (cv, 31);
+   if (c != CONSTF)
+     abort ();
+ 
+   c = mci (&cv, 5);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mci (&cv, 12);
+   if (c != CONSTC)
+     abort ();
+ 
+   c = mci (&cv, 25);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mci (&cv, 16);
+   if (c != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,165 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned char c0 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 0);
+ }
+ 
+ unsigned char c9 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 9);
+ }
+ 
+ unsigned char c21 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 21);
+ }
+ 
+ unsigned char c30 (vector unsigned char v)
+ {
+   return __builtin_vec_extract (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned char mc0 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 0);
+ }
+ 
+ unsigned char mc9 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 9);
+ }
+ 
+ unsigned char mc21 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 21);
+ }
+ 
+ unsigned char mc30 (vector unsigned char *vp)
+ {
+   return __builtin_vec_extract (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned char ci (vector unsigned char v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ unsigned char mci (vector unsigned char *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			    CONST4, CONST5, CONST6, CONST7,
+ 			    CONST8, CONST9, CONSTA, CONSTB,
+ 			    CONSTC, CONSTD, CONSTE, CONSTF };
+   unsigned char c;
+ 
+   c = c0 (cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = c9 (cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = c21 (cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = c30 (cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = mc0 (&cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = mc9 (&cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mc21 (&cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mc30 (&cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = ci (cv, 8);
+   if (c != CONST8)
+     abort ();
+ 
+   c = ci (cv, 13);
+   if (c != CONSTD)
+     abort ();
+ 
+   c = ci (cv, 23);
+   if (c != CONST7)
+     abort ();
+ 
+   c = ci (cv, 31);
+   if (c != CONSTF)
+     abort ();
+ 
+   c = mci (&cv, 5);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mci (&cv, 12);
+   if (c != CONSTC)
+     abort ();
+ 
+   c = mci (&cv, 25);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mci (&cv, 16);
+   if (c != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,180 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <stdio.h>
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned char c0 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector unsigned char c9 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 9);
+ }
+ 
+ vector unsigned char c21 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector unsigned char c30 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned char mc0 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector unsigned char mc9 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 9);
+ }
+ 
+ vector unsigned char mc21 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector unsigned char mc30 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned char ci (vector unsigned char v, int i, unsigned char x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned char mci (vector unsigned char *vp, int i, unsigned char x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			      CONST4, CONST5, CONST6, CONST7,
+ 			      CONST8, CONST9, CONSTA, CONSTB,
+ 			      CONSTC, CONSTD, CONSTE, CONSTF };
+   printf ("A\n");
+   cv = c0 (cv, CONST3);
+   if (cv [0] != CONST3)
+     abort ();
+ 
+   printf ("B\n");
+   cv = c9 (cv, CONST2);
+   if (cv [9] != CONST2)
+     abort ();
+ 
+   printf ("C\n");
+   cv = c21 (cv, CONSTF);
+   if (cv [5] != CONSTF)
+     abort ();
+ 
+   printf ("D\n");
+   cv = c30 (cv, CONST3);
+   if (cv [14] != CONST3)
+     abort ();
+ 
+   printf ("E\n");
+   cv = mc0 (&cv, CONST4);
+   if (cv [0] != CONST4)
+     abort ();
+ 
+   printf ("F\n");
+   cv = mc9 (&cv, CONST3);
+   if (cv [9] != CONST3)
+     abort ();
+ 
+   printf ("G\n");
+   cv = mc21 (&cv, CONST1);
+   if (cv [5] != CONST1)
+     abort ();
+ 
+   printf ("H\n");
+   cv = mc30 (&cv, CONSTC);
+   if (cv [14] != CONSTC)
+     abort ();
+ 
+   printf ("I\n");
+   cv = ci (cv, 8, CONSTD);
+   if (cv [8] != CONSTD)
+     abort ();
+ 
+   printf ("J\n");
+   cv = ci (cv, 13, CONST5);
+   if (cv [13] != CONST5)
+     abort ();
+ 
+   printf ("K\n");
+   cv = ci (cv, 23, CONST6);
+   if (cv [7] != CONST6)
+     abort ();
+ 
+   printf ("L\n");
+   cv = ci (cv, 31, CONST7);
+   if (cv [15] != CONST7)
+     abort ();
+ 
+   printf ("M\n");
+   cv = mci (&cv, 5, CONST8);
+   if (cv [5] != CONST8)
+     abort ();
+ 
+   printf ("N\n");
+   cv = mci (&cv, 12, CONST9);
+   if (cv [12] != CONST9)
+     abort ();
+ 
+   printf ("O\n");
+   cv = mci (&cv, 25, CONSTA);
+   if (cv [9] != CONSTA)
+     abort ();
+ 
+   printf ("P\n");
+   cv = mci (&cv, 16, CONSTB);
+   if (cv [0] != CONSTB)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-16d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,163 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned char c0 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector unsigned char c9 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 9);
+ }
+ 
+ vector unsigned char c21 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector unsigned char c30 (vector unsigned char v, unsigned char x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned char mc0 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector unsigned char mc9 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 9);
+ }
+ 
+ vector unsigned char mc21 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector unsigned char mc30 (vector unsigned char *vp, unsigned char x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned char ci (vector unsigned char v, int i, unsigned char x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned char mci (vector unsigned char *vp, int i, unsigned char x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			      CONST4, CONST5, CONST6, CONST7,
+ 			      CONST8, CONST9, CONSTA, CONSTB,
+ 			      CONSTC, CONSTD, CONSTE, CONSTF };
+   cv = c0 (cv, CONST3);
+   if (cv [0] != CONST3)
+     abort ();
+ 
+   cv = c9 (cv, CONST2);
+   if (cv [9] != CONST2)
+     abort ();
+ 
+   cv = c21 (cv, CONSTF);
+   if (cv [5] != CONSTF)
+     abort ();
+ 
+   cv = c30 (cv, CONST3);
+   if (cv [14] != CONST3)
+     abort ();
+ 
+   cv = mc0 (&cv, CONST4);
+   if (cv [0] != CONST4)
+     abort ();
+ 
+   cv = mc9 (&cv, CONST3);
+   if (cv [9] != CONST3)
+     abort ();
+ 
+   cv = mc21 (&cv, CONST1);
+   if (cv [5] != CONST1)
+     abort ();
+ 
+   cv = mc30 (&cv, CONSTC);
+   if (cv [14] != CONSTC)
+     abort ();
+ 
+   cv = ci (cv, 8, CONSTD);
+   if (cv [8] != CONSTD)
+     abort ();
+ 
+   cv = ci (cv, 13, CONST5);
+   if (cv [13] != CONST5)
+     abort ();
+ 
+   cv = ci (cv, 23, CONST6);
+   if (cv [7] != CONST6)
+     abort ();
+ 
+   cv = ci (cv, 31, CONST7);
+   if (cv [15] != CONST7)
+     abort ();
+ 
+   cv = mci (&cv, 5, CONST8);
+   if (cv [5] != CONST8)
+     abort ();
+ 
+   cv = mci (&cv, 12, CONST9);
+   if (cv [12] != CONST9)
+     abort ();
+ 
+   cv = mci (&cv, 25, CONSTA);
+   if (cv [9] != CONSTA)
+     abort ();
+ 
+   cv = mci (&cv, 16, CONSTB);
+   if (cv [0] != CONSTB)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,155 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned short s3 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ unsigned short s7 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 7);
+ }
+ 
+ unsigned short s21 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 21);
+ }
+ 
+ unsigned short s30 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned short ms3 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ unsigned short ms7 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 7);
+ }
+ 
+ unsigned short ms21 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 21);
+ }
+ 
+ unsigned short ms30 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned short ci (vector unsigned short v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ unsigned short mci (vector unsigned short *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ 
+ int main (int argc, unsigned short *argv[]) {
+   vector unsigned short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+   unsigned short s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s7 (sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms7 (&sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,155 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned short s3 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ unsigned short s7 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 7);
+ }
+ 
+ unsigned short s21 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 21);
+ }
+ 
+ unsigned short s30 (vector unsigned short v)
+ {
+   return __builtin_vec_extract (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned short ms3 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ unsigned short ms7 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 7);
+ }
+ 
+ unsigned short ms21 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 21);
+ }
+ 
+ unsigned short ms30 (vector unsigned short *vp)
+ {
+   return __builtin_vec_extract (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned short ci (vector unsigned short v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ unsigned short mci (vector unsigned short *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ 
+ int main (int argc, unsigned short *argv[]) {
+   vector unsigned short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+   unsigned short s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s7 (sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms7 (&sv);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST6)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST7)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST5)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST4)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,154 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned short s3 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector unsigned short s7 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 7);
+ }
+ 
+ vector unsigned short s21 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector unsigned short s30 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned short ms3 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector unsigned short ms7 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 7);
+ }
+ 
+ vector unsigned short ms21 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector unsigned short ms30 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned short ci (vector unsigned short v, int i, unsigned short x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned short mci (vector unsigned short *vp, int i, unsigned short x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, unsigned short *argv[]) {
+   vector unsigned short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+ 
+   sv = s3 (sv, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = s7 (sv, CONST2);
+   if (sv [7] != CONST2)
+     abort ();
+ 
+   sv = s21 (sv, CONST3);
+   if (sv [5] != CONST3)
+     abort ();
+ 
+   sv = s30 (sv, CONST4);
+   if (sv [6] != CONST4)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST5);
+   if (sv [3] != CONST5)
+     abort ();
+ 
+   sv = ms7 (&sv, CONST6);
+   if (sv [7] != CONST6)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST7);
+   if (sv [5] != CONST7)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [6] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST1);
+   if (sv [5] != CONST1)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST3);
+   if (sv [2] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST2);
+   if (sv [7] != CONST2)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST5);
+   if (sv [4] != CONST5)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST4);
+   if (sv [5] != CONST4)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST6);
+   if (sv [4] != CONST6)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST7);
+   if (sv [1] != CONST7)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST4);
+   if (sv [0] != CONST4)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-17d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,154 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned short s3 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector unsigned short s7 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 7);
+ }
+ 
+ vector unsigned short s21 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector unsigned short s30 (vector unsigned short v, unsigned short x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned short ms3 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector unsigned short ms7 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 7);
+ }
+ 
+ vector unsigned short ms21 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector unsigned short ms30 (vector unsigned short *vp, unsigned short x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned short ci (vector unsigned short v, int i, unsigned short x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned short mci (vector unsigned short *vp, int i, unsigned short x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, unsigned short *argv[]) {
+   vector unsigned short sv = {
+     CONST0, CONST1, CONST2, CONST3, CONST4, CONST5, CONST6, CONST7 };
+ 
+   sv = s3 (sv, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = s7 (sv, CONST2);
+   if (sv [7] != CONST2)
+     abort ();
+ 
+   sv = s21 (sv, CONST3);
+   if (sv [5] != CONST3)
+     abort ();
+ 
+   sv = s30 (sv, CONST4);
+   if (sv [6] != CONST4)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST5);
+   if (sv [3] != CONST5)
+     abort ();
+ 
+   sv = ms7 (&sv, CONST6);
+   if (sv [7] != CONST6)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST7);
+   if (sv [5] != CONST7)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [6] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST1);
+   if (sv [5] != CONST1)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST3);
+   if (sv [2] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST2);
+   if (sv [7] != CONST2)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST5);
+   if (sv [4] != CONST5)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST4);
+   if (sv [5] != CONST4)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST6);
+   if (sv [4] != CONST6)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST7);
+   if (sv [1] != CONST7)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST4);
+   if (sv [0] != CONST4)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Unsigned Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned int s3 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ unsigned int s1 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 1);
+ }
+ 
+ unsigned int s21 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 21);
+ }
+ 
+ unsigned int s30 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned int ms3 (vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ unsigned int ms1(vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 1);
+ }
+ 
+ unsigned int ms21(vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 21);
+ }
+ 
+ unsigned int ms30(vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned int ci (vector unsigned int v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ unsigned int mci(vector unsigned int *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ 
+ unsigned int main (int argc, unsigned char *argv[]) {
+   vector unsigned int sv = { CONST0, CONST1, CONST2, CONST3 };
+   unsigned int s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s1 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms1 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,149 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Unsigned Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned int s3 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ unsigned int s1 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 1);
+ }
+ 
+ unsigned int s21 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 21);
+ }
+ 
+ unsigned int s30 (vector unsigned int v)
+ {
+   return __builtin_vec_extract (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned int ms3 (vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ unsigned int ms1(vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 1);
+ }
+ 
+ unsigned int ms21(vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 21);
+ }
+ 
+ unsigned int ms30(vector unsigned int *vp)
+ {
+   return __builtin_vec_extract (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned int ci (vector unsigned int v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ unsigned int mci(vector unsigned int *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ 
+ unsigned int main (int argc, unsigned char *argv[]) {
+   vector unsigned int sv = { CONST0, CONST1, CONST2, CONST3 };
+   unsigned int s;
+ 
+   s = s3 (sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = s1 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s21 (sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = s30 (sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ms3 (&sv);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ms1 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms21 (&sv);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ms30 (&sv);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = ci (sv, 2);
+   if (s != CONST2)
+     abort ();
+ 
+   s = ci (sv, 15);
+   if (s != CONST3)
+     abort ();
+ 
+   s = ci (sv, 28);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 5);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 12);
+   if (s != CONST0)
+     abort ();
+ 
+   s = mci (&sv, 25);
+   if (s != CONST1)
+     abort ();
+ 
+   s = mci (&sv, 16);
+   if (s != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,148 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Unsigned Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned int s3 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector unsigned int s1 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector unsigned int s21 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector unsigned int s30 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned int ms3 (vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector unsigned int ms1(vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector unsigned int ms21(vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector unsigned int ms30(vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned int ci (vector unsigned int v, int i, unsigned int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned int mci(vector unsigned int *vp, int i, unsigned int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, unsigned char *argv[]) {
+   vector unsigned int sv = { CONST0, CONST1, CONST2, CONST3 };
+ 
+   sv = s3 (sv, CONST2);
+   if (sv [3] != CONST2)
+     abort ();
+ 
+   sv = s1 (sv, CONST2);
+   if (sv [1] != CONST2)
+     abort ();
+ 
+   sv = s21 (sv, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = s30 (sv, CONST1);
+   if (sv [2] != CONST1)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST0);
+   if (sv [3] != CONST0)
+     abort ();
+ 
+   sv = ms1 (&sv, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST1);
+   if (sv [1] != CONST1)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [2] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST0);
+   if (sv [2] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST3);
+   if (sv [0] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST2);
+   if (sv [0] != CONST2)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST1);
+   if (sv [0] != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-18d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,148 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Unsigned Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned int s3 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ vector unsigned int s1 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 1);
+ }
+ 
+ vector unsigned int s21 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector unsigned int s30 (vector unsigned int v, unsigned int x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned int ms3 (vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ vector unsigned int ms1(vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 1);
+ }
+ 
+ vector unsigned int ms21(vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector unsigned int ms30(vector unsigned int *vp, unsigned int x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned int ci (vector unsigned int v, int i, unsigned int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned int mci(vector unsigned int *vp, int i, unsigned int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, unsigned char *argv[]) {
+   vector unsigned int sv = { CONST0, CONST1, CONST2, CONST3 };
+ 
+   sv = s3 (sv, CONST2);
+   if (sv [3] != CONST2)
+     abort ();
+ 
+   sv = s1 (sv, CONST2);
+   if (sv [1] != CONST2)
+     abort ();
+ 
+   sv = s21 (sv, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = s30 (sv, CONST1);
+   if (sv [2] != CONST1)
+     abort ();
+ 
+   sv = ms3 (&sv, CONST0);
+   if (sv [3] != CONST0)
+     abort ();
+ 
+   sv = ms1 (&sv, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = ms21 (&sv, CONST1);
+   if (sv [1] != CONST1)
+     abort ();
+ 
+   sv = ms30 (&sv, CONST0);
+   if (sv [2] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 5, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = ci (sv, 2, CONST0);
+   if (sv [2] != CONST0)
+     abort ();
+ 
+   sv = ci (sv, 15, CONST1);
+   if (sv [3] != CONST1)
+     abort ();
+ 
+   sv = ci (sv, 28, CONST3);
+   if (sv [0] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 5, CONST0);
+   if (sv [1] != CONST0)
+     abort ();
+ 
+   sv = mci (&sv, 12, CONST2);
+   if (sv [0] != CONST2)
+     abort ();
+ 
+   sv = mci (&sv, 25, CONST3);
+   if (sv [1] != CONST3)
+     abort ();
+ 
+   sv = mci (&sv, 16, CONST1);
+   if (sv [0] != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,109 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned long long int e0 (vector unsigned long long int v)
+ {
+   return __builtin_vec_extract (v, 0);
+ }
+ 
+ unsigned long long int e3 (vector unsigned long long int v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned long long int me0 (vector unsigned long long int *vp)
+ {
+   return __builtin_vec_extract (*vp, 0);
+ }
+ 
+ unsigned long long int me3 (vector unsigned long long int *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned long long int ei (vector unsigned long long int v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ unsigned long long int mei (vector unsigned long long int *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned long long int dv = { CONST0, CONST1 };
+   unsigned long long int d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,109 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned long long int e0 (vector unsigned long long int v)
+ {
+   return __builtin_vec_extract (v, 0);
+ }
+ 
+ unsigned long long int e3 (vector unsigned long long int v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned long long int me0 (vector unsigned long long int *vp)
+ {
+   return __builtin_vec_extract (*vp, 0);
+ }
+ 
+ unsigned long long int me3 (vector unsigned long long int *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned long long int ei (vector unsigned long long int v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ unsigned long long int mei (vector unsigned long long int *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned long long int dv = { CONST0, CONST1 };
+   unsigned long long int d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST1)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST1)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,122 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ #define CONST2		(3 * 31415926539LL)
+ #define CONST3		(4 * 31415926539LL)
+ #define CONST4		(5 * 31415926539LL)
+ #define CONST5		(6 * 31415926539LL)
+ #define CONST6		(7 * 31415926539LL)
+ #define CONST7		(8 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned long long int
+ e0 (vector unsigned long long int v, unsigned long long int x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector unsigned long long int
+ e3 (vector unsigned long long int v, unsigned long long int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned long long int
+ me0 (vector unsigned long long int *vp, unsigned long long int x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector unsigned long long int
+ me3 (vector unsigned long long int *vp, unsigned long long int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned long long int
+ ei (vector unsigned long long int v, int i, unsigned long long int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned long long int
+ mei (vector unsigned long long int *vp, int i, unsigned long long int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned long long int dv = { CONST0, CONST1 };
+   unsigned long long int d;
+ 
+   dv = e0 (dv, CONST7);
+   if (dv [0] != CONST7)
+     abort ();
+ 
+   dv = e3 (dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = me0 (&dv, CONST4);
+   if (dv [0] != CONST4)
+     abort ();
+ 
+   dv = me3 (&dv, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST5);
+   if (dv [0] != CONST5)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST6);
+   if (dv [1] != CONST6)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-19d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,122 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(31415926539LL)
+ #define CONST1		(2 * 31415926539LL)
+ #define CONST2		(3 * 31415926539LL)
+ #define CONST3		(4 * 31415926539LL)
+ #define CONST4		(5 * 31415926539LL)
+ #define CONST5		(6 * 31415926539LL)
+ #define CONST6		(7 * 31415926539LL)
+ #define CONST7		(8 * 31415926539LL)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned long long int
+ e0 (vector unsigned long long int v, unsigned long long int x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector unsigned long long int
+ e3 (vector unsigned long long int v, unsigned long long int x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned long long int
+ me0 (vector unsigned long long int *vp, unsigned long long int x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector unsigned long long int
+ me3 (vector unsigned long long int *vp, unsigned long long int x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned long long int
+ ei (vector unsigned long long int v, int i, unsigned long long int x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned long long int
+ mei (vector unsigned long long int *vp, int i, unsigned long long int x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned long long int dv = { CONST0, CONST1 };
+   unsigned long long int d;
+ 
+   dv = e0 (dv, CONST7);
+   if (dv [0] != CONST7)
+     abort ();
+ 
+   dv = e3 (dv, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = me0 (&dv, CONST4);
+   if (dv [0] != CONST4)
+     abort ();
+ 
+   dv = me3 (&dv, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST5);
+   if (dv [0] != CONST5)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST6);
+   if (dv [1] != CONST6)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST3);
+   if (dv [1] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST2);
+   if (dv [1] != CONST2)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20a.c	Mon May 13 21:27:29 2019
***************
*** 0 ****
--- 1,115 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ /* Define this after PR89424 is addressed.  */
+ #define PR89424
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((unsigned __int128) 31415926539) << 60)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned __int128 e0 (vector unsigned __int128 v)
+ {
+   return __builtin_vec_extract (v, 0);
+ }
+ 
+ unsigned __int128 e3 (vector unsigned __int128 v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned __int128 me0 (vector unsigned __int128 *vp)
+ {
+   return __builtin_vec_extract (*vp, 0);
+ }
+ 
+ unsigned __int128 me3 (vector unsigned __int128 *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ #ifdef PR89424
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned __int128 ei (vector unsigned __int128 v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ unsigned __int128 mei (vector unsigned __int128 *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ #endif
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned __int128 dv = { CONST0 };
+   unsigned __int128 d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+ #ifdef PR89424
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST0)
+     abort ();
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20b.c	Mon May 13 21:27:29 2019
***************
*** 0 ****
--- 1,115 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ /* Define this after PR89424 is addressed.  */
+ #define PR89424
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((unsigned __int128) 31415926539) << 60)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ unsigned __int128 e0 (vector unsigned __int128 v)
+ {
+   return __builtin_vec_extract (v, 0);
+ }
+ 
+ unsigned __int128 e3 (vector unsigned __int128 v)
+ {
+   return __builtin_vec_extract (v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ unsigned __int128 me0 (vector unsigned __int128 *vp)
+ {
+   return __builtin_vec_extract (*vp, 0);
+ }
+ 
+ unsigned __int128 me3 (vector unsigned __int128 *vp)
+ {
+   return __builtin_vec_extract (*vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ #ifdef PR89424
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ unsigned __int128 ei (vector unsigned __int128 v, int i)
+ {
+   return __builtin_vec_extract (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ unsigned __int128 mei (vector unsigned __int128 *vp, int i)
+ {
+   return __builtin_vec_extract (*vp, i);
+ }
+ #endif
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned __int128 dv = { CONST0 };
+   unsigned __int128 d;
+ 
+   d = e0 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = e3 (dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me0 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+   d = me3 (&dv);
+   if (d != CONST0)
+     abort ();
+ 
+ #ifdef PR89424
+   d = ei (dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = ei (dv, 3);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 0);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 1);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 2);
+   if (d != CONST0)
+     abort ();
+ 
+   d = mei (&dv, 3);
+   if (d != CONST0)
+     abort ();
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,115 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((unsigned __int128) 31415926539) << 60)
+ #define CONST1		(((unsigned __int128) 31415926539) << 54)
+ #define CONST2		(((unsigned __int128) 31415926539) << 48)
+ #define CONST3		(((unsigned __int128) 31415926539) << 32)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned __int128 e0 (vector unsigned __int128 v, unsigned __int128 x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector unsigned __int128 e3 (vector unsigned __int128 v, unsigned __int128 x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned __int128
+ me0 (vector unsigned __int128 *vp, unsigned __int128 x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector unsigned __int128
+ me3 (vector unsigned __int128 *vp, unsigned __int128 x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned __int128
+ ei (vector unsigned __int128 v, int i, unsigned __int128 x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned __int128
+ mei (vector unsigned __int128 *vp, int i, unsigned __int128 x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned __int128 dv = { CONST0 };
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e3 (dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me0 (&dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me3 (&dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST0);
+   if (dv [0] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST0);
+   if (dv [0] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-20d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,115 ----
+ /* { dg-do run { target int128 } } */
+ /* { dg-require-effective-target vsx_hw } */
+ /* { dg-options "-mvsx -O3" } */
+ 
+ /* This test should run the same on any target that supports vsx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(((unsigned __int128) 31415926539) << 60)
+ #define CONST1		(((unsigned __int128) 31415926539) << 54)
+ #define CONST2		(((unsigned __int128) 31415926539) << 48)
+ #define CONST3		(((unsigned __int128) 31415926539) << 32)
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector unsigned __int128 e0 (vector unsigned __int128 v, unsigned __int128 x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector unsigned __int128 e3 (vector unsigned __int128 v, unsigned __int128 x)
+ {
+   return vec_insert (x, v, 3);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector unsigned __int128
+ me0 (vector unsigned __int128 *vp, unsigned __int128 x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector unsigned __int128
+ me3 (vector unsigned __int128 *vp, unsigned __int128 x)
+ {
+   return vec_insert (x, *vp, 3);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector unsigned __int128
+ ei (vector unsigned __int128 v, int i, unsigned __int128 x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector unsigned __int128
+ mei (vector unsigned __int128 *vp, int i, unsigned __int128 x)
+ {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ int main (int argc, char *argv[]) {
+   vector unsigned __int128 dv = { CONST0 };
+ 
+   dv = e0 (dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = e3 (dv, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = me0 (&dv, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = me3 (&dv, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = ei (dv, 0, CONST0);
+   if (dv [0] != CONST0)
+     abort ();
+ 
+   dv = ei (dv, 1, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = ei (dv, 2, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = ei (dv, 3, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   dv = mei (&dv, 0, CONST0);
+   if (dv [0] != CONST0)
+     abort ();
+ 
+   dv = mei (&dv, 1, CONST1);
+   if (dv [0] != CONST1)
+     abort ();
+ 
+   dv = mei (&dv, 2, CONST2);
+   if (dv [0] != CONST2)
+     abort ();
+ 
+   dv = mei (&dv, 3, CONST3);
+   if (dv [0] != CONST3)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9a.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,164 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ signed char c0 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 0);
+ }
+ 
+ signed char c9 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 9);
+ }
+ 
+ signed char c21 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 21);
+ }
+ 
+ signed char c30 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ signed char mc0 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 0);
+ }
+ 
+ signed char mc9 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 9);
+ }
+ 
+ signed char mc21 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 21);
+ }
+ 
+ signed char mc30 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ signed char ci (vector signed char v, int i)
+ {
+   return __builtin_vec_ext_v16qi (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ signed char mci(vector signed char *vp, int i) {
+   return __builtin_vec_ext_v16qi (*vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector signed char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			    CONST4, CONST5, CONST6, CONST7,
+ 			    CONST8, CONST9, CONSTA, CONSTB,
+ 			    CONSTC, CONSTD, CONSTE, CONSTF };
+   signed char c;
+ 
+   c = c0 (cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = c9 (cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = c21 (cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = c30 (cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = mc0 (&cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = mc9 (&cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mc21 (&cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mc30 (&cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = ci (cv, 8);
+   if (c != CONST8)
+     abort ();
+ 
+   c = ci (cv, 13);
+   if (c != CONSTD)
+     abort ();
+ 
+   c = ci (cv, 23);
+   if (c != CONST7)
+     abort ();
+ 
+   c = ci (cv, 31);
+   if (c != CONSTF)
+     abort ();
+ 
+   c = mci (&cv, 5);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mci (&cv, 12);
+   if (c != CONSTC)
+     abort ();
+ 
+   c = mci (&cv, 25);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mci (&cv, 16);
+   if (c != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9b.c	Mon Apr 22 16:09:13 2019
***************
*** 0 ****
--- 1,164 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/dfp
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ signed char c0 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 0);
+ }
+ 
+ signed char c9 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 9);
+ }
+ 
+ signed char c21 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 21);
+ }
+ 
+ signed char c30 (vector signed char v)
+ {
+   return __builtin_vec_ext_v16qi (v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ signed char mc0 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 0);
+ }
+ 
+ signed char mc9 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 9);
+ }
+ 
+ signed char mc21 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 21);
+ }
+ 
+ signed char mc30 (vector signed char *vp)
+ {
+   return __builtin_vec_ext_v16qi (*vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ signed char ci (vector signed char v, int i)
+ {
+   return __builtin_vec_ext_v16qi (v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ signed char mci(vector signed char *vp, int i) {
+   return __builtin_vec_ext_v16qi (*vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector signed char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			    CONST4, CONST5, CONST6, CONST7,
+ 			    CONST8, CONST9, CONSTA, CONSTB,
+ 			    CONSTC, CONSTD, CONSTE, CONSTF };
+   signed char c;
+ 
+   c = c0 (cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = c9 (cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = c21 (cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = c30 (cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = mc0 (&cv);
+   if (c != CONST0)
+     abort ();
+ 
+   c = mc9 (&cv);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mc21 (&cv);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mc30 (&cv);
+   if (c != CONSTE)
+     abort ();
+ 
+   c = ci (cv, 8);
+   if (c != CONST8)
+     abort ();
+ 
+   c = ci (cv, 13);
+   if (c != CONSTD)
+     abort ();
+ 
+   c = ci (cv, 23);
+   if (c != CONST7)
+     abort ();
+ 
+   c = ci (cv, 31);
+   if (c != CONSTF)
+     abort ();
+ 
+   c = mci (&cv, 5);
+   if (c != CONST5)
+     abort ();
+ 
+   c = mci (&cv, 12);
+   if (c != CONSTC)
+     abort ();
+ 
+   c = mci (&cv, 25);
+   if (c != CONST9)
+     abort ();
+ 
+   c = mci (&cv, 16);
+   if (c != CONST0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9c.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,164 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector signed char c0 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector signed char c9 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 9);
+ }
+ 
+ vector signed char c21 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector signed char c30 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector signed char mc0 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector signed char mc9 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 9);
+ }
+ 
+ vector signed char mc21 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector signed char mc30 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector signed char ci (vector signed char v, int i, signed char x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector signed char mci(vector signed char *vp, int i, signed char x) {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector signed char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			    CONST4, CONST5, CONST6, CONST7,
+ 			    CONST8, CONST9, CONSTA, CONSTB,
+ 			    CONSTC, CONSTD, CONSTE, CONSTF };
+   signed char c;
+ 
+   cv = c0 (cv, CONSTF);
+   if (cv [0] != CONSTF)
+     abort ();
+ 
+   cv = c9 (cv, CONST7);
+   if (cv [9] != CONST7)
+     abort ();
+ 
+   cv = c21 (cv, CONSTA);
+   if (cv [5] != CONSTA)
+     abort ();
+ 
+   cv = c30 (cv, CONSTC);
+   if (cv [14] != CONSTC)
+     abort ();
+ 
+   cv = mc0 (&cv, CONSTB);
+   if (cv [0] != CONSTB)
+     abort ();
+ 
+   cv = mc9 (&cv, CONST1);
+   if (cv [9] != CONST1)
+     abort ();
+ 
+   cv = mc21 (&cv, CONST7);
+   if (cv [5] != CONST7)
+     abort ();
+ 
+   cv = mc30 (&cv, CONST2);
+   if (cv [14] != CONST2)
+     abort ();
+ 
+   cv = ci (cv, 8, CONST4);
+   if (cv [8] != CONST4)
+     abort ();
+ 
+   cv = ci (cv, 13, CONSTB);
+   if (cv [13] != CONSTB)
+     abort ();
+ 
+   cv = ci (cv, 23, CONST3);
+   if (cv [7] != CONST3)
+     abort ();
+ 
+   cv = ci (cv, 31, CONST2);
+   if (cv [15] != CONST2)
+     abort ();
+ 
+   cv = mci (&cv, 5, CONST1);
+   if (cv [5] != CONST1)
+     abort ();
+ 
+   cv = mci (&cv, 12, CONST3);
+   if (cv [12] != CONST3)
+     abort ();
+ 
+   cv = mci (&cv, 25, CONST5);
+   if (cv [9] != CONST5)
+     abort ();
+ 
+   cv = mci (&cv, 16, CONSTD);
+   if (cv [0] != CONSTD)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-builtin-9d.c	Mon May 20 20:07:12 2019
***************
*** 0 ****
--- 1,164 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target vmx_hw } */
+ /* { dg-options "-maltivec -O3" } */
+ 
+ /* This test should run the same on any target that supports altivec/vmx
+    instructions.  Intentionally not specifying cpu in order to test
+    all code generation paths.  */
+ 
+ #include <altivec.h>
+ 
+ extern void abort (void);
+ 
+ #define CONST0		(0)
+ #define CONST1		(1)
+ #define CONST2		(2)
+ #define CONST3		(3)
+ #define CONST4		(4)
+ #define CONST5		(5)
+ #define CONST6		(6)
+ #define CONST7		(7)
+ #define CONST8		(8)
+ #define CONST9		(9)
+ #define CONSTA		(10)
+ #define CONSTB		(11)
+ #define CONSTC		(12)
+ #define CONSTD		(13)
+ #define CONSTE		(14)
+ #define CONSTF		(15)
+ 
+ 
+ /* Test that indices > length of vector are applied modulo the vector
+    length.  */
+ 
+ /* Test for vector residing in register.  */
+ vector signed char c0 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 0);
+ }
+ 
+ vector signed char c9 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 9);
+ }
+ 
+ vector signed char c21 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 21);
+ }
+ 
+ vector signed char c30 (vector signed char v, signed char x)
+ {
+   return vec_insert (x, v, 30);
+ }
+ 
+ /* Test for vector residing in memory.  */
+ vector signed char mc0 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 0);
+ }
+ 
+ vector signed char mc9 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 9);
+ }
+ 
+ vector signed char mc21 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 21);
+ }
+ 
+ vector signed char mc30 (vector signed char *vp, signed char x)
+ {
+   return vec_insert (x, *vp, 30);
+ }
+ 
+ /* Test the same with variable indices.  */
+ 
+ /* Test for variable selector and vector residing in register.  */
+ __attribute__((noinline))
+ vector signed char ci (vector signed char v, int i, signed char x)
+ {
+   return vec_insert (x, v, i);
+ }
+ 
+ /* Test for variable selector and vector residing in memory.  */
+ __attribute__((noinline))
+ vector signed char mci(vector signed char *vp, int i, signed char x) {
+   return vec_insert (x, *vp, i);
+ }
+ 
+ 
+ int main (int argc, char *argv[]) {
+   vector signed char cv = { CONST0, CONST1, CONST2, CONST3,
+ 			    CONST4, CONST5, CONST6, CONST7,
+ 			    CONST8, CONST9, CONSTA, CONSTB,
+ 			    CONSTC, CONSTD, CONSTE, CONSTF };
+   signed char c;
+ 
+   cv = c0 (cv, CONSTF);
+   if (cv [0] != CONSTF)
+     abort ();
+ 
+   cv = c9 (cv, CONST7);
+   if (cv [9] != CONST7)
+     abort ();
+ 
+   cv = c21 (cv, CONSTA);
+   if (cv [5] != CONSTA)
+     abort ();
+ 
+   cv = c30 (cv, CONSTC);
+   if (cv [14] != CONSTC)
+     abort ();
+ 
+   cv = mc0 (&cv, CONSTB);
+   if (cv [0] != CONSTB)
+     abort ();
+ 
+   cv = mc9 (&cv, CONST1);
+   if (cv [9] != CONST1)
+     abort ();
+ 
+   cv = mc21 (&cv, CONST7);
+   if (cv [5] != CONST7)
+     abort ();
+ 
+   cv = mc30 (&cv, CONST2);
+   if (cv [14] != CONST2)
+     abort ();
+ 
+   cv = ci (cv, 8, CONST4);
+   if (cv [8] != CONST4)
+     abort ();
+ 
+   cv = ci (cv, 13, CONSTB);
+   if (cv [13] != CONSTB)
+     abort ();
+ 
+   cv = ci (cv, 23, CONST3);
+   if (cv [7] != CONST3)
+     abort ();
+ 
+   cv = ci (cv, 31, CONST2);
+   if (cv [15] != CONST2)
+     abort ();
+ 
+   cv = mci (&cv, 5, CONST1);
+   if (cv [5] != CONST1)
+     abort ();
+ 
+   cv = mci (&cv, 12, CONST3);
+   if (cv [12] != CONST3)
+     abort ();
+ 
+   cv = mci (&cv, 25, CONST5);
+   if (cv [9] != CONST5)
+     abort ();
+ 
+   cv = mci (&cv, 16, CONSTD);
+   if (cv [0] != CONSTD)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.c	Thu Jul 30 20:48:17 2009
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.c	Thu Jan  1 00:00:00 1970
***************
*** 1,81 ****
- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */
- /* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
- /* { dg-require-effective-target powerpc_vsx_ok } */
- /* { dg-options "-mvsx -O2" } */
- 
- #include <altivec.h>
- 
- void foo (vector double *out, vector double *in, vector long *p_l, vector bool long *p_b, vector unsigned char *p_uc, int *i)
- {
-   vector double in0 = in[0];
-   vector double in1 = in[1];
-   vector double in2 = in[2];
-   vector long inl = *p_l;
-   vector bool long inb = *p_b;
-   vector unsigned char uc = *p_uc;
- 
-   *out++ = vec_abs (in0);
-   *out++ = vec_add (in0, in1);
-   *out++ = vec_and (in0, in1);
-   *out++ = vec_and (in0, inb);
-   *out++ = vec_and (inb, in0);
-   *out++ = vec_andc (in0, in1);
-   *out++ = vec_andc (in0, inb);
-   *out++ = vec_andc (inb, in0);
-   *out++ = vec_ceil (in0);
-   *p_b++ = vec_cmpeq (in0, in1);
-   *p_b++ = vec_cmpgt (in0, in1);
-   *p_b++ = vec_cmpge (in0, in1);
-   *p_b++ = vec_cmplt (in0, in1);
-   *p_b++ = vec_cmple (in0, in1);
-   *out++ = vec_div (in0, in1);
-   *out++ = vec_floor (in0);
-   *out++ = vec_madd (in0, in1, in2);
-   *out++ = vec_msub (in0, in1, in2);
-   *out++ = vec_max (in0, in1);
-   *out++ = vec_min (in0, in1);
-   *out++ = vec_msub (in0, in1, in2);
-   *out++ = vec_mul (in0, in1);
-   *out++ = vec_nearbyint (in0);
-   *out++ = vec_nmadd (in0, in1, in2);
-   *out++ = vec_nmsub (in0, in1, in2);
-   *out++ = vec_nor (in0, in1);
-   *out++ = vec_or (in0, in1);
-   *out++ = vec_or (in0, inb);
-   *out++ = vec_or (inb, in0);
-   *out++ = vec_perm (in0, in1, uc);
-   *out++ = vec_rint (in0);
-   *out++ = vec_sel (in0, in1, inl);
-   *out++ = vec_sel (in0, in1, inb);
-   *out++ = vec_sub (in0, in1);
-   *out++ = vec_sqrt (in0);
-   *out++ = vec_trunc (in0);
-   *out++ = vec_xor (in0, in1);
-   *out++ = vec_xor (in0, inb);
-   *out++ = vec_xor (inb, in0);
- 
-   *i++ = vec_all_eq (in0, in1);
-   *i++ = vec_all_ge (in0, in1);
-   *i++ = vec_all_gt (in0, in1);
-   *i++ = vec_all_le (in0, in1);
-   *i++ = vec_all_lt (in0, in1);
-   *i++ = vec_all_nan (in0);
-   *i++ = vec_all_ne (in0, in1);
-   *i++ = vec_all_nge (in0, in1);
-   *i++ = vec_all_ngt (in0, in1);
-   *i++ = vec_all_nle (in0, in1);
-   *i++ = vec_all_nlt (in0, in1);
-   *i++ = vec_all_numeric (in0);
-   *i++ = vec_any_eq (in0, in1);
-   *i++ = vec_any_ge (in0, in1);
-   *i++ = vec_any_gt (in0, in1);
-   *i++ = vec_any_le (in0, in1);
-   *i++ = vec_any_lt (in0, in1);
-   *i++ = vec_any_nan (in0);
-   *i++ = vec_any_ne (in0, in1);
-   *i++ = vec_any_nge (in0, in1);
-   *i++ = vec_any_ngt (in0, in1);
-   *i++ = vec_any_nle (in0, in1);
-   *i++ = vec_any_nlt (in0, in1);
-   *i++ = vec_any_numeric (in0);
- }
--- 0 ----
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.h gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.h
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.h	Fri Apr 19 03:30:33 2019
***************
*** 0 ****
--- 1,167 ----
+ /* This test code is included into vsx-vector-6-be.c and vsx-vector-6-le.c.  
+    The two files have the tests for the number of instructions generated for
+    LE versus BE.  */
+ 
+ #include <altivec.h>
+ 
+ void foo (vector double *out, vector double *in, vector long *p_l, vector bool long *p_b,
+ 	  vector unsigned char *p_uc, int *i, vector float *p_f,
+ 	  vector bool char *outbc, vector bool int *outbi,
+ 	  vector bool short *outbsi, vector int *outsi,
+ 	  vector unsigned int *outui, vector signed char *outsc,
+ 	  vector unsigned char *outuc)
+ {
+   vector double in0 = in[0];
+   vector double in1 = in[1];
+   vector double in2 = in[2];
+   vector long inl = *p_l;
+   vector bool long inb = *p_b;
+   vector bool long long inbl0;
+   vector bool long long inbl1;
+   vector unsigned char uc = *p_uc;
+   vector float inf0;
+   vector float inf1;
+   vector float inf2;
+   vector char inc0;
+   vector char inc1;
+   vector bool char inbc0;
+   vector bool char inbc1;
+   vector bool short inbs0;
+   vector bool short inbs1;
+   vector bool int inbi0;
+   vector bool int inbi1;
+   vector signed short int inssi0, inssi1;
+   vector unsigned short int inusi0, inusi1;
+   vector signed int insi0, insi1;
+   vector unsigned int inui0, inui1;
+   vector unsigned char inuc0, inuc1;
+   
+   *out++ = vec_abs (in0);
+   *out++ = vec_add (in0, in1);
+   *out++ = vec_and (in0, in1);
+   *out++ = vec_and (in0, inb);
+   *out++ = vec_and (inb, in0);
+   *out++ = vec_andc (in0, in1);
+   *out++ = vec_andc (in0, inb);
+   *out++ = vec_andc (inb, in0);
+   *out++ = vec_andc (inbl0, in0);
+   *out++ = vec_andc (in0, inbl0);
+ 
+   *out++ = vec_ceil (in0);
+   *p_b++ = vec_cmpeq (in0, in1);
+   *p_b++ = vec_cmpgt (in0, in1);
+   *p_b++ = vec_cmpge (in0, in1);
+   *p_b++ = vec_cmplt (in0, in1);
+   *p_b++ = vec_cmple (in0, in1);
+   *out++ = vec_div (in0, in1);
+   *out++ = vec_floor (in0);
+   *out++ = vec_madd (in0, in1, in2);
+   *out++ = vec_msub (in0, in1, in2);
+   *out++ = vec_max (in0, in1);
+   *out++ = vec_min (in0, in1);
+   *out++ = vec_msub (in0, in1, in2);
+   *out++ = vec_mul (in0, in1);
+   *out++ = vec_nearbyint (in0);
+   *out++ = vec_nmadd (in0, in1, in2);
+   *out++ = vec_nmsub (in0, in1, in2);
+   *out++ = vec_nor (in0, in1);
+   *out++ = vec_or (in0, in1);
+   *out++ = vec_or (in0, inb);
+   *out++ = vec_or (inb, in0);
+   *out++ = vec_perm (in0, in1, uc);
+   *out++ = vec_rint (in0);
+   *out++ = vec_sel (in0, in1, inl);
+   *out++ = vec_sel (in0, in1, inb);
+   *out++ = vec_sub (in0, in1);
+   *out++ = vec_sqrt (in0);
+   *out++ = vec_trunc (in0);
+   *out++ = vec_xor (in0, in1);
+   *out++ = vec_xor (in0, inb);
+   *out++ = vec_xor (inb, in0);
+ 
+   *i++ = vec_all_eq (in0, in1);
+   *i++ = vec_all_ge (in0, in1);
+   *i++ = vec_all_gt (in0, in1);
+   *i++ = vec_all_le (in0, in1);
+   *i++ = vec_all_lt (in0, in1);
+   *i++ = vec_all_nan (in0);
+   *i++ = vec_all_ne (in0, in1);
+   *i++ = vec_all_nge (in0, in1);
+   *i++ = vec_all_ngt (in0, in1);
+   *i++ = vec_all_nle (in0, in1);
+   *i++ = vec_all_nlt (in0, in1);
+   *i++ = vec_all_numeric (in0);
+   *i++ = vec_any_eq (in0, in1);
+   *i++ = vec_any_ge (in0, in1);
+   *i++ = vec_any_gt (in0, in1);
+   *i++ = vec_any_le (in0, in1);
+   *i++ = vec_any_lt (in0, in1);
+   *i++ = vec_any_nan (in0);
+   *i++ = vec_any_ne (in0, in1);
+   *i++ = vec_any_nge (in0, in1);
+   *i++ = vec_any_ngt (in0, in1);
+   *i++ = vec_any_nle (in0, in1);
+   *i++ = vec_any_nlt (in0, in1);
+   *i++ = vec_any_numeric (in0);
+ 
+   *p_f++ = vec_msub (inf0, inf1, inf2);
+   *p_f++ = vec_nmsub (inf0, inf1, inf2);
+   *p_f++ = vec_nmadd (inf0, inf1, inf2);
+   *p_f++ = vec_or (inf0, inf1);
+   *p_f++ = vec_trunc (inf0);
+   
+   *out++ = vec_or (inbl0, in0);
+   *out++ = vec_or (in0, inbl0);
+ 
+   *out++ = vec_nor (in0, in1);
+ 
+   *outbc++ = vec_nor (inbc0, inbc1);
+   *outbc++ = vec_andc (inbc0, inbc1);
+   *outbc++ = vec_or (inbc0, inbc1);
+ 
+   *outuc++ = vec_max (inuc0, inuc1);
+ 
+   *outbi++ = vec_andc (inbi0, inbi1);
+   *outbsi++ = vec_andc (inbs0, inbs1);
+ 
+   *outbsi++ = vec_andc (inbs0, inbs1);
+ 
+   *outbi++ = vec_nor (inbi0, inbi1);
+   *outbi++ = vec_or (inbi0, inbi1);
+ 
+   *outbsi++ = vec_nor (inbs0, inbs1);
+   *outbsi++ = vec_or (inbs0, inbs1);
+ 
+   *outsi++ = vec_msums(inssi0, inssi1, insi0);
+   *outui++ = vec_msums(inusi0, inusi1, inui0);
+ 
+   *p_f++ = vec_nor (inf0, inf1);
+ 
+   *p_f++ = vec_andc (inf0, inf1);
+   *p_f++ = vec_andc (inbi0, inf0);
+   *p_f++ = vec_andc (inf0, inbi0);
+ 
+   *in++ = vec_andc (inbl0, in1);
+   *in++ = vec_andc (in0, inbl1);
+ }
+ 
+ int main()
+ {
+   vector double *out;
+   vector double *in;
+   vector long *p_l;
+   vector bool long *p_b;
+   vector unsigned char *p_uc;
+   int *i;
+   vector float *p_f;
+   vector bool char *outbc;
+   vector bool int *outbi;
+   vector bool short *outbsi;
+   vector int *outsi;
+   vector unsigned int *outui;
+   vector signed char *outsc;
+   vector unsigned char *outuc;
+ 
+   foo (out, in, p_l, p_b, p_uc, i, p_f, outbc,
+        outbi, outbsi, outsi, outui, outsc, outuc);
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p7.c	Fri Apr 19 03:30:33 2019
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile { target { lp64 && be } } } */
+ /* { dg-skip-if "" { powerpc*-*-darwin* } } */
+ /* { dg-require-effective-target powerpc_vsx_ok } */
+ /* { dg-options "-mvsx -O2 -mcpu=power7 -dp" } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */
+ 
+ /* Expected instruction counts for Power 7 */
+ 
+ /* { dg-final { scan-assembler-times "xvabsdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvadddp" 1 } } */
+ /* { dg-final { scan-assembler-times "xxlnor" 5 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpeqdp\s} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpeqdp\.\s} 5 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgtdp\s} 2 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgtdp\.\s} 5 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgedp\s} 1 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgedp\.\s} 6 } } */
+ /* { dg-final { scan-assembler-times "xvrdpim" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmaddadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmsubadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvsubdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmaxdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmindp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmuldp" 1 } } */
+ /* { dg-final { scan-assembler-times "vperm" 2 } } */
+ /* { dg-final { scan-assembler-times "xvrdpic" 2 } } */
+ /* { dg-final { scan-assembler-times "xvsqrtdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvrdpiz" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmsubasp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvnmaddasp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvnmaddadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvnmsubadp" 1 } } */
+ /* { dg-final { scan-assembler-times "vmsumshs" 2 } } */
+ /* { dg-final { scan-assembler-times "xxland" 13 } } */
+ /* { dg-final { scan-assembler-times "xxlxor" 2 } } */
+ /* { dg-final { scan-assembler-times "xxsel" 4 } } */
+ /* { dg-final { scan-assembler-times "xvrdpip" 1 } } */
+ /* { dg-final { scan-assembler-times "xvdivdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvrdpi" 7 } } */
+ 
+ /* Source code for the test in vsx-vector-6.h */
+ #include "vsx-vector-6.h"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p8.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p8.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p8.c	Thu Apr 25 01:18:43 2019
***************
*** 0 ****
--- 1,54 ----
+ /* { dg-do compile { target lp64 } } */
+ /* { dg-skip-if "" { powerpc*-*-darwin* } } */
+ /* { dg-require-effective-target powerpc_vsx_ok } */
+ /* { dg-options "-mvsx -O2 -mcpu=power8" } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */
+ 
+ /* Expected instruction counts for Power 8.  */
+ 
+ /* { dg-final { scan-assembler-times "xvabsdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvadddp" 1 } } */
+ /* { dg-final { scan-assembler-times "xxlnor" 6 { target le } } } */
+ /* { dg-final { scan-assembler-times "xxlnor" 5 { target be } } } */
+ 
+ /* We generate xxlor instructions for many reasons other than or'ing vector
+    operands or calling __builtin_vec_or(), which  means we cannot rely on
+    their usage counts being stable.  Therefore, we just ensure at least one
+    xxlor instruction was generated.  */
+ /* { dg-final { scan-assembler "xxlor" } } */
+ 
+ /* { dg-final { scan-assembler-times {\mxvcmpeqdp\s} 0 { target le } } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpeqdp\s} 1 { target be } } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpeqdp\.\s} 6 { target le } } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpeqdp\.\s} 5 { target be } } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgtdp\s} 2 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgtdp\.\s} 5 { target le } } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgtdp\.\s} 6 { target be } } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgedp\s} 2 } } */
+ /* { dg-final { scan-assembler-times {\mxvcmpgedp\.\s} 4 } } */
+ /* { dg-final { scan-assembler-times "xvrdpim" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmaddadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmsubadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvsubdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmaxdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmindp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmuldp" 1 } } */
+ /* { dg-final { scan-assembler-times "vperm" 1 } } */
+ /* { dg-final { scan-assembler-times "xvrdpic" 1 } } */
+ /* { dg-final { scan-assembler-times "xvsqrtdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvrdpiz" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmsubasp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvnmaddasp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvnmaddadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvnmsubadp" 1 } } */
+ /* { dg-final { scan-assembler-times "vmsumshs" 1 } } */
+ /* { dg-final { scan-assembler-times "xxland" 9 { target le } } } */
+ /* { dg-final { scan-assembler-times "xxland" 13 { target be } } } */
+ /* { dg-final { scan-assembler-times "xxlxor" 2 } } */
+ /* { dg-final { scan-assembler-times "xxsel" 2 } } */
+ /* { dg-final { scan-assembler-times "xvrdpip" 1 } } */
+ /* { dg-final { scan-assembler-times "xvdivdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvrdpi" 5 } } */
+ 
+ /* Source code for the test in vsx-vector-6.h */
+ #include "vsx-vector-6.h"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p9.c gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p9.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p9.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/powerpc/vsx-vector-6.p9.c	Fri Apr 19 03:30:33 2019
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile { target lp64 } } */
+ /* { dg-skip-if "" { powerpc*-*-darwin* } } */
+ /* { dg-require-effective-target powerpc_p9vector_ok } */
+ /* { dg-options "-mvsx -O2 -mcpu=power9" } */
+ /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */
+ 
+ /* Expected instruction counts for Power9. */
+ 
+ /* { dg-final { scan-assembler-times "xvabsdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvadddp" 1 } } */
+ /* { dg-final { scan-assembler-times "xxlnor" 5 } } */
+ 
+ /* We generate xxlor instructions for many reasons other than or'ing vector
+    operands or calling __builtin_vec_or(), which  means we cannot rely on
+    their usage counts being stable.  Therefore, we just ensure at least one
+    xxlor instruction was generated.  */
+ /* { dg-final { scan-assembler "xxlor" } } */
+ 
+ /* { dg-final { scan-assembler-times "xvcmpeqdp" 7 } } */
+ /* { dg-final { scan-assembler-times "xvcmpgtdp" 8 } } */
+ /* { dg-final { scan-assembler-times "xvcmpgedp" 7 } } */
+ /* { dg-final { scan-assembler-times "xvrdpim" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmaddadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmsubadp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvsubdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmaxdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmindp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmuldp" 1 } } */
+ /* { dg-final { scan-assembler-times "vperm" 1 } } */
+ /* { dg-final { scan-assembler-times "xvrdpic" 1 } } */
+ /* { dg-final { scan-assembler-times "xvsqrtdp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvrdpiz" 1 } } */
+ /* { dg-final { scan-assembler-times "xvmsubasp" 1 } } */
+ /* { dg-final { scan-assembler-times "xvnmaddasp" 1 } } */
+ /* { dg-final { scan-assembler-times "vmsumshs" 1 } } */
+ /* { dg-final { scan-assembler-times "xxland" 13 } } */
+ 
+ /* Source code for the test in vsx-vector-6.h */
+ #include "vsx-vector-6.h"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c gcc-7.5.0/gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/s390/vector/vec-shift-2.c	Mon Jul 15 14:31:37 2019
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3 -mzarch -march=z13 --save-temps" } */
+ 
+ /* { dg-final { scan-assembler-times "veslf" 1 } } */
+ 
+ typedef __attribute__((vector_size(16))) signed int v4si;
+ 
+ v4si __attribute__((noinline,noclone))
+ shift_left_by_scalar (v4si in, int shift_count)
+ {
+   return in << (3 + shift_count);
+ }
+ 
+ int
+ main ()
+ {
+   v4si a = { 1, 2, 3, 4 };
+   v4si result = shift_left_by_scalar (a, 1);
+ 
+   if (result[1] != 32)
+     __builtin_abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-1.c gcc-7.5.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-1.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-1.c	Thu Dec 13 12:07:58 2018
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mzarch -march=z13 -mzvector" } */
+ 
+ #include <vecintrin.h>
+ 
+ vector double
+ test (vector unsigned long long x)
+ {
+   return vec_double (x);
+ }
+ 
+ /* { dg-final { scan-assembler-times "vcdlgb\t" 1 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-2.c gcc-7.5.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-2.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-2.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/s390/zvector/vec-double-2.c	Thu Dec 13 12:07:58 2018
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -mzarch -march=z13 -mzvector" } */
+ 
+ #include <vecintrin.h>
+ 
+ vector double
+ test (vector long long x)
+ {
+   return vec_double (x);
+ }
+ 
+ /* { dg-final { scan-assembler-times "vcdgb\t" 1 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/20161111-1.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/20161111-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/20161111-1.c	Fri Nov 11 22:38:33 2016
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/20161111-1.c	Wed Sep 11 10:44:06 2019
*************** unsigned char ee_isdigit2(unsigned int i
*** 14,17 ****
    return retval;
  }
  
! /* { dg-final { scan-assembler-not "and\t%" } } */
--- 14,17 ----
    return retval;
  }
  
! /* { dg-final { scan-assembler-not "and\t%" { xfail *-*-* } } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c	Mon Dec  7 23:18:29 2015
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/struct-ret-check-1.c	Fri Feb 15 10:56:13 2019
***************
*** 7,13 ****
  
  /* Origin: Carlos O'Donell <carlos@codesourcery.com> */
  /* { dg-do run { target sparc*-*-solaris* sparc*-*-linux* sparc*-*-*bsd* } } */
! /* { dg-options "-mstd-struct-return" } */
  /* { dg-require-effective-target ilp32 } */
  #include <stdio.h>
  #include <stdlib.h>
--- 7,13 ----
  
  /* Origin: Carlos O'Donell <carlos@codesourcery.com> */
  /* { dg-do run { target sparc*-*-solaris* sparc*-*-linux* sparc*-*-*bsd* } } */
! /* { dg-options "-mstd-struct-return -fno-pie" } */
  /* { dg-require-effective-target ilp32 } */
  #include <stdio.h>
  #include <stdlib.h>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int16.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int16.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int16.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int16.c	Wed Jan  9 14:41:55 2019
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" }
+ /* { dg-add-options tls } */
+ 
+ #include <stdint.h>
+ 
+ __thread int16_t var1 __attribute__((tls_model("local-dynamic")));
+ __thread int16_t var2 __attribute__((tls_model("local-dynamic")));
+ 
+ int16_t sum (void)
+ {
+   return var1 + var2;
+ }
+ 
+ int32_t ext32_sum (void)
+ {
+   return (int32_t)var1 + (int32_t)var2;
+ }
+ 
+ long ext_sum (void)
+ {
+   return (long)var1 + (long)var2;
+ }
+ 
+ void set (int16_t i)
+ {
+   var1 = i;
+   var2 = i;
+ }
+ 
+ /* { dg-final { scan-assembler-times "__tls_get_addr" 4 } } */
+ /* { dg-final { scan-assembler-times "lduh\t\[^\n\]*tldo_add" 2 } } */
+ /* { dg-final { scan-assembler-times "ldsh\t\[^\n\]*tldo_add" 4 } } */
+ /* { dg-final { scan-assembler-times "sth\t\[^\n\]*tldo_add" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int32.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int32.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int32.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int32.c	Wed Jan  9 14:41:55 2019
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" }
+ /* { dg-add-options tls } */
+ 
+ #include <stdint.h>
+ 
+ __thread int32_t var1 __attribute__((tls_model("local-dynamic")));
+ __thread int32_t var2 __attribute__((tls_model("local-dynamic")));
+ 
+ int32_t sum (void)
+ {
+   return var1 + var2;
+ }
+ 
+ #if defined(__sparcv9) || defined(__arch64__)
+ long ext_sum (void)
+ {
+   return (long)var1 + (long)var2;
+ }
+ #else
+ void *addr (void)
+ {
+   return &var1;
+ }
+ #endif
+ 
+ void set (int32_t i)
+ {
+   var1 = i;
+   var2 = i;
+ }
+ 
+ /* { dg-final { scan-assembler-times "__tls_get_addr" 3 } } */
+ /* { dg-final { scan-assembler-times "ld\t\[^\n\]*tldo_add" 2 } } */
+ /* { dg-final { scan-assembler-times "ldsw\t\[^\n\]*tldo_add" 2 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "st\t\[^\n\]*tldo_add" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int64.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int64.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int64.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int64.c	Wed Jan  9 14:41:55 2019
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" }
+ /* { dg-add-options tls } */
+ /* { dg-require-effective-target lp64 } */
+ 
+ #include <stdint.h>
+ 
+ __thread int64_t var1 __attribute__((tls_model("local-dynamic")));
+ __thread int64_t var2 __attribute__((tls_model("local-dynamic")));
+ 
+ int64_t sum (void)
+ {
+   return var1 + var2;
+ }
+ 
+ void set (int64_t i)
+ {
+   var1 = i;
+   var2 = i;
+ }
+ 
+ /* { dg-final { scan-assembler-times "__tls_get_addr" 2 } } */
+ /* { dg-final { scan-assembler-times "ldx\t\[^\n\]*tldo_add" 2 } } */
+ /* { dg-final { scan-assembler-times "stx\t\[^\n\]*tldo_add" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int8.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-int8.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-int8.c	Wed Jan  9 14:41:55 2019
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" }
+ /* { dg-add-options tls } */
+ 
+ #include <stdint.h>
+ 
+ __thread int8_t var1 __attribute__((tls_model("local-dynamic")));
+ __thread int8_t var2 __attribute__((tls_model("local-dynamic")));
+ 
+ int8_t sum (void)
+ {
+   return var1 + var2;
+ }
+ 
+ int16_t ext16_sum (void)
+ {
+   return (int16_t)var1 + (int16_t)var2;
+ }
+ 
+ int32_t ext32_sum (void)
+ {
+   return (int32_t)var1 + (int32_t)var2;
+ }
+ 
+ long ext_sum (void)
+ {
+   return (long)var1 + (long)var2;
+ }
+ 
+ void set (int8_t i)
+ {
+   var1 = i;
+   var2 = i;
+ }
+ 
+ /* { dg-final { scan-assembler-times "__tls_get_addr" 5 } } */
+ /* { dg-final { scan-assembler-times "ldub\t\[^\n\]*tldo_add" 2 } } */
+ /* { dg-final { scan-assembler-times "ldsb\t\[^\n\]*tldo_add" 6 } } */
+ /* { dg-final { scan-assembler-times "stb\t\[^\n\]*tldo_add" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint16.c	Wed Jan  9 14:41:55 2019
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" }
+ /* { dg-add-options tls } */
+ 
+ #include <stdint.h>
+ 
+ __thread uint16_t var1 __attribute__((tls_model("local-dynamic")));
+ __thread uint16_t var2 __attribute__((tls_model("local-dynamic")));
+ 
+ uint16_t sum (void)
+ {
+   return var1 + var2;
+ }
+ 
+ uint32_t ext32_sum (void)
+ {
+   return (uint32_t)var1 + (uint32_t)var2;
+ }
+ 
+ unsigned long ext_sum (void)
+ {
+   return (unsigned long)var1 + (unsigned long)var2;
+ }
+ 
+ void set (uint16_t i)
+ {
+   var1 = i;
+   var2 = i;
+ }
+ 
+ /* { dg-final { scan-assembler-times "__tls_get_addr" 4 } } */
+ /* { dg-final { scan-assembler-times "lduh\t\[^\n\]*tldo_add" 6 } } */
+ /* { dg-final { scan-assembler-times "sth\t\[^\n\]*tldo_add" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint32.c	Wed Jan  9 14:41:55 2019
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" }
+ /* { dg-add-options tls } */
+ 
+ #include <stdint.h>
+ 
+ __thread uint32_t var1 __attribute__((tls_model("local-dynamic")));
+ __thread uint32_t var2 __attribute__((tls_model("local-dynamic")));
+ 
+ uint32_t sum (void)
+ {
+   return var1 + var2;
+ }
+ 
+ #if defined(__sparcv9) || defined(__arch64__)
+ unsigned long ext_sum (void)
+ {
+   return (unsigned long)var1 + (unsigned long)var2;
+ }
+ #else
+ void *addr (void)
+ {
+   return &var1;
+ }
+ #endif
+ 
+ void set (int32_t i)
+ {
+   var1 = i;
+   var2 = i;
+ }
+ 
+ /* { dg-final { scan-assembler-times "__tls_get_addr" 3 } } */
+ /* { dg-final { scan-assembler-times "ld\t\[^\n\]*tldo_add" 2 } } */
+ /* { dg-final { scan-assembler-times "lduw\t\[^\n\]*tldo_add" 2 { target lp64 } } } */
+ /* { dg-final { scan-assembler-times "st\t\[^\n\]*tldo_add" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint8.c gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint8.c
*** gcc-7.4.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint8.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/sparc/tls-ld-uint8.c	Wed Jan  9 14:41:55 2019
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" }
+ /* { dg-add-options tls } */
+ 
+ #include <stdint.h>
+ 
+ __thread uint8_t var1 __attribute__((tls_model("local-dynamic")));
+ __thread uint8_t var2 __attribute__((tls_model("local-dynamic")));
+ 
+ uint8_t sum (void)
+ {
+   return var1 + var2;
+ }
+ 
+ uint16_t ext16_sum (void)
+ {
+   return (uint16_t)var1 + (uint16_t)var2;
+ }
+ 
+ uint32_t ext32_sum (void)
+ {
+   return (uint32_t)var1 + (uint32_t)var2;
+ }
+ 
+ unsigned long ext_sum (void)
+ {
+   return (unsigned long)var1 + (unsigned long)var2;
+ }
+ 
+ void set (uint8_t i)
+ {
+   var1 = i;
+   var2 = i;
+ }
+ 
+ /* { dg-final { scan-assembler-times "__tls_get_addr" 5 } } */
+ /* { dg-final { scan-assembler-times "ldub\t\[^\n\]*tldo_add" 8 } } */
+ /* { dg-final { scan-assembler-times "stb\t\[^\n\]*tldo_add" 2 } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s gcc-7.5.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s
*** gcc-7.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support-darwin.s	Mon Dec 24 13:41:16 2018
***************
*** 0 ****
--- 1,77 ----
+ 	.file	"asm-support-darwin.s"
+ 	.text
+ 	.p2align 4,,15
+ 	.globl _snapshot
+ _snapshot:
+ LFB3:
+ 	movq	%rax, _rax(%rip)
+ 	movq	%rbx, _rbx(%rip)
+ 	movq	%rcx, _rcx(%rip)
+ 	movq	%rdx, _rdx(%rip)
+ 	movq	%rdi, _rdi(%rip)
+ 	movq	%rsi, _rsi(%rip)
+ 	movq	%rbp, _rbp(%rip)
+ 	movq	%rsp, _rsp(%rip)
+ 	movq	%r8, _r8(%rip)
+ 	movq	%r9, _r9(%rip)
+ 	movq	%r10, _r10(%rip)
+ 	movq	%r11, _r11(%rip)
+ 	movq	%r12, _r12(%rip)
+ 	movq	%r13, _r13(%rip)
+ 	movq	%r14, _r14(%rip)
+ 	movq	%r15, _r15(%rip)
+ 	vmovdqu	%ymm0, _ymm_regs+0(%rip)
+ 	vmovdqu	%ymm1, _ymm_regs+32(%rip)
+ 	vmovdqu	%ymm2, _ymm_regs+64(%rip)
+ 	vmovdqu	%ymm3, _ymm_regs+96(%rip)
+ 	vmovdqu	%ymm4, _ymm_regs+128(%rip)
+ 	vmovdqu	%ymm5, _ymm_regs+160(%rip)
+ 	vmovdqu	%ymm6, _ymm_regs+192(%rip)
+ 	vmovdqu	%ymm7, _ymm_regs+224(%rip)
+ 	vmovdqu	%ymm8, _ymm_regs+256(%rip)
+ 	vmovdqu	%ymm9, _ymm_regs+288(%rip)
+ 	vmovdqu	%ymm10, _ymm_regs+320(%rip)
+ 	vmovdqu	%ymm11, _ymm_regs+352(%rip)
+ 	vmovdqu	%ymm12, _ymm_regs+384(%rip)
+ 	vmovdqu	%ymm13, _ymm_regs+416(%rip)
+ 	vmovdqu	%ymm14, _ymm_regs+448(%rip)
+ 	vmovdqu	%ymm15, _ymm_regs+480(%rip)
+ 	jmp	*_callthis(%rip)
+ LFE3:
+ 	.p2align 4,,15
+ 	.globl _snapshot_ret
+ _snapshot_ret:
+ 	movq	%rdi, _rdi(%rip)
+ 	subq	$8, %rsp
+ 	call	*_callthis(%rip)
+ 	addq	$8, %rsp
+ 	movq	%rax, _rax(%rip)
+ 	movq	%rdx, _rdx(%rip)
+ 	vmovdqu	%ymm0, _ymm_regs+0(%rip)
+ 	vmovdqu	%ymm1, _ymm_regs+32(%rip)
+ 	fstpt	_x87_regs(%rip)
+ 	fstpt	_x87_regs+16(%rip)
+ 	fldt	_x87_regs+16(%rip)
+ 	fldt	_x87_regs(%rip)
+ 	ret
+ 
+ 	.comm	_callthis,8,3
+ 	.comm	_rax,8,3
+ 	.comm	_rbx,8,3
+ 	.comm	_rcx,8,3
+ 	.comm	_rdx,8,3
+ 	.comm	_rsi,8,3
+ 	.comm	_rdi,8,3
+ 	.comm	_rsp,8,3
+ 	.comm	_rbp,8,3
+ 	.comm	_r8,8,3
+ 	.comm	_r9,8,3
+ 	.comm	_r10,8,3
+ 	.comm	_r11,8,3
+ 	.comm	_r12,8,3
+ 	.comm	_r13,8,3
+ 	.comm	_r14,8,3
+ 	.comm	_r15,8,3
+ 	.comm	_ymm_regs,512,5
+ 	.comm	_x87_regs,128,5
+ 	.comm   _volatile_var,8,3
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp gcc-7.5.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp
*** gcc-7.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/abi-avx512f.exp	Thu Sep  5 19:19:46 2019
*************** set additional_flags "-W -Wall -mavx512f
*** 37,43 ****
  foreach src [lsort [glob -nocomplain $srcdir/$subdir/test_*.c]] {
      if {[runtest_file_p $runtests $src]} {
  	if { ([istarget *-*-darwin*]) } then {
- 	    # FIXME: Darwin isn't tested.
  	    c-torture-execute [list $src \
  				    $srcdir/$subdir/asm-support-darwin.s] \
  				    $additional_flags
--- 37,42 ----
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s gcc-7.5.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s
*** gcc-7.4.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support-darwin.s	Thu Sep  5 19:19:46 2019
***************
*** 0 ****
--- 1,93 ----
+ 	.text
+ 	.p2align 4,,15
+ 	.globl _snapshot
+ _snapshot:
+ LFB3:
+ 	movq	%rax, _rax(%rip)
+ 	movq	%rbx, _rbx(%rip)
+ 	movq	%rcx, _rcx(%rip)
+ 	movq	%rdx, _rdx(%rip)
+ 	movq	%rdi, _rdi(%rip)
+ 	movq	%rsi, _rsi(%rip)
+ 	movq	%rbp, _rbp(%rip)
+ 	movq	%rsp, _rsp(%rip)
+ 	movq	%r8, _r8(%rip)
+ 	movq	%r9, _r9(%rip)
+ 	movq	%r10, _r10(%rip)
+ 	movq	%r11, _r11(%rip)
+ 	movq	%r12, _r12(%rip)
+ 	movq	%r13, _r13(%rip)
+ 	movq	%r14, _r14(%rip)
+ 	movq	%r15, _r15(%rip)
+ 	vmovdqu32 %zmm0, _zmm_regs+0(%rip)
+ 	vmovdqu32 %zmm1, _zmm_regs+64(%rip)
+ 	vmovdqu32 %zmm2, _zmm_regs+128(%rip)
+ 	vmovdqu32 %zmm3, _zmm_regs+192(%rip)
+ 	vmovdqu32 %zmm4, _zmm_regs+256(%rip)
+ 	vmovdqu32 %zmm5, _zmm_regs+320(%rip)
+ 	vmovdqu32 %zmm6, _zmm_regs+384(%rip)
+ 	vmovdqu32 %zmm7, _zmm_regs+448(%rip)
+ 	vmovdqu32 %zmm8, _zmm_regs+512(%rip)
+ 	vmovdqu32 %zmm9, _zmm_regs+576(%rip)
+ 	vmovdqu32 %zmm10, _zmm_regs+640(%rip)
+ 	vmovdqu32 %zmm11, _zmm_regs+704(%rip)
+ 	vmovdqu32 %zmm12, _zmm_regs+768(%rip)
+ 	vmovdqu32 %zmm13, _zmm_regs+832(%rip)
+ 	vmovdqu32 %zmm14, _zmm_regs+896(%rip)
+ 	vmovdqu32 %zmm15, _zmm_regs+960(%rip)
+ 	vmovdqu32 %zmm16, _zmm_regs+1024(%rip)
+ 	vmovdqu32 %zmm17, _zmm_regs+1088(%rip)
+ 	vmovdqu32 %zmm18, _zmm_regs+1152(%rip)
+ 	vmovdqu32 %zmm19, _zmm_regs+1216(%rip)
+ 	vmovdqu32 %zmm20, _zmm_regs+1280(%rip)
+ 	vmovdqu32 %zmm21, _zmm_regs+1344(%rip)
+ 	vmovdqu32 %zmm22, _zmm_regs+1408(%rip)
+ 	vmovdqu32 %zmm23, _zmm_regs+1472(%rip)
+ 	vmovdqu32 %zmm24, _zmm_regs+1536(%rip)
+ 	vmovdqu32 %zmm25, _zmm_regs+1600(%rip)
+ 	vmovdqu32 %zmm26, _zmm_regs+1664(%rip)
+ 	vmovdqu32 %zmm27, _zmm_regs+1728(%rip)
+ 	vmovdqu32 %zmm28, _zmm_regs+1792(%rip)
+ 	vmovdqu32 %zmm29, _zmm_regs+1856(%rip)
+ 	vmovdqu32 %zmm30, _zmm_regs+1920(%rip)
+ 	vmovdqu32 %zmm31, _zmm_regs+1984(%rip)
+ 	jmp	*_callthis(%rip)
+ LFE3:
+ 
+ 	.p2align 4,,15
+ 	.globl _snapshot_ret
+ _snapshot_ret:
+ 	movq	%rdi, _rdi(%rip)
+ 	subq	$8, %rsp
+ 	call	*_callthis(%rip)
+ 	addq	$8, %rsp
+ 	movq	%rax, _rax(%rip)
+ 	movq	%rdx, _rdx(%rip)
+ 	vmovdqu32	%zmm0, _zmm_regs+0(%rip)
+ 	vmovdqu32	%zmm1, _zmm_regs+64(%rip)
+ 	fstpt	_x87_regs(%rip)
+ 	fstpt	_x87_regs+16(%rip)
+ 	fldt	_x87_regs+16(%rip)
+ 	fldt	_x87_regs(%rip)
+ 	ret
+ 
+ 	.comm	_callthis,8,8
+ 	.comm	_rax,8,8
+ 	.comm	_rbx,8,8
+ 	.comm	_rcx,8,8
+ 	.comm	_rdx,8,8
+ 	.comm	_rsi,8,8
+ 	.comm	_rdi,8,8
+ 	.comm	_rsp,8,8
+ 	.comm	_rbp,8,8
+ 	.comm	_r8,8,8
+ 	.comm	_r9,8,8
+ 	.comm	_r10,8,8
+ 	.comm	_r11,8,8
+ 	.comm	_r12,8,8
+ 	.comm	_r13,8,8
+ 	.comm	_r14,8,8
+ 	.comm	_r15,8,8
+ 	.comm	_zmm_regs,2048,64
+ 	.comm	_x87_regs,128,32
+ 	.comm   _volatile_var,8,8
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/alloc_comp_assign_16.f03 gcc-7.5.0/gcc/testsuite/gfortran.dg/alloc_comp_assign_16.f03
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/alloc_comp_assign_16.f03	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/alloc_comp_assign_16.f03	Sun Feb  3 18:23:25 2019
***************
*** 0 ****
--- 1,37 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR88393 in which a segfault occurred as indicated.
+ !
+ ! Contributed by Janus Weil  <janus@gcc.gnu.org>
+ !
+ module m
+    implicit none
+    type :: t
+       character(len=:), allocatable :: cs
+    contains
+       procedure :: ass
+       generic :: assignment(=) => ass
+    end type
+ contains
+    subroutine ass(a, b)
+       class(t), intent(inout) :: a
+       class(t), intent(in)    :: b
+       a%cs = b%cs
+       print *, "ass"
+    end subroutine
+ end module
+ 
+ program p
+    use m
+    implicit none
+    type :: t2
+       type(t) :: c
+    end type
+    type(t2), dimension(1:2) :: arr
+    arr(1)%c%cs = "abcd"
+    arr(2)%c = arr(1)%c  ! Segfault here.
+    print *, "done", arr(2)%c%cs, arr(2)%c%cs
+ ! Make sure with valgrind that there are no memory leaks.
+    deallocate (arr(1)%c%cs)
+    deallocate (arr(2)%c%cs)
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/altreturn_9_0.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/altreturn_9_0.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/altreturn_9_0.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/altreturn_9_0.f90	Sun Mar  3 09:20:09 2019
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do  run }
+ ! { dg-options -std=gnu }
+ ! { dg-additional-sources altreturn_9_1.f90 }
+ ! PR 89496 - wrong type for alternate return was generated
+ 
+ program main
+   call sub(10, *10, 20)
+   stop 1
+ 10 continue
+ end program main
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/altreturn_9_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/altreturn_9_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/altreturn_9_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/altreturn_9_1.f90	Sun Mar  3 09:20:09 2019
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=gnu" }
+ ! See altreturn_9_0.f90
+ subroutine sub(i, *, j)
+   if (i == 10 .and. j == 20) return 1
+   return
+ end subroutine sub
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/array_function_5.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/array_function_5.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/array_function_5.f90	Tue Feb 22 10:10:25 2011
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/array_function_5.f90	Sat Jan 26 15:09:52 2019
***************
*** 1,4 ****
! ! {  dg-do run }
  ! PR41278 internal compiler error related to matmul and transpose
  ! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  ! Original test case by Chris <cmklaij@hetnet.nl>
--- 1,4 ----
! ! { dg-do run }
  ! PR41278 internal compiler error related to matmul and transpose
  ! Test case prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  ! Original test case by Chris <cmklaij@hetnet.nl>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/associate_44.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/associate_44.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/associate_44.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/associate_44.f90	Sun Jan 27 18:53:47 2019
***************
*** 0 ****
--- 1,23 ----
+ ! { dg-do compile }
+ !
+ ! Test the fix for PR56386
+ !
+ ! Contributed by Vladimir Fuka  <vladimir.fuka@gmail.com>
+ !
+ subroutine  CustomSolidBodies
+    implicit none
+ 
+     type inner
+       real :: elev
+     end type
+ 
+     type :: outer
+       type(inner),dimension(0) :: PrPoints
+     end type
+ 
+     type(outer) :: SB
+ 
+     associate (Prter=>SB%PrPoints)
+        PrTer%elev=0                  ! ICE here
+     end associate
+ end subroutine  CustomSolidBodies
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/assumed_type_2.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/assumed_type_2.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/assumed_type_2.f90	Sat Oct 31 09:33:25 2015
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/assumed_type_2.f90	Sat Mar 16 14:03:00 2019
*************** end
*** 157,163 ****
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) array_class_t1_alloc._data.data" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) \\(array_class_t1_ptr._data.dat" 1 "original" } }
  
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(D" 3 "original" } }
  ! { dg-final { scan-tree-dump-times " = _gfortran_internal_pack \\(&parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(&array_int\\)" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(real\\(kind=4\\).0:. . restrict\\) array_real_alloc.data" 1 "original" } }
--- 157,163 ----
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) array_class_t1_alloc._data.data" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) \\(array_class_t1_ptr._data.dat" 1 "original" } }
  
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(D" 4 "original" } }
  ! { dg-final { scan-tree-dump-times " = _gfortran_internal_pack \\(&parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(&array_int\\)" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(real\\(kind=4\\).0:. . restrict\\) array_real_alloc.data" 1 "original" } }
*************** end
*** 166,172 ****
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t2.0:. . restrict\\) array_t2_alloc.data\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. . restrict\\) array_class_t1_alloc._data.data\\);" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) array_class_t1_ptr._data.data\\);" 1 "original" } }
  
  ! { dg-final { scan-tree-dump-times "sub_array_shape \\(&array_real_alloc," 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_shape \\(&array_char_ptr," 1 "original" } }
--- 166,172 ----
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t2.0:. . restrict\\) array_t2_alloc.data\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. . restrict\\) array_class_t1_alloc._data.data\\);" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) array_class_t1_ptr._data.data\\);" 0 "original" } }
  
  ! { dg-final { scan-tree-dump-times "sub_array_shape \\(&array_real_alloc," 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_shape \\(&array_char_ptr," 1 "original" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_30.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_30.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_30.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_30.f90	Sat Mar 16 13:24:40 2019
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! Make sure this error is flagged.
+ subroutine foo() ! { dg-error "is already being used as a SUBROUTINE" }
+ end subroutine foo
+ 
+ subroutine bar() bind(C,name="foo") ! { dg-error "is already being used as a SUBROUTINE" }
+ end subroutine bar
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_31.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_31.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_31.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_31.f90	Sat Mar 16 13:24:40 2019
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! PR fortran/66695 - this used to ICE.
+ ! Original test case by Vladimir Fuka.
+ module mod
+   implicit none
+ contains
+     integer function F()
+     end function
+ end module
+     
+ module mod_C
+   use mod
+   implicit none
+ contains
+   subroutine s()  bind(C, name="f")
+     integer :: x
+       x = F()
+   end subroutine
+ end module
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_32.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_32.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_32.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_32.f90	Sat Mar 16 13:24:40 2019
***************
*** 0 ****
--- 1,35 ----
+ ! { dg-do run }
+ ! PR 77746 - this used to crash during execution.
+ ! Original test case by Vladimir Fuka.
+ module first
+   private
+   public execute
+   
+   interface execute
+     module procedure random_name
+   end interface
+   
+ contains
+ 
+   subroutine random_name()
+   end subroutine
+ end module
+ 
+ module test
+   use first
+ 
+   implicit none
+ 
+ contains
+ 
+   subroutine p_execute(i)  bind(C, name="random_name")
+     integer :: i
+ 
+     call execute()
+   end subroutine
+   
+ end module
+ 
+   use test
+   call p_execute(1)
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_33.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_33.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/binding_label_tests_33.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/binding_label_tests_33.f90	Sat Mar 16 13:24:40 2019
***************
*** 0 ****
--- 1,39 ----
+ ! { dg-do run }
+ ! PR 79485 - used to crash because the wrong routine was called.
+ module fmod1
+ 
+   contains
+ 
+   subroutine foo(i)
+     implicit none
+ 
+     integer, intent(inout) :: i
+ 
+     i=i+1
+ 
+   end subroutine foo
+ 
+ end module fmod1
+ 
+ module fmod2
+   use iso_c_binding
+   use fmod1, only : foo_first => foo
+ 
+   contains
+ 
+   subroutine foo(i) bind(c)
+     implicit none
+ 
+     integer, intent(inout) :: i
+ 
+     i=i+2
+     call foo_first(i)
+ 
+   end subroutine foo
+ 
+ end module fmod2
+ 
+   use fmod2
+   
+   call foo(i)
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/blockdata_11.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/blockdata_11.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/blockdata_11.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/blockdata_11.f90	Sun Mar 17 12:54:29 2019
***************
*** 0 ****
--- 1,33 ----
+ ! { dg-do run }
+ ! PR 84394 - this used to complain about private procedures in
+ ! BLOCK data.
+ module mod1
+    implicit none
+    type :: type1
+       integer :: i1
+    end type type1
+ end module
+ 
+ module mod2
+    implicit none
+    contains
+       subroutine sub1
+          integer vals
+          common /block1/ vals(5)
+          if (any(vals /= [1, 2, 3, 4, 5])) stop 1
+       end subroutine
+ end module
+ 
+ block data blkdat
+   use mod1
+   integer vals
+   common /block1/ vals(5)
+   data vals/1, 2, 3, 4, 5/
+ end block data blkdat
+ 
+ program main
+   use mod2, only: sub1
+   implicit none
+   call sub1
+ end program
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/c_funptr_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/c_funptr_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/c_funptr_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/c_funptr_1.f90	Sat Feb  2 16:57:39 2019
***************
*** 0 ****
--- 1,38 ----
+ ! { dg-do preprocess }
+ ! { dg-additional-options "-cpp" }
+ ! PR 57048 - this used not to compile. Original test case by Angelo
+ ! Graziosi.  Only works if compiled c_funptr_1_mod.f90, hence the
+ ! do-nothing directive above.
+ module procs
+   
+   implicit none
+   private
+ 
+   public WndProc
+ 
+ contains
+   function WndProc()
+     integer :: WndProc
+     
+     WndProc = 0
+   end function WndProc
+ end module procs
+ 
+ function WinMain()
+   use, intrinsic :: iso_c_binding, only: C_INT,c_sizeof,c_funloc
+   use win32_types
+   use procs
+   implicit none
+ 
+   integer :: WinMain
+ 
+   type(WNDCLASSEX_T) :: WndClass
+ 
+   WndClass%cbSize = int(c_sizeof(Wndclass),C_INT)
+   WndClass%lpfnWndProc = c_funloc(WndProc)
+ 
+   WinMain = 0
+ end function WinMain
+ 
+ program main
+ end 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90	Sat Feb  2 16:57:39 2019
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do  run }
+ ! { dg-additional-sources c_funptr_1.f90 }
+ ! Additional module to go with c_funptr_1.f90
+ module win32_types
+   use, intrinsic :: iso_c_binding, only: C_INT,C_FUNPTR
+   implicit none
+   private
+ 
+   public WNDCLASSEX_T
+   type, bind(C) :: WNDCLASSEX_T
+      integer(C_INT) :: cbSize
+      type(C_FUNPTR) :: lpfnWndProc
+ 
+   end type WNDCLASSEX_T
+ 
+ end module win32_types
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/c_ptr_tests_19.f90	Sun Mar 10 11:26:25 2019
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ 
+ ! PR 71544 - this failed with some optimization options due to a
+ ! pointer not being marked as escaping.
+ 
+ module store_cptr
+     use, intrinsic :: iso_c_binding
+     implicit none
+     public
+     type(c_ptr), save :: cptr
+ end module store_cptr
+ 
+ subroutine init()
+     use, intrinsic :: iso_c_binding
+     implicit none
+     integer(c_int), pointer :: a
+     allocate(a)
+     call save_cptr(c_loc(a))
+     a = 100
+ end subroutine init
+ 
+ subroutine save_cptr(cptr_in)
+     use store_cptr
+     implicit none
+     type(c_ptr), intent(in) :: cptr_in
+     cptr = cptr_in
+ end subroutine save_cptr
+ 
+ program init_fails
+     use store_cptr
+     implicit none
+     integer(c_int), pointer :: val
+     call init()
+     call c_f_pointer(cptr,val)
+     if (val /= 100) stop 1
+ end program init_fails
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/char_result_19.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/char_result_19.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/char_result_19.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/char_result_19.f90	Sun Oct 27 16:21:36 2019
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do preprocess }
+ ! { dg-additional-options "-cpp" }
+ !
+ ! Test the fix for PR86248
+ !
+ ! Contributed by Bill Long  <longb@cray.com>
+ !
+ program test
+   use test_module
+   implicit none
+   integer :: i
+   character(:), allocatable :: chr
+   do i = 0, 2
+     chr = func_1 (i)
+     select case (i)
+       case (0)
+         if (chr .ne. 'el0') stop i
+       case (1)
+         if (chr .ne. 'el11') stop i
+       case (2)
+         if (chr .ne. 'el2') stop i
+     end select
+   end do
+ end program test
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/char_result_mod_19.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/char_result_mod_19.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/char_result_mod_19.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/char_result_mod_19.f90	Sun Oct 27 16:21:36 2019
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do  run }
+ ! { dg-additional-sources char_result_19.f90 }
+ !
+ ! Module for char_result_19.f90
+ ! Tests fix for PR86248
+ !
+ module test_module
+   implicit none
+   public :: func_1
+   private
+   character(len=*),dimension(0:2),parameter :: darray = (/"el0 ","el11","el2 "/)
+ contains
+   function func_1 (func_1_input) result(f)
+     integer, intent(in) :: func_1_input
+     character(len = len_trim (darray(func_1_input))) :: f
+     f = darray(func_1_input)
+   end function func_1
+ end module test_module
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/charlen_17.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/charlen_17.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/charlen_17.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/charlen_17.f90	Wed Mar 13 22:15:33 2019
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! PR 87673 - used to cause errors about non-pure functions.
+ 
+ module x
+   implicit none
+ contains
+   pure function foo() result(res)
+     character(len=:), allocatable :: res
+     allocate (character(bar()) :: res)
+   end function foo
+   pure integer function bar()
+     bar = 1
+   end function bar
+ end module x
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/class_66.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/class_66.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/class_66.f90	Mon Nov  6 10:40:11 2017
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/class_66.f90	Sat Jan 26 15:09:52 2019
***************
*** 1,4 ****
! ! { dg- do run }
  !
  ! Test the fix for PR78641 in which an ICE occured on assignment
  ! of a class array constructor to a derived type array.
--- 1,4 ----
! ! { dg-do run }
  !
  ! Test the fix for PR78641 in which an ICE occured on assignment
  ! of a class array constructor to a derived type array.
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray/caf.exp gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray/caf.exp
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray/caf.exp	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray/caf.exp	Thu Mar 21 19:31:30 2019
*************** proc dg-compile-aux-modules { args } {
*** 51,61 ****
      global gfortran_test_path
      global gfortran_aux_module_flags
      if { [llength $args] != 2 } {
! 	error "dg-set-target-env-var: needs one argument"
  	return
      }
      dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
!     # cleanup-modules isn't intentionally invoked here.
  }
  
  # Add -latomic only where supported.  Assume built-in support elsewhere.
--- 51,71 ----
      global gfortran_test_path
      global gfortran_aux_module_flags
      if { [llength $args] != 2 } {
! 	error "dg-compile-aux-modules: needs one argument"
  	return
      }
+ 
+     set level [info level]
+     if { [info procs dg-save-unknown] != [list] } {
+ 	rename dg-save-unknown dg-save-unknown-level-$level
+     }
+ 
      dg-test $gfortran_test_path/[lindex $args 1] "" $gfortran_aux_module_flags
!     # cleanup-modules is intentionally not invoked here.
! 
!     if { [info procs dg-save-unknown-level-$level] != [list] } {
! 	rename dg-save-unknown-level-$level dg-save-unknown
!     }
  }
  
  # Add -latomic only where supported.  Assume built-in support elsewhere.
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray/event_3.f08 gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray/event_3.f08
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray/event_3.f08	Fri Jan 13 10:22:21 2017
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray/event_3.f08	Sun Jan 27 20:53:30 2019
***************
*** 3,11 ****
  ! Check PR fortran/70696 is fixed.
  
  program global_event
!   use iso_fortran_env , only : event_type
    implicit none
!   type(event_type) :: x[*]
    
    call exchange
    contains
--- 3,11 ----
  ! Check PR fortran/70696 is fixed.
  
  program global_event
!   use iso_fortran_env, only : event_type
    implicit none
!   type(event_type), save :: x[*]
    
    call exchange
    contains
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray_allocate_11.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray_allocate_11.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray_allocate_11.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray_allocate_11.f90	Wed Mar  6 20:28:22 2019
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! { dg-additional-options -fcoarray=single }
+ program p
+    integer, allocatable :: z[:,:]
+    integer :: i
+    allocate (z[1:,*]) ! { dg-error "Bad array specification in ALLOCATE statement" }
+    allocate (z[:2,*]) ! { dg-error "Bad array specification in ALLOCATE statement" }
+    allocate (z[2:1,*]) ! { dg-error "Upper cobound is less than lower cobound" }
+    allocate (z[:0,*]) ! { dg-error "Bad array specification in ALLOCATE statement" }
+    allocate (z[0,*]) ! { dg-error "Upper cobound is less than lower cobound" }
+    allocate (z[1,*]) ! This is OK
+    allocate (z[1:1,*]) ! This is OK
+    allocate (z[i:i,*]) ! This is OK
+    allocate (z[i:i-1,*]) ! { dg-error "Upper cobound is less than lower cobound" }
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray_data_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray_data_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray_data_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray_data_1.f90	Sat Feb 23 11:49:47 2019
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do  run }
+ ! { dg-options "-fcoarray=lib -lcaf_single " }
+ ! PR 71066 - this used to ICE
+ program p
+    real :: a(2,2)[*]
+    integer :: b(2,2)[*]
+    data a /4*0.0/
+    data b /1234, 2345, 3456, 4567/
+    if (any (a /= 0.0)) stop 1
+    if (any (b /= reshape([1234, 2345, 3456, 4567],[2,2]))) stop 2
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray_lock_7.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray_lock_7.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/coarray_lock_7.f90	Mon Sep 19 13:45:40 2016
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/coarray_lock_7.f90	Tue Feb  5 21:23:07 2019
*************** end
*** 35,42 ****
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(caf_token.., 0, 0, 0B, 0B, 0B, 0\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(caf_token.., 0, 0, 0B, 0B, 0\\);" 1 "original" } }
  
! ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(caf_token.., \\(3 - \\(integer\\(kind=4\\)\\) parm...dim\\\[0\\\].lbound\\) \\+ \\(integer\\(kind=4\\)\\) MAX_EXPR <\\(parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - \\(integer\\(kind=4\\)\\) parm...dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);|_gfortran_caf_lock \\(caf_token.1, \\(3 - parm...dim\\\[0\\\].lbound\\) \\+ MAX_EXPR <\\(parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - parm...dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(caf_token.., \\(2 - \\(integer\\(kind=4\\)\\) parm...dim\\\[0\\\].lbound\\) \\+ \\(integer\\(kind=4\\)\\) MAX_EXPR <\\(parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - \\(integer\\(kind=4\\)\\) parm...dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);|_gfortran_caf_unlock \\(caf_token.., \\(2 - parm...dim\\\[0\\\].lbound\\) \\+ MAX_EXPR <\\(parm...dim\\\[0\\\].ubound - parm...dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - parm...dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);" 1 "original" } }
  
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(three.token, 0, 5 - \\(integer\\(kind=4\\)\\) three.dim\\\[0\\\].lbound, &acquired.\[0-9\]+, 0B, 0B, 0\\);|_gfortran_caf_lock \\(three.token, 0, 5 - three.dim\\\[0\\\].lbound, &acquired.\[0-9\]+, 0B, 0B, 0\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(three.token, 0, 8 - \\(integer\\(kind=4\\)\\) three.dim\\\[0\\\].lbound, &ii, 0B, 0\\);|_gfortran_caf_unlock \\(three.token, 0, 8 - three.dim\\\[0\\\].lbound, &ii, 0B, 0\\);" 1 "original" } }
--- 35,42 ----
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(caf_token.., 0, 0, 0B, 0B, 0B, 0\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(caf_token.., 0, 0, 0B, 0B, 0\\);" 1 "original" } }
  
! ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(caf_token.., \\(3 - \\(integer\\(kind=4\\)\\) parm....dim\\\[0\\\].lbound\\) \\+ \\(integer\\(kind=4\\)\\) MAX_EXPR <\\(parm....dim\\\[0\\\].ubound - parm....dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - \\(integer\\(kind=4\\)\\) parm....dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);|_gfortran_caf_lock \\(caf_token.1, \\(3 - parm....dim\\\[0\\\].lbound\\) \\+ MAX_EXPR <\\(parm....dim\\\[0\\\].ubound - parm....dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - parm....dim\\\[1\\\].lbound\\), 0, 0B, &ii, 0B, 0\\);" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(caf_token.., \\(2 - \\(integer\\(kind=4\\)\\) parm....dim\\\[0\\\].lbound\\) \\+ \\(integer\\(kind=4\\)\\) MAX_EXPR <\\(parm....dim\\\[0\\\].ubound - parm....dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - \\(integer\\(kind=4\\)\\) parm....dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);|_gfortran_caf_unlock \\(caf_token.., \\(2 - parm....dim\\\[0\\\].lbound\\) \\+ MAX_EXPR <\\(parm....dim\\\[0\\\].ubound - parm....dim\\\[0\\\].lbound\\) \\+ 1, 0> \\* \\(3 - parm....dim\\\[1\\\].lbound\\), 0, &ii, 0B, 0\\);" 1 "original" } }
  
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_lock \\(three.token, 0, 5 - \\(integer\\(kind=4\\)\\) three.dim\\\[0\\\].lbound, &acquired.\[0-9\]+, 0B, 0B, 0\\);|_gfortran_caf_lock \\(three.token, 0, 5 - three.dim\\\[0\\\].lbound, &acquired.\[0-9\]+, 0B, 0B, 0\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "_gfortran_caf_unlock \\(three.token, 0, 8 - \\(integer\\(kind=4\\)\\) three.dim\\\[0\\\].lbound, &ii, 0B, 0\\);|_gfortran_caf_unlock \\(three.token, 0, 8 - three.dim\\\[0\\\].lbound, &ii, 0B, 0\\);" 1 "original" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f gcc-7.5.0/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f	Tue Oct 23 17:20:56 2012
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/debug/pr35154-stabs.f	Sat Jan 26 15:09:52 2019
***************
*** 1,7 ****
  C     Test program for common block debugging.  G. Helffrich 11 July 2004.
  C { dg-do compile }
  C { dg-skip-if "No stabs" { aarch64*-*-* mmix-*-* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } }
! C { dg-skip-if "No stabs" {*-*-* } { "*" } { "-gstabs" } }
        common i,j
        common /label/l,m
        i = 1
--- 1,7 ----
  C     Test program for common block debugging.  G. Helffrich 11 July 2004.
  C { dg-do compile }
  C { dg-skip-if "No stabs" { aarch64*-*-* mmix-*-* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-vxworks* } { "*" } { "" } }
! C { dg-skip-if "No stabs" { *-*-* } { "*" } { "-gstabs" } }
        common i,j
        common /label/l,m
        i = 1
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/dec_structure_12.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/dec_structure_12.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/dec_structure_12.f90	Tue Aug 23 19:33:46 2016
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/dec_structure_12.f90	Sat Jan 26 15:09:52 2019
***************
*** 1,4 ****
! ! { dg-do "compile" }
  ! { dg-options "-fdec-structure" }
  !
  ! Test a regression where multiple anonymous structures failed to
--- 1,4 ----
! ! { dg-do compile }
  ! { dg-options "-fdec-structure" }
  !
  ! Test a regression where multiple anonymous structures failed to
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/dec_structure_14.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/dec_structure_14.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/dec_structure_14.f90	Wed Sep 14 12:13:03 2016
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/dec_structure_14.f90	Sat Jan 26 15:09:52 2019
***************
*** 1,4 ****
!   ! { dg-do "compile" }
    ! { dg-options "-fdec-structure" }
    !
    ! Test that structures inside a common block do not require the
--- 1,4 ----
!   ! { dg-do compile }
    ! { dg-options "-fdec-structure" }
    !
    ! Test that structures inside a common block do not require the
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/dec_structure_15.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/dec_structure_15.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/dec_structure_15.f90	Fri Sep 23 13:31:37 2016
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/dec_structure_15.f90	Sat Jan 26 15:09:52 2019
***************
*** 1,4 ****
! ! { dg-do "compile" }
  ! { dg-options "" }
  !
  ! PR fortran/77584
--- 1,4 ----
! ! { dg-do compile }
  ! { dg-options "" }
  !
  ! PR fortran/77584
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/deferred_character_32.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/deferred_character_32.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/deferred_character_32.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/deferred_character_32.f90	Sat Feb 23 18:44:54 2019
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR88117.
+ !
+ ! Contributed by Gerhard Steinmetz  <gscfq@t-online.de>
+ !
+ program p
+    character(:), pointer :: z(:)
+    allocate (z, source  = ['abcd', 'bcde'])
+    z = (z) ! gimplifier choked here.
+    if (any (z .ne. ['abcd', 'bcde'])) stop 1
+    deallocate (z)
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/dependency_53.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/dependency_53.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/dependency_53.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/dependency_53.f90	Sat Mar 16 14:03:00 2019
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do run }
+ ! PR fortran/66089 - used to ICE and, after that ICE was fixed,
+ ! gave wrong results.
+   type :: t
+     integer :: c
+   end type t
+ 
+   class(t), dimension(:), allocatable :: b,c
+ 
+   allocate (b(5), source=t(7))
+   allocate(c(5), source=t(13))
+   c = plus(c(1), b)
+   if (any(c%c /= 20)) stop 1
+   c = t(13)
+   c = plus(b, c(1))
+   if (any(c%c /= 20)) stop 2
+ contains
+ 
+   elemental function plus(lhs, rhs)
+     class(t), intent(in) :: lhs, rhs
+     type(t)             :: plus
+     plus%c = lhs%c + rhs%c
+   end function plus
+ 
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/dg.exp gcc-7.5.0/gcc/testsuite/gfortran.dg/dg.exp
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/dg.exp	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/dg.exp	Thu Mar 21 19:31:30 2019
*************** proc dg-compile-aux-modules { args } {
*** 36,42 ****
      global gfortran_test_path
      global gfortran_aux_module_flags
      if { [llength $args] != 2 } {
! 	error "dg-set-target-env-var: needs one argument"
  	return
      }
  
--- 36,42 ----
      global gfortran_test_path
      global gfortran_aux_module_flags
      if { [llength $args] != 2 } {
! 	error "dg-compile-aux-modules: needs one argument"
  	return
      }
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/extends_11.f03 gcc-7.5.0/gcc/testsuite/gfortran.dg/extends_11.f03
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/extends_11.f03	Fri May 29 08:20:29 2015
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/extends_11.f03	Sat Jan 26 15:09:52 2019
***************
*** 37,40 ****
    recruit%service%education%person%ss = 9
  end
  
! ! { dg-final { scan-tree-dump-times " +recruit\\.service\\.education\\.person\\.ss =" 8 "original"} }
--- 37,40 ----
    recruit%service%education%person%ss = 9
  end
  
! ! { dg-final { scan-tree-dump-times " +recruit\\.service\\.education\\.person\\.ss =" 8 "original" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/finalize_28.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/finalize_28.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/finalize_28.f90	Sun Nov  5 16:56:14 2017
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/finalize_28.f90	Sun Apr 14 12:27:44 2019
*************** contains
*** 21,24 ****
      integer, intent(out) :: edges(:,:)
    end subroutine coo_dump_edges
  end module coo_graphs
! ! { dg-final { scan-tree-dump-times "__builtin_free" 6 "original" } }
--- 21,24 ----
      integer, intent(out) :: edges(:,:)
    end subroutine coo_dump_edges
  end module coo_graphs
! ! { dg-final { scan-tree-dump-times "__builtin_free" 5 "original" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/finalize_34.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/finalize_34.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/finalize_34.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/finalize_34.f90	Sun Apr 14 12:27:44 2019
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fdump-tree-original" }
+ ! PR 87352 - this used to cause an excessive number of deallocations.
+ module testmodule
+   implicit none
+   public
+ 
+   type :: evtlist_type
+      real,  allocatable, dimension(:) :: p1
+      real,  allocatable, dimension(:) :: p2
+      real,  allocatable, dimension(:) :: p3
+      real,  allocatable, dimension(:) :: p4
+   end type evtlist_type
+ 
+   type :: evtlistlist_type
+      type(evtlist_type)  :: evtlist(1:1)
+   end type evtlistlist_type
+ 
+ end module testmodule 
+ 
+ program main
+   use testmodule
+   type(evtlist_type), dimension(10) :: a
+ end program main
+ ! { dg-final  { scan-tree-dump-times "__builtin_free" 8 "original" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/pr88377.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/pr88377.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/pr88377.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/pr88377.f90	Fri Aug 30 11:18:41 2019
***************
*** 0 ****
--- 1,15 ----
+ ! PR fortran/88377
+ ! { dg-do compile }
+ 
+ program pr88377
+   call s(3)
+ contains
+   subroutine s(n)
+     integer :: n
+     character(n), allocatable :: x
+     x = 'abc'
+     !$omp task
+     print *, x, (x == 'abc')
+     !$omp end task
+   end
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/pr89621.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/pr89621.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/pr89621.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/pr89621.f90	Fri Aug 30 12:33:00 2019
***************
*** 0 ****
--- 1,18 ----
+ ! PR middle-end/89621
+ ! { dg-do compile }
+ 
+ subroutine sub(str)
+   character(*), intent(in) :: str
+ end subroutine sub
+ 
+ program pr89621
+   implicit none
+   integer i
+   character(len=:), allocatable :: str
+   str = "test"
+   !$omp parallel do
+   do i = 1, 10
+     call sub(str)
+   enddo
+   !$omp end parallel do
+ end program pr89621
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/pr89651.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/pr89651.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/pr89651.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/pr89651.f90	Fri Aug 30 12:15:50 2019
***************
*** 0 ****
--- 1,21 ----
+ ! PR fortran/89651
+ ! { dg-do compile }
+ ! { dg-additional-options "-Wuninitialized" }
+ 
+ program pr89651
+   integer :: n
+   real, allocatable :: t(:)
+   n = 10
+   allocate (t(n), source = 0.0)
+ !$omp parallel firstprivate(t)
+   print *, sum (t) ! { dg-bogus "lbound' may be used uninitialized in this function" }
+                    ! { dg-bogus "ubound' may be used uninitialized in this function" "" { target *-*-* } .-1 }
+                    ! { dg-bogus "offset' may be used uninitialized in this function" "" { target *-*-* } .-2 }
+ !$omp end parallel
+ !$omp parallel private(t)
+   t = 0.0
+   print *, sum (t) ! { dg-bogus "lbound' may be used uninitialized in this function" }
+                    ! { dg-bogus "ubound' may be used uninitialized in this function" "" { target *-*-* } .-1 }
+                    ! { dg-bogus "offset' may be used uninitialized in this function" "" { target *-*-* } .-2 }
+ !$omp end parallel
+ end program pr89651
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-1.f90	Fri Aug 30 11:09:22 2019
***************
*** 0 ****
--- 1,63 ----
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp" }
+ 
+ subroutine foo
+   integer :: i
+   !$omp do simd schedule (simd, simd: static, 5)
+   do i = 0, 64
+   end do
+   !$omp do simd schedule (monotonic, simd: static)
+   do i = 0, 64
+   end do
+   !$omp do simd schedule (simd , monotonic : static, 6)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic, monotonic : static, 7)
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic, nonmonotonic : dynamic)
+   do i = 0, 64
+   end do
+   !$omp do simd schedule (nonmonotonic , simd : dynamic, 3)
+   do i = 0, 64
+   end do
+   !$omp do simd schedule (nonmonotonic,simd:guided,4)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic: static, 2)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic : static)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic : dynamic)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic : dynamic, 3)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic : guided)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic : guided, 7)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic : runtime)
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic : auto)
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : dynamic)
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : dynamic, 3)
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : guided)
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : guided, 7)
+   do i = 0, 64
+   end do
+ end subroutine foo
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/gomp/schedule-modifiers-2.f90	Fri Aug 30 11:09:22 2019
***************
*** 0 ****
--- 1,44 ----
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp" }
+ 
+ subroutine foo
+   integer :: i
+   !$omp do schedule (nonmonotonic: static, 2)	! { dg-error "NONMONOTONIC modifier specified for STATIC schedule kind" }
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : static)	! { dg-error "NONMONOTONIC modifier specified for STATIC schedule kind" }
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : runtime)	! { dg-error "NONMONOTONIC modifier specified for RUNTIME schedule kind" }
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : auto)	! { dg-error "NONMONOTONIC modifier specified for AUTO schedule kind" }
+   do i = 0, 64
+   end do
+   !$omp do schedule (nonmonotonic : dynamic) ordered	! { dg-error "NONMONOTONIC schedule modifier specified with ORDERED clause" }
+   do i = 0, 64
+     !$omp ordered
+     !$omp end ordered
+   end do
+   !$omp do ordered schedule(nonmonotonic : dynamic, 5)	! { dg-error "NONMONOTONIC schedule modifier specified with ORDERED clause" }
+   do i = 0, 64
+     !$omp ordered
+     !$omp end ordered
+   end do
+   !$omp do schedule (nonmonotonic : guided) ordered(1)	! { dg-error "NONMONOTONIC schedule modifier specified with ORDERED clause" }
+   do i = 0, 64
+     !$omp ordered depend(sink: i - 1)
+     !$omp ordered depend(source)
+   end do
+   !$omp do ordered(1) schedule(nonmonotonic : guided, 2)	! { dg-error "NONMONOTONIC schedule modifier specified with ORDERED clause" }
+   do i = 0, 64
+     !$omp ordered depend(source)
+     !$ordered depend(sink: i - 1)
+   end do
+   !$omp do schedule (nonmonotonic , monotonic : dynamic)	! { dg-error "Both MONOTONIC and NONMONOTONIC schedule modifiers specified" }
+   do i = 0, 64
+   end do
+   !$omp do schedule (monotonic,nonmonotonic:dynamic)	! { dg-error "Both MONOTONIC and NONMONOTONIC schedule modifiers specified" }
+   do i = 0, 64
+   end do
+ end subroutine foo
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/ieee/ieee.exp gcc-7.5.0/gcc/testsuite/gfortran.dg/ieee/ieee.exp
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/ieee/ieee.exp	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/ieee/ieee.exp	Thu Mar 21 18:57:56 2019
***************
*** 22,36 ****
  load_lib gfortran-dg.exp
  load_lib target-supports.exp
  
! # Initialize `dg'.
! dg-init
! 
! # Flags specified in each test
  global DEFAULT_FFLAGS
  if ![info exists DEFAULT_FFLAGS] then {
!     set DEFAULT_FFLAGS ""
  }
  
  # Flags for finding the IEEE modules
  if [info exists TOOL_OPTIONS] {
     set specpath [get_multilibs ${TOOL_OPTIONS}]
--- 22,36 ----
  load_lib gfortran-dg.exp
  load_lib target-supports.exp
  
! # If a testcase doesn't have special options, use these.
  global DEFAULT_FFLAGS
  if ![info exists DEFAULT_FFLAGS] then {
!     set DEFAULT_FFLAGS " -pedantic-errors"
  }
  
+ # Initialize `dg'.
+ dg-init
+ 
  # Flags for finding the IEEE modules
  if [info exists TOOL_OPTIONS] {
     set specpath [get_multilibs ${TOOL_OPTIONS}]
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/interface_abstract_5.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/interface_abstract_5.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/interface_abstract_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/interface_abstract_5.f90	Mon Mar 25 19:58:04 2019
***************
*** 0 ****
--- 1,32 ----
+ ! { dg-do compile }
+ !
+ ! PR 71861: [7/8/9 Regression] [F03] ICE in write_symbol(): bad module symbol
+ !
+ ! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de>
+ 
+ module m1
+    intrinsic abs
+    abstract interface
+       function abs(x)    ! { dg-error "ABSTRACT attribute conflicts with INTRINSIC attribute" }
+          real :: abs, x
+       end
+    end interface
+ end
+ 
+ module m2
+    abstract interface
+       function abs(x)
+          real :: abs, x
+       end
+    end interface
+    intrinsic abs    ! { dg-error "ABSTRACT attribute conflicts with INTRINSIC attribute" }
+ end
+ 
+ module m3
+    abstract interface
+       function f(x)
+          real :: f, x
+       end
+    end interface
+    intrinsic f    ! { dg-error "ABSTRACT attribute conflicts with INTRINSIC attribute" }
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90	Wed Oct 28 13:28:32 2009
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/20091028-1_0.f90	Sun Mar  3 09:20:09 2019
***************
*** 1,5 ****
  ! { dg-lto-do link }
! ! { dg-extra-ld-options "-r -nostdlib -finline-functions" }
  
  SUBROUTINE int_gen_ti_header_char( hdrbuf, hdrbufsize, itypesize, &
                                DataHandle, Element, VarName, Data, code )
--- 1,5 ----
  ! { dg-lto-do link }
! ! { dg-extra-ld-options "-r -nostdlib -finline-functions -Wno-lto-type-mismatch" }
  
  SUBROUTINE int_gen_ti_header_char( hdrbuf, hdrbufsize, itypesize, &
                                DataHandle, Element, VarName, Data, code )
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90	Wed Oct 28 13:28:32 2009
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/20091028-2_0.f90	Sun Mar  3 09:20:09 2019
***************
*** 1,5 ****
  ! { dg-lto-do link }
! ! { dg-extra-ld-options "-r -nostdlib -finline-functions" }
  
  SUBROUTINE int_gen_ti_header_char( hdrbuf, hdrbufsize, itypesize, &
                                DataHandle, Element, VarName, Data, code )
--- 1,5 ----
  ! { dg-lto-do link }
! ! { dg-extra-ld-options "-r -nostdlib -finline-functions -Wno-lto-type-mismatch" }
  
  SUBROUTINE int_gen_ti_header_char( hdrbuf, hdrbufsize, itypesize, &
                                DataHandle, Element, VarName, Data, code )
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/pr87689_0.f gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/pr87689_0.f
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/pr87689_0.f	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/pr87689_0.f	Sun Mar  3 09:20:09 2019
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-lto-run }
+ ! PR 87689 - this used to fail for POWER, plus it used to
+ ! give warnings about mismatches with LTO.
+ ! Original test case by Judicaël Grasset.
+       program main
+         implicit none
+         character :: c
+         character(len=20) :: res, doesntwork_p8
+         external doesntwork_p8
+         c = 'o'
+         res = doesntwork_p8(c,1,2,3,4,5,6)
+         if (res /= 'foo') stop 3
+       end program main
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/pr87689_1.f gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/pr87689_1.f
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/pr87689_1.f	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/pr87689_1.f	Sun Mar  3 09:20:09 2019
***************
*** 0 ****
--- 1,11 ----
+       function doesntwork_p8(c,a1,a2,a3,a4,a5,a6)
+         implicit none
+         character(len=20) :: doesntwork_p8
+         character :: c
+         integer :: a1,a2,a3,a4,a5,a6
+         if (a1 /= 1 .or. a2 /= 2 .or. a3 /= 3 .or. a4 /= 4 .or. a5 /= 5
+      &       .or. a6 /= 6) stop 1
+        if (c /= 'o ') stop 2
+        doesntwork_p8 = 'foo'
+        return
+        end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/pr89084_0.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/pr89084_0.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/lto/pr89084_0.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/lto/pr89084_0.f90	Fri Aug 30 11:36:10 2019
***************
*** 0 ****
--- 1,24 ----
+ ! PR fortran/89084
+ ! { dg-lto-do link }
+ ! { dg-lto-options {{ -O0 -flto }} }
+ 
+ integer function foo ()
+   write (*,*) 'foo'
+   block
+     integer, parameter :: idxs(3) = (/ 1, 2, 3 /)
+     integer :: i
+     foo = 0
+     do i = 1, size(idxs)
+       foo = foo + idxs(i)
+     enddo
+   end block
+ end function foo
+ program pr89084
+   integer :: i
+   interface
+     integer function foo ()
+     end function
+   end interface
+   i = foo ()
+   if (i.ne.6) stop 1
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/no_arg_check_2.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/no_arg_check_2.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/no_arg_check_2.f90	Sat Oct 31 09:33:25 2015
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/no_arg_check_2.f90	Sat Mar 16 14:03:00 2019
*************** end
*** 139,145 ****
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) array_class_t1_alloc._data.data" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) \\(array_class_t1_ptr._data.dat" 1 "original" } }
  
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(D" 3 "original" } }
  ! { dg-final { scan-tree-dump-times " = _gfortran_internal_pack \\(&parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(&array_int\\)" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(real\\(kind=4\\).0:. . restrict\\) array_real_alloc.data" 1 "original" } }
--- 139,145 ----
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) array_class_t1_alloc._data.data" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_scalar .\\(struct t1 .\\) \\(array_class_t1_ptr._data.dat" 1 "original" } }
  
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(D" 4 "original" } }
  ! { dg-final { scan-tree-dump-times " = _gfortran_internal_pack \\(&parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(&array_int\\)" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(real\\(kind=4\\).0:. . restrict\\) array_real_alloc.data" 1 "original" } }
*************** end
*** 148,152 ****
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t2.0:. . restrict\\) array_t2_alloc.data\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. . restrict\\) array_class_t1_alloc._data.data\\);" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) array_class_t1_ptr._data.data\\);" 1 "original" } }
  
--- 148,152 ----
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) parm" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t2.0:. . restrict\\) array_t2_alloc.data\\);" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. . restrict\\) array_class_t1_alloc._data.data\\);" 1 "original" } }
! ! { dg-final { scan-tree-dump-times "sub_array_assumed \\(\\(struct t1.0:. .\\) array_class_t1_ptr._data.data\\);" 0 "original" } }
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/null_10.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/null_10.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/null_10.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/null_10.f90	Sat Feb  9 20:09:56 2019
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! PR 71860 - this used to ICE
+ ! Original test case by Gerhard Steinmetz
+ program p
+    class(*), pointer :: z
+    z => null(z)
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pointer_init_2.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pointer_init_2.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pointer_init_2.f90	Mon Jan  7 18:30:11 2013
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pointer_init_2.f90	Sun Feb 10 18:41:03 2019
*************** subroutine sub
*** 18,24 ****
    integer, pointer :: dp0 => 13  ! { dg-error "Error in pointer initialization" }
    integer, pointer :: dp1 => r   ! { dg-error "Different types in pointer assignment" }
    integer, pointer :: dp2 => v   ! { dg-error "Different ranks in pointer assignment" }
!   integer, pointer :: dp3 => i   ! { dg-error "is neither TARGET nor POINTER" }
    integer, pointer :: dp4 => j   ! { dg-error "must have the SAVE attribute" }
    integer, pointer :: dp5 => a   ! { dg-error "must not be ALLOCATABLE" }
  
--- 18,24 ----
    integer, pointer :: dp0 => 13  ! { dg-error "Error in pointer initialization" }
    integer, pointer :: dp1 => r   ! { dg-error "Different types in pointer assignment" }
    integer, pointer :: dp2 => v   ! { dg-error "Different ranks in pointer assignment" }
!   integer, pointer :: dp3 => i   ! { dg-error "Pointer assignment target in initialization expression does not have the TARGET attribute" }
    integer, pointer :: dp4 => j   ! { dg-error "must have the SAVE attribute" }
    integer, pointer :: dp5 => a   ! { dg-error "must not be ALLOCATABLE" }
  
*************** subroutine sub
*** 35,41 ****
    end type t3
  
    type t4
!     integer, pointer :: dpc3 => i   ! { dg-error "Pointer assignment target is neither TARGET nor POINTER" }
    end type t4
  
    type t5
--- 35,41 ----
    end type t3
  
    type t4
!     integer, pointer :: dpc3 => i   ! { dg-error "Pointer assignment target in initialization expression does not have the TARGET attribute" }
    end type t4
  
    type t5
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pointer_init_6.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pointer_init_6.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pointer_init_6.f90	Fri Jan 16 12:49:46 2015
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pointer_init_6.f90	Sun Feb 10 18:41:03 2019
*************** module m1
*** 13,19 ****
   integer, target :: i
   type(t), target :: x
   integer, pointer :: p1 => i
!  integer, pointer :: p2 => p1   ! { dg-error "must have the TARGET attribute" }
   integer, pointer :: p3 => x%p  ! { dg-error "must have the TARGET attribute" }
   integer, pointer :: p4 => x%i
   integer, pointer :: p5 => u    ! { dg-error "has no IMPLICIT type" }
--- 13,19 ----
   integer, target :: i
   type(t), target :: x
   integer, pointer :: p1 => i
!  integer, pointer :: p2 => p1   ! { dg-error "Pointer assignment target in initialization expression does not have the TARGET attribute at" }
   integer, pointer :: p3 => x%p  ! { dg-error "must have the TARGET attribute" }
   integer, pointer :: p4 => x%i
   integer, pointer :: p5 => u    ! { dg-error "has no IMPLICIT type" }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pointer_init_9.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pointer_init_9.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pointer_init_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pointer_init_9.f90	Sun Feb 10 18:41:03 2019
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! PR 71237 - this used to ICE.
+ module data_mod
+   implicit none
+ 
+   type data_t
+     integer :: i
+   end type
+ 
+   type(data_t), pointer :: data
+   integer, pointer :: idata => data%i ! { dg-error "Pointer assignment target in initialization expression does not have the TARGET attribute" }
+ 
+ end module
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/power_7.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/power_7.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/power_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/power_7.f90	Sat Dec 22 20:16:22 2018
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-fdump-tree-original" }
+ ! PR 85544 - this used to ICE.
+ program p
+    integer, parameter :: na = -3, ne = 10
+    integer :: i, a(na:ne), b(na:ne)
+    integer :: v
+    a = [(i, i=na, ne)]
+    b = [2**a]
+    if (any (b /= [0,0,0,1,2,4,8,16,32,64,128,256,512,1024])) stop 1
+    b = [1**a]
+    if (any (b /= 1)) stop 2
+    b = [(-1)**a]
+    if (any (b /= [-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1]) )stop 3
+    b = [8**a]
+    if (any (b /= [0,0,0,1,8,64,512,4096,32768,262144,2097152,16777216,&
+         134217728,1073741824])) stop 4
+    b = [4**a]
+    if (any (b /= [0,0,0,1,4,16,64,256,1024,4096,16384,65536,262144,1048576])) stop 5
+    
+    v = 1
+    do i=1,6
+       v = v * 16
+       if (v /= 16**i) stop 6 
+    end do
+  end program p
+ ! { dg-final { scan-tree-dump-not "_gfortran_pow" "original" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr35031.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr35031.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr35031.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr35031.f90	Sat Jan 12 00:33:01 2019
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ elemental subroutine sub2(x)
+    integer, intent(in) :: x
+    entry sub2_c(x) bind(c)    ! { dg-error "prohibited in an elemental" }
+ end subroutine sub2
+ 
+ elemental function func2(x)
+    integer, intent(in) :: x
+    entry func2_c(x) bind(c)   ! { dg-error "prohibited in an elemental" }
+ end function func2
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr51434.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr51434.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr51434.f90	Sat Mar  3 19:02:28 2018
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr51434.f90	Sat Jan 26 15:25:45 2019
*************** module foo
*** 6,12 ****
     character(len=1), parameter :: s(n) = 'a'
     type :: a
        integer :: m = n
!       character(len=1):: t(n) = transfer('abcde             ', s)
     end type a
  end module foo
  
--- 6,12 ----
     character(len=1), parameter :: s(n) = 'a'
     type :: a
        integer :: m = n
!       character(len=1):: t(n) = transfer('abcde', s)
     end type a
  end module foo
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr58968.f gcc-7.5.0/gcc/testsuite/gfortran.dg/pr58968.f
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr58968.f	Mon Nov  4 16:12:29 2013
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr58968.f	Sat Jan 26 15:09:52 2019
***************
*** 1,5 ****
  C PR rtl-optimization/58968.f
! C { dg-do compile { target powerpc*-*-*} }
  C { dg-options "-mcpu=power7 -O3 -w -ffast-math  -funroll-loops" }
        SUBROUTINE MAKTABS(IW,SOME,LBOX1,LBOX2,LBOX3,NSPACE,NA,NB,
       *            LBST,X,
--- 1,5 ----
  C PR rtl-optimization/58968.f
! C { dg-do compile { target powerpc*-*-* } }
  C { dg-options "-mcpu=power7 -O3 -w -ffast-math  -funroll-loops" }
        SUBROUTINE MAKTABS(IW,SOME,LBOX1,LBOX2,LBOX3,NSPACE,NA,NB,
       *            LBST,X,
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr68318_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr68318_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr68318_1.f90	Fri Nov 13 00:14:32 2015
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr68318_1.f90	Wed Jan 30 15:07:38 2019
***************
*** 1,5 ****
  ! { dg-do compile }
! ! { dg-options "-O0"
  ! PR fortran/68318
  ! Original code submitted by Gerhard Steinmetz
  ! <gerhard dot steinmetz dot fortran at t-online dot de>
--- 1,5 ----
  ! { dg-do compile }
! ! { dg-options "-O0" }
  ! PR fortran/68318
  ! Original code submitted by Gerhard Steinmetz
  ! <gerhard dot steinmetz dot fortran at t-online dot de>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr69455_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr69455_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr69455_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr69455_1.f90	Fri Oct 18 19:26:22 2019
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do run }
+ program foo
+    block
+       use, intrinsic :: iso_c_binding, only: wp => c_float, ik => c_int
+       if (ik /= 4) stop 1
+       if (wp /= 4) stop 2
+    end block
+    block
+       use, intrinsic :: iso_c_binding, only: wp => c_double, ik => c_int64_t
+       if (ik /= 8) stop 3
+       if (wp /= 8) stop 4
+    end block
+ end program foo
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr69455_2.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr69455_2.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr69455_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr69455_2.f90	Fri Oct 18 19:26:22 2019
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do run }
+ program foo
+    block
+       use, intrinsic :: ISO_FORTRAN_ENV, only: wp => REAL32, ik => INT32
+       if (ik /= 4) stop 1
+       if (wp /= 4) stop 2
+    end block
+    block
+       use, intrinsic :: ISO_FORTRAN_ENV, only: wp => REAL64, ik => INT64
+       if (ik /= 8) stop 3
+       if (wp /= 8) stop 4
+    end block
+ end program foo
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr70870_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr70870_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr70870_1.f90	Fri May 11 18:00:41 2018
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr70870_1.f90	Wed Dec 12 01:26:12 2018
***************
*** 1,4 ****
--- 1,5 ----
  ! { dg-do compile }
+ ! { dg-options "-std=gnu" }
  ! PR fortran/70870
  ! Contributed by Vittorio Zecca <zeccav at gmail dot com >
        type t
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr77583.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr77583.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr77583.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr77583.f90	Sun Mar  3 20:36:12 2019
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ !
+ ! PR fortran/77583 - ICE in pp_quoted_string, at pretty-print.c:966
+ ! Contributed by Gerhard Steinmetz <gerhard.steinmetz.fortran@t-online.de>
+ 
+ pure subroutine sub(s)
+ contains
+    pure subroutine s  ! { dg-error "conflicts with DUMMY argument" }
+    end
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr78259.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr78259.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr78259.f90	Wed Nov  9 17:31:27 2016
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr78259.f90	Sat Jan 26 15:09:52 2019
***************
*** 1,4 ****
! ! { dg-do "compile" }
  ! { dg-options "-fdec-structure" }
  !
  ! PR fortran/78259
--- 1,4 ----
! ! { dg-do compile }
  ! { dg-options "-fdec-structure" }
  !
  ! PR fortran/78259
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr81849.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr81849.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr81849.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr81849.f90	Tue Jan 15 20:53:13 2019
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do run }
+ ! PR fortran/81849
+ program p
+    implicit none
+    integer  :: n=3
+    if (any(g() /= f())) stop 1
+    contains
+       function g()
+          real g(n)
+          g = 7
+       end function g
+       function f() result(r)
+          real r(n)
+          r = 7
+       end function f
+ end program
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr83246.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr83246.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr83246.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr83246.f90	Fri Aug 30 11:36:10 2019
***************
*** 0 ****
--- 1,9 ----
+ ! PR fortran/83246
+ ! { dg-do link }
+    program dusty_corner 
+    write(*,*)'BLOCK TESTS' 
+    MAKEDATAP: block
+    integer,parameter :: scratch(*)=[1,2,3]
+    write(*,*)scratch
+    endblock MAKEDATAP
+    end program dusty_corner
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr85797.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr85797.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr85797.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr85797.f90	Wed Apr 10 21:02:02 2019
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do compile }
+ ! PR fortran/83515 - ICE: Invalid expression in gfc_element_size 
+ ! PR fortran/85797 - ICE in gfc_element_size, at fortran/target-memory.c:126
+ ! PR fortran/89904 - ICE in gfortran starting with r270045
+ 
+ recursive subroutine a
+   c = transfer (a, b)           ! { dg-error "'SOURCE' argument of 'TRANSFER'" }
+ end
+ 
+ recursive subroutine d
+   c = transfer (b, d)           ! { dg-error "'MOLD' argument of 'TRANSFER'" }
+ end
+ 
+ subroutine f
+   use, intrinsic :: iso_c_binding
+   integer(c_intptr_t) :: b, c
+   procedure(), pointer :: a
+   c = transfer (a, b)
+   c = transfer (transfer (b, a), b)
+ end
+ 
+ module m
+ contains
+   function f () result (z)
+     class(*), pointer :: z
+   end function f
+   recursive subroutine s (q)
+     procedure(f) :: q
+     call s (q)
+   end subroutine s
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr85798.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr85798.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr85798.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr85798.f90	Sat Dec 22 23:23:02 2018
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ program p
+    type t
+       integer, allocatable :: a(:)
+    end type
+    type u
+       real x
+       type(t) y
+    end type
+    type(t) :: z
+    type(u) :: q
+    data z%a(1) / 789 /     ! { dg-error "Allocatable component" }
+    data q%y%a(1) / 789 /   ! { dg-error "Allocatable component" }
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88138.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88138.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88138.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88138.f90	Sat Dec 15 23:57:03 2018
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ program p
+    type t
+       character :: c = 'c'
+    end type
+    type(t), parameter :: x  = 1.e1  ! { dg-error "Incompatible initialization between a" }s
+    print *, 'a' // x%c
+ end
+ ! { dg-prune-output "has no IMPLICIT type" }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88155.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88155.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88155.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88155.f90	Wed Dec 12 01:26:12 2018
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ program p
+    type t
+       integer :: a
+    end type
+    type(t) :: x
+    data x /t()1/     ! { dg-error "No initializer for component" }
+    print *, x
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88169_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88169_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88169_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88169_1.f90	Sat Dec 22 18:09:19 2018
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do run }
+ module foo_nml
+    implicit none
+    real :: x = -1
+    namelist /foo/ x
+ end module
+ 
+ program main
+    use foo_nml, only: bar => foo, x
+    implicit none
+    integer fd
+    x = 42
+    open(newunit=fd, file='tmp.dat', status='replace')
+    write(fd,nml=bar)
+    close(fd)
+    open(newunit=fd, file='tmp.dat', status='old')
+    read(fd,nml=bar)
+    if (x /= 42) stop 1
+    close(fd)
+ end program
+ ! { dg-final { cleanup-modules "foo_nml" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88169_2.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88169_2.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88169_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88169_2.f90	Sat Dec 22 18:09:19 2018
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do run }
+ module foo_nml
+    implicit none
+    real :: x = -1
+    namelist /foo/ x
+ end module
+ !
+ ! Yes, implicit typing of local variable 'x'.
+ !
+ program main
+    use foo_nml, only: bar => foo
+    integer fd
+    x = 42
+    open(newunit=fd, file='tmp.dat', status='replace')
+    write(fd,nml=bar)
+    close(fd)
+    open(newunit=fd, file='tmp.dat', status='old')
+    read(fd,nml=bar)
+    close(fd)
+    call bah
+    if (x /= 42) stop 1
+ end program
+ 
+ subroutine bah
+    use foo_nml
+    integer fd
+    open(newunit=fd, file='tmp.dat', status='old')
+    read(fd,nml=foo)
+    if (x /= -1) stop 2
+    close(fd, status='delete')
+ end subroutine bah
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88169_3.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88169_3.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88169_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88169_3.f90	Sat Dec 22 18:09:19 2018
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+ module foo_nml
+    implicit none
+    real :: x = -1
+    namelist /foo/ x
+ end module
+ 
+ program main
+    use foo_nml, only: bar => foo, x
+    implicit none
+    real a
+    namelist /bar/a  ! { dg-error "already is USE associated" }
+ end program
+ ! { dg-final { cleanup-modules "foo_nml" } }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88205.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88205.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88205.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88205.f90	Mon Dec 10 01:25:47 2018
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! PR fortran/88205
+ subroutine s1
+    real, parameter :: status = 0
+    open (newunit=n, status=status)        ! { dg-error "STATUS requires" }
+ end
+ subroutine s2
+    complex, parameter :: status = 0
+    open (newunit=n, status=status)        ! { dg-error "STATUS requires" }
+ end
+ program p
+   logical, parameter :: status = .false.
+   open (newunit=a, status=status)         ! { dg-error "STATUS requires" }
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88206.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88206.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88206.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88206.f90	Sun Dec  9 20:23:06 2018
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR fortran/88206
+ program p
+    integer, parameter :: z(4) = [1,2,3,4]
+    integer :: k = 2
+    print *, [real(z(k))]
+ end
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88228.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88228.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88228.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88228.f90	Sun Dec  9 18:32:01 2018
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! { dg-options "-fdec" }
+ ! PR fortran/88228
+ program p
+    integer :: n = .not. 1
+    integer :: j = .true. .or. 1
+ end
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88249.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88249.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88249.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88249.f90	Wed Dec 12 00:08:12 2018
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ program p
+    backspace (err=1) ! { dg-error "UNIT number missing" }
+    endfile (err=1)   ! { dg-error "UNIT number missing" }
+    flush (err=1)     ! { dg-error "UNIT number missing" }
+    rewind (err=1)    ! { dg-error "UNIT number missing" }
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88269.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88269.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88269.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88269.f90	Mon Dec 10 20:03:32 2018
***************
*** 0 ****
--- 1,6 ----
+ ! { dg-do compile }
+ ! PR fortran/88269
+ program p
+    write (end=1e1) ! { dg-error "tag not allowed" }
+ end
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88902.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88902.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr88902.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr88902.f90	Fri Aug 30 11:28:22 2019
***************
*** 0 ****
--- 1,6 ----
+ ! PR fortran/88902
+ ! { dg-do compile }
+ ! { dg-require-effective-target lto }
+ ! { dg-options "-flto --param ggc-min-heapsize=0" }
+ 
+ include 'pr50069_2.f90'
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr89077.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr89077.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr89077.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr89077.f90	Sun Feb 10 20:05:34 2019
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/89077 - ICE using * as len specifier for character parameter
+ 
+ program test
+   implicit none
+   integer :: i
+   character(*), parameter :: s = 'abcdef'
+   character(*), parameter :: t = transfer ([(s(i:i), i=1,len(s))], s)
+   if (len (t) /= len (s) .or. t /= s) stop 1
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr89084.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr89084.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr89084.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr89084.f90	Fri Aug 30 11:36:10 2019
***************
*** 0 ****
--- 1,23 ----
+ ! PR fortran/89084
+ ! { dg-do run }
+ 
+ integer function foo ()
+   write (*,*) 'foo'
+   block
+     integer, parameter :: idxs(3) = (/ 1, 2, 3 /)
+     integer :: i
+     foo = 0
+     do i = 1, size(idxs)
+       foo = foo + idxs(i)
+     enddo
+   end block
+ end function foo
+ program pr89084
+   integer :: i
+   interface
+     integer function foo ()
+     end function
+   end interface
+   i = foo ()
+   if (i.ne.6) stop 1
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr89253.f gcc-7.5.0/gcc/testsuite/gfortran.dg/pr89253.f
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr89253.f	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr89253.f	Tue Mar 26 13:18:23 2019
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fsplit-loops -fno-tree-dominator-opts -std=legacy -w" }
+       program jr
+       integer :: w5, pg, zh
+       w5 = 0
+       write (w5)
+       assign 0002 to w5
+       do pg = 1, 3
+          if (pg .eq. 1) then
+             do zh = 1, pg
+             end do
+          else
+             goto w5
+  0001       zh = 0
+  0002       zh = 0
+             assign 0001 to w5
+          endif
+       end do
+       end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr90344.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr90344.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr90344.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr90344.f90	Sun May  5 14:01:51 2019
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-ffrontend-optimize" }
+ ! PR 90344 - this used to ICE.
+ ! Test case by Urban Jost.
+ module M_xterm
+ contains
+    elemental function func1(ch) result(res)
+       character,intent(in) :: ch
+       logical              :: res
+       res=.true.
+    end function func1
+    elemental function func2(ch) result(res)
+       character,intent(in) :: ch
+       logical              :: res
+       res=.false.
+    end function func2
+    pure function s2a(string)  RESULT (array)
+       character(len=*),intent(in) :: string
+       character(len=1)            :: array(len(string))
+       forall(i=1:len(string)) array(i) = string(i:i)
+    end function s2a
+    subroutine sub1()
+       write(*,*)all(func1(s2a('ABCDEFG')).or.func2(s2a('ABCDEFG')))
+    end subroutine sub1
+ end module M_xterm
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/pr91686.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/pr91686.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/pr91686.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/pr91686.f90	Thu Sep 12 09:05:14 2019
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR91686
+ !
+ ! Contributed by  <urbanjost@comcast.net>
+ !
+ program shuf
+   implicit none
+   character(len=:),allocatable :: pageout(:)
+   integer                      :: i
+   pageout=[character(len=20) :: 'a','bbbbbbb','ccccc']
+   pageout=pageout([3,2,1])
+   if (trim( pageout(1)) .ne. 'ccccc') stop 1
+   if (trim( pageout(2)) .ne. 'bbbbbbb') stop 2
+   if (trim( pageout(3)) .ne. 'a') stop 3
+ end program shuf
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/proc_ptr_51.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/proc_ptr_51.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/proc_ptr_51.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/proc_ptr_51.f90	Sat Aug  3 11:50:39 2019
***************
*** 0 ****
--- 1,38 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR90786.
+ !
+ ! Contributed by Andrew benson  <abensonca@gmail.com>
+ !
+ module f
+ procedure(c), pointer :: c_
+ 
+  type :: s
+    integer :: i = 42
+  end type s
+  class(s), pointer :: res, tgt
+ 
+ contains
+ 
+  function c()
+    implicit none
+    class(s), pointer ::  c
+    c => tgt
+    return
+  end function c
+ 
+  subroutine fs()
+    implicit none
+    c_ => c  ! This used to ICE
+    return
+  end subroutine fs
+ 
+ end module f
+ 
+   use f
+   allocate (tgt, source = s(99))
+   call fs()
+   res => c_()
+   if (res%i .ne. 99) stop 1
+   deallocate (tgt)
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08 gcc-7.5.0/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/ptr_func_assign_5.f08	Sun Dec 23 20:01:44 2018
***************
*** 0 ****
--- 1,45 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR77703, in which calls of the pointer function
+ ! caused an ICE in 'gfc_trans_auto_character_variable'.
+ !
+ ! Contributed by Gerhard Steinmetz  <gerhard.steinmetz.fortran@t-online.de>
+ !
+ module m
+    implicit none
+    private
+    integer, parameter, public :: n = 2
+    integer, parameter :: ell = 6
+ 
+    character(len=n*ell), target, public :: s
+ 
+    public :: t
+ contains
+    function t( idx ) result( substr )
+       integer, intent(in) :: idx
+       character(len=ell), pointer  :: substr
+ 
+       if ( (idx < 0).or.(idx > n) ) then
+          error stop
+       end if
+       substr => s((idx-1)*ell+1:idx*ell)
+    end function t
+ end module m
+ 
+ program p
+    use m, only : s, t, n
+    integer :: i
+ 
+    ! Define 's'
+    s = "123456789012"
+ 
+    ! Then perform operations involving 't'
+    if (t(1) .ne. "123456") stop 1
+    if (t(2) .ne. "789012") stop 2
+ 
+    ! Do the pointer function assignments
+    t(1) = "Hello "
+    if (s .ne. "Hello 789012") Stop 3
+    t(2) = "World!"
+    if (s .ne. "Hello World!") Stop 4
+ end program p
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/public_private_module_10.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/public_private_module_10.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/public_private_module_10.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/public_private_module_10.f90	Sun Mar 10 11:09:30 2019
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do compile }
+ ! PR 87734 - this used to issue spurious errors.
+ 
+ module m_vstring
+   implicit none
+ 
+   public :: vstring_length
+ 
+ contains
+ 
+   subroutine vstring_cast()
+     character ( len = vstring_length() ) :: char_string
+   end subroutine
+ 
+   pure integer function vstring_length ()
+   end function
+ 
+ end module
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/select_type_45.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/select_type_45.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/select_type_45.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/select_type_45.f90	Sun Jan 27 18:53:47 2019
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ !
+ ! Tests the fix for PR80260
+ !
+ ! Contributed by Damian Rouson  <damian@sourceryinstitute.org>
+ !
+     type foo
+     end type foo
+     type, extends(foo) :: bar
+     end type
+ contains
+     subroutine f(x)
+       class(foo) x(:,:)
+       select type(x)
+         class is (bar)
+           call g(x(1,:))   ! ICEd here.
+       end select
+     end subroutine
+     subroutine g(y)
+       class(bar) y(:)
+     end subroutine
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/select_type_46.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/select_type_46.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/select_type_46.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/select_type_46.f90	Sun Jan 27 18:53:47 2019
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ !
+ ! Tests the fix for PR82077
+ !
+ ! Contributed by Damian Rouson  <damian@sourceryinstitute.org>
+ !
+     type parent
+     end type parent
+     type, extends(parent) :: child
+     end type
+     class(parent), allocatable :: foo(:,:)
+     allocate(child::foo(1,1))
+     select type(foo)
+       class is (child)
+         call gfortran7_ICE(foo(1,:))  ! ICEd here.
+     end select
+ contains
+     subroutine gfortran7_ICE(bar)
+       class(child) bar(:)
+     end subroutine
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/submodule_30.f08 gcc-7.5.0/gcc/testsuite/gfortran.dg/submodule_30.f08
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/submodule_30.f08	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/submodule_30.f08	Sat Dec 29 18:21:39 2018
***************
*** 0 ****
--- 1,42 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR82550 in which the reference to 'p' in 'foo'
+ ! was not being correctly handled.
+ !
+ ! Contributed by Reinhold Bader  <Bader@lrz.de>
+ !
+ module m_subm_18_pos
+   implicit none
+   integer :: i = 0
+   interface
+     module subroutine foo(fun_ptr)
+       procedure(p), pointer, intent(out) :: fun_ptr
+     end subroutine
+   end interface
+ contains
+   subroutine p()
+     i = 1
+   end subroutine p
+ end module m_subm_18_pos
+ submodule (m_subm_18_pos) subm_18_pos
+     implicit none
+ contains
+     module subroutine foo(fun_ptr)
+       procedure(p), pointer, intent(out) :: fun_ptr
+       fun_ptr => p
+     end subroutine
+ end submodule
+ program p_18_pos
+   use m_subm_18_pos
+   implicit none
+   procedure(), pointer :: x
+   call foo(x)
+   call x()
+   if (i == 1) then
+      write(*,*) 'OK'
+   else
+      write(*,*) 'FAIL'
+      STOP 1
+   end if
+ end program p_18_pos
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/warn_conversion_10.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/warn_conversion_10.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/warn_conversion_10.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/warn_conversion_10.f90	Sat Feb  2 17:07:40 2019
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! { dg-options "-fno-range-check -Wconversion" }
+ ! PR 88298 - this used to warn unnecessarily.  Original test case by
+ ! Harald Anlauf.
+ subroutine bug (j, js)
+   integer    :: j, js(3,2)
+   js(:,:) = cshift (js(:,:), shift=j, dim=1)
+ end subroutine bug
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/warn_undefined_1.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/warn_undefined_1.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/warn_undefined_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/warn_undefined_1.f90	Tue Feb  5 21:23:07 2019
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do compile }
+ ! { dg-options "-O2 -Wuninitialized" }
+ ! PR 67679 - this used to cause an undefined warning for
+ ! variables generated by the compiler.
+ 
+ subroutine s(h, Gmin, r)
+ 
+    implicit none
+    real, intent(in) ::  Gmin(3), h(3)
+    integer, intent(inout) :: r
+ 
+    integer :: x_min(3), x_max(3), k, iStat
+    logical, dimension(:), allocatable :: check
+ 
+    do k = 1,1
+       x_min(k) = int(Gmin(k)*h(k))
+       x_max(k) = int(Gmin(k)*h(k))
+    end do
+ 
+    allocate(check(x_min(1):x_max(1)),stat=iStat)
+ 
+    check(:) = .false.
+ 
+    do k = x_min(1),x_max(1)
+             r = r + 1
+    end do
+ 
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_5.f90 gcc-7.5.0/gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_5.f90
*** gcc-7.4.0/gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_5.f90	Sun Sep 15 22:35:40 2019
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-Wunused-dummy-argument" }
+ ! PR 91557 - this used to generate a bogus warning
+ ! Test case by Gerhard Steinmetz
+ program p
+    integer :: a, b
+    a = 1
+    call g
+ contains
+    subroutine g
+       integer :: x, y
+       call h (x, y)
+       if ( a > 0 )   y = y - 1
+       b = y - x + 1
+    end
+ end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/array34.adb gcc-7.5.0/gcc/testsuite/gnat.dg/array34.adb
*** gcc-7.4.0/gcc/testsuite/gnat.dg/array34.adb	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/array34.adb	Sat Jan 26 16:03:42 2019
***************
*** 0 ****
--- 1,22 ----
+ --  { dg-do run }
+ 
+ procedure Array34 is
+ 
+   type Arr is array (1 .. 6) of Short_Short_Integer;
+   for Arr'Alignment use 4;
+ 
+   type Rec is record
+     A : Arr;
+     B: Short_Integer;
+   end record;
+   pragma Pack (Rec);
+ 
+   R : Rec;
+ 
+ begin
+   R.B := 31415;
+   R.A := (others => 0);
+   if R.B /= 31415 then
+     raise Program_Error;
+   end if;
+ end;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/opt73.adb gcc-7.5.0/gcc/testsuite/gnat.dg/opt73.adb
*** gcc-7.4.0/gcc/testsuite/gnat.dg/opt73.adb	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/opt73.adb	Sat Apr  6 21:44:33 2019
***************
*** 0 ****
--- 1,34 ----
+ -- { dg-do run }
+ -- { dg-options "-O" }
+ 
+ procedure Opt73 is
+ 
+    type Terminal_Set_Indexed_By_Non_Terminal is
+      array (Natural range <>, Natural  range <>) of Boolean with Pack;
+ 
+    type Terminal_Set_Per_Non_Terminal
+      (Last_Terminal     : Natural;
+       Last_Non_Terminal : Natural) is
+    record
+       Map : Terminal_Set_Indexed_By_Non_Terminal
+         (1 .. Last_Non_Terminal, 0 .. Last_Terminal);
+    end record;
+ 
+    Follow : Terminal_Set_Per_Non_Terminal (5, 4);
+    Expect : Terminal_Set_Per_Non_Terminal :=
+      (5, 4, (1 => (2 => True, others => False),
+              others => (others => False)));
+ 
+    procedure Get_Follow (Value : out Terminal_Set_Per_Non_Terminal) is
+    begin
+       Value.Map := (others => (others => False));
+       Value.Map (1, 2) := True;
+       Value.Map (2, 0) := Value.Map (2, 0) or Value.Map (1, 0);
+    end;
+ 
+ begin
+    Get_Follow (Follow);
+    if Follow /= Expect then
+       raise Program_Error;
+    end if;
+ end;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/opt75.adb gcc-7.5.0/gcc/testsuite/gnat.dg/opt75.adb
*** gcc-7.4.0/gcc/testsuite/gnat.dg/opt75.adb	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/opt75.adb	Sun Jan 27 18:16:23 2019
***************
*** 0 ****
--- 1,9 ----
+ -- { dg-do run }
+ -- { dg-options "-O3" }
+ 
+ with Opt75_Pkg; use Opt75_Pkg;
+ 
+ procedure Opt75 is
+ begin
+   null;
+ end;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/opt75_pkg.adb gcc-7.5.0/gcc/testsuite/gnat.dg/opt75_pkg.adb
*** gcc-7.4.0/gcc/testsuite/gnat.dg/opt75_pkg.adb	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/opt75_pkg.adb	Sun Jan 27 18:16:23 2019
***************
*** 0 ****
--- 1,12 ----
+ package body Opt75_Pkg is
+ 
+   overriding procedure Adjust (Object : in out T) is
+   begin
+     if Object.Ref /= Empty_Rec'Access then
+       System.Atomic_Counters.Increment (Object.Ref.Counter);
+     end if;
+   end;
+ 
+   A : constant Arr := (others => (others => Empty));
+ 
+ end Opt75_Pkg;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/opt75_pkg.ads gcc-7.5.0/gcc/testsuite/gnat.dg/opt75_pkg.ads
*** gcc-7.4.0/gcc/testsuite/gnat.dg/opt75_pkg.ads	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/opt75_pkg.ads	Sun Jan 27 18:16:23 2019
***************
*** 0 ****
--- 1,27 ----
+ pragma Restrictions (No_Abort_Statements);
+ pragma Restrictions (Max_Asynchronous_Select_Nesting => 0);
+ 
+ with Ada.Finalization;
+ with System.Atomic_Counters;
+ 
+ package Opt75_Pkg is
+ 
+   type Rec is record
+     Counter : System.Atomic_Counters.Atomic_Counter;
+   end record;
+ 
+   type Rec_Ptr is access all Rec;
+ 
+   Empty_Rec : aliased Rec;
+ 
+   type T is new Ada.Finalization.Controlled with record
+     Ref : Rec_Ptr := Empty_Rec'Access;
+   end record;
+ 
+   overriding procedure Adjust (Object : in out T);
+ 
+   Empty : constant T := (Ada.Finalization.Controlled with Ref => Empty_Rec'Access);
+ 
+   type Arr is array (Integer range 1 .. 8, Integer range 1 .. 4) of T;
+ 
+ end Opt75_Pkg;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/opt76.adb gcc-7.5.0/gcc/testsuite/gnat.dg/opt76.adb
*** gcc-7.4.0/gcc/testsuite/gnat.dg/opt76.adb	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/opt76.adb	Wed Feb  6 21:10:19 2019
***************
*** 0 ****
--- 1,36 ----
+ -- { dg-do run }
+ -- { dg-options "-O2 -gnatp -fno-omit-frame-pointer" }
+ 
+ procedure Opt76 is
+ 
+    type Integer_Access is access Integer;
+    type Registry_Array is array (Natural range <>) of Integer_Access;
+ 
+    procedure Nested (Input, Parser : Integer; A, B : Boolean) is
+ 
+       Index : Registry_Array (1 .. 1024);
+       Not_B : constant Boolean := not B;
+ 
+       procedure Inner (Input : Integer) is
+       begin
+          if Input /= 1 then
+             raise Program_Error;
+          end if;
+ 
+          if Parser = 128 and then A and then Not_B then
+             Inner (Input);
+             Index (Index'First) := null;
+          end if;
+       end;
+ 
+    begin
+       Inner (Input);
+    end;
+ 
+    Input : Integer := 1 with Volatile;
+    Parser : Integer := 2 with Volatile;
+       
+ begin
+    Nested (Input, Parser, False, True);
+    Nested (Input, Parser, True, False);
+ end;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/opt79.adb gcc-7.5.0/gcc/testsuite/gnat.dg/opt79.adb
*** gcc-7.4.0/gcc/testsuite/gnat.dg/opt79.adb	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/opt79.adb	Tue May 28 08:09:39 2019
***************
*** 0 ****
--- 1,28 ----
+ -- { dg-do compile }
+ -- { dg-options "-O" }
+ 
+ package body Opt79 is
+ 
+   function F (I : Integer) return Arr is
+     A : Arr;
+ 
+     procedure Nested is
+ 
+       procedure Inner is
+       begin
+         A (1) := 0;
+       end;
+ 
+     begin
+        Inner;
+     end;
+ 
+   begin
+     Nested;
+     for J in A'Range loop
+       A (J) := I;
+     end loop;
+     return A;
+   end;
+ 
+ end Opt79;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/gnat.dg/opt79.ads gcc-7.5.0/gcc/testsuite/gnat.dg/opt79.ads
*** gcc-7.4.0/gcc/testsuite/gnat.dg/opt79.ads	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/gnat.dg/opt79.ads	Tue May 28 08:09:39 2019
***************
*** 0 ****
--- 1,7 ----
+ package Opt79 is
+ 
+   type Arr is array (1 .. 8) of Integer;
+ 
+   function F (I : Integer) return Arr;
+ 
+ end Opt79;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/lib/target-supports.exp gcc-7.5.0/gcc/testsuite/lib/target-supports.exp
*** gcc-7.4.0/gcc/testsuite/lib/target-supports.exp	Tue May  1 09:00:39 2018
--- gcc-7.5.0/gcc/testsuite/lib/target-supports.exp	Fri Nov  1 20:01:52 2019
*************** proc check_effective_target_next_runtime
*** 2365,2370 ****
--- 2365,2386 ----
      }]
  }
  
+ # Return 1 if we're generating code for big-endian memory order.
+ 
+ proc check_effective_target_be { } {
+     return [check_no_compiler_messages be object {
+ 	int dummy[__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 1 : -1];
+     }]
+ }
+ 
+ # Return 1 if we're generating code for little-endian memory order.
+ 
+ proc check_effective_target_le { } {
+     return [check_no_compiler_messages le object {
+ 	int dummy[__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ? 1 : -1];
+     }]
+ }
+ 
  # Return 1 if we're generating 32-bit code using default options, 0
  # otherwise.
  
*************** proc check_effective_target_powerpc_p8ve
*** 4548,4560 ****
  	     || [istarget powerpc*-*-aix5.2*] } {
  	    return 0
  	}
  	return [check_no_compiler_messages powerpc_p8vector_ok object {
  	    int main (void) {
- #ifdef __MACH__
- 		asm volatile ("xxlorc vs0,vs0,vs0");
- #else
  		asm volatile ("xxlorc 0,0,0");
- #endif
  		return 0;
  	    }
  	} "-mpower8-vector"]
--- 4564,4576 ----
  	     || [istarget powerpc*-*-aix5.2*] } {
  	    return 0
  	}
+ 	# Darwin doesn't run on power8, so far.
+ 	if { [istarget *-*-darwin*] } {
+ 	    return 0
+ 	}
  	return [check_no_compiler_messages powerpc_p8vector_ok object {
  	    int main (void) {
  		asm volatile ("xxlorc 0,0,0");
  		return 0;
  	    }
  	} "-mpower8-vector"]
*************** proc check_effective_target_powerpc_p9ve
*** 4575,4580 ****
--- 4591,4600 ----
  	     || [istarget powerpc*-*-aix5.2*] } {
  	    return 0
  	}
+ 	# Darwin doesn't run on power9, so far.
+ 	if { [istarget *-*-darwin*] } {
+ 	    return 0
+ 	}
  	return [check_no_compiler_messages powerpc_p9vector_ok object {
  	    int main (void) {
  		long e = -1;
*************** proc check_effective_target_powerpc_floa
*** 4625,4630 ****
--- 4645,4654 ----
  	     || [istarget powerpc*-*-aix5.2*] } {
  	    return 0
  	}
+ 	# Darwin doesn't have VSX, so no soft support for float128.
+ 	if { [istarget *-*-darwin*] } {
+ 	    return 0
+ 	}
  	return [check_no_compiler_messages powerpc_float128_sw_ok object {
  		volatile __float128 x = 1.0q;
  		volatile __float128 y = 2.0q;
*************** proc check_effective_target_powerpc_floa
*** 4651,4656 ****
--- 4675,4684 ----
  	     || [istarget powerpc*-*-aix5.2*] } {
  	    return 0
  	}
+ 	# Darwin doesn't run on any machine with float128 h/w so far.
+ 	if { [istarget *-*-darwin*] } {
+ 	    return 0
+ 	}
  	return [check_no_compiler_messages powerpc_float128_hw_ok object {
  		volatile __float128 x = 1.0q;
  		volatile __float128 y = 2.0q;
*************** proc check_effective_target_powerpc_vsx_
*** 4677,4689 ****
  	     || [istarget powerpc*-*-aix6*] } {
  	    return 0
  	}
  	return [check_no_compiler_messages powerpc_vsx_ok object {
  	    int main (void) {
- #ifdef __MACH__
- 		asm volatile ("xxlor vs0,vs0,vs0");
- #else
  		asm volatile ("xxlor 0,0,0");
- #endif
  		return 0;
  	    }
  	} "-mvsx"]
--- 4705,4718 ----
  	     || [istarget powerpc*-*-aix6*] } {
  	    return 0
  	}
+ 	# Darwin doesn't have VSX, even if it's used with an assembler
+ 	# which recognises the insns.
+ 	if { [istarget *-*-darwin*] } {
+ 	    return 0
+ 	}
  	return [check_no_compiler_messages powerpc_vsx_ok object {
  	    int main (void) {
  		asm volatile ("xxlor 0,0,0");
  		return 0;
  	    }
  	} "-mvsx"]
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	Sun Sep 15 02:38:25 2019
***************
*** 2,14 ****
  
  // { dg-do run { target *-*-darwin* } }
  // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
  // { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
  // This test has no equivalent or meaning for m64/ABI V2
! // { dg-xfail-run-if "No Test Avail" { *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
  
  #include <objc/objc-runtime.h>
  #include <stdlib.h>
! #include <Foundation/NSObject.h>
  
  //extern "C" { int printf(const char *,...); }
  #define CHECK_IF(expr) if(!(expr)) abort()
--- 2,15 ----
  
  // { dg-do run { target *-*-darwin* } }
  // { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } }
+ // { dg-skip-if "Headers incompatible with 10.4 APIs" { *-*-darwin1[3-8]* } { "-fnext-runtime" } { "" } }
  // { dg-additional-options "-fobjc-call-cxx-cdtors -mmacosx-version-min=10.4 -framework Foundation" }
  // This test has no equivalent or meaning for m64/ABI V2
! // { dg-xfail-run-if "No Test Avail" {  *-*-darwin* && lp64 } { "-fnext-runtime" } { "" } }
  
  #include <objc/objc-runtime.h>
  #include <stdlib.h>
! #include "../objc-obj-c++-shared/F-NSObject.h"
  
  //extern "C" { int printf(const char *,...); }
  #define CHECK_IF(expr) if(!(expr)) abort()
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/isa-field-1.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/isa-field-1.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/isa-field-1.mm	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/isa-field-1.mm	Sun Sep 15 02:38:25 2019
***************
*** 1,5 ****
--- 1,7 ----
  /* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects.  */
  /* { dg-do compile } */
+ /* The use of isa is deprecated, but we still want to test that is works. */
+ /* { dg-additional-options "-Wno-deprecated-declarations" } */
  
  #include "../objc-obj-c++-shared/TestsuiteObject.h"
  #include "../objc-obj-c++-shared/runtime.h"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm	Sun Sep 15 02:38:25 2019
***************
*** 3,8 ****
--- 3,9 ----
  /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
  
  /* { dg-do compile } */
+ /* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-8]* } { "-fnext-runtime" } { "" } } */
  /* { dg-options "-fobjc-gc" } */
  /* { dg-prune-output "cc1objplus: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/proto-lossage-7.mm	Sun Sep 15 02:38:25 2019
***************
*** 1,9 ****
  /* Check that typedefs of ObjC classes preserve 
     any @protocol qualifiers.  */
  /* { dg-do compile } */
  
  #ifdef __NEXT_RUNTIME__
! #include <Foundation/NSObject.h>
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
--- 1,11 ----
  /* Check that typedefs of ObjC classes preserve 
     any @protocol qualifiers.  */
  /* { dg-do compile } */
+ /* Suppress warnings that the GNUStep headers introduce.  */
+ /* { dg-additional-options "-std=gnu++11 -Wno-expansion-to-defined -Wno-variadic-macros" { target *-*-darwin* } } */
  
  #ifdef __NEXT_RUNTIME__
! #include "../objc-obj-c++-shared/F-NSObject.h"
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/qual-types-1.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/qual-types-1.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/qual-types-1.mm	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/qual-types-1.mm	Sun Sep 15 02:38:25 2019
***************
*** 4,9 ****
--- 4,11 ----
  
  /* { dg-do run } */
  /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
+ /* { dg-prune-output ".*ld: warning: direct access in.*" } */
+ 
  #include "../objc-obj-c++-shared/TestsuiteObject.m"
  #include <stdlib.h>
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm	Sat Oct 27 11:31:06 2012
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-2.mm	Sun Sep 15 02:38:25 2019
***************
*** 8,15 ****
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-ftrack-macro-expansion=0 -mconstant-cfstrings -Wnonportable-cfstrings" } */
  
! #import <Foundation/NSString.h>
! #import <CoreFoundation/CFString.h>
  
  #ifndef __CONSTANT_CFSTRINGS__
  #error The -fconstant-cfstrings option is not functioning properly
--- 8,15 ----
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-ftrack-macro-expansion=0 -mconstant-cfstrings -Wnonportable-cfstrings" } */
  
! #include "../../objc-obj-c++-shared/F-NSString.h"
! #include "../../objc-obj-c++-shared/CF-CFString.h"
  
  #ifndef __CONSTANT_CFSTRINGS__
  #error The -fconstant-cfstrings option is not functioning properly
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/strings/const-cfstring-5.mm	Sun Sep 15 02:38:25 2019
***************
*** 6,12 ****
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mconstant-cfstrings" } */
  
! #include <Foundation/NSObject.h>
  
  @interface Foo: NSObject {
    char *cString;
--- 6,12 ----
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mconstant-cfstrings" } */
  
! #include "../../objc-obj-c++-shared/F-NSObject.h"
  
  @interface Foo: NSObject {
    char *cString;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/strings/const-str-12.mm	Sun Sep 15 02:38:25 2019
***************
*** 6,12 ****
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
  
  #ifdef __NEXT_RUNTIME__
! #include <Foundation/NSObject.h>
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
--- 6,12 ----
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
  
  #ifdef __NEXT_RUNTIME__
! #include "../../objc-obj-c++-shared/F-NSObject.h"
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/stubify-1.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/stubify-1.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/stubify-1.mm	Tue Apr 27 00:08:28 2010
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/stubify-1.mm	Fri Nov  1 20:30:26 2019
***************
*** 4,16 ****
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-Os -mdynamic-no-pic -fno-exceptions -mmacosx-version-min=10.4" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
  
  extern "C" {
!   extern id objc_msgSend(id self, char * op, ...);
    extern int bogonic (int, int, int);
  }
  
--- 4,16 ----
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-Os -mdynamic-no-pic -fno-exceptions -mmacosx-version-min=10.4 -msymbol-stubs" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
  
  extern "C" {
!   extern id objc_msgSend(id self, objc_selector* op, ...);
    extern int bogonic (int, int, int);
  }
  
*************** extern "C" {
*** 20,28 ****
  - (Document *) close;
  @end
  @implementation Document
! - (Document *) class { }
! - (Document *) close { }
! - (Document *) window { }
  - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
    [[self window] close];
    ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
--- 20,28 ----
  - (Document *) close;
  @end
  @implementation Document
! - (Document *) class { return (Document *)0; }
! - (Document *) close { return (Document *)0; }
! - (Document *) window { return (Document *)0; }
  - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
    [[self window] close];
    ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/stubify-2.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/stubify-2.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/stubify-2.mm	Tue Apr 27 00:08:28 2010
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/stubify-2.mm	Fri Nov  1 20:30:26 2019
***************
*** 4,10 ****
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
--- 4,10 ----
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4 -msymbol-stubs" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
*************** extern int bogonic (int, int, int) ;
*** 16,24 ****
  - (Document *) close;
  @end
  @implementation Document
! - (Document *) class { }
! - (Document *) close { }
! - (Document *) window { }
  - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
    [[self window] close];
    ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
--- 16,24 ----
  - (Document *) close;
  @end
  @implementation Document
! - (Document *) class { return (Document *)0; }
! - (Document *) close { return (Document *)0; }
! - (Document *) window { return (Document *)0; }
  - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
    [[self window] close];
    ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/syntax-error-1.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/syntax-error-1.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/syntax-error-1.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/syntax-error-1.mm	Sun Sep 15 02:48:44 2019
***************
*** 1,8 ****
  /* Graceful handling of a syntax error.  */
  /* { dg-do compile } */
  
  #ifdef __NEXT_RUNTIME__
! #include <Foundation/NSObject.h>
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
--- 1,10 ----
  /* Graceful handling of a syntax error.  */
  /* { dg-do compile } */
+ /* Suppress warnings that the GNUStep headers introduce.  */
+ /* { dg-additional-options "-std=gnu++11 -Wno-expansion-to-defined -Wno-variadic-macros" { target *-*-darwin* } } */
  
  #ifdef __NEXT_RUNTIME__
! #include "../objc-obj-c++-shared/F-NSObject.h"
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
*************** extern void NXLog(const char *, ...);
*** 29,32 ****
  } /* { dg-error "stray .\}. between Objective\\-C\\+\\+ methods" } */
  @end
  
! /* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 28 } */
--- 31,34 ----
  } /* { dg-error "stray .\}. between Objective\\-C\\+\\+ methods" } */
  @end
  
! /* { dg-error "expected constructor, destructor, or type conversion before" "" { target *-*-* } 30 } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm	Sat Nov  6 10:48:18 2010
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-1.mm	Sun Sep 15 02:38:25 2019
***************
*** 13,20 ****
     well, we don't implement writable ones at this juncture.  */
  /* { dg-options "-mconstant-cfstrings -framework Cocoa -Wl,-w" { target *-*-darwin[123]* } } */
  
! #import <Foundation/NSString.h>
! #import <CoreFoundation/CFString.h>
  #include <stdlib.h>
  
  void printOut(NSString *str) {
--- 13,20 ----
     well, we don't implement writable ones at this juncture.  */
  /* { dg-options "-mconstant-cfstrings -framework Cocoa -Wl,-w" { target *-*-darwin[123]* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSString.h"
! #include "../../../objc-obj-c++-shared/CF-CFString.h"
  #include <stdlib.h>
  
  void printOut(NSString *str) {
*************** int main(void) {
*** 47,56 ****
    checkNSRange([@"Hello World" rangeOfString:(id)CFSTR("World")]);
    checkNSRange([(id)CFSTR("Hello World") rangeOfString:(id)CFSTR("World")]);
  
!   checkCFRange(CFStringFind((CFStringRef)@"Hello World", (CFStringRef)@"World", 0));
!   checkCFRange(CFStringFind(CFSTR("Hello World"), (CFStringRef)@"World", 0));
!   checkCFRange(CFStringFind((CFStringRef)@"Hello World", CFSTR("World"), 0));
!   checkCFRange(CFStringFind(CFSTR("Hello World"), CFSTR("World"), 0));
  
    /* Check for string uniquing.  */
    if (s0a != s0b || s0a != s2 || s1 != (id)s2) {
--- 47,56 ----
    checkNSRange([@"Hello World" rangeOfString:(id)CFSTR("World")]);
    checkNSRange([(id)CFSTR("Hello World") rangeOfString:(id)CFSTR("World")]);
  
!   checkCFRange(CFStringFind((CFStringRef)@"Hello World", (CFStringRef)@"World", (CFStringCompareFlags)0));
!   checkCFRange(CFStringFind(CFSTR("Hello World"), (CFStringRef)@"World", (CFStringCompareFlags)0));
!   checkCFRange(CFStringFind((CFStringRef)@"Hello World", CFSTR("World"), (CFStringCompareFlags)0));
!   checkCFRange(CFStringFind(CFSTR("Hello World"), CFSTR("World"), (CFStringCompareFlags)0));
  
    /* Check for string uniquing.  */
    if (s0a != s0b || s0a != s2 || s1 != (id)s2) {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm	Sun Sep 15 02:38:25 2019
***************
*** 6,12 ****
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include <Foundation/NSObject.h>
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSString: NSObject
--- 6,12 ----
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSObject.h"
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSString: NSObject
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm	Sun Sep 15 02:38:25 2019
***************
*** 7,13 ****
  /* { dg-options "-fconstant-string-class=XStr" } */
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
  
! #include <Foundation/NSObject.h>
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface XString: NSObject {
--- 7,13 ----
  /* { dg-options "-fconstant-string-class=XStr" } */
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSObject.h"
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface XString: NSObject {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm	Sun Sep 15 02:38:25 2019
***************
*** 5,11 ****
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include <Foundation/NSObject.h>
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSConstantString: NSObject {
--- 5,11 ----
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSObject.h"
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSConstantString: NSObject {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/try-catch-1.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/try-catch-1.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/try-catch-1.mm	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/try-catch-1.mm	Sun Sep 15 02:38:25 2019
*************** int foo()
*** 39,42 ****
--- 39,43 ----
    @finally {
      printf("In @finally block (%d)... ", exc_control);
    }
+   return -1;
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/obj-c++.dg/try-catch-3.mm gcc-7.5.0/gcc/testsuite/obj-c++.dg/try-catch-3.mm
*** gcc-7.4.0/gcc/testsuite/obj-c++.dg/try-catch-3.mm	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/obj-c++.dg/try-catch-3.mm	Sun Sep 15 02:38:25 2019
*************** const char *foo(void)
*** 15,18 ****
--- 15,19 ----
    @catch (TestsuiteObject* theException) {
      return [theException name];
    }
+   return (const char *)0;
  }
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/CF-CFString.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/CF-CFString.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/CF-CFString.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/CF-CFString.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,33 ----
+ /* Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _OBJC_CF_CFSTRING_H_
+ #define _OBJC_CF_CFSTRING_H_
+ 
+ /* This is a workaround to PR90709 for the NeXT runtime.
+    If we're on a system version that has headers with items we can't
+    consume, then use the GNUStep header instead.
+ */
+ 
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+ #  import "GNUStep/CoreFoundation/CFString.h"
+ #else 
+ #  import <CoreFoundation/CFString.h>
+ #endif
+ 
+ #endif /* _OBJC_CF_CFSTRING_H_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSArray.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSArray.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSArray.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSArray.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,33 ----
+ /* Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _OBJC_F_NSARRAY_H_
+ #define _OBJC_F_NSARRAY_H_
+ 
+ /* This is a workaround to PR90709 for the NeXT runtime.
+    If we're on a system version that has headers with items we can't
+    consume, then use the GNUStep header instead.
+ */
+ 
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+ #  import "GNUStep/Foundation/NSArray.h"
+ #else 
+ #  import <Foundation/NSArray.h>
+ #endif
+ 
+ #endif /* _OBJC_F_NSARRAY_H_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSAutoreleasePool.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSAutoreleasePool.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSAutoreleasePool.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSAutoreleasePool.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,33 ----
+ /* Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _OBJC_F_NSAUTORELEASEPOOL_H_
+ #define _OBJC_F_NSAUTORELEASEPOOL_H_
+ 
+ /* This is a workaround to PR90709 for the NeXT runtime.
+    If we're on a system version that has headers with items we can't
+    consume, then use the GNUStep header instead.
+ */
+ 
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+ #  import "GNUStep/Foundation/NSAutoreleasePool.h"
+ #else 
+ #  import <Foundation/NSAutoreleasePool.h>
+ #endif
+ 
+ #endif /* _OBJC_F_NSAUTORELEASEPOOL_H_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSObject.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSObject.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSObject.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSObject.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,33 ----
+ /* Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _OBJC_F_NSOBJECT_H_
+ #define _OBJC_F_NSOBJECT_H_
+ 
+ /* This is a workaround to PR90709 for the NeXT runtime.
+    If we're on a system version that has headers with items we can't
+    consume, then use the GNUStep header instead.
+ */
+ 
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+ #  import "GNUStep/Foundation/NSObject.h"
+ #else 
+ #  import <Foundation/NSObject.h>
+ #endif
+ 
+ #endif /* _OBJC_F_NSOBJECT_H_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSString.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSString.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSString.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSString.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,33 ----
+ /* Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _OBJC_F_NSSTRING_H_
+ #define _OBJC_F_NSSTRING_H_
+ 
+ /* This is a workaround to PR90709 for the NeXT runtime.
+    If we're on a system version that has headers with items we can't
+    consume, then use the GNUStep header instead.
+ */
+ 
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+ #  import "GNUStep/Foundation/NSString.h"
+ #else 
+ #  import <Foundation/NSString.h>
+ #endif
+ 
+ #endif /* _OBJC_F_NSSTRING_H_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSValue.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSValue.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/F-NSValue.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/F-NSValue.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,33 ----
+ /* Copyright (C) 2019 Free Software Foundation, Inc.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+ 
+ GCC is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING3.  If not see
+ <http://www.gnu.org/licenses/>.  */
+ 
+ #ifndef _OBJC_F_NSSTRING_H_
+ #define _OBJC_F_NSSTRING_H_
+ 
+ /* This is a workaround to PR90709 for the NeXT runtime.
+    If we're on a system version that has headers with items we can't
+    consume, then use the GNUStep header instead.
+ */
+ 
+ #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090
+ #  import "GNUStep/Foundation/NSValue.h"
+ #else 
+ #  import <Foundation/NSValue.h>
+ #endif
+ 
+ #endif /* _OBJC_F_NSSTRING_H_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFArray.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,191 ----
+ /* CFArray.h
+    
+    Copyright (C) 2010 Free Software Foundation, Inc.
+    
+    Written by: Stefan Bidigaray
+    Date: January, 2010
+    
+    This file is part of CoreBase.
+    
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ 
+ #ifndef __COREFOUNDATION_CFARRAY_H__
+ #define __COREFOUNDATION_CFARRAY_H__
+ 
+ #include "CFBase.h"
+ 
+ CF_EXTERN_C_BEGIN
+ /** \ingroup CFArrayRef
+     \brief Reference to an immutable array object.
+  */
+ typedef const struct __CFArray *CFArrayRef;
+ /**
+     \ingroup CFMutableArrayRef
+     \brief Reference to a mutable array object.
+  */
+ typedef struct __CFArray *CFMutableArrayRef;
+ 
+ /** \defgroup CFArrayRef CFArray Reference
+     \brief A CFArray and its mutable type, \ref CFMutableArrayRef
+       "CFMutableArray", are simple, low overhead, ordered containers for
+       objects.
+     \details
+       <code>\#include <CoreFoundation/CFArray.h></code>
+     \{
+  */
+ 
+ /** \name Callbacks
+     \{
+  */
+ typedef void (*CFArrayApplierFunction) (const void *value, void *context);
+ typedef CFStringRef (*CFArrayCopyDescriptionCallBack) (const void *value);
+ typedef void (*CFArrayReleaseCallBack) (CFAllocatorRef allocator,
+                                         const void *value);
+ typedef const void *(*CFArrayRetainCallBack) (CFAllocatorRef allocator,
+                                               const void *value);
+ typedef Boolean (*CFArrayEqualCallBack) (const void *value1,
+                                          const void *value2);
+ /** \} */
+ 
+ /** \brief Structure with CFArray callbacks.
+  */
+ typedef struct _CFArrayCallBacks CFArrayCallBacks;
+ struct _CFArrayCallBacks
+ {
+   CFIndex version; /**< Structure's version number.  Current version is 0. */
+   CFArrayRetainCallBack retain;
+     /**< The callback used to retain values added to the array.  If NULL,
+ 	 values are not retained. */
+   CFArrayReleaseCallBack release;
+   CFArrayCopyDescriptionCallBack copyDescription;
+   CFArrayEqualCallBack equal;
+ };
+ 
+ /** \name Predefined Callback Structures
+     \{
+  */
+ CF_EXPORT const CFArrayCallBacks kCFTypeArrayCallBacks;
+ /** \} */
+ 
+ 
+ 
+ /** \name Creating an Array
+     \{
+  */
+ CF_EXPORT CFArrayRef
+ CFArrayCreate (CFAllocatorRef allocator, const void **values,
+                CFIndex numValues, const CFArrayCallBacks * callBacks);
+ 
+ CF_EXPORT CFArrayRef
+ CFArrayCreateCopy (CFAllocatorRef allocator, CFArrayRef theArray);
+ /** \} */
+ 
+ /** \name Examining an Array
+     \{
+  */
+ CF_EXPORT CFIndex
+ CFArrayBSearchValues (CFArrayRef theArray, CFRange range, const void *value,
+                       CFComparatorFunction comparator, void *context);
+ 
+ CF_EXPORT Boolean
+ CFArrayContainsValue (CFArrayRef theArray, CFRange range, const void *value);
+ 
+ CF_EXPORT CFIndex CFArrayGetCount (CFArrayRef theArray);
+ 
+ CF_EXPORT CFIndex
+ CFArrayGetCountOfValue (CFArrayRef theArray, CFRange range, const void *value);
+ 
+ CF_EXPORT CFIndex
+ CFArrayGetFirstIndexOfValue (CFArrayRef theArray, CFRange range,
+                              const void *value);
+ 
+ CF_EXPORT CFIndex
+ CFArrayGetLastIndexOfValue (CFArrayRef theArray, CFRange range,
+                             const void *value);
+ 
+ CF_EXPORT void
+ CFArrayGetValues (CFArrayRef theArray, CFRange range, const void **values);
+ 
+ CF_EXPORT const void *CFArrayGetValueAtIndex (CFArrayRef theArray, CFIndex idx);
+ /** \} */
+ 
+ /** \name Applying a Function to Elements
+     \{
+  */
+ CF_EXPORT void
+ CFArrayApplyFunction (CFArrayRef theArray, CFRange range,
+                       CFArrayApplierFunction applier, void *context);
+ /** \} */
+ 
+ /** \name Getting the CFArray Type ID
+     \{
+  */
+ CF_EXPORT CFTypeID CFArrayGetTypeID (void);
+ /** \} */
+ 
+ /** \} */
+ 
+ /** \defgroup CFMutableArrayRef CFMutableArray Reference
+     \details <code>\#include <CoreFoundation/CFArray.h></code>
+     \{
+  */
+ CF_EXPORT void
+ CFArrayAppendArray (CFMutableArrayRef theArray, CFArrayRef otherArray,
+                     CFRange otherRange);
+ 
+ CF_EXPORT void
+ CFArrayAppendValue (CFMutableArrayRef theArray, const void *value);
+ 
+ CF_EXPORT CFMutableArrayRef
+ CFArrayCreateMutable (CFAllocatorRef allocator, CFIndex capacity,
+                       const CFArrayCallBacks * callBacks);
+ 
+ CF_EXPORT CFMutableArrayRef
+ CFArrayCreateMutableCopy (CFAllocatorRef allocator, CFIndex capacity,
+                           CFArrayRef theArray);
+ 
+ CF_EXPORT void
+ CFArrayExchangeValuesAtIndices (CFMutableArrayRef theArray, CFIndex idx1,
+                                 CFIndex idx2);
+ 
+ CF_EXPORT void
+ CFArrayInsertValueAtIndex (CFMutableArrayRef theArray, CFIndex idx,
+                            const void *value);
+ 
+ CF_EXPORT void CFArrayRemoveAllValues (CFMutableArrayRef theArray);
+ 
+ CF_EXPORT void
+ CFArrayRemoveValueAtIndex (CFMutableArrayRef theArray, CFIndex idx);
+ 
+ CF_EXPORT void
+ CFArrayReplaceValues (CFMutableArrayRef theArray, CFRange range,
+                       const void **newValues, CFIndex newCount);
+ 
+ CF_EXPORT void
+ CFArraySetValueAtIndex (CFMutableArrayRef theArray, CFIndex idx,
+                         const void *value);
+ 
+ CF_EXPORT void
+ CFArraySortValues (CFMutableArrayRef theArray, CFRange range,
+                    CFComparatorFunction comparator, void *context);
+ 
+ /** \} */
+ 
+ CF_EXTERN_C_END
+ #endif /* __COREFOUNDATION_CFARRAY_H__ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFAvailability.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,52 ----
+ /* CFAvailability.h
+    
+    Copyright (C) 2017 Free Software Foundation, Inc.
+    
+    Written by: Stefan Bidigaray
+    Date: August, 2017
+    
+    This file is part of the GNUstep CoreBase Library.
+    
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ 
+ #ifndef __COREFOUNDATION_CFAVAILABILITY_H__
+ #define __COREFOUNDATION_CFAVAILABILITY_H__
+ 
+ /* Compiler features */
+ #ifndef __has_feature
+ #define __has_feature(x) 0
+ #endif
+ #ifndef __has_attribute
+ #define __has_attribute(x) 0
+ #endif
+ #ifndef __has_extension
+ #define __has_extension(x) __has_feature
+ #endif
+ 
+ /* CFEnum macro for type definitions */
+ #if (__cplusplus && __cplusplus >= 201103L)
+ #define CF_ENUM(_type, _name) _type _name; enum : _type
+ #define CF_OPTIONS(_type, _name) _type _name; enum : _type
+ #else
+ #define CF_ENUM(_type, _name) _type _name; enum
+ #define CF_OPTIONS(_type, _name) _type _name; enum
+ #endif
+ 
+ #endif /* __COREFOUNDATION_CFAVAILABILITY_H__ */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFBase.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,464 ----
+ /* CFBase.h
+    
+    Copyright (C) 2010 Free Software Foundation, Inc.
+    
+    Written by: Stefan Bidigaray
+    Date: January, 2010
+    
+    This file is part of the GNUstep CoreBase Library.
+    
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ 
+ #ifndef __COREFOUNDATION_CFBASE_H__
+ #define __COREFOUNDATION_CFBASE_H__
+ 
+ /* CoreFoundation defines __LITTLE_ENDIAN__ or __BIG_ENDIAN__ so we'll
+  * do the same here for compatibility.
+  */
+ #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
+ #define __LITTLE_ENDIAN__ 1
+ #endif
+ 
+ #include "CFAvailability.h"
+ #include "../GNUstepBase/GSVersionMacros.h"
+ 
+ /*
+  * CoreFoundation types
+  */
+ typedef unsigned char Boolean;
+ typedef unsigned char UInt8;
+ typedef signed char SInt8;
+ typedef unsigned short UInt16;
+ typedef signed short SInt16;
+ typedef unsigned int UInt32;
+ typedef signed int SInt32;
+ typedef unsigned long long UInt64;
+ typedef signed long long SInt64;
+ typedef SInt32 OSStatus;
+ 
+ typedef float Float32;
+ typedef double Float64;
+ typedef UInt16 UniChar;
+ typedef UInt8 *StringPtr;
+ typedef const StringPtr *ConstStringPtr;
+ typedef UInt8 Str255[256];
+ typedef const Str255 *ConstStr255Param;
+ typedef SInt16 OSErr;
+ typedef SInt16 RegionCode;
+ typedef SInt16 LangCode;
+ typedef SInt16 ScriptCode;
+ typedef UInt32 FourCharCode;
+ #ifndef OSTYPE_DECLARED
+ typedef FourCharCode OSType;
+ #define OSTYPE_DECLARED
+ #endif
+ typedef UInt8 Byte;
+ typedef SInt8 SignedByte;
+ 
+ #ifndef UTF32Char               /* UTF32Char is also defined in GSConfig.h */
+ typedef UInt32 UTF32Char;
+ #endif
+ typedef UInt16 UTF16Char;
+ typedef UInt8 UTF8Char;
+ 
+ #if !defined(CF_EXTERN_C_BEGIN)
+ #if defined(__cplusplus)
+ #define CF_EXTERN_C_BEGIN extern "C" {
+ #define CF_EXTERN_C_END }
+ #else
+ #define CF_EXTERN_C_BEGIN
+ #define CF_EXTERN_C_END
+ #endif
+ #endif
+ 
+ #if defined(_WIN32)
+ #if defined(BUILDING_SELF)
+ #if defined(__cplusplus)
+ #define CF_EXPORT extern "C" __declspec(dllexport)
+ #else
+ #define CF_EXPORT extern __declspec(dllexport)
+ #endif
+ #else
+ #if defined(__cplusplus)
+ #define CF_EXPORT extern "C" __declspec(dllimport)
+ #else
+ #define CF_EXPORT extern __declspec(dllimport)
+ #endif
+ #endif
+ #else
+ #if defined(__cplusplus)
+ #define CF_EXPORT extern "C"
+ #else
+ #define CF_EXPORT extern
+ #endif
+ #endif
+ 
+ #if !defined(__bool_true_false_are_defined)
+ #define true 1
+ #define false 0
+ #endif
+ 
+ #ifndef TRUE
+ #define TRUE  1
+ #endif
+ #ifndef FALSE
+ #define FALSE 0
+ #endif
+ 
+ #if !defined(CF_INLINE)
+ #if defined(__GNUC__) && (__GNUC__ >= 4)
+ #define CF_INLINE static __inline__ __attribute__((always_inline))
+ #elif defined(__GNUC__)
+ #define CF_INLINE static __inline__
+ #elif defined(__MWERKS__) || defined(__cplusplus)
+ #define CF_INLINE static inline
+ #elif defined(_MSC_VER)
+ #define CF_INLINE static __inline
+ #elif _WIN32
+ #define CF_INLINE static __inline__
+ #else
+ #define CF_INLINE static inline
+ #endif
+ #endif
+ 
+ #if defined(__GNUC__) || defined(__llvm__)
+ #define GS_PURE_FUNCTION __attribute__((pure))
+ #else
+ #define GS_PURE_FUNCTION
+ #endif
+ 
+ CF_EXTERN_C_BEGIN
+ /** \defgroup CFTypeRef CFType Reference
+     \{
+  */
+ typedef unsigned long CFTypeID;
+ typedef const void *CFTypeRef;
+ /** @}
+  */
+ 
+ /** \defgroup BaseUtils Base Utilities
+     \{
+  */
+ /** An integer value to store a hash code. */
+ typedef unsigned long CFHashCode;
+ /** A bitfield for passing information to functions.  Can hold as many bits
+     as a word.
+  */
+ typedef unsigned long CFOptionFlags;
+ /** A signed integer representing an index, size, length or count. */
+ typedef signed long CFIndex;
+ 
+ /** A structure that represents a range of items in a container, such as
+     an array.
+  */
+ typedef struct CFRange CFRange;
+ struct CFRange
+ {
+   CFIndex location;
+     /**< An integer representing the start location of the range, inclusive. */
+   CFIndex length;
+     /**< An integer representing the total number of items in the range */
+ };
+ 
+ /** Creates a CFRange structure.
+     \param location The starting location.
+     \param length The length.
+     \return An initialized CFRange structure.
+  */
+ CF_INLINE CFRange
+ CFRangeMake (CFIndex location, CFIndex length)
+ {
+   CFRange range;
+ 
+   range.location = location;
+   range.length = length;
+   return range;
+ }
+ 
+ /* Returned by comparison functions */
+ typedef enum
+ {
+   kCFCompareLessThan = -1,
+   kCFCompareEqualTo = 0,
+   kCFCompareGreaterThan = 1
+ } CFComparisonResult;
+ 
+ /* Return when a value is not found */
+ enum
+ {
+   kCFNotFound = -1
+ };
+ 
+ /* Definition for standard comparison function callback. */
+ typedef CFComparisonResult (*CFComparatorFunction) (const void *val1,
+                                                     const void *val2,
+                                                     void *context);
+ 
+ /* CoreFoundation version numbers */
+ /** \name Library Version Numbers
+     \{
+  */
+ CF_EXPORT const double kCFCoreFoundationVersionNumber;
+ #define kCFCoreFoundationVersionNumber10_0    196.40
+ #define kCFCoreFoundationVersionNumber10_0_3  196.50
+ #define kCFCoreFoundationVersionNumber10_1    226.00
+ #define kCFCoreFoundationVersionNumber10_1_1  226.00
+ #define kCFCoreFoundationVersionNumber10_1_2  227.20
+ #define kCFCoreFoundationVersionNumber10_1_3  227.20
+ #define kCFCoreFoundationVersionNumber10_1_4  227.30
+ #define kCFCoreFoundationVersionNumber10_2    263.00
+ #define kCFCoreFoundationVersionNumber10_2_1  263.10
+ #define kCFCoreFoundationVersionNumber10_2_2  263.10
+ #define kCFCoreFoundationVersionNumber10_2_3  263.30
+ #define kCFCoreFoundationVersionNumber10_2_4  263.30
+ #define kCFCoreFoundationVersionNumber10_2_5  263.50
+ #define kCFCoreFoundationVersionNumber10_2_6  263.50
+ #define kCFCoreFoundationVersionNumber10_2_7  263.50
+ #define kCFCoreFoundationVersionNumber10_2_8  263.50
+ #define kCFCoreFoundationVersionNumber10_3    299.00
+ #define kCFCoreFoundationVersionNumber10_3_1  299.00
+ #define kCFCoreFoundationVersionNumber10_3_2  299.00
+ #define kCFCoreFoundationVersionNumber10_3_3  299.30
+ #define kCFCoreFoundationVersionNumber10_3_4  299.31
+ #define kCFCoreFoundationVersionNumber10_3_5  299.31
+ #define kCFCoreFoundationVersionNumber10_3_6  299.32
+ #define kCFCoreFoundationVersionNumber10_3_7  299.33
+ #define kCFCoreFoundationVersionNumber10_3_8  299.33
+ #define kCFCoreFoundationVersionNumber10_3_9  299.35
+ #define kCFCoreFoundationVersionNumber10_4    368.00
+ #define kCFCoreFoundationVersionNumber10_4_1  368.10
+ #define kCFCoreFoundationVersionNumber10_4_2  368.11
+ #define kCFCoreFoundationVersionNumber10_4_3  368.18
+ #define kCFCoreFoundationVersionNumber10_4_4_Intel   368.26
+ #define kCFCoreFoundationVersionNumber10_4_4_PowerPC 368.25
+ #define kCFCoreFoundationVersionNumber10_4_5_Intel   368.26
+ #define kCFCoreFoundationVersionNumber10_4_5_PowerPC 368.25
+ #define kCFCoreFoundationVersionNumber10_4_6_Intel   368.26
+ #define kCFCoreFoundationVersionNumber10_4_6_PowerPC 368.25
+ #define kCFCoreFoundationVersionNumber10_4_7  368.27
+ #define kCFCoreFoundationVersionNumber10_4_8  368.27
+ #define kCFCoreFoundationVersionNumber10_4_9  368.28
+ #define kCFCoreFoundationVersionNumber10_4_10 368.28
+ #define kCFCoreFoundationVersionNumber10_4_11 368.31
+ #define kCFCoreFoundationVersionNumber10_5    476.00
+ #define kCFCoreFoundationVersionNumber10_5_1  476.00
+ #define kCFCoreFoundationVersionNumber10_5_2  476.10
+ #define kCFCoreFoundationVersionNumber10_5_3  476.13
+ #define kCFCoreFoundationVersionNumber10_5_4  476.14
+ #define kCFCoreFoundationVersionNumber10_5_5  476.15
+ #define kCFCoreFoundationVersionNumber10_5_6  476.17
+ /** \} */
+ /** \} */
+ 
+ #if __has_feature(attribute_cf_returns_retained)
+ #define CF_RETURNS_RETAINED __attribute__((cf_returns_retained))
+ #else
+ #define CF_RETURNS_RETAINED
+ #endif
+ 
+ #if __has_feature(attribute_cf_returns_not_retained)
+ #define CF_RETURNS_NOT_RETAINED __attribute__((cf_returns_not_retained))
+ #else
+ #define CF_RETURNS_NOT_RETAINED
+ #endif
+ 
+ /** \ingroup CFPropertyListRef
+  */
+ typedef CFTypeRef CFPropertyListRef;
+ 
+ /** \ingroup CFStringRef
+  */
+ typedef const struct __CFString *CFStringRef;
+ /** \ingroup CFMutableStringRef
+  */
+ typedef struct __CFString *CFMutableStringRef;
+ 
+ 
+ 
+ /** \defgroup CFAllocatorRef CFAllocator Reference
+     \brief CFAllocator is an opaque type used to allocate and deallocate
+     memory.
+     \{
+  */
+ /** \brief A reference to a CFAllocator object.
+  */
+ typedef const struct __CFAllocator *CFAllocatorRef;
+ 
+ typedef void *(*CFAllocatorAllocateCallBack) (CFIndex allocSize,
+                                               CFOptionFlags hint, void *info);
+ typedef void (*CFAllocatorDeallocateCallBack) (void *ptr, void *info);
+ typedef void *(*CFAllocatorReallocateCallBack) (void *ptr,
+                                                 CFIndex newsize,
+                                                 CFOptionFlags hint, void *info);
+ typedef CFIndex (*CFAllocatorPreferredSizeCallBack) (CFIndex size,
+                                                      CFOptionFlags hint,
+                                                      void *info);
+ typedef const void *(*CFAllocatorRetainCallBack) (const void *info);
+ typedef void (*CFAllocatorReleaseCallBack) (const void *info);
+ typedef CFStringRef (*CFAllocatorCopyDescriptionCallBack) (const void *info);
+ 
+ struct _CFAllocatorContext
+ {
+   CFIndex version;
+   void *info;
+   CFAllocatorRetainCallBack retain;
+   CFAllocatorReleaseCallBack release;
+   CFAllocatorCopyDescriptionCallBack copyDescription;
+   CFAllocatorAllocateCallBack allocate;
+   CFAllocatorReallocateCallBack reallocate;
+   CFAllocatorDeallocateCallBack deallocate;
+   CFAllocatorPreferredSizeCallBack preferredSize;
+ };
+ typedef struct _CFAllocatorContext CFAllocatorContext;
+ 
+ /** The default allocator and is equivalent to NULL.
+     \see CFAllocatorGetDefault()
+     \see CFAllocatorSetDefault()
+  */
+ CF_EXPORT CFAllocatorRef kCFAllocatorDefault;
+ /** The default system allocator is used internally by GNUstep and is the
+     default allocator if none is been defined.
+     \see CFAllocatorSetDefault()
+  */
+ CF_EXPORT CFAllocatorRef kCFAllocatorSystemDefault;
+ /** An allocator that uses the system's malloc, realloc and free functions.
+  */
+ CF_EXPORT CFAllocatorRef kCFAllocatorMalloc;
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ /** Equivalent to kCFAllocatorSystemDefault
+  */
+ CF_EXPORT CFAllocatorRef kCFAllocatorMallocZone;
+ #endif
+ /** The NULL allocator does perform any operations.  Can be passed as
+     a deallocator if you do not want GNUstep to deallocate the data.
+  */
+ CF_EXPORT CFAllocatorRef kCFAllocatorNull;
+ /** This is a special case allocator directing CFAllocatorCreate() to use
+     the given CFAllocatorContext structure to allocate the new allocator.
+  */
+ CF_EXPORT CFAllocatorRef kCFAllocatorUseContext;
+ 
+ /** Create a new CFAllocator.
+     \param allocator The allocator used to create this allocator or
+       kCFAllocatorUseContext to use the functions in \b context.
+     \param context The new allocator's context functions.
+     \return A new CFAllocator or NULL in case of failure.
+     \see CFAllocatorContext
+  */
+ CF_EXPORT CFAllocatorRef
+ CFAllocatorCreate (CFAllocatorRef allocator, CFAllocatorContext * context);
+ 
+ /** Allocate new memory.
+     \param allocator The CFAllocator to use.
+     \param size The number of bytes to allocate.
+     \param hint Option flags.  Currently unused and should be 0.
+     \return Newly allocated memory of NULL in case of failure.
+     \see CFAllocatorDeallocate()
+  */
+ CF_EXPORT void *CFAllocatorAllocate (CFAllocatorRef allocator, CFIndex size,
+                                      CFOptionFlags hint);
+ 
+ /** Deallocate the memory pointed to by \b ptr.
+     \param allocator The CFAllocator to use.
+     \param ptr A pointer previously allocated by CFAllocatorAllocate().
+     \see CFAllocatorAllocate()
+  */
+ CF_EXPORT void CFAllocatorDeallocate (CFAllocatorRef allocator, void *ptr);
+ 
+ CF_EXPORT CFIndex
+ CFAllocatorGetPreferredSizeForSize (CFAllocatorRef allocator, CFIndex size,
+                                     CFOptionFlags hint);
+ 
+ CF_EXPORT void *CFAllocatorReallocate (CFAllocatorRef allocator, void *ptr,
+                                        CFIndex newsize, CFOptionFlags hint);
+ 
+ CF_EXPORT CFAllocatorRef CFAllocatorGetDefault (void);
+ 
+ CF_EXPORT void CFAllocatorSetDefault (CFAllocatorRef allocator);
+ 
+ CF_EXPORT void
+ CFAllocatorGetContext (CFAllocatorRef allocator, CFAllocatorContext * context);
+ 
+ CF_EXPORT CFTypeID CFAllocatorGetTypeID (void);
+ /** \} */
+ 
+ 
+ 
+ /** \ingroup CFTypeRef
+     \{
+  */
+ /* These function will be implemented in CFRuntime.c since they 
+    require runtime support. */
+ CF_EXPORT CFStringRef CFCopyDescription (CFTypeRef cf);
+ 
+ CF_EXPORT CFStringRef CFCopyTypeIDDescription (CFTypeID typeID);
+ 
+ CF_EXPORT Boolean CFEqual (CFTypeRef cf1, CFTypeRef cf2);
+ 
+ CF_EXPORT CFAllocatorRef CFGetAllocator (CFTypeRef cf);
+ 
+ CF_EXPORT CFIndex CFGetRetainCount (CFTypeRef cf);
+ 
+ CF_EXPORT CFTypeID CFGetTypeID (CFTypeRef cf);
+ 
+ CF_EXPORT CFHashCode CFHash (CFTypeRef cf);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT CFTypeRef CFMakeCollectable (CFTypeRef cf);
+ #endif
+ 
+ CF_EXPORT void CFRelease (CFTypeRef cf);
+ 
+ CF_EXPORT CFTypeRef CFRetain (CFTypeRef cf);
+ 
+ CF_EXPORT CFTypeRef CFAutorelease(CFTypeRef arg);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
+ CF_EXPORT void *_CFBridgingRelease (CFTypeRef cf);
+ CF_EXPORT CFTypeRef _CFBridgingRetain (void *obj);
+ 
+ #if __has_feature(objc_arc)
+ #define CFBridgingRetain(x) (__bridge_retained CFTypeRef)(x)
+ #define CFBridgingRelease(x) (__bridge_transfer id)(x)
+ #elif __OBJC__
+ #define CFBridgingRetain(x) _CFBridgingRetain((void *)(x))
+ #define CFBridgingRelease(x) (id)_CFBridgingRelease((x))
+ #else
+ #define CFBridgingRetain(x) _CFBridgingRetain((void *)(x))
+ #define CFBridgingRelease(x) _CFBridgingRelease((x))
+ #endif
+ #endif
+ /** \} */
+ 
+ 
+ 
+ /** \defgroup CFNullRef CFNull Reference
+     \{
+  */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+ typedef struct __CFNull *CFNullRef;
+ 
+ CF_EXPORT CFNullRef kCFNull;
+ 
+ CFTypeID CFNullGetTypeID (void);
+ #endif
+ /** \} */
+ 
+ CF_EXTERN_C_END
+ #endif /* __COREFOUNDATION_CFBASE_H__ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFCharacterSet.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,173 ----
+ /* CFCharacterSet.h
+    
+    Copyright (C) 2012 Free Software Foundation, Inc.
+    
+    Written by: Stefan Bidigaray
+    Date: January, 2012
+    
+    This file is part of the GNUstep CoreBase Library.
+    
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ #ifndef __COREFOUNDATION_CFCHARACTERSET_H__
+ #define __COREFOUNDATION_CFCHARACTERSET_H__
+ 
+ #include "CFBase.h"
+ #include "CFData.h"
+ 
+ CF_EXTERN_C_BEGIN
+ 
+ /** \ingroup CFCharacterSetRef */
+ typedef const struct __CFCharacterSet * CFCharacterSetRef;
+ /** \ingroup CFMutableCharacterSetRef */
+ typedef struct __CFCharacterSet * CFMutableCharacterSetRef;
+ 
+ /** \defgroup CFCharacterSetRef CFCharacterSet Reference
+     \{
+  */
+ typedef enum
+ {
+   kCFCharacterSetControl = 1,
+   kCFCharacterSetWhitespace,
+   kCFCharacterSetWhitespaceAndNewline,
+   kCFCharacterSetDecimalDigit,
+   kCFCharacterSetLetter,
+   kCFCharacterSetLowercaseLetter,
+   kCFCharacterSetUppercaseLetter,
+   kCFCharacterSetNonBase,
+   kCFCharacterSetDecomposable,
+   kCFCharacterSetAlphaNumeric,
+   kCFCharacterSetPunctuation,
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+   kCFCharacterSetCapitalizedLetter = 13,
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
+   kCFCharacterSetSymbol = 14,
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+   kCFCharacterSetNewline = 15,
+ #endif
+   kCFCharacterSetIllegal = 12
+ } CFCharacterSetPredefinedSet;
+ 
+ 
+ 
+ /** \name Creating Character Sets
+     \{
+  */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
+ CF_EXPORT CFCharacterSetRef
+ CFCharacterSetCreateCopy (CFAllocatorRef alloc, CFCharacterSetRef set);
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+ CF_EXPORT CFCharacterSetRef
+ CFCharacterSetCreateInvertedSet (CFAllocatorRef alloc, CFCharacterSetRef set);
+ #endif
+ 
+ CF_EXPORT CFCharacterSetRef
+ CFCharacterSetCreateWithCharactersInRange (CFAllocatorRef alloc,
+   CFRange range);
+ 
+ CF_EXPORT CFCharacterSetRef
+ CFCharacterSetCreateWithCharactersInString (CFAllocatorRef alloc,
+   CFStringRef string);
+ 
+ CF_EXPORT CFCharacterSetRef
+ CFCharacterSetCreateWithBitmapRepresentation (CFAllocatorRef alloc,
+   CFDataRef data);
+ /** \} */
+ 
+ /** \name Getting Predefined Character Sets
+     \{
+  */
+ CF_EXPORT CFCharacterSetRef
+ CFCharacterSetGetPredefined (CFCharacterSetPredefinedSet setIdentifier);
+ /** \} */
+ 
+ /** \name Querying Character Sets
+     \{
+  */
+ CF_EXPORT CFDataRef
+ CFCharacterSetCreateBitmapRepresentation (CFAllocatorRef alloc,
+   CFCharacterSetRef set);
+ 
+ CF_EXPORT Boolean
+ CFCharacterSetIsCharacterMember (CFCharacterSetRef set, UniChar c);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+ CF_EXPORT Boolean
+ CFCharacterSetHasMemberInPlane (CFCharacterSetRef set, CFIndex plane);
+ 
+ CF_EXPORT Boolean
+ CFCharacterSetIsLongCharacterMember (CFCharacterSetRef set, UTF32Char c);
+ 
+ CF_EXPORT Boolean
+ CFCharacterSetIsSupersetOfSet (CFCharacterSetRef set,
+   CFCharacterSetRef otherSet);
+ #endif
+ /** \} */
+ 
+ /** \name Getting the Character Set Type Identifier
+     \{
+  */
+ CF_EXPORT CFTypeID
+ CFCharacterSetGetTypeID (void);
+ /** \} */
+ /** \} */
+ 
+ /** \defgroup CFMutableCharacterSetRef CFMutableCharacterSet Reference
+     \{
+  */
+ CF_EXPORT CFMutableCharacterSetRef
+ CFCharacterSetCreateMutable (CFAllocatorRef alloc);
+ 
+ CF_EXPORT CFMutableCharacterSetRef
+ CFCharacterSetCreateMutableCopy (CFAllocatorRef alloc, CFCharacterSetRef set);
+ 
+ CF_EXPORT void
+ CFCharacterSetAddCharactersInRange (CFMutableCharacterSetRef set,
+   CFRange range);
+ 
+ CF_EXPORT void
+ CFCharacterSetAddCharactersInString (CFMutableCharacterSetRef set,
+   CFStringRef string);
+ 
+ CF_EXPORT void
+ CFCharacterSetRemoveCharactersInRange (CFMutableCharacterSetRef set,
+   CFRange range);
+ 
+ CF_EXPORT void
+ CFCharacterSetRemoveCharactersInString (CFMutableCharacterSetRef set,
+   CFStringRef string);
+ 
+ CF_EXPORT void
+ CFCharacterSetIntersect (CFMutableCharacterSetRef set,
+   CFCharacterSetRef otherSet);
+ 
+ CF_EXPORT void
+ CFCharacterSetInvert (CFMutableCharacterSetRef set);
+ 
+ CF_EXPORT void
+ CFCharacterSetUnion (CFMutableCharacterSetRef set, CFCharacterSetRef otherSet);
+ /** \} */
+ 
+ CF_EXTERN_C_END
+ 
+ #endif /* __COREFOUNDATION_CFCHARACTERSET_H__ */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFData.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,114 ----
+ /* CFData.h
+ 
+    Copyright (C) 2010 Free Software Foundation, Inc.
+ 
+    Written by: Stefan Bidigaray
+    Date: January, 2010
+ 
+    This file is part of CoreBase.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ #ifndef __COREFOUNDATION_CFDATA_H__
+ #define __COREFOUNDATION_CFDATA_H__
+ 
+ #include "CFBase.h"
+ 
+ CF_EXTERN_C_BEGIN
+ /** \ingroup CFDataRef */
+ typedef const struct __CFData *CFDataRef;
+ /** \ingroup CFMutableDataRef */
+ typedef struct __CFData *CFMutableDataRef;
+ 
+ /** \defgroup CFDataRef CFData Reference
+     \{
+  */
+ /** \name Creating a CFData Object
+     \{
+  */
+ CF_EXPORT CFDataRef
+ CFDataCreate (CFAllocatorRef allocator, const UInt8 * bytes, CFIndex length);
+ 
+ CF_EXPORT CFDataRef
+ CFDataCreateCopy (CFAllocatorRef allocator, CFDataRef theData);
+ 
+ CF_EXPORT CFDataRef
+ CFDataCreateWithBytesNoCopy (CFAllocatorRef allocator, const UInt8 * bytes,
+                              CFIndex length, CFAllocatorRef bytesDeallocator);
+ /** \} */
+ 
+ /** \name Examining a CFData Object
+     \{
+  */
+ CF_EXPORT const UInt8 *CFDataGetBytePtr (CFDataRef theData);
+ 
+ CF_EXPORT void
+ CFDataGetBytes (CFDataRef theData, CFRange range, UInt8 * buffer);
+ 
+ CF_EXPORT CFIndex CFDataGetLength (CFDataRef theData);
+ /** \} */
+ 
+ /** \name Getting the CFData Type ID
+     \{
+  */
+ CF_EXPORT CFTypeID CFDataGetTypeID (void);
+ /** \} */
+ /** \} */
+ 
+ /** \defgroup CFMutableDataRef CFMutableData Reference
+     \{
+  */
+ /** \name Creating a Mutable Data Object
+     \{
+  */
+ CF_EXPORT CFMutableDataRef
+ CFDataCreateMutable (CFAllocatorRef allocator, CFIndex capacity);
+ 
+ CF_EXPORT CFMutableDataRef
+ CFDataCreateMutableCopy (CFAllocatorRef allocator, CFIndex capacity,
+                          CFDataRef theData);
+ /** \} */
+ 
+ /** \name Accessing Mutable Data
+     \{
+  */
+ CF_EXPORT UInt8 *CFDataGetMutableBytePtr (CFMutableDataRef theData);
+ /** \} */
+ 
+ /** \name Modifying a Mutable Data Object
+     \{
+  */
+ CF_EXPORT void
+ CFDataAppendBytes (CFMutableDataRef theData, const UInt8 * bytes,
+                    CFIndex length);
+ 
+ CF_EXPORT void CFDataDeleteBytes (CFMutableDataRef theData, CFRange range);
+ 
+ CF_EXPORT void
+ CFDataReplaceBytes (CFMutableDataRef theData, CFRange range,
+                     const UInt8 * newBytes, CFIndex newLength);
+ 
+ CF_EXPORT void
+ CFDataIncreaseLength (CFMutableDataRef theData, CFIndex extraLength);
+ 
+ CF_EXPORT void CFDataSetLength (CFMutableDataRef theData, CFIndex length);
+ /** \} */
+ /** \} */
+ 
+ CF_EXTERN_C_END
+ #endif /* __COREFOUNDATION_CFDATA_H__ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFDictionary.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,174 ----
+ /* CFDictionary.h
+ 
+    Copyright (C) 2010 Free Software Foundation, Inc.
+ 
+    Written by: Stefan Bidigaray
+    Date: January, 2010
+ 
+    This file is part of the GNUstep CoreBase Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ #ifndef __COREFOUNDATION_CFDICTIONARY_H__
+ #define __COREFOUNDATION_CFDICTIONARY_H__ 1
+ 
+ #include "CFBase.h"
+ 
+ CF_EXTERN_C_BEGIN
+ /** \ingroup CFDictionaryRef */
+ typedef const struct __CFDictionary *CFDictionaryRef;
+ /** \ingroup CFMutableDictionaryRef */
+ typedef struct __CFDictionary *CFMutableDictionaryRef;
+ 
+ /** \defgroup CFDictionaryRef CFDictionary Reference
+     \{
+  */
+ typedef void (*CFDictionaryApplierFunction) (const void *key,
+                                              const void *value, void *context);
+ 
+ typedef CFStringRef (*CFDictionaryCopyDescriptionCallBack) (const void *value);
+ typedef Boolean (*CFDictionaryEqualCallBack) (const void *value1,
+                                               const void *value2);
+ typedef CFHashCode (*CFDictionaryHashCallBack) (const void *value);
+ typedef void (*CFDictionaryReleaseCallBack) (CFAllocatorRef allocator,
+                                              const void *value);
+ typedef const void *(*CFDictionaryRetainCallBack) (CFAllocatorRef allocator,
+                                                    const void *value);
+ 
+ typedef struct _CFDictionaryKeyCallBacks CFDictionaryKeyCallBacks;
+ struct _CFDictionaryKeyCallBacks
+ {
+   CFIndex version;
+   CFDictionaryRetainCallBack retain;
+   CFDictionaryReleaseCallBack release;
+   CFDictionaryCopyDescriptionCallBack copyDescription;
+   CFDictionaryEqualCallBack equal;
+   CFDictionaryHashCallBack hash;
+ };
+ 
+ typedef struct _CFDictionaryValueCallBacks CFDictionaryValueCallBacks;
+ struct _CFDictionaryValueCallBacks
+ {
+   CFIndex version;
+   CFDictionaryRetainCallBack retain;
+   CFDictionaryReleaseCallBack release;
+   CFDictionaryCopyDescriptionCallBack copyDescription;
+   CFDictionaryEqualCallBack equal;
+ };
+ 
+ CF_EXPORT const CFDictionaryKeyCallBacks kCFCopyStringDictionaryKeyCallBacks;
+ CF_EXPORT const CFDictionaryKeyCallBacks kCFTypeDictionaryKeyCallBacks;
+ CF_EXPORT const CFDictionaryValueCallBacks kCFTypeDictionaryValueCallBacks;
+ 
+ /** \name Creating a dictionary
+     \{
+  */
+ CF_EXPORT CFDictionaryRef
+ CFDictionaryCreate (CFAllocatorRef allocator, const void **keys,
+                     const void **values, CFIndex numValues,
+                     const CFDictionaryKeyCallBacks * keyCallBacks,
+                     const CFDictionaryValueCallBacks * valueCallBacks);
+ 
+ CF_EXPORT CFDictionaryRef
+ CFDictionaryCreateCopy (CFAllocatorRef allocator, CFDictionaryRef theDict);
+ /** \} */
+ 
+ /** \name Examining a dictionary
+     \{
+  */
+ CF_EXPORT Boolean
+ CFDictionaryContainsKey (CFDictionaryRef theDict, const void *key);
+ 
+ CF_EXPORT Boolean
+ CFDictionaryContainsValue (CFDictionaryRef theDict, const void *value);
+ 
+ CF_EXPORT CFIndex CFDictionaryGetCount (CFDictionaryRef theDict);
+ 
+ CF_EXPORT CFIndex
+ CFDictionaryGetCountOfKey (CFDictionaryRef theDict, const void *key);
+ 
+ CF_EXPORT CFIndex
+ CFDictionaryGetCountOfValue (CFDictionaryRef theDict, const void *value);
+ 
+ CF_EXPORT void
+ CFDictionaryGetKeysAndValues (CFDictionaryRef theDict, const void **keys,
+                               const void **values);
+ 
+ CF_EXPORT const void *CFDictionaryGetValue (CFDictionaryRef theDict,
+                                             const void *key);
+ 
+ CF_EXPORT Boolean
+ CFDictionaryGetValueIfPresent (CFDictionaryRef theDict, const void *key,
+                                const void **value);
+ /** \} */
+ 
+ /** \name Applying a funcation to a dictionary
+     \{
+  */
+ CF_EXPORT void
+ CFDictionaryApplyFunction (CFDictionaryRef theDict,
+                            CFDictionaryApplierFunction applier, void *context);
+ /** \} */
+ 
+ /** \name Getting the CFDictionary type ID
+     \{
+  */
+ CF_EXPORT CFTypeID CFDictionaryGetTypeID (void);
+ /** \} */
+ /** \} */
+ 
+ /** \defgroup CFMutableDictionaryRef CFMutableDictionary Reference
+     \{
+  */
+ /** \name Creating a Mutable Dictionary
+     \{
+  */
+ CF_EXPORT CFMutableDictionaryRef
+ CFDictionaryCreateMutable (CFAllocatorRef allocator, CFIndex capacity,
+                            const CFDictionaryKeyCallBacks * keyCallBacks,
+                            const CFDictionaryValueCallBacks * valueCallBacks);
+ 
+ CF_EXPORT CFMutableDictionaryRef
+ CFDictionaryCreateMutableCopy (CFAllocatorRef allocator, CFIndex capacity,
+                                CFDictionaryRef theDict);
+ /** \} */
+ 
+ /** \name Modifying a Dictionary
+     \{
+  */
+ CF_EXPORT void
+ CFDictionaryAddValue (CFMutableDictionaryRef theDict, const void *key,
+                       const void *value);
+ 
+ CF_EXPORT void CFDictionaryRemoveAllValues (CFMutableDictionaryRef theDict);
+ 
+ CF_EXPORT void
+ CFDictionaryRemoveValue (CFMutableDictionaryRef theDict, const void *key);
+ 
+ CF_EXPORT void
+ CFDictionaryReplaceValue (CFMutableDictionaryRef theDict, const void *key,
+                           const void *value);
+ 
+ CF_EXPORT void
+ CFDictionarySetValue (CFMutableDictionaryRef theDict, const void *key,
+                       const void *value);
+ /** \} */
+ /** \} */
+ 
+ CF_EXTERN_C_END
+ #endif /* __COREFOUNDATION_CFDICTIONARY_H__ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFLocale.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,249 ----
+ /* CFLocale.h
+    
+    Copyright (C) 2010 Free Software Foundation, Inc.
+    
+    Written by: Stefan Bidigaray
+    Date: March, 2011
+    
+    This file is part of the GNUstep CoreBase Library.
+    
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ #ifndef __COREFOUNDATION_CFLOCALE__
+ #define __COREFOUNDATION_CFLOCALE__ 1
+ 
+ #include "CFBase.h"
+ 
+ #include "CFArray.h"
+ #include "CFDictionary.h"
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
+ 
+ CF_EXTERN_C_BEGIN
+ 
+ /** \defgroup CFLocaleRef CFLocale Reference
+     \brief CFLocale provides basic functionality for language and/or region
+     specific operations.
+     
+     Locale-sensitive operations, such as collation, calendars and
+     capitalization, may use CFLocale objects to provide language and/or region
+     specific functionality.
+   
+     CFLocale is "toll-free bridged" to NSLocale.
+     
+     \{
+  */
+ typedef const struct __CFLocale *CFLocaleRef;
+ 
+ /** 
+  */
+ enum
+ {
+   kCFLocaleLanguageDirectionUnknown     = 0,
+   kCFLocaleLanguageDirectionLeftToRight = 1,
+   kCFLocaleLanguageDirectionRightToLeft = 2,
+   kCFLocaleLanguageDirectionTopToBottom = 3,
+   kCFLocaleLanguageDirectionBottomToTop = 4
+ };
+ typedef CFIndex CFLocaleLanguageDirection;
+ 
+ /** \name CFLocale Property Keys
+     \{
+  */
+ CF_EXPORT const CFStringRef kCFLocaleMeasurementSystem; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleDecimalSeparator; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleGroupingSeparator; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleCurrencySymbol; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleCurrencyCode; /* CFString */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT const CFStringRef kCFLocaleIdentifier; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleLanguageCode; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleCountryCode; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleScriptCode; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleVariantCode; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleExemplarCharacterSet; /* CFCharacterSet */
+ CF_EXPORT const CFStringRef kCFLocaleCalendarIdentifier; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleCalendar; /* CFCalendar */
+ CF_EXPORT const CFStringRef kCFLocaleCollationIdentifier; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleUsesMetricSystem; /* CFBoolean */
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ CF_EXPORT const CFStringRef kCFLocaleCollatorIdentifier; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleQuotationBeginDelimiterKey; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleQuotationEndDelimiterKey; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleAlternateQuotationBeginDelimiterKey; /* CFString */
+ CF_EXPORT const CFStringRef kCFLocaleAlternateQuotationEndDelimiterKey; /* CFString */
+ #endif
+ /** \} */
+ 
+ /** \name CFCalendar Identifiers
+     \{
+  */
+ CF_EXPORT const CFStringRef kCFGregorianCalendar;
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT const CFStringRef kCFBuddhistCalendar;
+ CF_EXPORT const CFStringRef kCFChineseCalendar;
+ CF_EXPORT const CFStringRef kCFHebrewCalendar;
+ CF_EXPORT const CFStringRef kCFIslamicCalendar;
+ CF_EXPORT const CFStringRef kCFIslamicCivilCalendar;
+ CF_EXPORT const CFStringRef kCFJapaneseCalendar;
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ CF_EXPORT const CFStringRef kCFRepublicOfChinaCalendar;
+ CF_EXPORT const CFStringRef kCFPersianCalendar;
+ CF_EXPORT const CFStringRef kCFIndianCalendar;
+ CF_EXPORT const CFStringRef kCFISO8601Calendar;
+ #endif
+ /** \} */
+ 
+ /** CFLocale Change Notification
+  */
+ CF_EXPORT const CFStringRef kCFLocaleCurrentLocaleDidChangeNotification;
+ 
+ 
+ 
+ /** \name Creating a Locale
+     \{
+  */
+ CF_EXPORT CFLocaleRef
+ CFLocaleCopyCurrent (void);
+ 
+ CF_EXPORT CFLocaleRef
+ CFLocaleCreate (CFAllocatorRef allocator,
+                 CFStringRef localeIdent);
+ 
+ CF_EXPORT CFLocaleRef
+ CFLocaleCreateCopy (CFAllocatorRef allocator,
+                     CFLocaleRef locale);
+ 
+ CF_EXPORT CFLocaleRef
+ CFLocaleGetSystem (void);
+ /** \} */
+ 
+ /** \name Getting System Locale Information
+     \{
+  */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT CFArrayRef
+ CFLocaleCopyAvailableLocaleIdentifiers (void);
+ #endif
+ /** \} */
+ 
+ /** \name Getting ISO Information
+     \{
+  */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT CFArrayRef
+ CFLocaleCopyISOCountryCodes (void);
+ 
+ CF_EXPORT CFArrayRef
+ CFLocaleCopyISOLanguageCodes (void);
+ 
+ CF_EXPORT CFArrayRef
+ CFLocaleCopyISOCurrencyCodes (void);
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ CF_EXPORT CFArrayRef
+ CFLocaleCopyCommonISOCurrencyCodes (void);
+ #endif
+ /** \{ */
+ 
+ /** \name Accessing Language Information
+     \{
+  */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ CF_EXPORT CFArrayRef
+ CFLocaleCopyPreferredLanguages (void);
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ CF_EXPORT CFLocaleLanguageDirection
+ CFLocaleGetLanguageCharacterDirection (CFStringRef isoLangCode);
+ 
+ CF_EXPORT CFLocaleLanguageDirection
+ CFLocaleGetLanguageLineDirection (CFStringRef isoLangCode);
+ #endif
+ /** \} */
+ 
+ /** \name Getting Information About a Locale
+     \{
+  */
+ CF_EXPORT CFStringRef
+ CFLocaleCopyDisplayNameForPropertyValue (CFLocaleRef displayLocale,
+                                          CFStringRef key,
+                                          CFStringRef value);
+ 
+ CF_EXPORT CFTypeRef
+ CFLocaleGetValue (CFLocaleRef locale,
+                   CFStringRef key);
+ 
+ CF_EXPORT CFStringRef
+ CFLocaleGetIdentifier (CFLocaleRef locale);
+ /** \} */
+ 
+ /** \name Getting and Creating Locale Identifiers
+     \{
+  */
+ CF_EXPORT CFStringRef
+ CFLocaleCreateCanonicalLocaleIdentifierFromString (CFAllocatorRef allocator,
+                                                    CFStringRef localeIdent);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT CFStringRef
+ CFLocaleCreateCanonicalLanguageIdentifierFromString (CFAllocatorRef allocator,
+                                                      CFStringRef localeIdent);
+ 
+ CF_EXPORT CFDictionaryRef
+ CFLocaleCreateComponentsFromLocaleIdentifier (CFAllocatorRef allocator,
+                                               CFStringRef localeIdent);
+ 
+ CF_EXPORT CFStringRef
+ CFLocaleCreateLocaleIdentifierFromComponents (CFAllocatorRef allocator,
+                                               CFDictionaryRef dictionary);
+ #endif
+ /** \} */
+ 
+ /** \name Windows Locale Codes
+     \{
+  */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ CF_EXPORT CFStringRef
+ CFLocaleCreateLocaleIdentifierFromWindowsLocaleCode (CFAllocatorRef allocator,
+                                                      UInt32 lcid);
+ 
+ CF_EXPORT UInt32
+ CFLocaleGetWindowsLocaleCodeFromLocaleIdentifier (CFStringRef localeIdent);
+ #endif
+ /** \} */
+ 
+ /** \name Getting the CFLocale Type ID
+     \{
+  */
+ CF_EXPORT CFTypeID
+ CFLocaleGetTypeID (void);
+ /** \} */
+ 
+ /** \} */
+ 
+ CF_EXTERN_C_END
+ 
+ #endif /* OS_API_VERSION >= MAC_OS_X_VERSION_10_3 */
+ 
+ #endif /* __COREFOUNDATION_CFLOCALE__ */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/CoreFoundation/CFString.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,593 ----
+ /* CFString.h
+    
+    Copyright (C) 2010 Free Software Foundation, Inc.
+    
+    Written by: Stefan Bidigaray
+    Date: January, 2010
+    
+    This file is part of CoreBase.
+    
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, 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
+    Lesser General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; see the file COPYING.LIB.
+    If not, see <http://www.gnu.org/licenses/> or write to the 
+    Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+    Boston, MA 02110-1301, USA.
+ */ 
+ 
+ #ifndef __COREFOUNDATION_CFSTRING_H__
+ #define __COREFOUNDATION_CFSTRING_H__
+ 
+ #include "CFBase.h"
+ #include "CFArray.h"
+ #include "CFCharacterSet.h"
+ #include "CFData.h"
+ #include "CFDictionary.h"
+ #include "CFLocale.h"
+ 
+ #include <stdarg.h>
+ 
+ CF_EXTERN_C_BEGIN
+ 
+ /** \defgroup CFStringRef CFString Reference
+     \brief The CFString type defines opaque objects representing strings.
+ 
+     CFString is "toll-free bridged" to NSString.
+ 
+     \{
+  */
+ 
+ /*
+  * Data Types
+  */
+ typedef UInt32 CFStringEncoding;
+ 
+ /*
+  * Constants
+  */
+ typedef enum
+ {
+   kCFCompareCaseInsensitive = 1,
+   kCFCompareBackwards = 4,
+   kCFCompareAnchored = 8,
+   kCFCompareNonliteral = 16,
+   kCFCompareLocalized = 32,
+   kCFCompareNumerically = 64,
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+   kCFCompareDiacriticInsensitive = 128,
+   kCFCompareWidthInsensitive = 256,
+   kCFCompareForcedOrdering = 512
+ #endif
+ } CFStringCompareFlags;
+ 
+ enum CFStringBuiltInEncodings
+ {
+   kCFStringEncodingMacRoman = 0,
+   kCFStringEncodingWindowsLatin1 = 0x0500,
+   kCFStringEncodingISOLatin1 = 0x0201,
+   kCFStringEncodingNextStepLatin = 0x0B01,
+   kCFStringEncodingASCII = 0x0600,
+   kCFStringEncodingUnicode = 0x0100,
+   kCFStringEncodingUTF8 = 0x08000100,
+   kCFStringEncodingNonLossyASCII = 0x0BFF,
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+   kCFStringEncodingUTF16 = 0x0100,
+   kCFStringEncodingUTF16BE = 0x10000100,
+   kCFStringEncodingUTF16LE = 0x14000100,
+   kCFStringEncodingUTF32 = 0x0c000100,
+   kCFStringEncodingUTF32BE = 0x18000100,
+   kCFStringEncodingUTF32LE = 0x1c000100
+ #endif
+ };
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+ # define kCFStringEncodingInvalidId (0xffffffffU)
+ #endif
+ 
+ /** \def CFSTR(x)
+     \brief Creates a constant string object.
+     
+     \note This macro will create the constant string at runtime.
+  */
+ /* The 'pure' attribute tells the compiler that this function will always
+    return the same result with the same input.  If it has any skill, then
+    constant propagation passes will magically make sure that this function is
+    called as few times as possible. */
+ CF_EXPORT CFStringRef
+ __CFStringMakeConstantString (const char *str) GS_PURE_FUNCTION;
+ //#define CFSTR(x) __CFStringMakeConstantString("" x "")
+ 
+ #ifdef __CONSTANT_CFSTRINGS__
+ #define CFSTR(x)  ((CFStringRef) __builtin___CFStringMakeConstantString ("" x ""))
+ #else
+ #define CFSTR(x)  __CFStringMakeConstantString("" x "")
+ #endif
+ 
+ /** \name Creating a CFString
+     \{
+  */
+ CF_EXPORT CFArrayRef
+ CFStringCreateArrayBySeparatingStrings (CFAllocatorRef alloc,
+   CFStringRef theString, CFStringRef separatorString);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateByCombiningStrings (CFAllocatorRef alloc, CFArrayRef theArray,
+   CFStringRef separatorString);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateCopy (CFAllocatorRef alloc, CFStringRef theString);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateFromExternalRepresentation (CFAllocatorRef alloc, CFDataRef data,
+   CFStringEncoding encoding);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithBytes (CFAllocatorRef alloc, const UInt8 *bytes,
+   CFIndex numBytes, CFStringEncoding encoding, Boolean isExternalRepresentation);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithCharacters (CFAllocatorRef alloc, const UniChar *chars,
+   CFIndex numChars);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithCharactersNoCopy (CFAllocatorRef alloc, const UniChar *chars,
+   CFIndex numChars, CFAllocatorRef contentsDeallocator);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithCString (CFAllocatorRef alloc, const char *cStr,
+   CFStringEncoding encoding);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithCStringNoCopy (CFAllocatorRef alloc, const char *cStr,
+   CFStringEncoding encoding, CFAllocatorRef contentsDeallocator);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithFormat (CFAllocatorRef alloc, CFDictionaryRef formatOptions,
+   CFStringRef format, ...);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithFormatAndArguments (CFAllocatorRef alloc,
+   CFDictionaryRef formatOptions, CFStringRef format, va_list arguments);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithSubstring (CFAllocatorRef alloc, CFStringRef str,
+   CFRange range);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT CFStringRef
+ CFStringCreateWithFileSystemRepresentation (CFAllocatorRef alloc,
+   const char *buffer);
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ CF_EXPORT CFStringRef
+ CFStringCreateWithBytesNoCopy (CFAllocatorRef alloc, const UInt8 *bytes,
+   CFIndex numBytes, CFStringEncoding encoding, Boolean isExternalReprentation,
+   CFAllocatorRef contentsDeallocator);
+ #endif
+ /** \} */
+ 
+ /** \name Searching CFStrings
+     \{
+  */
+ CF_EXPORT CFArrayRef
+ CFStringCreateArrayWithFindResults (CFAllocatorRef alloc, CFStringRef theString,
+   CFStringRef stringToFind, CFRange rangeToSearch,
+   CFStringCompareFlags compareOptions);
+ 
+ CF_EXPORT CFRange
+ CFStringFind (CFStringRef theString, CFStringRef stringToFind,
+   CFStringCompareFlags compareOptions);
+ 
+ CF_EXPORT Boolean
+ CFStringFindWithOptions (CFStringRef theString, CFStringRef stringToFind,
+   CFRange rangeToSearch, CFStringCompareFlags searchOptions, CFRange *result);
+ 
+ CF_EXPORT Boolean
+ CFStringFindWithOptionsAndLocale (CFStringRef theString,CFStringRef stringToFind,
+   CFRange rangeToSearch, CFStringCompareFlags searchOptions,
+   CFLocaleRef locale, CFRange *result);
+ 
+ CF_EXPORT void
+ CFStringGetLineBounds (CFStringRef theString, CFRange range,
+   CFIndex *lineBeginIndex, CFIndex *lineEndIndex, CFIndex *contentsEndIndex);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+ CF_EXPORT Boolean
+ CFStringFindCharacterFromSet (CFStringRef theString, CFCharacterSetRef theSet,
+   CFRange rangeToSearch, CFStringCompareFlags searchOptions, CFRange *result);
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ CF_EXPORT void
+ CFStringGetParagraphBounds (CFStringRef string, CFRange range,
+   CFIndex *parBeginIndex, CFIndex *parEndIndex, CFIndex *contentsEndIndex);
+ #endif
+ /** \} */
+ 
+ /** \name Comparing String
+     \{
+  */
+ CF_EXPORT CFComparisonResult
+ CFStringCompare (CFStringRef theString1, CFStringRef theString2,
+   CFStringCompareFlags compareOptions);
+ 
+ CF_EXPORT CFComparisonResult
+ CFStringCompareWithOptions (CFStringRef theString1, CFStringRef theString2,
+   CFRange rangeToCOmpare, CFStringCompareFlags compareOptions);
+ 
+ CF_EXPORT Boolean
+ CFStringHasPrefix (CFStringRef theString, CFStringRef prefix);
+ 
+ CF_EXPORT Boolean
+ CFStringHasSuffix (CFStringRef theString, CFStringRef suffix);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ CF_EXPORT CFComparisonResult
+ CFStringCompareWithOptionsAndLocale (CFStringRef theString1,
+   CFStringRef theString2, CFRange rangeToCOmpare,
+   CFStringCompareFlags compareOptions, CFLocaleRef locale);
+ #endif
+ /** \} */
+ 
+ /** \name Accessing Characters
+     \{
+  */
+ CF_EXPORT CFDataRef
+ CFStringCreateExternalRepresentation (CFAllocatorRef alloc,
+   CFStringRef theString, CFStringEncoding encoding, UInt8 lossByte);
+ 
+ CF_EXPORT CFIndex
+ CFStringGetBytes (CFStringRef theString, CFRange range,
+   CFStringEncoding encoding, UInt8 lossByte, Boolean isExternalRepresentation,
+   UInt8 *buffer, CFIndex maxBufLen, CFIndex *usedBufLen);
+ 
+ CF_EXPORT UniChar
+ CFStringGetCharacterAtIndex (CFStringRef theString, CFIndex idx);
+ 
+ CF_EXPORT void
+ CFStringGetCharacters (CFStringRef theString, CFRange range, UniChar *buffer);
+ 
+ CF_EXPORT const UniChar *
+ CFStringGetCharactersPtr (CFStringRef theString);
+ 
+ CF_EXPORT Boolean
+ CFStringGetCString (CFStringRef theString, char *buffer, CFIndex bufferSize,
+   CFStringEncoding encoding);
+ 
+ CF_EXPORT const char *
+ CFStringGetCStringPtr (CFStringRef theString, CFStringEncoding encoding);
+ 
+ CF_EXPORT CFIndex
+ CFStringGetLength (CFStringRef str);
+ 
+ CF_EXPORT CFRange
+ CFStringGetRangeOfComposedCharactersAtIndex (CFStringRef theString,
+   CFIndex theIndex);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ CF_EXPORT UTF32Char
+ CFStringGetLongCharacterForSurrogatePair (UniChar surrogateHigh,
+   UniChar surrogateLow);
+ 
+ CF_EXPORT Boolean
+ CFStringGetSurrogatePairForLongCharacter (UTF32Char character,
+   UniChar *surrogates);
+ 
+ CF_EXPORT Boolean
+ CFStringIsSurrogateHighCharacter (UniChar character);
+ 
+ CF_EXPORT Boolean
+ CFStringIsSurrogateLowCharacter (UniChar character);
+ #endif
+ /** \} */
+ 
+ /** \name Working with Encodings
+     \{
+  */
+ CF_EXPORT CFStringRef
+ CFStringConvertEncodingToIANACharSetName (CFStringEncoding encoding);
+ 
+ CF_EXPORT unsigned long
+ CFStringConvertEncodingToNSStringEncoding (CFStringEncoding encoding);
+ 
+ UInt32
+ CFStringConvertEncodingToWindowsCodepage (CFStringEncoding encoding);
+ 
+ CF_EXPORT CFStringEncoding
+ CFStringConvertIANACharSetNameToEncoding (CFStringRef theString);
+ 
+ CF_EXPORT CFStringEncoding
+ CFStringConvertNSStringEncodingToEncoding (unsigned long encoding);
+ 
+ CF_EXPORT CFStringEncoding
+ CFStringConvertWindowsCodepageToEncoding (UInt32 codepage);
+ 
+ CF_EXPORT CFStringEncoding
+ CFStringGetFastestEncoding (CFStringRef theString);
+ 
+ CF_EXPORT const CFStringEncoding *
+ CFStringGetListOfAvailableEncodings (void);
+ 
+ CF_EXPORT CFIndex
+ CFStringGetMaximumSizeForEncoding (CFIndex length, CFStringEncoding encoding);
+ 
+ CF_EXPORT CFStringEncoding
+ CFStringGetMostCompatibleMacStringEncoding (CFStringEncoding encoding);
+ 
+ CF_EXPORT CFStringRef
+ CFStringGetNameOfEncoding (CFStringEncoding encoding);
+ 
+ CF_EXPORT CFStringEncoding
+ CFStringGetSmallestEncoding (CFStringRef theString);
+ 
+ CF_EXPORT CFStringEncoding
+ CFStringGetSystemEncoding (void);
+ 
+ CF_EXPORT Boolean
+ CFStringIsEncodingAvailable (CFStringEncoding encoding);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT Boolean
+ CFStringGetFileSystemRepresentation (CFStringRef string, char *buffer,
+   CFIndex maxBufLen);
+ 
+ CF_EXPORT CFIndex
+ CFStringGetMaximumSizeOfFileSystemRepresentation (CFStringRef string);
+ #endif
+ /** \} */
+ 
+ /** \name Getting Numeric Values
+     \{
+  */
+ CF_EXPORT double
+ CFStringGetDoubleValue (CFStringRef str);
+ 
+ CF_EXPORT SInt32
+ CFStringGetIntValue (CFStringRef str);
+ /** \} */
+ 
+ /** \name Getting String Properties
+     \{
+  */
+ CF_EXPORT void
+ CFShow (CFTypeRef obj);
+ 
+ CF_EXPORT void
+ CFShowStr (CFStringRef str);
+ 
+ CF_EXPORT CFTypeID
+ CFStringGetTypeID (void);
+ /** \} */
+ 
+ 
+ 
+ /** \name Pascal Strings
+     \{
+  */
+ CF_EXPORT CFStringRef
+ CFStringCreateWithPascalString (CFAllocatorRef alloc, ConstStr255Param pStr,
+   CFStringEncoding encoding);
+ 
+ CF_EXPORT CFStringRef
+ CFStringCreateWithPascalStringNoCopy (CFAllocatorRef alloc,
+   ConstStr255Param pStr, CFStringEncoding encoding,
+   CFAllocatorRef contentsDeallocate);
+ 
+ CF_EXPORT Boolean
+ CFStringGetPascalString (CFStringRef theString, StringPtr buffer,
+   CFIndex bufferSize, CFStringEncoding encoding);
+ 
+ CF_EXPORT ConstStringPtr
+ CFStringGetPascalStringPtr (CFStringRef theString, CFStringEncoding encoding);
+ /** \} */
+ /** \} */
+ 
+ 
+ 
+ /** \defgroup CFMutableStringRef CFMutableString Reference
+  *  \{
+  */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+ typedef enum
+ {
+   kCFStringNormalizationFormD = 0,
+   kCFStringNormalizationFormKD = 1,
+   kCFStringNormalizationFormC = 2,
+   kCFStringNormalizationFormKC = 3
+ } CFStringNormalizationForm;
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT const CFStringRef kCFStringTransformStripCombiningMarks;
+ CF_EXPORT const CFStringRef kCFStringTransformToLatin;
+ CF_EXPORT const CFStringRef kCFStringTransformFullwidthHalfwidth;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinKatakana;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinHiragana;
+ CF_EXPORT const CFStringRef kCFStringTransformHiraganaKatakana;
+ CF_EXPORT const CFStringRef kCFStringTransformMandarinLatin;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinHangul;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinArabic;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinHebrew;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinThai;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinCyrillic;
+ CF_EXPORT const CFStringRef kCFStringTransformLatinGreek;
+ CF_EXPORT const CFStringRef kCFStringTransformToXMLHex;
+ CF_EXPORT const CFStringRef kCFStringTransformToUnicodeName;
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ CF_EXPORT const CFStringRef kCFStringTransformStripDiacritics;
+ #endif
+ 
+ CF_EXPORT void
+ CFStringAppend (CFMutableStringRef theString, CFStringRef appendedString);
+ 
+ CF_EXPORT void
+ CFStringAppendCharacters (CFMutableStringRef theString,
+   const UniChar *chars, CFIndex numChars);
+ 
+ CF_EXPORT void
+ CFStringAppendCString (CFMutableStringRef theString, const char *cStr,
+   CFStringEncoding encoding);
+ 
+ CF_EXPORT void
+ CFStringAppendFormat (CFMutableStringRef theString,
+   CFDictionaryRef formatOptions, CFStringRef format, ...);
+ 
+ CF_EXPORT void
+ CFStringAppendFormatAndArguments (CFMutableStringRef theString,
+   CFDictionaryRef formatOptions, CFStringRef format, va_list arguments);
+ 
+ CF_EXPORT void
+ CFStringAppendPascalString (CFMutableStringRef theString,
+   ConstStr255Param pStr, CFStringEncoding encoding);
+ 
+ CF_EXPORT void
+ CFStringCapitalize (CFMutableStringRef theString, CFLocaleRef locale);
+ 
+ CF_EXPORT CFMutableStringRef
+ CFStringCreateMutable (CFAllocatorRef alloc, CFIndex maxLength);
+ 
+ CF_EXPORT CFMutableStringRef
+ CFStringCreateMutableCopy (CFAllocatorRef alloc, CFIndex maxLength,
+   CFStringRef theString);
+ 
+ CF_EXPORT CFMutableStringRef
+ CFStringCreateMutableWithExternalCharactersNoCopy (CFAllocatorRef alloc,
+   UniChar *chars, CFIndex numChars, CFIndex capacity,
+   CFAllocatorRef externalCharactersAllocator);
+ 
+ CF_EXPORT void
+ CFStringDelete (CFMutableStringRef theString, CFRange range);
+ 
+ CF_EXPORT void
+ CFStringInsert (CFMutableStringRef str, CFIndex idx, CFStringRef insertedStr);
+ 
+ CF_EXPORT void
+ CFStringLowercase (CFMutableStringRef theString, CFLocaleRef locale);
+ 
+ CF_EXPORT void
+ CFStringPad (CFMutableStringRef theString, CFStringRef padString,
+   CFIndex length, CFIndex indexIntoPad);
+ 
+ CF_EXPORT void
+ CFStringReplace (CFMutableStringRef theString, CFRange range,
+   CFStringRef replacement);
+ 
+ CF_EXPORT void
+ CFStringReplaceAll (CFMutableStringRef theString, CFStringRef replacement);
+ 
+ CF_EXPORT void
+ CFStringSetExternalCharactersNoCopy (CFMutableStringRef theString,
+   UniChar *chars, CFIndex length, CFIndex capacity);
+ 
+ CF_EXPORT void
+ CFStringTrim (CFMutableStringRef theString, CFStringRef trimString);
+ 
+ CF_EXPORT void
+ CFStringTrimWhitespace (CFMutableStringRef theString);
+ 
+ CF_EXPORT void
+ CFStringUppercase (CFMutableStringRef theString, CFLocaleRef locale);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
+ CF_EXPORT CFIndex
+ CFStringFindAndReplace (CFMutableStringRef theString,
+   CFStringRef stringToFind, CFStringRef replacementString,
+   CFRange rangeToSearch, CFOptionFlags compareOptions);
+ 
+ CF_EXPORT void
+ CFStringNormalize (CFMutableStringRef theString,
+   CFStringNormalizationForm theForm);
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ CF_EXPORT Boolean
+ CFStringTransform (CFMutableStringRef string, CFRange *range,
+   CFStringRef transform, Boolean reverse);
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ CF_EXPORT void
+ CFStringFold (CFMutableStringRef theString, CFOptionFlags theFlags,
+   CFLocaleRef theLocale);
+ #endif
+ /** \} */
+ 
+ 
+ 
+ /** \ingroup CFStringRef
+     \name CFStringInlineBuffer
+     \{
+  */
+ #define __kCFStringInlineBufferLength 64
+ struct CFStringInlineBuffer
+ {
+   UniChar buffer[__kCFStringInlineBufferLength];
+   CFStringRef theString;
+   const UniChar *directBuffer;
+   CFRange rangeToBuffer;
+   CFIndex bufferedRangeStart;
+   CFIndex bufferedRangeEnd;
+ };
+ typedef struct CFStringInlineBuffer CFStringInlineBuffer;
+ 
+ CF_INLINE void
+ CFStringInitInlineBuffer (CFStringRef str, CFStringInlineBuffer *buf,
+   CFRange range)
+ {
+   buf->theString = str;
+   buf->rangeToBuffer = range;
+   buf->directBuffer = CFStringGetCharactersPtr (str);
+   buf->bufferedRangeStart = 0;
+   buf->bufferedRangeEnd = 0;
+ }
+ 
+ CF_INLINE UniChar
+ CFStringGetCharacterFromInlineBuffer (CFStringInlineBuffer *buf, CFIndex idx)
+ {
+   if (buf->directBuffer)
+     {
+       if (idx < 0 || idx >= buf->rangeToBuffer.length)
+         return 0;
+       return buf->directBuffer[idx + buf->rangeToBuffer.location];
+     }
+   else if (idx >= buf->bufferedRangeEnd || idx < buf->bufferedRangeStart)
+     {
+       CFRange range;
+       
+       if (idx < 0 || idx >= buf->rangeToBuffer.length)
+         return 0;
+       
+       /* Use 16 here so it's efficient to go backwards, too */
+       buf->bufferedRangeStart = idx - 16;
+       if (buf->bufferedRangeStart < 0)
+         buf->bufferedRangeStart = 0;
+       buf->bufferedRangeEnd =
+         buf->bufferedRangeStart + __kCFStringInlineBufferLength;
+       if (buf->bufferedRangeEnd > buf->rangeToBuffer.length)
+         buf->bufferedRangeEnd = buf->rangeToBuffer.length;
+       
+       range = CFRangeMake (buf->rangeToBuffer.location + buf->bufferedRangeStart,
+         buf->bufferedRangeEnd - buf->bufferedRangeStart);
+       
+       CFStringGetCharacters (buf->theString, range, buf->buffer);
+     }
+   
+   return buf->buffer[(idx - buf->bufferedRangeStart)];
+ }
+ /** \} */
+ 
+ CF_EXTERN_C_END
+ 
+ #endif /* __COREFOUNDATION_CFSTRING_H__ */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSArray.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSArray.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSArray.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSArray.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,430 ----
+ /* Interface for NSArray for GNUStep
+    Copyright (C) 1995-2015 Free Software Foundation, Inc.
+ 
+    Written by:  Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
+    Created: 1995
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+    */
+ 
+ #ifndef __NSArray_h_GNUSTEP_BASE_INCLUDE
+ #define __NSArray_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ #import	"NSObject.h"
+ #import	"NSRange.h"
+ #import "NSEnumerator.h"
+ #if __BLOCKS__
+ #import "../GNUstepBase/GSBlocks.h"
+ #endif
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ @class NSString;
+ @class NSURL;
+ @class NSIndexSet;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ enum
+ {
+   NSBinarySearchingFirstEqual = (1UL << 8), /** Specifies that the binary
+    * search should find the first object equal in the array.
+    */
+   NSBinarySearchingLastEqual = (1UL << 9), /** Specifies that the binary
+    * search should find the last object equal in the array.
+    */
+   NSBinarySearchingInsertionIndex = (1UL << 10), /** Specifies that the binary
+    * search should find the index at which an equal object should be inserted
+    * in order to keep the array sorted
+    */
+ };
+ 
+ typedef NSUInteger NSBinarySearchingOptions;
+ #endif
+ 
+ @interface GS_GENERIC_CLASS(NSArray, __covariant ElementT) : NSObject
+   <NSCoding, NSCopying, NSMutableCopying, NSFastEnumeration>
+ 
+ + (instancetype) array;
+ + (instancetype) arrayWithArray: (GS_GENERIC_CLASS(NSArray, ElementT) *)array;
+ + (instancetype) arrayWithContentsOfFile: (NSString*)file;
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ + (instancetype) arrayWithContentsOfURL: (NSURL*)aURL;
+ #endif
+ + (instancetype) arrayWithObject: (id)anObject;
+ + (instancetype) arrayWithObjects: (id)firstObject, ...;
+ + (instancetype) arrayWithObjects: (const id[])objects count: (NSUInteger)count;
+ 
+ - (GS_GENERIC_CLASS(NSArray, ElementT) *) arrayByAddingObject:
+   (GS_GENERIC_TYPE(ElementT))anObject;
+ - (GS_GENERIC_CLASS(NSArray, ElementT) *) arrayByAddingObjectsFromArray:
+   (GS_GENERIC_CLASS(NSArray, ElementT)*)anotherArray;
+ - (BOOL) containsObject: (GS_GENERIC_TYPE(ElementT))anObject;
+ 
+ /** <override-subclass />
+  * Returns the number of elements contained in the receiver.
+  */
+ - (NSUInteger) count;
+ - (void) getObjects: (__unsafe_unretained GS_GENERIC_TYPE(ElementT)[])aBuffer;
+ - (void) getObjects: (__unsafe_unretained GS_GENERIC_TYPE(ElementT)[])aBuffer
+               range: (NSRange)aRange;
+ - (NSUInteger) indexOfObject: (GS_GENERIC_TYPE(ElementT))anObject;
+ - (NSUInteger) indexOfObject: (GS_GENERIC_TYPE(ElementT))anObject
+                      inRange: (NSRange)aRange;
+ - (NSUInteger) indexOfObjectIdenticalTo: (GS_GENERIC_TYPE(ElementT))anObject;
+ - (NSUInteger) indexOfObjectIdenticalTo: (GS_GENERIC_TYPE(ElementT))anObject
+                                 inRange: (NSRange)aRange;
+ - (instancetype) init;
+ - (instancetype) initWithArray: (GS_GENERIC_CLASS(NSArray, ElementT)*)array;
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ - (instancetype) initWithArray: (GS_GENERIC_CLASS(NSArray, ElementT)*)array
+                      copyItems: (BOOL)shouldCopy;
+ #endif
+ - (instancetype) initWithContentsOfFile: (NSString*)file;
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ - (instancetype) initWithContentsOfURL: (NSURL*)aURL;
+ #endif
+ - (instancetype) initWithObjects: (GS_GENERIC_TYPE(ElementT)) firstObject, ...;
+ 
+ /** <init /> <override-subclass />
+  * This should initialize the array with count (may be zero) objects.<br />
+  * Retains each object placed in the array.<br />
+  * Calls -init (which does nothing but maintain MacOS-X compatibility),
+  * and needs to be re-implemented in subclasses in order to have all
+  * other initialisers work.
+  */
+ - (instancetype) initWithObjects: (const GS_GENERIC_TYPE(ElementT)[])objects
+                            count: (NSUInteger)count;
+ - (GS_GENERIC_TYPE(ElementT)) lastObject;
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ - (GS_GENERIC_TYPE(ElementT)) firstObject;
+ #endif
+ 
+ /** <override-subclass />
+  * Returns the object at the specified index.
+  * Raises an exception of the index is beyond the array.
+  */
+ - (GS_GENERIC_TYPE(ElementT)) objectAtIndex: (NSUInteger)index;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ - (GS_GENERIC_CLASS(NSArray, ElementT) *) objectsAtIndexes:
+   (NSIndexSet *)indexes;
+ #endif
+ 
+ - (GS_GENERIC_TYPE(ElementT)) firstObjectCommonWithArray:
+     (GS_GENERIC_CLASS(NSArray, ElementT) *)otherArray;
+ - (BOOL) isEqualToArray: (NSArray*)otherArray;
+ 
+ #if OS_API_VERSION(GS_API_OPENSTEP, GS_API_MACOSX)
+ - (void) makeObjectsPerform: (SEL)aSelector;
+ - (void) makeObjectsPerform: (SEL)aSelector withObject: (id)argument;
+ #endif
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ - (void) makeObjectsPerformSelector: (SEL)aSelector;
+ - (void) makeObjectsPerformSelector: (SEL)aSelector withObject: (id)arg;
+ #endif
+ 
+ - (NSData*) sortedArrayHint;
+ - (GS_GENERIC_CLASS(NSArray, ElementT)*) sortedArrayUsingFunction:
+     (NSComparisonResult (*)(id, id, void*))comparator
+ 			        context: (void*)context;
+ - (GS_GENERIC_CLASS(NSArray, ElementT)*) sortedArrayUsingFunction:
+     (NSComparisonResult (*)(id, id, void*))comparator
+ 			      context: (void*)context
+ 				     hint: (NSData*)hint;
+ - (GS_GENERIC_CLASS(NSArray, ElementT)*) sortedArrayUsingSelector:
+   (SEL)comparator;
+ - (GS_GENERIC_CLASS(NSArray, ElementT)*) subarrayWithRange: (NSRange)aRange;
+ 
+ - (NSString*) componentsJoinedByString: (NSString*)separator;
+ - (GS_GENERIC_CLASS(NSArray, NSString*)*) pathsMatchingExtensions:
+     (GS_GENERIC_CLASS(NSArray, NSString*)*)extensions;
+ 
+ - (GS_GENERIC_CLASS(NSEnumerator, ElementT)*) objectEnumerator;
+ - (GS_GENERIC_CLASS(NSEnumerator, ElementT)*) reverseObjectEnumerator;
+ 
+ - (NSString*) description;
+ - (NSString*) descriptionWithLocale: (id)locale;
+ - (NSString*) descriptionWithLocale: (id)locale
+ 			     indent: (NSUInteger)level;
+ 
+ - (BOOL) writeToFile: (NSString*)path atomically: (BOOL)useAuxiliaryFile;
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ - (BOOL) writeToURL: (NSURL*)url atomically: (BOOL)useAuxiliaryFile;
+ - (GS_GENERIC_TYPE(ElementT)) valueForKey: (NSString*)key;
+ - (void) setValue: (GS_GENERIC_TYPE(ElementT))value forKey: (NSString*)key;
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ 
+ #if __BLOCKS__
+ DEFINE_BLOCK_TYPE(GSEnumeratorBlock, void, GS_GENERIC_TYPE(ElementT),
+   NSUInteger, BOOL*);
+ DEFINE_BLOCK_TYPE(GSPredicateBlock, BOOL, GS_GENERIC_TYPE(ElementT),
+   NSUInteger, BOOL*);
+ /**
+  * Enumerate over the collection using the given block.  The first argument is
+  * the object and the second is the index in the array.  The final argument is
+  * a pointer to a BOOL indicating whether the enumeration should stop.  Setting
+  * this to YES will interrupt the enumeration.
+  */
+ - (void) enumerateObjectsUsingBlock: (GSEnumeratorBlock)aBlock;
+ 
+ /**
+  * Enumerate over the collection using the given block.  The first argument is
+  * the object and the second is the index in the array.  The final argument is
+  * a pointer to a BOOL indicating whether the enumeration should stop.  Setting
+  * this to YES will interrupt the enumeration.
+  *
+  * The opts argument is a bitfield.  Setting the NSNSEnumerationConcurrent flag
+  * specifies that it is thread-safe.  The NSEnumerationReverse bit specifies
+  * that it should be enumerated in reverse order.
+  */
+ - (void) enumerateObjectsWithOptions: (NSEnumerationOptions)opts
+ 			  usingBlock: (GSEnumeratorBlock)aBlock;
+ /**
+  * Enumerate over the specified indexes in the collection using the given
+  * block.  The first argument is the object and the second is the index in the
+  * array.  The final argument is a pointer to a BOOL indicating whether the
+  * enumeration should stop.  Setting this to YES will interrupt the
+  * enumeration.
+  *
+  * The opts argument is a bitfield.  Setting the NSNSEnumerationConcurrent flag
+  * specifies that it is thread-safe.  The NSEnumerationReverse bit specifies
+  * that it should be enumerated in reverse order.
+  */
+ - (void) enumerateObjectsAtIndexes: (NSIndexSet*)indexSet
+ 			   options: (NSEnumerationOptions)opts
+ 			usingBlock: (GSEnumeratorBlock)block;
+ /**
+  * Returns the indexes of the objects in a collection that match the condition
+  * specified by the block.
+  *
+  * The opts argument is a bitfield.  Setting the NSNSEnumerationConcurrent flag
+  * specifies that it is thread-safe.  The NSEnumerationReverse bit specifies
+  * that it should be enumerated in reverse order.
+  */
+ - (NSIndexSet *) indexesOfObjectsWithOptions: (NSEnumerationOptions)opts
+ 				 passingTest: (GSPredicateBlock)predicate;
+ 
+ /**
+  * Returns the indexes of the objects in a collection that match the condition
+  * specified by the block.
+  */
+ - (NSIndexSet*) indexesOfObjectsPassingTest: (GSPredicateBlock)predicate;
+ 
+ /**
+  * Returns the indexes of the objects in a collection that match the condition
+  * specified by the block and are in the range specified by the index set.
+  *
+  * The opts argument is a bitfield.  Setting the NSNSEnumerationConcurrent flag
+  * specifies that it is thread-safe.  The NSEnumerationReverse bit specifies
+  * that it should be enumerated in reverse order.
+  */
+ - (NSIndexSet*) indexesOfObjectsAtIndexes: (NSIndexSet*)indexSet
+ 				  options: (NSEnumerationOptions)opts
+ 			      passingTest: (GSPredicateBlock)predicate;
+ 
+ /**
+  * Returns the index of the first object in the array that matches the
+  * condition specified by the block.
+  *
+  * The opts argument is a bitfield.  Setting the NSNSEnumerationConcurrent flag
+  * specifies that it is thread-safe.  The NSEnumerationReverse bit specifies
+  * that it should be enumerated in reverse order.
+  */
+ - (NSUInteger) indexOfObjectWithOptions: (NSEnumerationOptions)opts
+ 			    passingTest: (GSPredicateBlock)predicate;
+ 
+ /**
+  * Returns the index of the first object in the array that matches the
+  * condition specified by the block.
+  */
+ - (NSUInteger) indexOfObjectPassingTest: (GSPredicateBlock)predicate;
+ 
+ /**
+  * Returns the index of the first object in the specified range in a collection
+  * that matches the condition specified by the block.
+  *
+  * The opts argument is a bitfield.  Setting the NSNSEnumerationConcurrent flag
+  * specifies that it is thread-safe.  The NSEnumerationReverse bit specifies
+  * that it should be enumerated in reverse order.
+  */
+ - (NSUInteger) indexOfObjectAtIndexes: (NSIndexSet*)indexSet
+ 			      options: (NSEnumerationOptions)opts
+ 			  passingTest: (GSPredicateBlock)predicate;
+ 
+ /** Returns a sorted array using the comparator to determine the
+  * order of objects.
+  */
+ - (GS_GENERIC_CLASS(NSArray, ElementT) *) sortedArrayUsingComparator:
+     (NSComparator)comparator;
+ 
+ /** Returns a sorted array using the block to determine the order of objects.
+  *
+  * The opts argument is a bitfield.  Setting the NSSortConcurrent flag
+  * specifies that it is thread-safe.  The NSSortStable bit specifies that
+  * it should keep equal objects in the same order.
+  */
+ - (GS_GENERIC_CLASS(NSArray, ElementT) *)
+     sortedArrayWithOptions: (NSSortOptions)options
+            usingComparator: (NSComparator)comparator;
+ 
+ /**
+  * Performs a binary search of the array within the specified range for the
+  * index of an object equal to obj according to cmp.
+  * If NSBinarySearchingInsertionIndex is specified, searches for the index
+  * at which such an object should be inserted.
+  */
+ - (NSUInteger) indexOfObject: (id)key
+                inSortedRange: (NSRange)range
+                      options: (NSBinarySearchingOptions)options
+              usingComparator: (NSComparator)comparator;
+ #endif
+ #endif
+ /**
+  * Accessor for subscripting.  This is called by the compiler when you write
+  * code like anArray[12].  It should not be called directly.
+  */
+ - (GS_GENERIC_TYPE(ElementT)) objectAtIndexedSubscript: (NSUInteger)anIndex;
+ @end
+ 
+ 
+ @interface GS_GENERIC_CLASS(NSMutableArray, ElementT) : NSArray
+ 
+ + (instancetype) arrayWithCapacity: (NSUInteger)numItems;
+ 
+ /** <override-subclass />
+  * Adds anObject at the end of the array, thus increasing the size of
+  * the array.  The object is retained upon addition.
+  */
+ - (void) addObject: (GS_GENERIC_TYPE(ElementT))anObject;
+ - (void) addObjectsFromArray: (GS_GENERIC_CLASS(NSArray, ElementT)*)otherArray;
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ - (void) exchangeObjectAtIndex: (NSUInteger)i1
+ 	     withObjectAtIndex: (NSUInteger)i2;
+ #endif
+ 
+ /** <init /> <override-subclass />
+  * Initialise the array with the specified capacity ... this
+  * should ensure that the array can have numItems added efficiently.<br />
+  * Calls -init (which does nothing but maintain MacOS-X compatibility),
+  * and needs to be re-implemented in subclasses in order to have all
+  * other initialisers work.
+  */
+ - (instancetype) initWithCapacity: (NSUInteger)numItems;
+ 
+ /** <override-subclass />
+  * Inserts an object into the receiver at the specified location.<br />
+  * Raises an exception if given an array index which is too large.<br />
+  * The size of the array increases by one.<br />
+  * The object is retained by the array.
+  */
+ - (void) insertObject: (GS_GENERIC_TYPE(ElementT))anObject
+               atIndex: (NSUInteger)index;
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ - (void) insertObjects: (GS_GENERIC_CLASS(NSArray, ElementT) *)objects
+              atIndexes: (NSIndexSet *)indexes;
+ #endif
+ 
+ /** <override-subclass />
+  * Removes an object from the receiver at the specified location.<br />
+  * The size of the array decreases by one.<br />
+  * Raises an exception if given an array index which is too large.<br />
+  */
+ - (void) removeObjectAtIndex: (NSUInteger)index;
+ 
+ - (void) removeObjectsAtIndexes: (NSIndexSet *)indexes;
+ 
+ /** <override-subclass />
+  * Places an object into the receiver at the specified location.<br />
+  * Raises an exception if given an array index which is too large.<br />
+  * The object is retained by the array.
+  */
+ - (void) replaceObjectAtIndex: (NSUInteger)index
+ 		   withObject: (GS_GENERIC_TYPE(ElementT))anObject;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ - (void) replaceObjectsAtIndexes: (NSIndexSet *)indexes
+                      withObjects: (GS_GENERIC_CLASS(NSArray, ElementT)*)objects;
+ #endif
+ 
+ - (void) replaceObjectsInRange: (NSRange)aRange
+           withObjectsFromArray: (GS_GENERIC_CLASS(NSArray, ElementT)*)anArray;
+ 
+ - (void) replaceObjectsInRange: (NSRange)aRange
+           withObjectsFromArray: (GS_GENERIC_CLASS(NSArray, ElementT)*)anArray
+                          range: (NSRange)anotherRange;
+ 
+ - (void) setArray: (GS_GENERIC_CLASS(NSArray, ElementT) *)otherArray;
+ 
+ - (void) removeAllObjects;
+ - (void) removeLastObject;
+ - (void) removeObject: (GS_GENERIC_TYPE(ElementT))anObject;
+ - (void) removeObject: (GS_GENERIC_TYPE(ElementT))anObject
+               inRange: (NSRange)aRange;
+ - (void) removeObjectIdenticalTo: (GS_GENERIC_TYPE(ElementT))anObject;
+ - (void) removeObjectIdenticalTo: (GS_GENERIC_TYPE(ElementT))anObject
+                          inRange: (NSRange)aRange;
+ - (void) removeObjectsInArray: (GS_GENERIC_CLASS(NSArray, ElementT)*)otherArray;
+ - (void) removeObjectsInRange: (NSRange)aRange;
+ - (void) removeObjectsFromIndices: (NSUInteger*)indices
+ 		       numIndices: (NSUInteger)count;
+ 
+ - (void) sortUsingFunction:
+     (NSComparisonResult (*)(GS_GENERIC_TYPE(ElementT),
+        GS_GENERIC_TYPE(ElementT),void*))compare
+ 		           context: (void*)context;
+ - (void) sortUsingSelector: (SEL)comparator;
+ 
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ #if __BLOCKS__
+ /**
+  * Sorts the array using the specified comparator block.
+  */
+ - (void) sortUsingComparator: (NSComparator)comparator;
+ 
+ /**
+  * Sorts the array using the specified comparator block and options.
+  */
+ - (void) sortWithOptions: (NSSortOptions)options
+          usingComparator: (NSComparator)comparator;
+ #endif
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_8, GS_API_LATEST)
+ /** Set method called by the compiler with array subscripting.<br />
+  * Replaces the object at anIndex or, if anIndex is the length of the array,
+  * this method appends abObject to the array.
+  */
+ - (void) setObject: (GS_GENERIC_TYPE(ElementT))anObject
+ atIndexedSubscript: (NSUInteger)anIndex;
+ #endif
+ @end
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #if	!NO_GNUSTEP && !defined(GNUSTEP_BASE_INTERNAL)
+ #import	"../GNUstepBase/NSArray+GNUstepBase.h"
+ #endif
+ 
+ #endif /* __NSArray_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSAutoreleasePool.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,333 ----
+ /* Interface for NSAutoreleasePool for GNUStep
+    Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+ 
+    Written by:  Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
+    Date: 1995
+    
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+    
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+    */ 
+ 
+ #ifndef __NSAutoreleasePool_h_GNUSTEP_BASE_INCLUDE
+ #define __NSAutoreleasePool_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ #import	"NSObject.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ @class NSAutoreleasePool;
+ @class NSThread;
+ 
+ 
+ /**
+  * Each thread has its own copy of these variables.
+  <example>
+ {
+   NSAutoreleasePool *current_pool; // current pool for thread
+   unsigned total_objects_count;    // total #/autoreleased objects over thread's lifetime
+   id *pool_cache;                  // cache of previously-allocated pools,
+   int pool_cache_size;             //  used internally for recycling
+   int pool_cache_count;
+ }
+  </example>
+ */
+ typedef struct autorelease_thread_vars
+ {
+   /* The current, default NSAutoreleasePool for the calling thread;
+      the one that will hold objects that are arguments to
+      [NSAutoreleasePool +addObject:]. */
+   __unsafe_unretained NSAutoreleasePool *current_pool;
+ 
+   /* The total number of objects autoreleased since the thread was
+      started, or since -resetTotalAutoreleasedObjects was called
+      in this thread. (if compiled in) */
+   unsigned total_objects_count;
+ 
+   /* A cache of NSAutoreleasePool's already alloc'ed.  Caching old pools
+      instead of deallocating and re-allocating them will save time. */
+   __unsafe_unretained id *pool_cache;
+   int pool_cache_size;
+   int pool_cache_count;
+ } thread_vars_struct;
+ 
+ /* Initialize an autorelease_thread_vars structure for a new thread.
+    This function is called in NSThread each time an NSThread is created.
+    TV should be of type `struct autorelease_thread_vars *' */
+ #define init_autorelease_thread_vars(TV) \
+ memset (TV, 0, sizeof (__typeof__ (*TV)))
+ 
+ 
+ 
+ /**
+  *  Each pool holds its objects-to-be-released in a linked-list of 
+     these structures.
+     <example>
+ {
+   struct autorelease_array_list *next;
+   unsigned size;
+   unsigned count;
+   id objects[0];
+ }
+     </example>
+  */
+ typedef struct autorelease_array_list
+ {
+   struct autorelease_array_list *next;
+   unsigned size;
+   unsigned count;
+   __unsafe_unretained id objects[0];
+ } array_list_struct;
+ 
+ 
+ 
+ /**
+  * <p>
+  *   The standard OpenStep system of memory management employs retain counts.
+  *   When an object is created, it has a retain count of 1.  When an object
+  *   is retained, the retain count is incremented.  When it is released the
+  *   retain count is decremented, and when the retain count goes to zero the
+  *   object gets deallocated.
+  * </p>
+  * <p>
+  *   A simple retain/release mechanism has problems with passing objects
+  *   from one scope to another,
+  *   so it's augmented with autorelease pools.  You can use the
+  *   AUTORELEASE() macro to call the [NSObject-autorelease]
+  *   method, which adds an object to the current autorelease pool by
+  *   calling [NSAutoreleasePool+addObject:].<br />
+  *   An autorelease pool simply maintains a reference to each object
+  *   added to it, and for each addition, the autorelease pool will
+  *   call the [NSObject-release] method of the object when the pool
+  *   is released.  So doing an AUTORELEASE() is just the same as
+  *   doing a RELEASE(), but deferred until the current autorelease
+  *   pool is deallocated.
+  * </p>
+  * <p>
+  *   The NSAutoreleasePool class maintains a separate stack of
+  *   autorelease pools objects in each thread.
+  * </p>
+  * <p>
+  *   When an autorelease pool is created, it is automatically
+  *   added to the stack of pools in the thread.
+  * </p>
+  * <p>
+  *   When a pool is destroyed, it (and any pool later in
+  *   the stack) is removed from the stack.
+  * </p>
+  * <p>
+  *   This mechanism provides a simple but controllable and reasonably
+  *   efficient way of managing temporary objects.  An object can be
+  *   autoreleased and then passed around and used until the topmost 
+  *   pool in the stack is destroyed.
+  * </p>   
+  * <p>
+  *   Most methods return objects which are either owned by autorelease
+  *   pools or by the receiver of the method, so the lifetime of the
+  *   returned object can be assumed to be the shorter of the lifetime
+  *   of the current autorelease pool, or that of the receiver on which
+  *   the method was called.<br />
+  *   The exceptions to this are those object returned by -
+  * </p>
+  * <deflist>
+  *   <term>[NSObject+alloc], [NSObject+allocWithZone:]</term>
+  *   <desc>
+  *     Methods whose names begin with alloc return an uninitialised
+  *     object, owned by the caller.
+  *   </desc>
+  *   <term>[NSObject-init]</term>
+  *   <desc>
+  *     Methods whose names begin with init return an initialised
+  *     version of the receiving object, owned by the caller.<br />
+  *     NB. The returned object may not actually be the same as the
+  *     receiver ... sometimes an init method releases the original
+  *     receiver and returns an alternative.
+  *   </desc>
+  *   <term>[NSObject+new]</term>
+  *   <desc>
+  *     Methods whose names begin with new combine the effects of
+  *     allocation and initialisation.
+  *   </desc>
+  *   <term>[NSObject-copy], [(NSCopying)-copyWithZone:]</term>
+  *   <desc>
+  *     Methods whose names begin with copy create a copy of the receiver
+  *     which is owned by the caller.
+  *   </desc>
+  *   <term>
+  *     [NSObject-mutableCopy], [(NSMutableCopying)-mutableCopyWithZone:]
+  *   </term>
+  *   <desc>
+  *     Methods whose names begin with mutableCopy create a copy of the receiver
+  *     which is owned by the caller.
+  *   </desc>
+  * </deflist>
+  */
+ NS_AUTOMATED_REFCOUNT_UNAVAILABLE
+ @interface NSAutoreleasePool : NSObject 
+ {
+ #if	GS_EXPOSE(NSAutoreleasePool) && !__has_feature(objc_arc)
+   /* For re-setting the current pool when we are dealloc'ed. */
+   NSAutoreleasePool *_parent;
+   /* This pointer to our child pool is  necessary for co-existing
+      with exceptions. */
+   NSAutoreleasePool *_child;
+   /* A collection of the objects to be released. */
+   struct autorelease_array_list *_released;
+   struct autorelease_array_list *_released_head;
+   /* The total number of objects autoreleased in this pool. */
+   unsigned _released_count;
+   /* The method to add an object to this pool */
+   void 	(*_addImp)(id, SEL, id);
+ #endif
+ #if     GS_NONFRAGILE
+ #else
+   /* Pointer to private additional data used to avoid breaking ABI
+    * when we don't have the non-fragile ABI available.
+    * Use this mechanism rather than changing the instance variable
+    * layout (see Source/GSInternal.h for details).
+    */
+   @private id _internal GS_UNUSED_IVAR;
+ #endif
+ }
+ 
+ /**
+  * Adds anObj to the current autorelease pool.<br />
+  * If there is no autorelease pool in the thread,
+  * a warning is logged and the object is leaked (ie it will not be released).
+  */
+ + (void) addObject: (id)anObj;
+ 
+ /**
+  * Allocate and return an autorelease pool instance.<br />
+  * If there is an already-allocated NSAutoreleasePool available,
+  * save time by just returning that, rather than allocating a new one.<br />
+  * The pool instance becomes the current autorelease pool for this thread.
+  */
+ + (id) allocWithZone: (NSZone*)zone;
+ 
+ /**
+  * Adds anObj to this autorelease pool.
+  */
+ - (void) addObject: (id)anObj;
+ 
+ /**
+  * Raises an exception - pools should not be autoreleased.
+  */
+ - (id) autorelease;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
+ /**
+  * Intended to trigger a garbage collection run (if needed) when called in
+  * a garbage collected environment.<br />
+  * In a non-garbage collected environment, this method implements the
+  * undocumented MacOS-X behavior, and releases the receiver.
+  */
+ - (void) drain;
+ #endif
+ 
+ /**
+  * Destroys the receiver (calls -dealloc).
+  */
+ - (oneway void) release;
+ 
+ /**
+  * Raises an exception ... pools should not be retained.
+  */
+ - (id) retain;
+ 
+ #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
+ /**
+  * <p>
+  *   Counts the number of times that the specified object occurs
+  *   in autorelease pools in the current thread.
+  * </p>
+  * <p>
+  *   This method is <em>slow</em> and should probably only be
+  *   used for debugging purposes.
+  * </p>
+  */
+ + (unsigned) autoreleaseCountForObject: (id)anObject;
+ 
+ /** 
+  * Return the currently active autorelease pool.
+  */
+ + (id) currentPool;
+ 
+ /**
+  * <p>
+  *   Specifies whether objects contained in autorelease pools are to
+  *   be released when the pools are deallocated (by default YES).
+  * </p>
+  * <p>
+  *   You can set this to NO for debugging purposes.
+  * </p>
+  */
+ + (void) enableRelease: (BOOL)enable;
+ 
+ /**
+  * <p>
+  *   When autorelease pools are deallocated, the memory they used
+  *   is retained in a cache for re-use so that new polls can be
+  *   created very quickly.
+  * </p>
+  * <p>
+  *   This method may be used to empty that cache, ensuring that
+  *   the minimum memory is used by the application.
+  * </p>
+  */
+ + (void) freeCache;
+ 
+ /**
+  * <p>
+  *   Specifies a limit to the number of objects that may be added to
+  *   an autorelease pool.  When this limit is reached an exception is
+  *   raised.
+  * </p>
+  * <p>
+  *   You can set this to a smallish value to catch problems with code
+  *   that autoreleases too many objects to operate efficiently.
+  * </p>
+  * <p>
+  *   Default value is maxint.
+  * </p>
+  */
+ + (void) setPoolCountThreshold: (unsigned)c;
+ 
+ /**
+  * Return the number of objects in this pool.
+  */
+ - (unsigned) autoreleaseCount;
+ 
+ /**
+  * Empties the current pool by releasing all the autoreleased objects
+  * in it.  Also destroys any child pools (ones created after
+  * the receiver in the same thread) causing any objects in those pools
+  * to be released.<br />
+  * This is a low cost (efficient) method which may be used to get rid of
+  * autoreleased objects in the pool, but carry on using the pool.
+  */
+ - (void) emptyPool;
+ #endif
+ @end
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif /* __NSAutoreleasePool_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,300 ----
+ /* Interface for NSDate for GNUStep
+    Copyright (C) 1994, 1996, 1999 Free Software Foundation, Inc.
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+   */
+ 
+ #ifndef __NSDate_h_GNUSTEP_BASE_INCLUDE
+ #define __NSDate_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ #import	"NSObjCRuntime.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ GS_EXPORT NSString * const NSSystemClockDidChangeNotification;
+ 
+ /**
+  * Time interval difference between two dates, in seconds.
+  */
+ typedef double NSTimeInterval;
+ 
+ /**
+  * Time interval between the unix standard reference date of 1 January 1970
+  * and the OpenStep reference date of 1 January 2001<br />
+  * This number comes from:<br />
+  * (((31 years * 365 days) + 8 days for leap years) = total number of days<br />
+  * 24 hours * 60 minutes * 60 seconds)<br />
+  * This ignores leap-seconds.
+  */
+ GS_EXPORT const NSTimeInterval NSTimeIntervalSince1970;
+ 
+ #import	"NSObject.h"
+ 
+ @class NSArray;
+ @class NSCalendarDate;
+ @class NSData;
+ @class NSDictionary;
+ @class NSString;
+ @class NSTimeZone;
+ @class NSTimeZoneDetail;
+ 
+ @interface NSDate : NSObject <NSCoding,NSCopying>
+ {
+ }
+ 
+ /** Returns an autoreleased instance with the current date/time.
+  */
+ + (id) date;
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /** Returns an autoreleased instance representing the date and time given
+  * by string. The value of string may be a 'natural' specification as
+  * specified by the preferences in the user defaults database, allowing
+  * phrases like 'last tuesday'
+  */
+ + (id) dateWithNaturalLanguageString: (NSString*)string;
+ 
+ /**
+  * <p>Returns an autoreleased instance representing the date and time given
+  * by string. The value of string may be a 'natural' specification as
+  * specified by the preferences in the user defaults database, allowing
+  * phrases like 'last tuesday'
+  * </p>
+  * The locale contains keys such as -
+  * <deflist>
+  *   <term>NSDateTimeOrdering</term>
+  *   <desc>Controls the use of ambiguous numbers. This is done as a
+  *   sequence of the letters D(ay), M(onth), Y(ear), and H(our).
+  *   YMDH means that the first number encountered is assumed to be a
+  *   year, the second a month, the third a day, and the last an hour.
+  *   </desc>
+  *   <term>NSEarlierTimeDesignations</term>
+  *   <desc>An array of strings for times in the past.<br />
+  *   Defaults are <em>ago</em>, <em>last</em>, <em>past</em>, <em>prior</em>
+  *   </desc>
+  *   <term>NSHourNameDesignations</term>
+  *   <desc>An array of arrays of strings identifying the time of day.
+  *   Each array has an hour as its first value, and one or more words
+  *   as subsequent values.<br />
+  *   Defaults are: (0, midnight), (10, morning), (12, noon, lunch),
+  *   (14, afternoon), (19, dinner).
+  *   </desc>
+  *   <term>NSLaterTimeDesignations</term>
+  *   <desc>An array of strings for times in the future.<br />
+  *   Default is <em>next</em>
+  *   </desc>
+  *   <term>NSNextDayDesignations</term>
+  *   <desc>The day after today. Default is <em>tomorrow.</em>
+  *   </desc>
+  *   <term>NSNextNextDayDesignations</term>
+  *   <desc>The day after tomorrow. Default is <em>nextday.</em>
+  *   </desc>
+  *   <term>NSPriorDayDesignations</term>
+  *   <desc>The day before today. Default is <em>yesterday.</em>
+  *   </desc>
+  *   <term>NSThisDayDesignations</term>
+  *   <desc>Identifies the current day. Default is <em>today.</em>
+  *   </desc>
+  *   <term>NSYearMonthWeekDesignations</term>
+  *   <desc>An array giving the word for year, month, and week.<br />
+  *   Defaults are <em>year</em>, <em>month</em> and <em>week</em>.
+  *   </desc>
+  * </deflist>
+  */
+ + (id) dateWithNaturalLanguageString: (NSString*)string
+                               locale: (NSDictionary*)locale;
+ #endif
+ 
+ /** Returns an autoreleased instance with the date and time value given
+  * by the string using the ISO standard format YYYY-MM-DD HH:MM:SS +/-HHHMM
+  * (all the fields of which must be present).
+  */
+ + (id) dateWithString: (NSString*)description;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6,GS_API_LATEST)
+ /** Returns an autoreleased NSDate instance whose value is offset from
+  * that of the given date by the specified interval in seconds.
+  */
+ + (id) dateWithTimeInterval: (NSTimeInterval)seconds sinceDate: (NSDate*)date;
+ #endif
+ 
+ /** Returns an autoreleased instance with the offset from the unix system
+  * reference date of 1 January 1970, GMT.
+  */
+ + (id) dateWithTimeIntervalSince1970: (NSTimeInterval)seconds;
+ 
+ /** Returns an autoreleased instance with the offset from the current
+  * date/time given by seconds (which may be fractional).
+  */
+ + (id) dateWithTimeIntervalSinceNow: (NSTimeInterval)seconds;
+ 
+ /** Returns an autoreleased instance with the offset from the OpenStep
+  * reference date of 1 January 2001, GMT.
+  */
+ + (id) dateWithTimeIntervalSinceReferenceDate: (NSTimeInterval)seconds;
+ 
+ /** Returns an autoreleased instance with the date/time set in the far
+  * past.
+  */
+ + (id) distantPast;
+ 
+ /** Returns an autoreleased instance with the date/time set in the far
+  * future.
+  */
+ + (id) distantFuture;
+ 
+ /** Returns the time interval between the reference date and the current
+  * time.
+  */
+ + (NSTimeInterval) timeIntervalSinceReferenceDate;
+ 
+ /** Returns an autorelease date instance formed by adding the specified
+  * time interval in seconds to the receiver's time interval.
+  */
+ - (id) addTimeInterval: (NSTimeInterval)seconds;
+ 
+ /** Returns the time interval between the receivers value and the
+  * OpenStep reference date of 1 Jan 2001 GMT.
+  */
+ - (NSComparisonResult) compare: (NSDate*)otherDate;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6,GS_API_LATEST)
+ /** Returns an autoreleased NSDate instance whose value is offset from
+  * that of the receiver by the specified interval.
+  */
+ - (id) dateByAddingTimeInterval: (NSTimeInterval)ti;
+ #endif
+ 
+ /** Returns an autoreleased instance of the [NSCalendarDate] class whose
+  * date/time value is the same as that of the receiver, and which uses
+  * the formatString and timeZone specified.
+  */
+ - (NSCalendarDate*) dateWithCalendarFormat: (NSString*)formatString
+ 				  timeZone: (NSTimeZone*)timeZone;
+ 
+ /** Returns a string representation of the receiver formatted according
+  * to the default format string, time zone, and locale.
+  */
+ - (NSString*) description;
+ 
+ /** Returns a string representation of the receiver formatted according
+  * to the specified format string, time zone, and locale.
+  */
+ - (NSString*) descriptionWithCalendarFormat: (NSString*)format
+ 				   timeZone: (NSTimeZone*)aTimeZone
+ 				     locale: (NSDictionary*)l;
+ 
+ /** Returns a string representation of the receiver formatted according
+  * to the default format string and time zone, but using the given locale.
+  */
+ - (NSString*) descriptionWithLocale: (id)locale;
+ 
+ /** Returns the earlier of the receiver and otherDate.<br />
+  * If the two represent identical date/time values, returns the receiver.
+  */
+ - (NSDate*) earlierDate: (NSDate*)otherDate;
+ 
+ /** Returns an instance initialised with the current date/time.
+  */
+ - (id) init;
+ 
+ /** Returns an instance with the date and time value given
+  * by the string using the ISO standard format YYYY-MM-DD HH:MM:SS +/-HHHMM
+  * (all the fields of which must be present).
+  */
+ - (id) initWithString: (NSString*)description;
+ 
+ /** Returns an instance with the given offset from anotherDate.
+  */
+ - (id) initWithTimeInterval: (NSTimeInterval)secsToBeAdded
+ 		  sinceDate: (NSDate*)anotherDate;
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /** Returns an instance with the offset from the unix system
+  * reference date of 1 January 1970, GMT.
+  */
+ - (id) initWithTimeIntervalSince1970: (NSTimeInterval)seconds;
+ #endif
+ 
+ /** Returns an instance with the offset from the current date/time.
+  */
+ - (id) initWithTimeIntervalSinceNow: (NSTimeInterval)secsToBeAdded;
+ 
+ /** <init />
+  * Returns an instance with the given offset from the OpenStep
+  * reference date of 1 January 2001, GMT.
+  */
+ - (id) initWithTimeIntervalSinceReferenceDate: (NSTimeInterval)secs;
+ 
+ /** Returns NO if other is not a date, otherwise returns the result of
+  * calling the -isEqualtoDate: method.
+  */
+ - (BOOL) isEqual: (id)other;
+ 
+ /**  Returns whether the receiver is exactly equal to other, to the limit
+  *  of the NSTimeInterval precision.<br />
+  *  This is the behavior of the current MacOS-X system, not that of the
+  *  OpenStep specification (which counted two dates within a second of
+  *  each other as being equal).<br />
+  *  The old behavior meant that two dates equal to a third date were not
+  *  necessarily equal to each other (confusing), and meant that there was
+  *  no reasonable way to use a date as a dictionary key or store dates
+  *  in a set.
+  */
+ - (BOOL) isEqualToDate: (NSDate*)other;
+ 
+ /** Returns the earlier of the receiver and otherDate.<br />
+  * If the two represent identical date/time values, returns the receiver.
+  */
+ - (NSDate*) laterDate: (NSDate*)otherDate;
+ 
+ /** Returns the time interval between the receivers value and the
+  * unix system reference date of 1 January 1970, GMT.
+  */
+ - (NSTimeInterval) timeIntervalSince1970;
+ 
+ /** Returns the time interval between the receivers value and that of the
+  * otherDate argument.  If otherDate is earlier than the receiver, the
+  * returned value will be positive, if it is later it will be negative.<br />
+  * For current (2011) OSX compatibility, this method returns NaN if otherDate
+  * is nil ... do not write code depending on that behavior.
+  */
+ - (NSTimeInterval) timeIntervalSinceDate: (NSDate*)otherDate;
+ 
+ /** Returns the time interval between the receivers value and the
+  * current date/time.  If the receiver represents a date/time in
+  * the past this will be negative, if it is in the future the
+  * returned value will be positive.
+  */
+ - (NSTimeInterval) timeIntervalSinceNow;
+ 
+ /** Returns the time interval between the receivers value and the
+  * OpenStep reference date of 1 Jan 2001 GMT.
+  */
+ - (NSTimeInterval) timeIntervalSinceReferenceDate;
+ 
+ @end
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif  /* __NSDate_h_GNUSTEP_BASE_INCLUDE*/
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,63 ----
+ /*
+    NSEnumerator.h
+ 
+    Copyright (C) 1998 Free Software Foundation, Inc.
+ 
+    Author:  Scott Christley <scottc@net-community.com>
+    Date: January 1998
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ */
+ 
+ #ifndef __NSEnumerator_h_GNUSTEP_BASE_INCLUDE
+ #define __NSEnumerator_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ #import	"NSObject.h"
+ 
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ @class GS_GENERIC_CLASS(NSArray, ElementT);
+ 
+ typedef struct
+ {
+   unsigned long	state;
+   __unsafe_unretained id		*itemsPtr;
+   unsigned long	*mutationsPtr;
+   unsigned long	extra[5];
+ } NSFastEnumerationState;
+ 
+ @protocol NSFastEnumeration
+ - (NSUInteger) countByEnumeratingWithState: (NSFastEnumerationState *)state
+ 				   objects: (__unsafe_unretained id[])stackbuf
+ 				     count: (NSUInteger)len;
+ @end
+ 
+ @interface GS_GENERIC_CLASS(NSEnumerator, IterT) : NSObject <NSFastEnumeration>
+ - (GS_GENERIC_CLASS(NSArray, IterT) *) allObjects;
+ - (GS_GENERIC_TYPE(IterT)) nextObject;
+ @end
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif /* __NSEnumerator_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,609 ----
+ /* Interface for NSGeometry routines for GNUStep
+  * Copyright (C) 1995 Free Software Foundation, Inc.
+  * 
+  * Written by:  Adam Fedor <fedor@boulder.colorado.edu>
+  * Date: 1995,199
+  * 
+  * This file is part of the GNUstep Base Library.
+  * 
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2 of the License, 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
+  * Library General Public License for more details.
+  * 
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this library; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  * Boston, MA 02111 USA.
+  */ 
+ 
+ #ifndef __NSGeometry_h_GNUSTEP_BASE_INCLUDE
+ #define __NSGeometry_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ #import <objc/objc.h>
+ 
+ #import "NSString.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ /**** Type, Constant, and Macro Definitions **********************************/
+ 
+ #ifndef MAX
+ #define MAX(a,b) \
+        ({__typeof__(a) _MAX_a = (a); __typeof__(b) _MAX_b = (b);  \
+          _MAX_a > _MAX_b ? _MAX_a : _MAX_b; })
+ #define	GS_DEFINED_MAX
+ #endif
+ 
+ #ifndef MIN
+ #define MIN(a,b) \
+        ({__typeof__(a) _MIN_a = (a); __typeof__(b) _MIN_b = (b);  \
+          _MIN_a < _MIN_b ? _MIN_a : _MIN_b; })
+ #define	GS_DEFINED_MIN
+ #endif
+ 
+ /**
+ <example>{
+   CGFloat x;
+   CGFloat y;
+ }</example>
+  <p>Represents a 2-d cartesian position.</p> */
+ typedef struct _NSPoint NSPoint;
+ struct _NSPoint
+ {
+   CGFloat x;
+   CGFloat y;
+ };
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /** Array of NSPoint structs. */
+ typedef NSPoint *NSPointArray;
+ /** Pointer to NSPoint struct. */
+ typedef NSPoint *NSPointPointer;
+ #endif
+ 
+ /**
+ <example>{
+   CGFloat width;
+   CGFloat height;
+ }</example>
+  <p>Floating point rectangle size.</p> */
+ typedef struct _NSSize NSSize;
+ struct _NSSize
+ {
+   CGFloat width;
+   CGFloat height;
+ };
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /** Array of NSSize structs. */
+ typedef NSSize *NSSizeArray;
+ /** Pointer to NSSize struct. */
+ typedef NSSize *NSSizePointer;
+ #endif
+ 
+ /**
+ <example>{
+   NSPoint origin;
+   NSSize size;
+ }</example>
+ 
+  <p>Rectangle.</p> */
+ typedef struct _NSRect NSRect;
+ struct _NSRect
+ {
+   NSPoint origin;
+   NSSize size;
+ };
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /** Array of NSRect structs. */
+ typedef NSRect *NSRectArray;
+ /** Pointer to NSRect struct. */
+ typedef NSRect *NSRectPointer;
+ #endif
+ 
+ enum
+ {
+   NSMinXEdge = 0,
+   NSMinYEdge = 1,
+   NSMaxXEdge = 2,
+   NSMaxYEdge = 3
+ };
+ /** Sides of a rectangle.
+ <example>
+ {
+   NSMinXEdge,
+   NSMinYEdge,
+   NSMaxXEdge,
+   NSMaxYEdge
+ }
+ </example>
+  */
+ typedef NSUInteger NSRectEdge;
+ 
+ /**
+ <example>{
+   CGFloat top;
+   CGFloat left;
+   CGFloat bottom;
+   CGFloat right;
+ }</example>
+ 
+  <p>A description of the distance between the edges of two rectangles.</p> */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
+ typedef struct NSEdgeInsets {
+     CGFloat top;
+     CGFloat left;
+     CGFloat bottom;
+     CGFloat right;
+ } NSEdgeInsets;
+ #endif
+ 
+ /** Point at 0,0 */
+ static const NSPoint NSZeroPoint __attribute__((unused)) = {0.0,0.0};
+ /** Zero-size rectangle at 0,0 */
+ static const NSRect NSZeroRect __attribute__((unused)) = {{0.0,0.0},{0.0,0.0}};
+ /** Zero size */
+ static const NSSize NSZeroSize __attribute__((unused)) = {0.0,0.0};
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
+ /** Zero edge insets **/
+ static const NSEdgeInsets NSEdgeInsetsZero __attribute__((unused))  = {0.0,0.0,0.0,0.0};
+ #endif
+ 
+ /**** Function Prototypes ****************************************************/
+ 
+ /*
+  *	All but the most complex functions are declared static inline in this
+  *	header file so that they are maximally efficient.  In order to provide
+  *	true functions (for code modules that don't have this header) this
+  *	header is included in NSGeometry.m where the functions are no longer
+  *	declared inline.
+  */
+ #ifdef	IN_NSGEOMETRY_M
+ #define	GS_GEOM_SCOPE	extern
+ #define GS_GEOM_ATTR	
+ #else
+ #define	GS_GEOM_SCOPE	static inline
+ #define GS_GEOM_ATTR	__attribute__((unused))
+ #endif
+ 
+ /** Create Basic Structures... **/
+ 
+ GS_GEOM_SCOPE NSPoint
+ NSMakePoint(CGFloat x, CGFloat y) GS_GEOM_ATTR;
+ 
+ /** Returns an NSPoint having x-coordinate X and y-coordinate Y. */
+ GS_GEOM_SCOPE NSPoint
+ NSMakePoint(CGFloat x, CGFloat y)
+ {
+   NSPoint point;
+ 
+   point.x = x;
+   point.y = y;
+   return point;
+ }
+ 
+ GS_GEOM_SCOPE NSSize
+ NSMakeSize(CGFloat w, CGFloat h) GS_GEOM_ATTR;
+ 
+ /** Returns an NSSize having width w and height h. */
+ GS_GEOM_SCOPE NSSize
+ NSMakeSize(CGFloat w, CGFloat h)
+ {
+   NSSize size;
+ 
+   size.width = w;
+   size.height = h;
+   return size;
+ }
+ 
+ GS_GEOM_SCOPE NSRect
+ NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h) GS_GEOM_ATTR;
+ 
+ /** Returns an NSRect having point of origin (x, y) and size {w, h}. */
+ GS_GEOM_SCOPE NSRect
+ NSMakeRect(CGFloat x, CGFloat y, CGFloat w, CGFloat h)
+ {
+   NSRect rect;
+ 
+   rect.origin.x = x;
+   rect.origin.y = y;
+   rect.size.width = w;
+   rect.size.height = h;
+   return rect;
+ }
+ 
+ /** Constructs NSEdgeInsets. **/
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_7, GS_API_LATEST)
+ GS_GEOM_SCOPE NSEdgeInsets
+ NSEdgeInsetsMake(CGFloat top, CGFloat left,
+                  CGFloat bottom, CGFloat right) GS_GEOM_ATTR;
+ 
+ GS_GEOM_SCOPE NSEdgeInsets
+ NSEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
+ {
+   NSEdgeInsets edgeInsets;
+ 
+   edgeInsets.top = top;
+   edgeInsets.left = left;
+   edgeInsets.bottom = bottom;
+   edgeInsets.right = right;
+ 
+   return edgeInsets;
+ }
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
+ /** Compares two edge insets for equality. **/
+ GS_EXPORT BOOL
+ NSEdgeInsetsEqual(NSEdgeInsets e1, NSEdgeInsets e2);
+ #endif
+ 
+ #endif
+ 
+ /** Get a Rectangle's Coordinates... **/
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSMaxX(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns the greatest x-coordinate value still inside aRect. */
+ GS_GEOM_SCOPE CGFloat
+ NSMaxX(NSRect aRect)
+ {
+   return aRect.origin.x + aRect.size.width;
+ }
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSMaxY(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns the greatest y-coordinate value still inside aRect. */
+ GS_GEOM_SCOPE CGFloat
+ NSMaxY(NSRect aRect)
+ {
+   return aRect.origin.y + aRect.size.height;
+ }
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSMidX(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns the x-coordinate of aRect's middle point. */
+ GS_GEOM_SCOPE CGFloat
+ NSMidX(NSRect aRect)
+ {
+   return aRect.origin.x + (aRect.size.width / 2.0);
+ }
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSMidY(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns the y-coordinate of aRect's middle point. */
+ GS_GEOM_SCOPE CGFloat
+ NSMidY(NSRect aRect)
+ {
+   return aRect.origin.y + (aRect.size.height / 2.0);
+ }
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSMinX(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns the least x-coordinate value still inside aRect. */
+ GS_GEOM_SCOPE CGFloat
+ NSMinX(NSRect aRect)
+ {
+   return aRect.origin.x;
+ }
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSMinY(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns the least y-coordinate value still inside aRect. */
+ GS_GEOM_SCOPE CGFloat
+ NSMinY(NSRect aRect)
+ {
+   return aRect.origin.y;
+ }
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSWidth(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns aRect's width. */
+ GS_GEOM_SCOPE CGFloat
+ NSWidth(NSRect aRect)
+ {
+   return aRect.size.width;
+ }
+ 
+ GS_GEOM_SCOPE CGFloat
+ NSHeight(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns aRect's height. */
+ GS_GEOM_SCOPE CGFloat
+ NSHeight(NSRect aRect)
+ {
+   return aRect.size.height;
+ }
+ 
+ GS_GEOM_SCOPE BOOL
+ NSIsEmptyRect(NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Returns 'YES' iff the area of aRect is zero (i.e., iff either
+  * of aRect's width or height is negative or zero). */
+ GS_GEOM_SCOPE BOOL
+ NSIsEmptyRect(NSRect aRect)
+ {
+   return ((NSWidth(aRect) > 0) && (NSHeight(aRect) > 0)) ? NO : YES;
+ }
+ 
+ /** Modify a Copy of a Rectangle... **/
+ 
+ GS_GEOM_SCOPE NSRect
+ NSOffsetRect(NSRect aRect, CGFloat dx, CGFloat dy) GS_GEOM_ATTR;
+ 
+ /** Returns the rectangle obtained by translating aRect
+  * horizontally by dx and vertically by dy. */
+ GS_GEOM_SCOPE NSRect
+ NSOffsetRect(NSRect aRect, CGFloat dx, CGFloat dy)
+ {
+   NSRect rect = aRect;
+ 
+   rect.origin.x += dx;
+   rect.origin.y += dy;
+   return rect;
+ }
+ 
+ GS_GEOM_SCOPE NSRect
+ NSInsetRect(NSRect aRect, CGFloat dX, CGFloat dY) GS_GEOM_ATTR;
+ 
+ /** Returns the rectangle obtained by moving each of aRect's
+  * horizontal sides inward by dy and each of aRect's vertical
+  * sides inward by dx.<br />
+  * NB. For MacOS-X compatability, this is permitted to return
+  * a rectanglew with nagative width or height, strange as that seems.
+  */
+ GS_GEOM_SCOPE NSRect
+ NSInsetRect(NSRect aRect, CGFloat dX, CGFloat dY)
+ {
+   NSRect rect;
+ 
+   rect = NSOffsetRect(aRect, dX, dY);
+   rect.size.width -= (2 * dX);
+   rect.size.height -= (2 * dY);
+   return rect;
+ }
+ 
+ /** Divides aRect into two rectangles (namely slice and remainder) by
+  * "cutting" aRect---parallel to, and a distance amount from the given edge
+  * of aRect.  You may pass 0 in as either of slice or
+  * remainder to avoid obtaining either of the created rectangles. */
+ GS_EXPORT void
+ NSDivideRect(NSRect aRect,
+              NSRect *slice,
+              NSRect *remainder,
+              CGFloat amount,
+              NSRectEdge edge);
+ 
+ /** Returns a rectangle obtained by expanding aRect minimally
+  * so that all four of its defining components are integers. */
+ GS_EXPORT NSRect
+ NSIntegralRect(NSRect aRect);
+ 
+ /** Compute a Third Rectangle from Two Rectangles... **/
+ 
+ GS_GEOM_SCOPE NSRect
+ NSUnionRect(NSRect aRect, NSRect bRect) GS_GEOM_ATTR;
+ 
+ /** Returns the smallest rectangle which contains both aRect
+  * and bRect (modulo a set of measure zero).  If either of aRect
+  * or bRect is an empty rectangle, then the other rectangle is
+  * returned.  If both are empty, then the empty rectangle is returned. */
+ GS_GEOM_SCOPE NSRect
+ NSUnionRect(NSRect aRect, NSRect bRect)
+ {
+   NSRect rect;
+ 
+   if (NSIsEmptyRect(aRect) && NSIsEmptyRect(bRect))
+     return NSMakeRect(0.0,0.0,0.0,0.0);
+   else if (NSIsEmptyRect(aRect))
+     return bRect;
+   else if (NSIsEmptyRect(bRect))
+     return aRect;
+ 
+   rect = NSMakeRect(MIN(NSMinX(aRect), NSMinX(bRect)),
+                     MIN(NSMinY(aRect), NSMinY(bRect)), 0.0, 0.0);
+ 
+   rect = NSMakeRect(NSMinX(rect),
+                     NSMinY(rect),
+                     MAX(NSMaxX(aRect), NSMaxX(bRect)) - NSMinX(rect),
+                     MAX(NSMaxY(aRect), NSMaxY(bRect)) - NSMinY(rect));
+ 
+   return rect;
+ }
+ 
+ GS_GEOM_SCOPE NSRect
+ NSIntersectionRect(NSRect aRect, NSRect bRect) GS_GEOM_ATTR;
+ 
+ /** Returns the largest rectangle which lies in both aRect and
+  * bRect.  If aRect and bRect have empty intersection (or, rather,
+  * intersection of measure zero, since this includes having their
+  * intersection be only a point or a line), then the empty
+  * rectangle is returned. */
+ GS_GEOM_SCOPE NSRect
+ NSIntersectionRect (NSRect aRect, NSRect bRect)
+ {
+   if (NSMaxX(aRect) <= NSMinX(bRect) || NSMaxX(bRect) <= NSMinX(aRect)
+     || NSMaxY(aRect) <= NSMinY(bRect) || NSMaxY(bRect) <= NSMinY(aRect)) 
+     {
+       return NSMakeRect(0.0, 0.0, 0.0, 0.0);
+     }
+   else
+     {
+       NSRect    rect;
+ 
+       if (NSMinX(aRect) <= NSMinX(bRect))
+         rect.origin.x = bRect.origin.x;
+       else
+         rect.origin.x = aRect.origin.x;
+ 
+       if (NSMinY(aRect) <= NSMinY(bRect))
+         rect.origin.y = bRect.origin.y;
+       else
+         rect.origin.y = aRect.origin.y;
+ 
+       if (NSMaxX(aRect) >= NSMaxX(bRect))
+         rect.size.width = NSMaxX(bRect) - rect.origin.x;
+       else
+         rect.size.width = NSMaxX(aRect) - rect.origin.x;
+ 
+       if (NSMaxY(aRect) >= NSMaxY(bRect))
+         rect.size.height = NSMaxY(bRect) - rect.origin.y;
+       else
+         rect.size.height = NSMaxY(aRect) - rect.origin.y;
+ 
+       return rect;
+     }
+ }
+ 
+ /** Test geometric relationships... **/
+ 
+ /** Returns 'YES' iff aRect's and bRect's origin and size are the same. */
+ GS_EXPORT BOOL
+ NSEqualRects(NSRect aRect, NSRect bRect) GS_GEOM_ATTR;
+ 
+ /** Returns 'YES' iff aSize's and bSize's width and height are the same. */
+ GS_EXPORT BOOL
+ NSEqualSizes(NSSize aSize, NSSize bSize) GS_GEOM_ATTR;
+ 
+ /** Returns 'YES' iff aPoint's and bPoint's x- and y-coordinates
+  * are the same. */
+ GS_EXPORT BOOL
+ NSEqualPoints(NSPoint aPoint, NSPoint bPoint) GS_GEOM_ATTR;
+ 
+ GS_GEOM_SCOPE BOOL
+ NSMouseInRect(NSPoint aPoint, NSRect aRect, BOOL flipped) GS_GEOM_ATTR;
+ 
+ /** Returns 'YES' iff aPoint is inside aRect. */ 
+ GS_GEOM_SCOPE BOOL
+ NSMouseInRect(NSPoint aPoint, NSRect aRect, BOOL flipped)
+ {
+   if (flipped)
+     {
+       return ((aPoint.x >= NSMinX(aRect))
+         && (aPoint.y >= NSMinY(aRect))
+         && (aPoint.x < NSMaxX(aRect))
+         && (aPoint.y < NSMaxY(aRect))) ? YES : NO;
+     }
+   else
+     {
+       return ((aPoint.x >= NSMinX(aRect))
+         && (aPoint.y > NSMinY(aRect))
+         && (aPoint.x < NSMaxX(aRect))
+         && (aPoint.y <= NSMaxY(aRect))) ? YES : NO;
+     }
+ }
+ 
+ GS_GEOM_SCOPE BOOL
+ NSPointInRect(NSPoint aPoint, NSRect aRect) GS_GEOM_ATTR;
+ 
+ /** Just like 'NSMouseInRect(aPoint, aRect, YES)'. */
+ GS_GEOM_SCOPE BOOL
+ NSPointInRect(NSPoint aPoint, NSRect aRect)
+ {
+   return NSMouseInRect(aPoint, aRect, YES);
+ }
+ 
+ GS_GEOM_SCOPE BOOL
+ NSContainsRect(NSRect aRect, NSRect bRect) GS_GEOM_ATTR;
+ 
+ /** Returns 'YES' iff aRect totally encloses bRect.  NOTE: For
+  * this to be the case, aRect cannot be empty, nor can any side
+  * of bRect go beyond any side of aRect. Note that this behavior
+  * is different than the original OpenStep behavior, where the sides
+  * of bRect could not touch aRect. */
+ GS_GEOM_SCOPE BOOL
+ NSContainsRect(NSRect aRect, NSRect bRect)
+ {
+   return (!NSIsEmptyRect(bRect)
+     && (NSMinX(aRect) <= NSMinX(bRect))
+     && (NSMinY(aRect) <= NSMinY(bRect))
+     && (NSMaxX(aRect) >= NSMaxX(bRect))
+     && (NSMaxY(aRect) >= NSMaxY(bRect))) ? YES : NO;
+ }
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ GS_GEOM_SCOPE BOOL
+ NSIntersectsRect(NSRect aRect, NSRect bRect) GS_GEOM_ATTR;
+ 
+ /** Returns YES if aRect and bRect have non-zero intersection area
+     (intersecting at a line or a point doesn't count). */
+ GS_GEOM_SCOPE BOOL
+ NSIntersectsRect(NSRect aRect, NSRect bRect)
+ {
+   /* Note that intersecting at a line or a point doesn't count */
+   return (NSMaxX(aRect) <= NSMinX(bRect)
+     || NSMaxX(bRect) <= NSMinX(aRect)
+     || NSMaxY(aRect) <= NSMinY(bRect)
+     || NSMaxY(bRect) <= NSMinY(aRect)
+     || NSIsEmptyRect(aRect)
+     || NSIsEmptyRect(bRect)) ? NO : YES;
+ }
+ #endif
+ 
+ /** Get a String Representation... **/
+ 
+ #ifdef __OBJC__
+ /** Returns an NSString of the form "{x=X; y=Y}", where
+  * X and Y are the x- and y-coordinates of aPoint, respectively. */
+ GS_EXPORT NSString *
+ NSStringFromPoint(NSPoint aPoint);
+ 
+ /** Returns an NSString of the form "{x=X; y=Y; width=W; height=H}",
+  * where X, Y, W, and H are the x-coordinate, y-coordinate,
+  * width, and height of aRect, respectively. */
+ GS_EXPORT NSString *
+ NSStringFromRect(NSRect aRect);
+ 
+ /** Returns an NSString of the form "{width=W; height=H}", where
+  * W and H are the width and height of aSize, respectively. */
+ GS_EXPORT NSString *
+ NSStringFromSize(NSSize aSize);
+ 
+ /** Parses point from string of form "<code>{x=a; y=b}</code>". (0,0) returned
+     if parsing fails. */
+ GS_EXPORT NSPoint	NSPointFromString(NSString* string);
+ 
+ /** Parses size from string of form "<code>{width=a; height=b}</code>". Size of
+     0,0 returned if parsing fails. */
+ GS_EXPORT NSSize	NSSizeFromString(NSString* string);
+ 
+ /** Parses point from string of form "<code>{x=a; y=b; width=c;
+     height=d}</code>".  Rectangle of 0 size at origin returned if parsing
+     fails.
+ */
+ GS_EXPORT NSRect	NSRectFromString(NSString* string);
+ 
+ #endif /* __OBJC__ */
+ 
+ #ifdef	GS_DEFINED_MAX
+ #undef	GS_DEFINED_MAX
+ #undef	MAX
+ #endif
+ 
+ #ifdef	GS_DEFINED_MIN
+ #undef	GS_DEFINED_MIN
+ #undef	MIN
+ #endif
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif /* __NSGeometry_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,317 ----
+ /** Interface to ObjC runtime for GNUStep
+    Copyright (C) 1995, 1997, 2000 Free Software Foundation, Inc.
+ 
+    Written by:  Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
+    Date: 1995
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+     AutogsdocSource: NSObjCRuntime.m
+     AutogsdocSource: NSLog.m
+ 
+    */
+ 
+ #ifndef __NSObjCRuntime_h_GNUSTEP_BASE_INCLUDE
+ #define __NSObjCRuntime_h_GNUSTEP_BASE_INCLUDE
+ 
+ #ifdef __cplusplus
+ #ifndef __STDC_LIMIT_MACROS
+ #define __STDC_LIMIT_MACROS 1
+ #endif
+ #endif
+ 
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ #import	"../GNUstepBase/GSConfig.h"
+ #import	"../GNUstepBase/GNUstep.h"
+ #if __BLOCKS__
+ #import	"../GNUstepBase/GSBlocks.h"
+ #endif
+ 
+ #include <stdarg.h>
+ #include <limits.h>
+ #include <float.h>
+ 
+ /* PA HP-UX kludge.  */
+ #if defined(__hppa__) && defined(__hpux__) && !defined(PRIuPTR)
+ #define PRIuPTR "lu"
+ #endif
+ 
+ /* IRIX kludge.  */
+ #if defined(__sgi)
+ /* IRIX 6.5 <inttypes.h> provides all definitions, but only for C99
+    compilations.  */
+ #define PRId8 "hhd"
+ #define PRIu8 "hhu"
+ #if (_MIPS_SZLONG == 32)
+ #define PRId64 "lld"
+ #define PRIu64 "llu"
+ #endif
+ /* This doesn't match <inttypes.h>, which always has "lld" here, but the
+    arguments are uint64_t, int64_t, which are unsigned long, long for
+    64-bit in <sgidefs.h>.  */
+ #if (_MIPS_SZLONG == 64)
+ #define PRId64 "ld"
+ #define PRIu64 "lu"
+ #endif
+ /* This doesn't match <inttypes.h>, which has "u" here, but the arguments
+    are uintptr_t, which is always unsigned long.  */
+ #define PRIuPTR "lu"
+ #endif
+ 
+ /* Solaris < 10 kludge.  */
+ #if defined(__sun__) && defined(__svr4__) && !defined(PRIuPTR)
+ #if defined(__arch64__) || defined (__x86_64__)
+ #define PRIuPTR "lu"
+ #define PRIdPTR "ld"
+ #define PRIxPTR "lx"
+ #else
+ #define PRIuPTR "u"
+ #define PRIdPTR "d"
+ #define PRIxPTR "x"
+ #endif
+ #endif
+ 
+ 
+ /* These typedefs must be in place before GSObjCRuntime.h is imported.
+  */
+ 
+ #if     !defined(NSINTEGER_DEFINED)
+ typedef	intptr_t	NSInteger;
+ typedef	uintptr_t	NSUInteger;
+ #	define NSIntegerMax  INTPTR_MAX
+ #	define NSIntegerMin  INTPTR_MIN
+ #	define NSUIntegerMax UINTPTR_MAX
+ #endif /* !defined(NSINTEGER_DEFINED) */
+ 
+ #if     !defined(CGFLOAT_DEFINED)
+ #if     GS_SIZEOF_VOIDP == 8
+ #define CGFLOAT_IS_DBL  1
+ typedef double          CGFloat;
+ #define CGFLOAT_MIN	DBL_MIN
+ #define CGFLOAT_MAX	DBL_MAX
+ #else
+ typedef float           CGFloat;
+ #define CGFLOAT_MIN	FLT_MIN
+ #define CGFLOAT_MAX	FLT_MAX
+ #endif
+ #endif /* !defined(CGFLOAT_DEFINED) */
+ 
+ #define NSINTEGER_DEFINED 1
+ #define CGFLOAT_DEFINED 1
+ #ifndef NS_AUTOMATED_REFCOUNT_UNAVAILABLE
+ #  if __has_feature(objc_arc)
+ #    define NS_AUTOMATED_REFCOUNT_UNAVAILABLE \
+       __attribute__((unavailable("Not available with automatic reference counting")))
+ #  else
+ #    define NS_AUTOMATED_REFCOUNT_UNAVAILABLE
+ #  endif
+ #endif
+ 
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ 
+ /*
+  * We can have strongly typed enums in C++11 mode or when the objc_fixed_enum
+  * feature is availble.
+  */
+ #if (__has_feature(objc_fixed_enum) || (__cplusplus && (__cplusplus > 199711L) && __has_extension(cxx_strong_enums)))
+ #  define _GS_NAMED_ENUM(ty, name) enum name : ty name; enum name : ty
+ #  define _GS_ANON_ENUM(ty) enum : ty
+ #  if __cplusplus
+ #    define NS_OPTIONS(ty,name) ty name; enum : ty
+ #  else
+ #    define NS_OPTIONS(ty,name) NS_ENUM(ty,name)
+ #  endif
+ #else // this provides less information, but works with older compilers
+ #  define _GS_NAMED_ENUM(ty, name) ty name; enum
+ #  define _GS_ANON_ENUM(ty) enum
+ #  define NS_OPTIONS(ty, name) NS_ENUM(ty, name)
+ #endif
+ // A bit of fairy dust to expand NS_ENUM to the correct variant
+ #define _GS_GET_ENUM_MACRO(_first,_second,NAME,...) NAME
+ /* The trick here is that placing the variadic args first will push the name
+  * that the _GS_GET_ENUM_MACRO expands to into the correct position.
+  */
+ #define NS_ENUM(...) _GS_GET_ENUM_MACRO(__VA_ARGS__,_GS_NAMED_ENUM,_GS_ANON_ENUM)(__VA_ARGS__)
+ 
+ /*
+  * If the compiler supports nullability qualifiers, we define the macros for
+  * non-null sections.
+  */
+ #if __has_feature(nullability)
+ #  define NS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
+ #  define NS_ASSUME_NONNULL_END   _Pragma("clang assume_nonnull end")
+ #else
+ #  define NS_ASSUME_NONNULL_BEGIN
+ #  define NS_ASSUME_NONNULL_END
+ #endif
+ 
+ /*
+  * Backwards compatibility macro for instance type.
+  */
+ #if !__has_feature(objc_instancetype)
+ # define instancetype id
+ #endif
+ 
+ /*
+  * Backwards compatibility macros for Objective-C lightweight generics.
+  */
+ #if __has_feature(objc_generics)
+ # define GS_GENERIC_CLASS(clz, ...) clz<__VA_ARGS__>
+ # define GS_GENERIC_TYPE_F(typeRef, fallback) typeRef
+ #else
+ # define GS_GENERIC_CLASS(clz, ...) clz
+ # define GS_GENERIC_TYPE_F(typeRef, fallback) fallback
+ #endif
+ #define GS_GENERIC_TYPE(typeRef) GS_GENERIC_TYPE_F(typeRef, id)
+ 
+ /**
+  * Backwards compatibility macro for the objc_designated_initializer attribute
+  */
+ #if __has_attribute(objc_designated_initializer)
+ #  define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
+ #else
+ #  define NS_DESIGNATED_INITIALIZER
+ #endif
+ 
+ /** Bitfield used to specify options to control enumeration over collections.
+  */
+ typedef NS_OPTIONS(NSUInteger, NSEnumerationOptions)
+ {
+   NSEnumerationConcurrent = (1UL << 0), /** Specifies that the enumeration
+    * is concurrency-safe.  Note that this does not mean that it will be
+    * carried out in a concurrent manner, only that it can be.
+    */
+ 
+   NSEnumerationReverse = (1UL << 1) /** Specifies that the enumeration should
+    * happen in the opposite of the natural order of the collection.
+    */
+ };
+ 
+ 
+ /** Bitfield used to specify options to control the sorting of collections.
+  */
+ typedef NS_OPTIONS(NSUInteger, NSSortOptions)
+ {
+     NSSortConcurrent = (1UL << 0), /** Specifies that the sort
+      * is concurrency-safe.  Note that this does not mean that it will be
+      * carried out in a concurrent manner, only that it can be.
+      */
+     NSSortStable = (1UL << 4) /** Specifies that the sort should keep
+      * equal objects in the same order in the collection.
+      */
+ };
+ 
+ 
+ #import "../GNUstepBase/GSObjCRuntime.h"
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5,GS_API_LATEST)
+ GS_EXPORT NSString	*NSStringFromProtocol(Protocol *aProtocol);
+ GS_EXPORT Protocol	*NSProtocolFromString(NSString *aProtocolName);
+ #endif
+ GS_EXPORT SEL		NSSelectorFromString(NSString *aSelectorName);
+ GS_EXPORT NSString	*NSStringFromSelector(SEL aSelector);
+ GS_EXPORT SEL		NSSelectorFromString(NSString *aSelectorName);
+ GS_EXPORT Class		NSClassFromString(NSString *aClassName);
+ GS_EXPORT NSString	*NSStringFromClass(Class aClass);
+ GS_EXPORT const char	*NSGetSizeAndAlignment(const char *typePtr,
+   NSUInteger *sizep, NSUInteger *alignp);
+ 
+ #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
+ /* Logging */
+ /**
+  *  OpenStep spec states that log messages go to stderr, but just in case
+  *  someone wants them to go somewhere else, they can implement a function
+  *  like this and assign a pointer to it to _NSLog_printf_handler.
+  */
+ typedef void NSLog_printf_handler (NSString* message);
+ GS_EXPORT NSLog_printf_handler	*_NSLog_printf_handler;
+ GS_EXPORT int	_NSLogDescriptor;
+ @class NSRecursiveLock;
+ GS_EXPORT NSRecursiveLock	*GSLogLock(void);
+ #endif
+ 
+ GS_EXPORT void	NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
+ GS_EXPORT void	NSLogv(NSString *format, va_list args) NS_FORMAT_FUNCTION(1,0);
+ 
+ #ifndef YES
+ #define YES		1
+ #endif
+ #ifndef NO
+ #define NO		0
+ #endif
+ #ifndef nil
+ #define nil		0
+ #endif
+ 
+ /**
+  * Contains values <code>NSOrderedSame</code>, <code>NSOrderedAscending</code>
+  * <code>NSOrderedDescending</code>, for left hand side equals, less than, or
+  * greater than right hand side.
+  */
+ typedef NS_ENUM(NSInteger, NSComparisonResult)
+ {
+   NSOrderedAscending = (NSInteger)-1, NSOrderedSame, NSOrderedDescending
+ };
+ 
+ enum {NSNotFound = NSIntegerMax};
+ 
+ #if __BLOCKS__
+ DEFINE_BLOCK_TYPE(NSComparator, NSComparisonResult, id, id);
+ #endif
+ 
+ /**
+  * Declare the foundation export macro as an alias to GS_EXPORT 
+  */
+ #define FOUNDATION_EXPORT GS_EXPORT
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ /**
+  * Declare Apple availability macros for compatibility purposes as no-ops.
+  */
+ #define NS_CLASS_AVAILABLE(...)
+ #define NS_AVAILABLE(...)
+ #define NS_AVAILABLE_MAC(...)
+ #define NS_DEPRECATED(...)
+ #define NS_DEPRECATED_MAC(...)
+ #define NS_ENUM_AVAILABLE(...)
+ #define NS_ENUM_AVAILABLE_MAC(...)
+ #define NS_ENUM_DEPRECATED(...)
+ #define NS_ENUM_DEPRECATED_MAC(...)
+ #define NS_CLASS_AVAILABLE(...)
+ #define NS_CLASS_DEPRECATED(...)
+ #define NS_CLASS_AVAILABLE_MAC(...)
+ #define NS_CLASS_DEPRECATED_MAC(...)
+ #define NS_UNAVAILABLE
+ 
+ /* Define root class NS macro */
+ #ifndef NS_ROOT_CLASS
+ #if __has_attribute(objc_root_class)
+ #define NS_ROOT_CLASS __attribute__((objc_root_class))
+ #else
+ #define NS_ROOT_CLASS
+ #endif
+ #endif
+ 
+ #endif /* __NSObjCRuntime_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,594 ----
+ /**Interface for NSObject for GNUStep
+    Copyright (C) 1995, 1996, 1998 Free Software Foundation, Inc.
+ 
+    Written by:  Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
+    Date: 1995
+    
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+    
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+    AutogsdocSource: NSObject.m
+    */ 
+ 
+ #ifndef __NSObject_h_GNUSTEP_BASE_INCLUDE
+ #define __NSObject_h_GNUSTEP_BASE_INCLUDE
+ 
+ #import	"NSObjCRuntime.h"
+ #import <objc/objc.h>
+ #import	"NSZone.h"
+ 
+ #ifdef	GS_WITH_GC
+ #undef  GS_WITH_GC
+ #endif
+ #define	GS_WITH_GC	0
+ 
+ #import	"../GNUstepBase/GNUstep.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ @class NSArchiver;
+ @class NSArray;
+ @class NSCoder;
+ @class NSDictionary;
+ @class NSPortCoder;
+ @class NSMethodSignature;
+ @class NSMutableString;
+ @class NSRecursiveLock;
+ @class NSString;
+ @class NSInvocation;
+ @class Protocol;
+ 
+ /**
+  * The NSObject protocol describes a minimal set of methods that all
+  * objects are expected to support.  You should be able to send any
+  * of the messages listed in this protocol to an object, and be safe
+  * in assuming that the receiver can handle it.
+  */
+ @protocol NSObject
+ /**
+  * Returns the class of the receiver.  If the receiver is a proxy, then this
+  * may return the class of the proxy target.  Use -isProxy to determine whether
+  * the receiver is a proxy.  If you wish to find the real class of the
+  * receiver, ignoring proxies, then use object_getClass().  
+  */
+ - (Class) class;
+ /**
+  * Returns the superclass of receiver's class.  If the receiver is a proxy,
+  * then this may return the class of the proxy target.  Use -isProxy to
+  * determine whether the receiver is a proxy.  If you wish to find the real
+  * superclass of the receiver's class, ignoring proxies, then use
+  * class_getSuperclass(object_getClass()).
+  */
+ - (Class) superclass;
+ /**
+  * Returns whether the receiver is equal to the argument.  Defining equality is
+  * complex, so be careful when implementing this method.  Collections such as
+  * NSSet depend on the behaviour of this method.  In particular, this method
+  * must be commutative, so for any objects a and b:
+  *
+  * [a isEqual: b] == [b isEqual: a]
+  *
+  * This means that you must be very careful when returning YES if the argument
+  * is of another class.  For example, if you define a number class that returns
+  * YES if the argument is a string representation of the number, then this will
+  * break because the string will not recognise your object as being equal to
+  * itself.
+  *
+  * If two objects are equal, then they must have the same hash value, however
+  * equal hash values do not imply equality.
+  */
+ - (BOOL) isEqual: (id)anObject;
+ /**
+  * Returns YES if the receiver is an instance of the class, an instance of the
+  * subclass, or (in the case of proxies), an instance of something that can be
+  * treated as an instance of the class.
+  */
+ - (BOOL) isKindOfClass: (Class)aClass;
+ /**
+  * Returns YES if the receiver is an instance of the class or (in the case of
+  * proxies), an instance of something that can be treated as an instance of the
+  * class.
+  *
+  * Calling this method is rarely the correct thing to do.  In most cases, a
+  * subclass can be substituted for a superclass, so you should never need to
+  * check that an object is really an instance of a specific class and not a
+  * subclass.  
+  */
+ - (BOOL) isMemberOfClass: (Class)aClass;
+ /**
+  * Returns YES if the receiver is a proxy, NO otherwise.  The default
+  * implementation of this method in NSObject returns NO, while the
+  * implementation in NSProxy returns YES.
+  */
+ - (BOOL) isProxy;
+ /**
+  * Returns a hash value for the object.  All objects that are equal *MUST*
+  * return the same hash value.  For efficient storage in sets, or as keys in
+  * dictionaries, different objects should return hashes spread evenly over the
+  * range of an integer.
+  *
+  * An object may not return different values from this method after being
+  * stored in a collection.  This typically means that ether the hash value must
+  * be constant after the object's creation, or that the object may not be
+  * modified while stored in an unordered collection.
+  */
+ - (NSUInteger) hash;
+ /**
+  * Returns the receiver.  In a proxy, this may (but is not required to) return
+  * the proxied object.
+  */
+ - (id) self;
+ /**
+  * Performs the specified selector.  The selector must correspond to a method
+  * that takes no arguments.
+  */
+ - (id) performSelector: (SEL)aSelector;
+ /**
+  * Performs the specified selector, with the object as the argument.  This
+  * method does not perform any automatic unboxing, so the selector must
+  * correspond to a method that takes one object argument.
+  */
+ - (id) performSelector: (SEL)aSelector
+ 	    withObject: (id)anObject;
+ /**
+  * Performs the specified selector, with the objects as the arguments.  This
+  * method does not perform any automatic unboxing, so the selector must
+  * correspond to a method that takes two object arguments.
+  */
+ - (id) performSelector: (SEL)aSelector
+ 	    withObject: (id)object1
+ 	    withObject: (id)object2;
+ /**
+  * Returns YES if the object can respond to messages with the specified
+  * selector.  The default implementation in NSObject returns YES if the
+  * receiver has a method corresponding to the method, but other classes may
+  * return YES if they can respond to a selector using one of the various
+  * forwarding mechanisms.
+  */
+ - (BOOL) respondsToSelector: (SEL)aSelector;
+ /**
+  * Returns YES if the receiver conforms to the specified protocol.
+  */
+ - (BOOL) conformsToProtocol: (Protocol*)aProtocol;
+ /**
+  * Increments the reference count of the object and returns the receiver.  In
+  * garbage collected mode, this method does nothing.  In automated reference
+  * counting mode, you may neither implement this method nor call it directly.
+  */
+ - (id) retain NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
+ /**
+  * Decrements the reference count of the object and destroys if it there are no
+  * remaining references.  In garbage collected mode, this method does nothing.
+  * In automated reference counting mode, you may neither implement this method
+  * nor call it directly.
+  */
+ - (oneway void) release NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
+ /**
+  * Performs a deferred -release operation.  The object's reference count is
+  * decremented at the end of the scope of the current autorelease pool,
+  * identified either by a -drain message sent to the current NSAutoreleasePool
+  * instance, or in more recent versions of Objective-C by the end of an
+  * @autorelease_pool scope.
+  *
+  * In garbage collected mode, this method does nothing.  In automated reference
+  * counting mode, you may neither implement this method nor call it directly.
+  */
+ - (id) autorelease NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
+ /**
+  * Returns the current retain count of an object.  This does not include the
+  * result of any pending autorelease operations.
+  *
+  * Code that relies on this method returning a sane value is broken.  For
+  * singletons, it may return NSUIntegerMax.  Even when it is tracking a retain
+  * count, it will not include on-stack pointers in manual retain/release mode,
+  * pointers marked as __unsafe_unretain or __weak in ARC mode, or pending
+  * autorelease operations.  Its value is therefore largely meaningless.  It can
+  * occasionally be useful for debugging.
+  */
+ - (NSUInteger) retainCount NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
+ /**
+  * Returns the description of the object.  This is used by the %@ format
+  * specifier in strings.
+  */
+ - (NSString*) description;
+ /**
+  * Returns the zone of the object.
+  */
+ - (NSZone*) zone NS_AUTOMATED_REFCOUNT_UNAVAILABLE;
+ @end
+ 
+ /**
+  * This protocol must be adopted by any class wishing to support copying -
+  * ie where instances of the class should be able to create new instances
+  * which are copies of the original and, where a class has mutable and
+  * immutable versions, where the copies are immutable.
+  */
+ @protocol NSCopying
+ /**
+  * Called by [NSObject-copy] passing NSDefaultMallocZone() as zone.<br />
+  * This method returns a copy of the receiver and, where the receiver is a
+  * mutable variant of a class which has an immutable partner class, the
+  * object returned is an instance of that immutable class.<br />
+  * The new object is <em>not</em> autoreleased, and is considered to be
+  * 'owned' by the calling code ... which is therefore responsible for
+  * releasing it.<br />
+  * In the case where the receiver is an instance of a container class,
+  * it is undefined whether contained objects are merely retained in the
+  * new copy, or are themselves copied, or whether some other mechanism
+  * entirely is used.
+  */
+ - (id) copyWithZone: (NSZone*)zone;
+ @end
+ 
+ /**
+  * This protocol must be adopted by any class wishing to support
+  * mutable copying - ie where instances of the class should be able
+  * to create mutable copies of themselves.
+  */
+ @protocol NSMutableCopying
+ /**
+  * Called by [NSObject-mutableCopy] passing NSDefaultMallocZone() as zone.<br />
+  * This method returns a copy of the receiver and, where the receiver is an
+  * immutable variant of a class which has a mutable partner class, the
+  * object returned is an instance of that mutable class.
+  * The new object is <em>not</em> autoreleased, and is considered to be
+  * 'owned' by the calling code ... which is therefore responsible for
+  * releasing it.<br />
+  * In the case where the receiver is an instance of a container class,
+  * it is undefined whether contained objects are merely retained in the
+  * new copy, or are themselves copied, or whether some other mechanism
+  * entirely is used.
+  */
+ - (id) mutableCopyWithZone: (NSZone*)zone;
+ @end
+ 
+ /**
+  * This protocol must be adopted by any class wishing to support
+  * saving and restoring instances to an archive, or copying them
+  * to remote processes via the Distributed Objects mechanism.
+  */
+ @protocol NSCoding
+ 
+ /**
+  * Called when it is time for receiver to be serialized for writing to an
+  * archive or network connection.  Receiver should record all of its instance
+  * variables using methods on aCoder.  See documentation for [NSCoder],
+  * [NSArchiver], [NSKeyedArchiver], and/or [NSPortCoder] for more information.
+  */
+ - (void) encodeWithCoder: (NSCoder*)aCoder;
+ 
+ /**
+  * Called on a freshly allocated receiver when it is time to reconstitute from
+  * serialized bytes in an archive or from a network connection.  Receiver
+  * should load all of its instance variables using methods on aCoder.  See
+  * documentation for [NSCoder], [NSUnarchiver], [NSKeyedUnarchiver], and/or
+  * [NSPortCoder] for more information.
+  */
+ - (id) initWithCoder: (NSCoder*)aDecoder;
+ @end
+ 
+ @protocol NSSecureCoding <NSCoding>
+ + (BOOL)supportsSecureCoding;
+ @end
+ 
+ 
+ GS_ROOT_CLASS @interface NSObject <NSObject>
+ {
+  /**
+   * Points to instance's class.  Used by runtime to access method
+   * implementations, etc..  Set in +alloc, Unlike other instance variables,
+   * which are cleared there.
+   */
+   Class isa;
+ }
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ /** On a system which performs garbage collection, you should implement
+  * this method to execute code when the receiver is collected.<br />
+  * You must not call this method yourself (except when a subclass
+  * calls the superclass method within its own implementation).
+  */
+ - (void) finalize;
+ #endif
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ - (NSString*) className;
+ #endif
+ 
+ + (id) allocWithZone: (NSZone*)z;
+ + (id) alloc;
+ + (Class) class;
+ 
+ /**
+  * This method is automatically invoked on any class which implements it
+  * when the class is loaded into the runtime.<br />
+  * It is also invoked on any category where the method is implemented
+  * when that category is loaded into the runtime.<br />
+  * The +load method is called directly by the runtime and you should never
+  * send a +load message to a class yourself.<br />
+  * This method is called <em>before</em> the +initialize message is sent
+  * to the class, so you cannot depend on class initialisation having been
+  * performed, or upon other classes existing (apart from superclasses of
+  * the receiver, since +load is called on superclasses before it is called
+  * on their subclasses).<br />
+  * As a gross generalisation, it is safe to use C code, including
+  * most ObjectiveC runtime functions within +load, but attempting to send
+  * messages to ObjectiveC objects is likely to fail.<br />
+  * In GNUstep, this method is implemented for NSObject to perform some
+  * initialisation for the base library.<br />
+  * If you implement +load for a class, don't call [super load] in your
+  * implementation.
+  */
+ + (void) load;
+ 
+ /**
+  * This message is automatically sent to a class by the runtime.  It is
+  * sent once for each class, just before the class is used for the first
+  * time (excluding any automatic call to +load by the runtime).<br />
+  * The message is sent in a thread-safe manner ... other threads may not
+  * call methods of the class until +initialize has finished executing.<br />
+  * If the class has a superclass, its implementation of +initialize is
+  * called first.<br />
+  * If the class does not implement +initialize then the implementation
+  * in the closest superclass may be called.  This means that +initialize may
+  * be called more than once, and the recommended way to handle this by
+  * using the
+  * <code>
+  * if (self == [classname class])
+  * </code>
+  * conditional to check whether the method is being called for a subclass.<br />
+  * You should never call +initialize yourself ... let the runtime do it.<br />
+  * You can implement +initialize in your own class if you need to.
+  * NSObject's implementation handles essential root object and base
+  * library initialization.<br />
+  * It should be safe to call [super initialize] in your implementation
+  * of +initialize.
+  */
+ + (void) initialize;
+ + (IMP) instanceMethodForSelector: (SEL)aSelector;
+ + (NSMethodSignature*) instanceMethodSignatureForSelector: (SEL)aSelector;
+ + (BOOL) instancesRespondToSelector: (SEL)aSelector;
+ + (BOOL) isSubclassOfClass: (Class)aClass;
+ + (id) new;
+ + (void) poseAsClass: (Class)aClassObject;
+ + (id) setVersion: (NSInteger)aVersion;
+ + (NSInteger) version;
+ 
+ - (id) awakeAfterUsingCoder: (NSCoder*)aDecoder;
+ - (Class) classForArchiver;
+ - (Class) classForCoder;
+ - (id) copy;
+ - (void) dealloc;
+ - (void) doesNotRecognizeSelector: (SEL)aSelector;
+ - (void) forwardInvocation: (NSInvocation*)anInvocation;
+ - (id) init;
+ - (IMP) methodForSelector: (SEL)aSelector;
+ - (NSMethodSignature*) methodSignatureForSelector: (SEL)aSelector;
+ - (id) mutableCopy;
+ - (id) replacementObjectForArchiver: (NSArchiver*)anArchiver;
+ - (id) replacementObjectForCoder: (NSCoder*)anEncoder;
+ - (Class) superclass;
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ /**
+  * This method will be called when attempting to send a message a class that
+  * does not understand it.  The class may install a new method for the given
+  * selector and return YES, otherwise it should return NO.
+  *
+  * Note: This method is only reliable when using the GNUstep runtime.  If you
+  * require compatibility with the GCC runtime, you must also implement
+  * -forwardInvocation: with equivalent semantics.  This will be considerably
+  *  slower, but more portable.
+  */
+ + (BOOL) resolveClassMethod: (SEL)name;
+ 
+ /**
+  * This method will be called when attempting to send a message an instance
+  * that does not understand it.  The class may install a new method for the
+  * given selector and return YES, otherwise it should return NO.
+  *
+  * Note: This method is only reliable when using the GNUstep runtime.  If you
+  * require compatibility with the GCC runtime, you must also implement
+  * -forwardInvocation: with equivalent semantics.  This will be considerably
+  *  slower, but more portable.
+  */
+ + (BOOL) resolveInstanceMethod: (SEL)name;
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ /**
+  * Returns an auto-accessing proxy for the given object.  This proxy sends a
+  * -beginContentAccess message to the receiver when it is created and an
+  * -endContentAccess message when it is destroyed.  This prevents an object
+  * that implements the NSDiscardableContent protocol from having its contents
+  * discarded for as long as the proxy exists.  
+  *
+  * On systems using the GNUstep runtime, messages send to the proxy will be
+  * slightly slower than direct messages.  With the GCC runtime, they will be
+  * approximately two orders of magnitude slower.  The GNUstep runtime,
+  * therefore, is strongly recommended for code calling this method.
+  */
+ - (id) autoContentAccessingProxy;
+ 
+ /**
+  * If an object does not understand a message, it may delegate it to another
+  * object.  Returning nil indicates that forwarding should not take place.  The
+  * default implementation of this returns nil, but care should be taken when
+  * subclassing NSObject subclasses and overriding this method that
+  * the superclass implementation is called if returning nil.
+  *
+  * Note: This method is only reliable when using the GNUstep runtime and code
+  * compiled with clang.  If you require compatibility with GCC and the GCC
+  * runtime, you must also implement -forwardInvocation: with equivalent
+  * semantics.  This will be considerably slower, but more portable.
+  */
+ - (id) forwardingTargetForSelector: (SEL)aSelector;
+ 
+ #endif
+ @end
+ 
+ /**
+  * Used to allocate memory to hold an object, and initialise the
+  * class of the object to be aClass etc.  The allocated memory will
+  * be extraBytes larger than the space actually needed to hold the
+  * instance variables of the object.<br />
+  * This function is used by the [NSObject+allocWithZone:] method.
+  */
+ GS_EXPORT id
+ NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
+ 
+ /**
+  * Used to release the memory used by an object.<br />
+  * This function is used by the [NSObject-dealloc] method.
+  */
+ GS_EXPORT void
+ NSDeallocateObject(id anObject);
+ 
+ /**
+  * Used to copy anObject.  This makes a bitwise copy of anObject to
+  * memory allocated from zone.  The allocated memory will be extraBytes
+  * longer than that necessary to actually store the instance variables
+  * of the copied object.<br />
+  */
+ GS_EXPORT NSObject *
+ NSCopyObject(NSObject *anObject, NSUInteger extraBytes, NSZone *zone);
+ 
+ /**
+  * Returns a flag to indicate whether anObject should be retained or
+  * copied in order to make a copy in the specified zone.<br />
+  * Basically, this tests to see if anObject was allocated from
+  * requestedZone and returns YES if it was.
+  */
+ GS_EXPORT BOOL
+ NSShouldRetainWithZone(NSObject *anObject, NSZone *requestedZone);
+ 
+ GS_EXPORT BOOL
+ NSDecrementExtraRefCountWasZero(id anObject);
+ 
+ GS_EXPORT NSUInteger
+ NSExtraRefCount(id anObject);
+ 
+ GS_EXPORT void
+ NSIncrementExtraRefCount(id anObject);
+ 
+ #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
+ 
+ /** Global lock to be used by classes when operating on any global
+     data that invoke other methods which also access global; thus,
+     creating the potential for deadlock. */
+ GS_EXPORT NSRecursiveLock *gnustep_global_lock;
+ 
+ @interface NSObject (NEXTSTEP)
+ - (id) error:(const char *)aString, ...;
+ /* - (const char *) name;
+    Removed because OpenStep has -(NSString*)name; */
+ @end
+ 
+ #if GS_API_VERSION(GS_API_NONE, 011700)
+ @interface NSObject (GNUstep)
+ + (void) enableDoubleReleaseCheck: (BOOL)enable;
+ @end
+ #endif
+ 
+ #endif
+ 
+ #import	"NSDate.h"
+ /**
+  *  Declares some methods for sending messages to self after a fixed delay.
+  *  (These methods <em>are</em> in OpenStep and OS X.)
+  */
+ @interface NSObject (TimedPerformers)
+ 
+ /**
+  * Cancels any perform operations set up for the specified target
+  * in the current run loop.
+  */
+ + (void) cancelPreviousPerformRequestsWithTarget: (id)obj;
+ 
+ /**
+  * Cancels any perform operations set up for the specified target
+  * in the current loop, but only if the value of aSelector and argument
+  * with which the performs were set up match those supplied.<br />
+  * Matching of the argument may be either by pointer equality or by
+  * use of the [NSObject-isEqual:] method.
+  */
+ + (void) cancelPreviousPerformRequestsWithTarget: (id)obj
+ 					selector: (SEL)s
+ 					  object: (id)arg;
+ /**
+  * Sets given message to be sent to this instance after given delay,
+  * in any run loop mode.  See [NSRunLoop].
+  */
+ - (void) performSelector: (SEL)s
+ 	      withObject: (id)arg
+ 	      afterDelay: (NSTimeInterval)seconds;
+ 
+ /**
+  * Sets given message to be sent to this instance after given delay,
+  * in given run loop modes.  See [NSRunLoop].
+  */
+ - (void) performSelector: (SEL)s
+ 	      withObject: (id)arg
+ 	      afterDelay: (NSTimeInterval)seconds
+ 		 inModes: (NSArray*)modes;
+ @end
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_6, GS_API_LATEST)
+ /**
+  * The NSDiscardableContent protocol is used by objects which encapsulate data
+  * which may be discarded if resource constraints are exceeded.  These
+  * constraints are typically, but not always, related memory.  
+  */
+ @protocol NSDiscardableContent
+ 
+ /**
+  * This method is called before any access to the object.  It returns YES if
+  * the object's content is still valid.  The caller must call -endContentAccess
+  * once for every call to -beginContentAccess;
+  */
+ - (BOOL) beginContentAccess;
+ 
+ /**
+  * Discards the contents of the object if it is not currently being edited.
+  */
+ - (void) discardContentIfPossible;
+ 
+ /**
+  * This method indicates that the caller has finished accessing the contents of
+  * the object adopting this protocol.  Every call to -beginContentAccess must
+  * be be paired with a call to this method after the caller has finished
+  * accessing the contents.
+  */
+ - (void) endContentAccess;
+ 
+ /**
+  * Returns YES if the contents of the object have been discarded, either via a
+  * call to -discardContentIfPossible while the object is not in use, or by some
+  * implementation dependent mechanism.  
+  */
+ - (BOOL) isContentDiscarded;
+ @end
+ #endif
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #if     !NO_GNUSTEP && !defined(GNUSTEP_BASE_INTERNAL)
+ #import "../GNUstepBase/NSObject+GNUstepBase.h"
+ #endif
+ 
+ #endif /* __NSObject_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,235 ----
+ /* 
+  * Copyright (C) 1995,1999 Free Software Foundation, Inc.
+  * 
+  * Written by:  Adam Fedor <fedor@boulder.colorado.edu>
+  * Date: 1995
+  * 
+  * This file is part of the GNUstep Base Library.
+  * 
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+  * License as published by the Free Software Foundation; either
+  * version 2 of the License, 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
+  * Library General Public License for more details.
+  * 
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this library; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  * Boston, MA 02111 USA.
+  */ 
+ 
+ #ifndef __NSRange_h_GNUSTEP_BASE_INCLUDE
+ #define __NSRange_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ /**** Included Headers *******************************************************/
+ 
+ #import	"NSObject.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ @class NSException;
+ @class NXConstantString;
+ 
+ /**** Type, Constant, and Macro Definitions **********************************/
+ 
+ #ifndef MAX
+ #define MAX(a,b) \
+        ({__typeof__(a) _MAX_a = (a); __typeof__(b) _MAX_b = (b);  \
+          _MAX_a > _MAX_b ? _MAX_a : _MAX_b; })
+ #define	GS_DEFINED_MAX
+ #endif
+ 
+ #ifndef MIN
+ #define MIN(a,b) \
+        ({__typeof__(a) _MIN_a = (a); __typeof__(b) _MIN_b = (b);  \
+          _MIN_a < _MIN_b ? _MIN_a : _MIN_b; })
+ #define	GS_DEFINED_MIN
+ #endif
+ 
+ /**
+  * <example>
+ {
+   NSUInteger location;
+   NSUInteger length;
+ }</example>
+  * <p>
+  *   The NSRange type is used to specify ranges of locations,
+  *   typically items in an array, characters in a string, and bytes
+  *   in a data object.
+  * </p>
+  * <p>
+  *   As 'boundary' or 'fencepost' errors are a particularly common
+  *   problem in programming, it is important that you understand
+  *   how an NSRange works.
+  * </p>
+  * <p>
+  *   An NSRange consists of a <em>location</em> and a <em>length</em>.  The
+  *   points that are considered to lie in a range are the integers from
+  *   the location to the location plus the length, so the number
+  *   of points in a range is the length of the range plus one.<br />
+  *   However, if you consider these points like the marks on a
+  *   ruler, you can only store information <strong>between</strong>
+  *   points.  So the number of items that can be stored in a range
+  *   is the length of the range.
+  * </p>
+  */
+ typedef struct _NSRange NSRange;
+ struct _NSRange
+ {
+   NSUInteger location;
+   NSUInteger length;
+ };
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /** Pointer to an NSRange structure. */
+ typedef NSRange *NSRangePointer;
+ #endif
+ 
+ /**** Function Prototypes ****************************************************/
+ 
+ /*
+  *      All but the most complex functions are declared static inline in this
+  *      header file so that they are maximally efficient.  In order to provide
+  *      true functions (for code modules that don't have this header) this
+  *      header is included in NSRange.m where the functions are no longer
+  *      declared inline.
+  */
+ #ifdef  IN_NSRANGE_M
+ #define GS_RANGE_SCOPE   extern
+ #define GS_RANGE_ATTR
+ #else
+ #define GS_RANGE_SCOPE   static inline
+ #define GS_RANGE_ATTR    __attribute__((unused))
+ #endif
+ 
+ GS_RANGE_SCOPE NSUInteger
+ NSMaxRange(NSRange range) GS_RANGE_ATTR;
+ 
+ /** Returns top end of range (location + length). */
+ GS_RANGE_SCOPE NSUInteger
+ NSMaxRange(NSRange range) 
+ {
+   return range.location + range.length;
+ }
+ 
+ GS_RANGE_SCOPE BOOL 
+ NSLocationInRange(NSUInteger location, NSRange range) GS_RANGE_ATTR;
+ 
+ /** Returns whether location is greater than or equal to range's location
+  *  and less than its max.
+  */
+ GS_RANGE_SCOPE BOOL 
+ NSLocationInRange(NSUInteger location, NSRange range) 
+ {
+   return (location >= range.location) && (location < NSMaxRange(range));
+ }
+ 
+ /** Convenience method for raising an NSRangeException. */
+ GS_EXPORT void _NSRangeExceptionRaise (void);
+ /* NB: The implementation of _NSRangeExceptionRaise is: 
+    [NSException raise: NSRangeException
+ 	       format: @"Range location + length too great"]; 
+ 
+    _NSRangeExceptionRaise is defined in NSRange.m so that this
+    file (NSRange.h) can be included without problems in the
+    implementation of the base classes themselves. */
+ 
+ GS_RANGE_SCOPE NSRange
+ NSMakeRange(NSUInteger location, NSUInteger length) GS_RANGE_ATTR;
+ 
+ /** Creates new range starting at location and of given length. */
+ GS_RANGE_SCOPE NSRange
+ NSMakeRange(NSUInteger location, NSUInteger length)
+ {
+   NSRange range;
+   NSUInteger end = location + length;
+ 
+   if (end < location || end < length)
+     {
+       _NSRangeExceptionRaise ();
+     }
+   range.location = location;
+   range.length   = length;
+   return range;
+ }
+ 
+ GS_RANGE_SCOPE BOOL
+ NSEqualRanges(NSRange range1, NSRange range2) GS_RANGE_ATTR;
+ 
+ /** Returns whether range1 and range2 have same location and length. */
+ GS_RANGE_SCOPE BOOL
+ NSEqualRanges(NSRange range1, NSRange range2)
+ {
+   return ((range1.location == range2.location)
+                 && (range1.length == range2.length));
+ }
+ 
+ GS_RANGE_SCOPE NSRange
+ NSUnionRange(NSRange range1, NSRange range2) GS_RANGE_ATTR;
+ 
+ /** Returns range going from minimum of aRange's and bRange's locations to
+     maximum of their two max's. */
+ GS_RANGE_SCOPE NSRange
+ NSUnionRange(NSRange aRange, NSRange bRange)
+ {
+   NSRange range;
+ 
+   range.location = MIN(aRange.location, bRange.location);
+   range.length   = MAX(NSMaxRange(aRange), NSMaxRange(bRange))
+                 - range.location;
+   return range;
+ }
+ 
+ GS_RANGE_SCOPE NSRange
+ NSIntersectionRange(NSRange range1, NSRange range2) GS_RANGE_ATTR;
+ 
+ /** Returns range containing indices existing in both aRange and bRange.  If
+  *  the returned length is 0, the location is undefined and should be ignored.
+  */
+ GS_RANGE_SCOPE NSRange
+ NSIntersectionRange (NSRange aRange, NSRange bRange)
+ {
+   NSRange range;
+ 
+   if (NSMaxRange(aRange) < bRange.location
+                 || NSMaxRange(bRange) < aRange.location)
+     return NSMakeRange(0, 0);
+ 
+   range.location = MAX(aRange.location, bRange.location);
+   range.length   = MIN(NSMaxRange(aRange), NSMaxRange(bRange))
+                 - range.location;
+   return range;
+ }
+ 
+ 
+ @class NSString;
+ 
+ /** Returns string of form {location=a, length=b}. */
+ GS_EXPORT NSString *NSStringFromRange(NSRange range);
+ 
+ /** Parses range from string of form {location=a, length=b}; returns range
+     with 0 location and length if this fails. */
+ GS_EXPORT NSRange NSRangeFromString(NSString *aString);
+ 
+ #ifdef	GS_DEFINED_MAX
+ #undef	GS_DEFINED_MAX
+ #undef	MAX
+ #endif
+ 
+ #ifdef	GS_DEFINED_MIN
+ #undef	GS_DEFINED_MIN
+ #undef	MIN
+ #endif
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif /* __NSRange_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,977 ----
+ /* Interface for NSString for GNUstep
+    Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc.
+ 
+    Written by:  Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
+    Date: 1995
+    
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+    
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+   */
+ 
+ /**
+ <chapter>
+  <heading>Portable path handling</heading>
+  <p>Portable path handling (across both unix-like and mswindows operating
+  systems) requires some care.  A modern operating system uses the concept
+  of a single root to the filesystem, but mswindows has multiple filesystems
+  with no common root, so code must be aware of this.  There is also the
+  more minor issue that windows often uses a backslash as a separator between
+  the components of a path and unix-like systems always use forward slash.<br />
+  On windows there is also the issue that two styles of path are used,
+  most commonly with a drive letter and a path on that drive
+  (eg. 'C:\directory\file') but also UNC paths
+  (eg. '//host/share/directory/file') so path handling functions must deal
+  with both formats.
+  </p>
+  <p>GNUstep has three path handling modes, 'gnustep', 'unix', and 'windows'.
+  The mode defaults to 'gnustep' but may be set using the GSPathHandling()
+  function.<br />
+  You should probably stick to using the default 'gnustep' mode in which the
+  path handling methods cope with both 'unix' and 'windows' style paths in
+  portable and tolerant manner:<br />
+  Paths are read in literally so they can be in the native format provided
+  by the operating system or in a non-native format. See
+  [NSFileManager-stringWithFileSystemRepresentation:length:].<br />
+  Paths are written out using the native format of the system the application
+  is running on (eg on windows slashes are converted to backslashes).
+  See [NSFileManager-fileSystemRepresentationWithPath:].<br />
+  The path handling methods accept either a forward or backward slash as a
+  path separator when parsing any path.<br />
+  Unless operating in 'unix' mode, a leading letter followed by a colon is
+  considered the start of a windows style path (the drive specifier), and a
+  path beginning with something of the form '//host/share/' is considered
+  the start of a UNC style path.<br />
+  The path handling methods add forward slashes when building new paths
+  internally or when standardising paths, so those path strings provide
+  a portable representation (as long as they are relative paths, not including
+  system specific roots).<br />
+  An important case to note is that on windows a path which looks at first
+  glance like an absolute path may actually be a relative one.<br />
+  'C:file' is a relative path because it specifies  a file on the C drive
+  but does not say what directory it is in.<br />
+ Similarly, '/dir/file' is a relative path because it specifies the full
+ location fo a file on a drive, but does not specify which drive it is on.
+  </p>
+ <p>As a consequence of this path handling, you are able to work completely
+ portably using relative paths (adding components, extensions and
+ relative paths to a pth, or removing components, extensions and relative
+ paths from a path etc), and when you save paths as strings in files
+ which may be transferred to another platform, you should save a relative
+ path.<br />
+ When you need to know absolute paths of various points in the filesystem,
+ you can use various path utility functions to obtain those absolute paths.
+ For instance, instead of saving an absolute path to a file, you might want
+ to save a path relative to a user's home directory.  You could do that by
+ calling NSHomeDirectory() to get the home directory, and only saving the
+ part of the full path after that prefix.
+ </p>
+ </chapter>
+  */ 
+ 
+ #ifndef __NSString_h_GNUSTEP_BASE_INCLUDE
+ #define __NSString_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ #import	"NSObject.h"
+ #import	"NSRange.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ /**
+  * Type for representing unicode characters.  (16-bit)
+  */
+ typedef uint16_t unichar;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5,GS_API_LATEST) 
+ #define NSMaximumStringLength   (INT_MAX-1)
+ #endif
+ 
+ @class NSArray;
+ @class NSCharacterSet;
+ @class NSData;
+ @class NSDictionary;
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ @class NSError;
+ @class NSLocale;
+ @class NSURL;
+ #endif
+ 
+ #define NSMaximumStringLength	(INT_MAX-1)
+ 
+ enum 
+ {
+   NSCaseInsensitiveSearch = 1,
+   NSLiteralSearch = 2,
+   NSBackwardsSearch = 4,
+   NSAnchoredSearch = 8,
+   NSNumericSearch = 64	/* MacOS-X 10.2 */
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5,GS_API_LATEST) 
+  ,
+  NSDiacriticInsensitiveSearch = 128,
+  NSWidthInsensitiveSearch = 256,
+  NSForcedOrderingSearch = 512
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_7,GS_API_LATEST) 
+  ,
+  /**
+   * Treats the search string as a regular expression.  This option may be
+   * combined with NSCaseInsensitiveSearch and NSAnchoredSearch, but no other
+   * search options.
+   *
+   * This option may only be used with the -rangeOfString: family of methods.
+   */
+  NSRegularExpressionSearch = 1024
+ #endif
+ };
+ typedef NSUInteger NSStringCompareOptions;
+ 
+ /**
+  *  <p>Enumeration of available encodings for converting between bytes and
+  *  characters (in [NSString]s).  The ones that are shared with OpenStep and
+  *  Cocoa are: <code>NSASCIIStringEncoding, NSNEXTSTEPStringEncoding,
+  *  NSJapaneseEUCStringEncoding, NSUTF8StringEncoding,
+  *  NSISOLatin1StringEncoding, NSSymbolStringEncoding,
+  *  NSNonLossyASCIIStringEncoding, NSShiftJISStringEncoding,
+  *  NSISOLatin2StringEncoding, NSUnicodeStringEncoding,
+  *  NSWindowsCP1251StringEncoding, NSWindowsCP1252StringEncoding,
+  *  NSWindowsCP1253StringEncoding, NSWindowsCP1254StringEncoding,
+  *  NSWindowsCP1250StringEncoding, NSISO2022JPStringEncoding,
+  *  NSMacOSRomanStringEncoding, NSProprietaryStringEncoding</code>.</p>
+  *  
+  *  <p>Additional encodings available under GNUstep are:
+  *  <code>NSKOI8RStringEncoding, NSISOLatin3StringEncoding,
+  *  NSISOLatin4StringEncoding, NSISOCyrillicStringEncoding,
+  *  NSISOArabicStringEncoding, NSISOGreekStringEncoding,
+  *  NSISOHebrewStringEncoding, NSISOLatin5StringEncoding,
+  *  NSISOLatin6StringEncoding, NSISOThaiStringEncoding,
+  *  NSISOLatin7StringEncoding, NSISOLatin8StringEncoding,
+  *  NSISOLatin9StringEncoding, NSGB2312StringEncoding, NSUTF7StringEncoding,
+  *  NSGSM0338StringEncoding, NSBIG5StringEncoding,
+  *  NSKoreanEUCStringEncoding</code>.</p>
+  */
+ typedef enum _NSStringEncoding
+ {
+ /* NB. Must not have an encoding with value zero - so we can use zero to
+    tell that a variable that should contain an encoding has not yet been
+    initialised */
+   GSUndefinedEncoding = 0,
+   NSASCIIStringEncoding = 1,
+   NSNEXTSTEPStringEncoding = 2,
+   NSJapaneseEUCStringEncoding = 3,
+   NSUTF8StringEncoding = 4,
+   NSISOLatin1StringEncoding = 5,	// ISO-8859-1; West European
+   NSSymbolStringEncoding = 6,
+   NSNonLossyASCIIStringEncoding = 7,
+   NSShiftJISStringEncoding = 8,
+   NSISOLatin2StringEncoding = 9,	// ISO-8859-2; East European
+   NSUnicodeStringEncoding = 10,
+   NSUTF16StringEncoding = NSUnicodeStringEncoding,      // An alias
+   NSWindowsCP1251StringEncoding = 11,
+   NSWindowsCP1252StringEncoding = 12,	// WinLatin1
+   NSWindowsCP1253StringEncoding = 13,	// Greek
+   NSWindowsCP1254StringEncoding = 14,	// Turkish
+   NSWindowsCP1250StringEncoding = 15,	// WinLatin2
+   NSISO2022JPStringEncoding = 21,
+   NSMacOSRomanStringEncoding = 30,
+   NSProprietaryStringEncoding = 31,
+ 
+   NSKOI8RStringEncoding = 50,		// Russian/Cyrillic
+   NSISOLatin3StringEncoding = 51,	// ISO-8859-3; South European
+   NSISOLatin4StringEncoding = 52,	// ISO-8859-4; North European
+   NSISOCyrillicStringEncoding = 22,	// ISO-8859-5
+   NSISOArabicStringEncoding = 53,	// ISO-8859-6
+   NSISOGreekStringEncoding = 54,	// ISO-8859-7
+   NSISOHebrewStringEncoding = 55,	// ISO-8859-8
+   NSISOLatin5StringEncoding = 57,	// ISO-8859-9; Turkish
+   NSISOLatin6StringEncoding = 58,	// ISO-8859-10; Nordic
+   NSISOThaiStringEncoding = 59,		// ISO-8859-11
+ /* Possible future ISO-8859 additions
+ 					// ISO-8859-12
+ */
+   NSISOLatin7StringEncoding = 61,	// ISO-8859-13
+   NSISOLatin8StringEncoding = 62,	// ISO-8859-14
+   NSISOLatin9StringEncoding = 63,	// ISO-8859-15; Replaces ISOLatin1
+   NSGB2312StringEncoding = 56,
+   NSUTF7StringEncoding = 64,		// RFC 2152
+   NSGSM0338StringEncoding,		// GSM (mobile phone) default alphabet
+   NSBIG5StringEncoding,			// Traditional chinese
+   NSKoreanEUCStringEncoding		// Korean
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_LATEST) 
+   ,
+   NSUTF16BigEndianStringEncoding = 0x90000100,
+   NSUTF16LittleEndianStringEncoding = 0x94000100,
+   NSUTF32StringEncoding = 0x8c000100,
+   NSUTF32BigEndianStringEncoding = 0x98000100,
+   NSUTF32LittleEndianStringEncoding = 0x9c000100
+ #endif
+ } NSStringEncoding;
+ 
+ enum {
+   NSOpenStepUnicodeReservedBase = 0xF400
+ };
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_LATEST) 
+ enum {
+   NSStringEncodingConversionAllowLossy = 1,
+   NSStringEncodingConversionExternalRepresentation = 2
+ };
+ typedef NSUInteger NSStringEncodingConversionOptions;
+ #endif
+ 
+ /**
+  * <p>
+  *   <code>NSString</code> objects represent an immutable string of Unicode 3.0
+  *   characters.  These may be accessed individually as type
+  *   <code>unichar</code>, an unsigned short.<br/>
+  *   The [NSMutableString] subclass represents a modifiable string.  Both are
+  *   implemented as part of a class cluster and the instances you receive may
+  *   actually be of unspecified concrete subclasses.
+  * </p>
+  * <p>
+  *   A constant <code>NSString</code> can be created using the following syntax:
+  *   <code>@"..."</code>, where the contents of the quotes are the
+  *   string, using only ASCII characters.
+  * </p>
+  * <p>
+  *   A variable string can be created using a C printf-like <em>format</em>,
+  *   as in <code>[NSString stringWithFormat: @"Total is %f", t]</code>.
+  * </p>
+  * <p>
+  *   To create a concrete subclass of <code>NSString</code>, you must have your
+  *   class inherit from <code>NSString</code> and override at least the two
+  *   primitive methods - -length and -characterAtIndex:
+  * </p>
+  * <p>
+  *   In general the rule is that your subclass must override any
+  *   initialiser that you want to use with it.  The GNUstep
+  *   implementation relaxes that to say that, you may override
+  *   only the <em>designated initialiser</em> and the other
+  *   initialisation methods should work.
+  * </p>
+  * <p>
+  *   Where an NSString instance method returns an NSString object,
+  *   the class of the actual object returned may be any subclass
+  *   of NSString.  The actual value returned may be a new
+  *   autoreleased object, an autoreleased copy of the receiver,
+  *   or the receiver itsself.  While the abstract base class
+  *   implementations of methods (other than initialisers) will
+  *   avoid returning mutable strings by returning an autoreleased
+  *   copy of a mutable receiver, concrete subclasses may behave
+  *   differently, so code should not rely upon the mutability of
+  *   returned strings nor upon their lifetime being greater than
+  *   that of the receiver which returned them.
+  * </p>
+  */
+ @interface NSString :NSObject <NSCoding, NSCopying, NSMutableCopying>
+ 
+ + (id) string;
+ + (id) stringWithCharacters: (const unichar*)chars
+ 		     length: (NSUInteger)length;
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_LATEST) && GS_API_VERSION( 10200,GS_API_LATEST)
+ + (id) stringWithCString: (const char*)byteString
+ 		encoding: (NSStringEncoding)encoding;
+ #endif
+ + (id) stringWithCString: (const char*)byteString
+ 		  length: (NSUInteger)length;
+ + (id) stringWithCString: (const char*)byteString;
+ + (id) stringWithFormat: (NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
+ + (id) stringWithContentsOfFile:(NSString *)path;
+ 
+ // Initializing Newly Allocated Strings
+ - (id) init;
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_LATEST) && GS_API_VERSION( 10200,GS_API_LATEST)
+ - (id) initWithBytes: (const void*)bytes
+ 	      length: (NSUInteger)length
+ 	    encoding: (NSStringEncoding)encoding;
+ - (id) initWithBytesNoCopy: (void*)bytes
+ 		    length: (NSUInteger)length
+ 		  encoding: (NSStringEncoding)encoding 
+ 	      freeWhenDone: (BOOL)flag;
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_LATEST)
+ + (id) stringWithContentsOfFile: (NSString*)path
+                    usedEncoding: (NSStringEncoding*)enc
+                           error: (NSError**)error;
+ - (id) initWithContentsOfFile: (NSString*)path
+                  usedEncoding: (NSStringEncoding*)enc
+                         error: (NSError**)error;
+ + (id) stringWithContentsOfFile: (NSString*)path
+                        encoding: (NSStringEncoding)enc
+                           error: (NSError**)error;
+ - (id) initWithContentsOfFile: (NSString*)path
+                      encoding: (NSStringEncoding)enc
+                         error: (NSError**)error;
+ + (id) stringWithContentsOfURL: (NSURL*)url
+                   usedEncoding: (NSStringEncoding*)enc
+                          error: (NSError**)error;
+ - (id) initWithContentsOfURL: (NSURL*)url
+                 usedEncoding: (NSStringEncoding*)enc
+                        error: (NSError**)error;
+ + (id) stringWithContentsOfURL: (NSURL*)url
+                       encoding: (NSStringEncoding)enc
+                          error: (NSError**)error;
+ - (id) initWithContentsOfURL: (NSURL*)url
+                     encoding: (NSStringEncoding)enc
+                        error: (NSError**)error;
+ - (BOOL) writeToFile: (NSString*)path
+ 	  atomically: (BOOL)atomically
+ 	    encoding: (NSStringEncoding)enc
+ 	       error: (NSError**)error;
+ - (BOOL) writeToURL: (NSURL*)url
+ 	 atomically: (BOOL)atomically
+ 	   encoding: (NSStringEncoding)enc
+ 	      error: (NSError**)error;
+ #endif
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5,GS_API_LATEST)
+ - (NSString*)stringByReplacingOccurrencesOfString: (NSString*)replace
+                                        withString: (NSString*)by
+                                           options: (NSStringCompareOptions)opts
+                                             range: (NSRange)searchRange;
+ - (NSString*)stringByReplacingOccurrencesOfString: (NSString*)replace
+                                        withString: (NSString*)by;
+ - (NSString*) stringByReplacingCharactersInRange: (NSRange)aRange 
+                                       withString: (NSString*)by;
+ #endif
+ - (id) initWithCharactersNoCopy: (unichar*)chars
+ 			 length: (NSUInteger)length
+ 		   freeWhenDone: (BOOL)flag;
+ - (id) initWithCharacters: (const unichar*)chars
+ 		   length: (NSUInteger)length;
+ - (id) initWithCStringNoCopy: (char*)byteString
+ 		      length: (NSUInteger)length
+ 	        freeWhenDone: (BOOL)flag;
+ - (id) initWithCString: (const char*)byteString
+ 	        length: (NSUInteger)length;
+ - (id) initWithCString: (const char*)byteString;
+ - (id) initWithString: (NSString*)string;
+ - (id) initWithFormat: (NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
+ - (id) initWithFormat: (NSString*)format
+ 	    arguments: (va_list)argList NS_FORMAT_FUNCTION(1,0);
+ - (id) initWithData: (NSData*)data
+ 	   encoding: (NSStringEncoding)encoding;
+ - (id) initWithContentsOfFile: (NSString*)path;
+ 
+ // Getting a String's Length
+ - (NSUInteger) length;
+ 
+ // Accessing Characters
+ - (unichar) characterAtIndex: (NSUInteger)index;
+ - (void) getCharacters: (unichar*)buffer;
+ - (void) getCharacters: (unichar*)buffer
+ 		 range: (NSRange)aRange;
+ 
+ // Combining Strings
+ - (NSString*) stringByAppendingFormat: (NSString*)format, ...
+   NS_FORMAT_FUNCTION(1,2);
+ - (NSString*) stringByAppendingString: (NSString*)aString;
+ 
+ // Dividing Strings into Substrings
+ - (NSArray*) componentsSeparatedByString: (NSString*)separator;
+ - (NSString*) substringFromIndex: (NSUInteger)index;
+ - (NSString*) substringToIndex: (NSUInteger)index;
+ 
+ // Finding Ranges of Characters and Substrings
+ - (NSRange) rangeOfCharacterFromSet: (NSCharacterSet*)aSet;
+ - (NSRange) rangeOfCharacterFromSet: (NSCharacterSet*)aSet
+ 			    options: (NSUInteger)mask;
+ - (NSRange) rangeOfCharacterFromSet: (NSCharacterSet*)aSet
+ 			    options: (NSUInteger)mask
+ 			      range: (NSRange)aRange;
+ - (NSRange) rangeOfString: (NSString*)string;
+ - (NSRange) rangeOfString: (NSString*)string
+ 		  options: (NSUInteger)mask;
+ - (NSRange) rangeOfString: (NSString*)aString
+ 		  options: (NSUInteger)mask
+ 		    range: (NSRange)aRange;
+ 
+ // Determining Composed Character Sequences
+ - (NSRange) rangeOfComposedCharacterSequenceAtIndex: (NSUInteger)anIndex;
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_2,GS_API_LATEST) 
+ /** Returns a copy of the receiver normalised using the KD form.
+  */
+ - (NSString *) decomposedStringWithCompatibilityMapping;
+ 
+ /** Returns a copy of the receiver normalised using the D form.
+  */
+ - (NSString *) decomposedStringWithCanonicalMapping;
+ 
+ /** Returns a copy of the receiver normalised using the KC form.
+  */
+ - (NSString *) precomposedStringWithCompatibilityMapping;
+ 
+ /** Returns a copy of the receiver normalised using the C form.
+  */
+ - (NSString *) precomposedStringWithCanonicalMapping;
+ #endif
+ 
+ // Converting String Contents into a Property List
+ - (id) propertyList;
+ - (NSDictionary*) propertyListFromStringsFileFormat;
+ 
+ // Identifying and Comparing Strings
+ - (NSComparisonResult) compare: (NSString*)aString;
+ - (NSComparisonResult) compare: (NSString*)aString	
+ 		       options: (NSUInteger)mask;
+ - (NSComparisonResult) compare: (NSString*)aString
+ 		       options: (NSUInteger)mask
+ 			 range: (NSRange)aRange;
+ - (BOOL) hasPrefix: (NSString*)aString;
+ - (BOOL) hasSuffix: (NSString*)aString;
+ - (BOOL) isEqual: (id)anObject;
+ - (BOOL) isEqualToString: (NSString*)aString;
+ - (NSUInteger) hash;
+ 
+ // Getting a Shared Prefix
+ - (NSString*) commonPrefixWithString: (NSString*)aString
+ 			     options: (NSUInteger)mask;
+ 
+ // Changing Case
+ - (NSString*) capitalizedString;
+ - (NSString*) lowercaseString;
+ - (NSString*) uppercaseString;
+ 
+ // Getting C Strings
+ - (const char*) cString;
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4,GS_API_LATEST) && GS_API_VERSION( 10200,GS_API_LATEST)
+ - (const char*) cStringUsingEncoding: (NSStringEncoding)encoding;
+ - (BOOL) getCString: (char*)buffer
+ 	  maxLength: (NSUInteger)maxLength
+ 	   encoding: (NSStringEncoding)encoding;
+ - (id) initWithCString: (const char*)byteString
+ 	      encoding: (NSStringEncoding)encoding;
+ - (NSUInteger) lengthOfBytesUsingEncoding: (NSStringEncoding)encoding;
+ - (NSUInteger) maximumLengthOfBytesUsingEncoding: (NSStringEncoding)encoding;
+ #endif
+ 
+ #endif
+ - (NSUInteger) cStringLength;
+ - (void) getCString: (char*)buffer;
+ - (void) getCString: (char*)buffer
+ 	  maxLength: (NSUInteger)maxLength;
+ - (void) getCString: (char*)buffer
+ 	  maxLength: (NSUInteger)maxLength
+ 	      range: (NSRange)aRange
+      remainingRange: (NSRange*)leftoverRange;
+ 
+ // Getting Numeric Values
+ - (float) floatValue;
+ - (int) intValue;
+ 
+ // Working With Encodings
+ - (BOOL) canBeConvertedToEncoding: (NSStringEncoding)encoding;
+ - (NSData*) dataUsingEncoding: (NSStringEncoding)encoding;
+ - (NSData*) dataUsingEncoding: (NSStringEncoding)encoding
+ 	 allowLossyConversion: (BOOL)flag;
+ + (NSStringEncoding) defaultCStringEncoding;
+ - (NSString*) description;
+ - (NSStringEncoding) fastestEncoding;
+ - (NSStringEncoding) smallestEncoding;
+ 
+ /**
+  * Attempts to complete this string as a path in the filesystem by finding
+  * a unique completion if one exists and returning it by reference in
+  * outputName (which must be a non-nil pointer), or if it finds a set of
+  * completions they are returned by reference in outputArray, if it is non-nil.
+  * filterTypes can be an array of strings specifying extensions to consider;
+  * files without these extensions will be ignored and will not constitute
+  * completions.  Returns 0 if no match found, else a positive number that is
+  * only accurate if outputArray was non-nil.
+  */
+ - (NSUInteger) completePathIntoString: (NSString**)outputName
+ 			caseSensitive: (BOOL)flag
+ 		     matchesIntoArray: (NSArray**)outputArray
+ 			  filterTypes: (NSArray*)filterTypes;
+ 
+ /**
+  * Converts the receiver to a C string path expressed in the character
+  * encoding appropriate for the local host file system.  This string will be
+  * automatically freed soon after it is returned, so copy it if you need it
+  * for long.<br />
+  * NB. On mingw32 systems the filesystem representation of a path is a 16-bit
+  * unicode character string, so you should only pass the value returned by
+  * this method to functions expecting wide characters.<br />
+  * This method uses [NSFileManager-fileSystemRepresentationWithPath:] to
+  * perform the conversion.
+  */
+ - (const GSNativeChar*) fileSystemRepresentation;
+ 
+ /**
+  * Converts the receiver to a C string path using the character encoding
+  * appropriate to the local file system.  This string will be stored
+  * into buffer if it is shorter (number of characters) than size,
+  * otherwise NO is returned.<br />
+  * NB. On mingw32 systems the filesystem representation of a path is a 16-bit
+  * unicode character string, so the buffer you pass to this method must be
+  * twice as many bytes as the size (number of characters) you expect to
+  * receive.<br />
+  * This method uses [NSFileManager-fileSystemRepresentationWithPath:] to
+  * perform the conversion.
+  */
+ - (BOOL) getFileSystemRepresentation: (GSNativeChar*)buffer
+ 			   maxLength: (NSUInteger)size;
+ 
+ /**
+  * Returns a string containing the last path component of the receiver.<br />
+  * The path component is the last non-empty substring delimited by the ends
+  * of the string, or by path separator characters.<br />
+  * If the receiver only contains a root part, this method returns it.<br />
+  * If there are no non-empty substrings, this returns an empty string.<br />
+  * NB. In a windows UNC path, the host and share specification is treated as
+  * a single path component, even though it contains separators.
+  * So a string of the form '//host/share' may be returned.<br />
+  * Other special cases are apply when the string is the root.
+  * <example>
+  *   @"foo/bar" produces @"bar"
+  *   @"foo/bar/" produces @"bar"
+  *   @"/foo/bar" produces @"bar"
+  *   @"/foo" produces @"foo"
+  *   @"/" produces @"/" (root is a special case)
+  *   @"" produces @""
+  *   @"C:/" produces @"C:/" (root is a special case)
+  *   @"C:" produces @"C:"
+  *   @"//host/share/" produces @"//host/share/" (root is a special case)
+  *   @"//host/share" produces @"//host/share"
+  * </example>
+  */
+ - (NSString*) lastPathComponent;
+ 
+ /**
+  * Returns a new string containing the path extension of the receiver.<br />
+  * The path extension is a suffix on the last path component which starts
+  * with the extension separator (a '.') (for example .tiff is the
+  * pathExtension for /foo/bar.tiff).<br />
+  * Returns an empty string if no such extension exists.
+  * <example>
+  *   @"a.b" produces @"b"
+  *   @"a.b/" produces @"b"
+  *   @"/path/a.ext" produces @"ext"
+  *   @"/path/a." produces @""
+  *   @"/path/.a" produces @"" (.a is not an extension to a file)
+  *   @".a" produces @"" (.a is not an extension to a file)
+  * </example>
+  */
+ - (NSString*) pathExtension;
+ 
+ /**
+  * Returns a string where a prefix of the current user's home directory is
+  * abbreviated by '~', or returns the receiver (or an immutable copy) if
+  * it was not found to have the home directory as a prefix.
+  */
+ - (NSString*) stringByAbbreviatingWithTildeInPath;
+ 
+ /**
+  * Returns a new string with the path component given in aString
+  * appended to the receiver.<br />
+  * This removes trailing path separators from the receiver and the root
+  * part from aString and replaces them with a single slash as a path
+  * separator.<br />
+  * Also condenses any multiple separator sequences in the result into
+  * single path separators.
+  * <example>
+  *   @"" with @"file" produces @"file"
+  *   @"path" with @"file" produces @"path/file"
+  *   @"/" with @"file" produces @"/file"
+  *   @"/" with @"file" produces @"/file"
+  *   @"/" with @"/file" produces @"/file"
+  *   @"path with @"C:/file" produces @"path/file"
+  * </example>
+  * NB. Do not use this method to modify strings other than filesystem
+  * paths as the behavior in such cases is undefined ... for instance
+  * the string may have repeated slashes or slash-dot-slash sequences
+  * removed.
+  */
+ - (NSString*) stringByAppendingPathComponent: (NSString*)aString;
+ 
+ /**
+  * Returns a new string with the path extension given in aString
+  * appended to the receiver after an extensionSeparator ('.').<br />
+  * If the receiver has trailing path separator characters, they are
+  * stripped before the extension separator is added.<br />
+  * If the receiver contains no components after the root, the extension
+  * cannot be appended (an extension can only be appended to a file name),
+  * so a copy of the unmodified receiver is returned.<br />
+  * An empty string may be used as an extension ... in which case the extension
+  * separator is appended.<br />
+  * This behavior mirrors that of the -stringByDeletingPathExtension method.
+  * <example>
+  *   @"Mail" with @"app" produces @"Mail.app"
+  *   @"Mail.app" with @"old" produces @"Mail.app.old"
+  *   @"file" with @"" produces @"file."
+  *   @"/" with @"app" produces @"/" (no file name to append to)
+  *   @"" with @"app" produces @"" (no file name to append to)
+  * </example>
+  * NB. Do not use this method to modify strings other than filesystem
+  * paths as the behavior in such cases is undefined ... for instance
+  * the string may have repeated slashes or slash-dot-slash sequences
+  * removed.
+  */
+ - (NSString*) stringByAppendingPathExtension: (NSString*)aString;
+ 
+ /**
+  * Returns a new string with the last path component (including any final
+  * path separators) removed from the receiver.<br />
+  * A string without a path component other than the root is returned
+  * without alteration.<br />
+  * See -lastPathComponent for a definition of a path component.
+  * <example>
+  *   @"hello/there" produces @"hello" (a relative path)
+  *   @"hello" produces @"" (a relative path)
+  *   @"/hello" produces @"/" (an absolute unix path)
+  *   @"/" produces @"/" (an absolute unix path)
+  *   @"C:file" produces @"C:" (a relative windows path)
+  *   @"C:" produces @"C:" (a relative windows path)
+  *   @"C:/file" produces @"C:/" (an absolute windows path)
+  *   @"C:/" produces @"C:/" (an absolute windows path)
+  *   @"//host/share/file" produces @"//host/share/" (a UNC path)
+  *   @"//host/share/" produces @"//host/share/" (a UNC path)
+  *   @"//path/file" produces @"//path" (an absolute Unix path)
+  * </example>
+  * NB. Do not use this method to modify strings other than filesystem
+  * paths as the behavior in such cases is undefined ... for instance
+  * the string may have repeated slashes or slash-dot-slash sequences
+  * removed.
+  */
+ - (NSString*) stringByDeletingLastPathComponent;
+ 
+ /**
+  * Returns a new string with the path extension removed from the receiver.<br />
+  * Strips any trailing path separators before checking for the extension
+  * separator.<br />
+  * NB. This method does not consider a string which contains nothing
+  * between the root part and the extension separator ('.') to be a path
+  * extension. This mirrors the behavior of the -stringByAppendingPathExtension:
+  * method.
+  * <example>
+  *   @"file.ext" produces @"file"
+  *   @"/file.ext" produces @"/file"
+  *   @"/file.ext/" produces @"/file" (trailing path separators are ignored)
+  *   @"/file..ext" produces @"/file."
+  *   @"/file." produces @"/file"
+  *   @"/.ext" produces @"/.ext" (there is no file to strip from)
+  *   @".ext" produces @".ext" (there is no file to strip from)
+  * </example>
+  * NB. Do not use this method to modify strings other than filesystem
+  * paths as the behavior in such cases is undefined ... for instance
+  * the string may have repeated slashes or slash-dot-slash sequences
+  * removed.
+  */
+ - (NSString*) stringByDeletingPathExtension;
+ 
+ /**
+  * Returns a string created by expanding the initial tilde ('~') and any
+  * following username to be the home directory of the current user or the
+  * named user.<br />
+  * Returns the receiver or an immutable copy if it was not possible to
+  * expand it.
+  */
+ - (NSString*) stringByExpandingTildeInPath;
+ 
+ /**
+  * First calls -stringByExpandingTildeInPath if necessary.<br />
+  * Replaces path string by one in which path components representing symbolic
+  * links have been replaced by their referents.<br />
+  * Removes a leading '/private' if the result is valid.<br />
+  * If links cannot be resolved, returns an unmodified copy of the receiver.
+  */
+ - (NSString*) stringByResolvingSymlinksInPath;
+ 
+ /**
+  * Returns a standardised form of the receiver, with unnecessary parts
+  * removed, tilde characters expanded, and symbolic links resolved
+  * where possible.<br />
+  * NB. Refers to the local filesystem to resolve symbolic links in
+  * absolute paths, and to expand tildes ... so this can't be used for
+  * general path manipulation.<br />
+  * If the string is an invalid path, the unmodified receiver is returned.<br />
+  * <p>
+  *   Uses -stringByExpandingTildeInPath to expand tilde expressions.<br />
+  *   Simplifies '//' and '/./' sequences and removes trailing '/' or '.'.<br />
+  * </p>
+  * <p>
+  *  For absolute paths, uses -stringByResolvingSymlinksInPath to resolve
+  *  any links, then gets rid of '/../' sequences and removes any '/private'
+  *  prefix.
+  * </p>
+  */
+ - (NSString*) stringByStandardizingPath;
+ 
+ 
+ // for methods working with decomposed strings
+ - (int) _baseLength;
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /**
+  * Concatenates the path components in the array and returns the result.<br />
+  * This method does not remove empty path components, but does recognize an
+  * empty initial component as a special case meaning that the string
+  * returned will begin with a slash.
+  */
+ + (NSString*) pathWithComponents: (NSArray*)components;
+ 
+ /**
+  * Returns YES if the receiver represents an absolute path ...<br />
+  * Returns NO otherwise.<br />
+  * An absolute path in unix mode is one which begins
+  * with a slash or tilde.<br />
+  * In windows mode a drive specification (eg C:) followed by a slash or
+  * backslash, is an absolute path, as is any path beginning with a tilde.<br />
+  * In any mode a UNC path (//host/share...) is always absolute.<br />
+  * In the default gnustep path handling mode,
+  * the rules are the same as for windows,
+  * except that a path whose root is a slash denotes an absolute path
+  * when running on unix and a relative path when running under windows.
+  */
+ - (BOOL) isAbsolutePath;
+ 
+ /**
+  * Returns the path components of the receiver separated into an array.<br />
+  * If the receiver begins with a root sequence such as the path separator
+  * character (or a drive specification in windows) then that is used as the
+  * first element in the array.<br />
+  * Empty components are removed.<br />
+  * If a trailing path separator (which was not part of the root) was present,
+  * it is added as the last element in the array.
+  */
+ - (NSArray*) pathComponents;
+ 
+ /**
+  * Returns an array of strings made by appending the values in paths
+  * to the receiver.
+  */
+ - (NSArray*) stringsByAppendingPaths: (NSArray*)paths;
+ 
+ + (NSString*) localizedStringWithFormat: (NSString*)format, ...
+   NS_FORMAT_FUNCTION(1,2);
+ 
+ + (id) stringWithString: (NSString*)aString;
+ + (id) stringWithContentsOfURL: (NSURL*)url;
+ + (id) stringWithUTF8String: (const char*)bytes;
+ - (id) initWithFormat: (NSString*)format
+ 	       locale: (NSDictionary*)locale, ... NS_FORMAT_FUNCTION(1,3);
+ - (id) initWithFormat: (NSString*)format
+ 	       locale: (NSDictionary*)locale
+ 	    arguments: (va_list)argList NS_FORMAT_FUNCTION(1,0);
+ - (id) initWithUTF8String: (const char *)bytes;
+ - (id) initWithContentsOfURL: (NSURL*)url;
+ - (NSString*) substringWithRange: (NSRange)aRange;
+ - (NSComparisonResult) caseInsensitiveCompare: (NSString*)aString;
+ - (NSComparisonResult) compare: (NSString*)string 
+ 		       options: (NSUInteger)mask 
+ 			 range: (NSRange)compareRange 
+ 			locale: (id)locale;
+ - (NSComparisonResult) localizedCompare: (NSString *)string;
+ - (NSComparisonResult) localizedCaseInsensitiveCompare: (NSString *)string;
+ - (BOOL) writeToFile: (NSString*)filename
+ 	  atomically: (BOOL)useAuxiliaryFile;
+ - (BOOL) writeToURL: (NSURL*)url atomically: (BOOL)atomically;
+ - (double) doubleValue;
+ + (NSStringEncoding*) availableStringEncodings;
+ + (NSString*) localizedNameOfStringEncoding: (NSStringEncoding)encoding;
+ - (void) getLineStart: (NSUInteger *)startIndex
+                   end: (NSUInteger *)lineEndIndex
+           contentsEnd: (NSUInteger *)contentsEndIndex
+              forRange: (NSRange)aRange;
+ - (NSRange) lineRangeForRange: (NSRange)aRange;
+ - (const char*) lossyCString;
+ - (NSString*) stringByAddingPercentEscapesUsingEncoding: (NSStringEncoding)e;
+ - (NSString*) stringByPaddingToLength: (NSUInteger)newLength
+ 			   withString: (NSString*)padString
+ 		      startingAtIndex: (NSUInteger)padIndex;
+ - (NSString*) stringByReplacingPercentEscapesUsingEncoding: (NSStringEncoding)e;
+ - (NSString*) stringByTrimmingCharactersInSet: (NSCharacterSet*)aSet;
+ - (const char *)UTF8String;
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_9,GS_API_LATEST)
+ - (NSString *) stringByAddingPercentEncodingWithAllowedCharacters: (NSCharacterSet *)aSet;
+ - (NSString *) stringByRemovingPercentEncoding;
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_3,GS_API_LATEST) 
+ /** Not implemented */
+ - (void) getParagraphStart: (NSUInteger *)startIndex
+                        end: (NSUInteger *)parEndIndex
+                contentsEnd: (NSUInteger *)contentsEndIndex
+                  forRange: (NSRange)range;
+ /** Not implemented */
+  - (NSRange) paragraphRangeForRange: (NSRange)range;
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5,GS_API_LATEST) 
+ /**
+  * Returns YES when scanning the receiver's text from left to right
+  * finds an initial digit in the range 1-9 or a letter in the set
+  * ('Y', 'y', 'T', 't').<br />
+  * Any trailing characters are ignored.<br />
+  * Any leading whitespace or zeros or signs are also ignored.<br />
+  * Returns NO if the above conditions are not met.
+  */
+ - (BOOL) boolValue;
+ - (NSArray *) componentsSeparatedByCharactersInSet: (NSCharacterSet *)separator;
+ - (NSInteger) integerValue;
+ - (long long) longLongValue;
+ /** Not implemented */
+ - (NSRange) rangeOfComposedCharacterSequencesForRange: (NSRange)range;
+ /** Not implemented */
+ - (NSRange) rangeOfString: (NSString *)aString
+                   options: (NSStringCompareOptions)mask
+                     range: (NSRange)searchRange
+                    locale: (NSLocale *)locale;
+ 
+ #endif
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_10,GS_API_LATEST) 
+ 
+ /**
+   * Returns YES if the receiver contains string, otherwise, NO.
+   */
+ - (BOOL) containsString: (NSString *)string;
+ 
+ #endif
+ 
+ #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
+ + (Class) constantStringClass;
+ #endif	/* GS_API_NONE */
+ 
+ @end
+ 
+ @interface NSMutableString : NSString
+ 
+ // Creating Temporary Strings
+ + (id) string;
+ + (id) stringWithCharacters: (const unichar*)characters
+ 		     length: (NSUInteger)length;
+ + (id) stringWithCString: (const char*)byteString
+ 		  length: (NSUInteger)length;
+ + (id) stringWithCString: (const char*)byteString;
+ + (id) stringWithFormat: (NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
+ + (id) stringWithContentsOfFile: (NSString*)path;
+ + (NSMutableString*) stringWithCapacity: (NSUInteger)capacity;
+ 
+ // Initializing Newly Allocated Strings
+ - (id) initWithCapacity: (NSUInteger)capacity;
+ 
+ // Modify A String
+ - (void) appendFormat: (NSString*)format, ... NS_FORMAT_FUNCTION(1,2);
+ - (void) appendString: (NSString*)aString;
+ - (void) deleteCharactersInRange: (NSRange)range;
+ - (void) insertString: (NSString*)aString atIndex: (NSUInteger)loc;
+ - (void) replaceCharactersInRange: (NSRange)range 
+ 		       withString: (NSString*)aString;
+ - (NSUInteger) replaceOccurrencesOfString: (NSString*)replace
+ 				 withString: (NSString*)by
+ 				    options: (NSUInteger)opts
+ 				      range: (NSRange)searchRange;
+ - (void) setString: (NSString*)aString;
+ 
+ @end
+ 
+ #ifdef __OBJC_GNUSTEP_RUNTIME_ABI__
+ #  if __OBJC_GNUSTEP_RUNTIME_ABI__ >= 20
+ #    define GNUSTEP_NEW_STRING_ABI
+ #  endif
+ #endif
+ 
+ /**
+  * <p>The NXConstantString class is used to hold constant 8-bit character
+  * string objects produced by the compiler where it sees @"..." in the
+  * source.  The compiler generates the instances of this class - which
+  * has three instance variables -</p>
+  * <list>
+  * <item>a pointer to the class (this is the sole ivar of NSObject)</item>
+  * <item>a pointer to the 8-bit data</item>
+  * <item>the length of the string</item>
+  * </list>
+  * <p>In older versions of the compiler, the isa variable is always set to
+  * the NXConstantString class.  In newer versions a compiler option was
+  * added for GNUstep, to permit the isa variable to be set to another
+  * class, and GNUstep uses this to avoid conflicts with the default
+  * implementation of NXConstantString in the ObjC runtime library (the
+  * preprocessor is used to change all occurrences of NXConstantString
+  * in the source code to NSConstantString).</p>
+  * <p>Since GNUstep will generally use the GNUstep extension to the
+  * compiler, you should never refer to the constant string class by
+  * name, but should use the [NSString+constantStringClass] method to
+  * get the actual class being used for constant strings.</p>
+  * What follows is a dummy declaration of the class to keep the compiler
+  * happy.
+  */
+ @interface NXConstantString : NSString
+ {
+ @public
+ #ifdef GNUSTEP_NEW_STRING_ABI
+   /**
+    * Flags.  The low 16 bits are reserved for the compiler, the top 16 for use
+    * by the Foundation Framework.  Currently only the low 2 bits are used, to
+    * indicate the encoding of the string, with the following values:
+    *
+    * 0. ASCII (UTF-8 using only 7-bit characters)
+    * 1. UTF-8
+    * 2. UTF-16
+    * 3. UTF-32
+    *
+    */
+   uint32_t flags;
+   /**
+    * The number of characters (UTF-16 code units) in the string.
+    */
+   uint32_t nxcslen;
+   /**
+    * The number of bytes in the string.  For fixed-length encodings, this is a
+    * fixed multiple of nxcslen, but for UTF-8 it can be different.
+    */
+   uint32_t size;
+   /**
+    * Hash value.
+    */
+   uint32_t hash;
+   /**
+    * Pointer to the byte data of the string.  Note that `char*` is the correct
+    * type only if the low two bits of the flags indicate that this is an ASCII
+    * or UTF-8 string, otherwise it is a pointer to 16- or 32-bit characters in
+    * native byte order.
+    */
+   const char * const nxcsptr;
+ #else
+   const char * const nxcsptr;
+   const unsigned int nxcslen;
+ #endif
+ }
+ @end
+ 
+ #ifdef NeXT_RUNTIME
+ /** For internal use with NeXT runtime;
+     needed, until Apple Radar 2870817 is fixed. */
+ extern struct objc_class _NSConstantStringClassReference;
+ #endif
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #if     !NO_GNUSTEP && !defined(GNUSTEP_BASE_INTERNAL)
+ #import "../GNUstepBase/NSString+GNUstepBase.h"
+ #import "../GNUstepBase/NSMutableString+GNUstepBase.h"
+ #endif
+ 
+ #endif /* __NSString_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSValue.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSValue.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSValue.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSValue.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,370 ----
+ /* Interface for NSValue for GNUStep
+    Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+ 
+    Written by:  Adam Fedor <fedor@boulder.colorado.edu>
+    Created: 1995
+    
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+    
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+    */ 
+ 
+ #ifndef __NSValue_h_GNUSTEP_BASE_INCLUDE
+ #define __NSValue_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ #import	"NSObject.h"
+ #import	"NSGeometry.h"
+ #import	"NSRange.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ @class NSString;
+ 
+ /**
+  * The <code>NSValue</code> class can wrap a single primitive value as an
+  * object so it can be used in the containers and other places where an object
+  * reference is needed. Once initialized, an <code>NSValue</code> is
+  * immutable, and there is no <code>NSMutableValue</code> class. You
+  * initialize it by giving it a pointer to the primitive value, and you should
+  * be careful this does not get freed until after the <code>NSValue</code> is
+  * no longer used.
+  */
+ @interface NSValue : NSObject <NSCopying, NSCoding>
+ 
+ // Allocating and Initializing 
+ 
+ /**
+  * Create new instance with specified value (a pointer) of given type, which
+  * is a string code obtainable through the compile-time operator
+  * <code>@encode(...)</code>.  For example:
+ <example>
+     NSValue *theValue = [NSValue value: &amp;n withObjCType: @encode(int)];
+ </example>
+  */
+ + (NSValue*) value: (const void*)value withObjCType: (const char*)type;
+ 
+ /**
+  * Create new instance holding anObject.  This is useful if you want to add
+  * anObject to a collection such as [NSArray] but don't want it to be retained
+  * (a weak reference).
+  */
+ + (NSValue*) valueWithNonretainedObject: (id)anObject;
+ 
+ /**
+  * Convenience method to create instance holding an <code>NSPoint</code>
+  * structure.
+  */
+ + (NSValue*) valueWithPoint: (NSPoint)point;
+ 
+ /**
+  * Convenience method to create instance holding a pointer.  Same as
+  * using <code>@encode(void *)</code> in +value:withObjCType: .
+  */
+ + (NSValue*) valueWithPointer: (const void*)pointer;
+ 
+ /**
+  * Convenience method to create instance holding an <code>NSRange</code>
+  * structure.
+  */
+ + (NSValue*) valueWithRange: (NSRange)range;
+ 
+ /**
+  * Convenience method to create instance holding an <code>NSRect</code>
+  * structure.
+  */
+ + (NSValue*) valueWithRect: (NSRect)rect;
+ 
+ /**
+  * Convenience method to create instance holding an <code>NSSize</code>
+  * structure.
+  */
+ + (NSValue*) valueWithSize: (NSSize)size;
+ 
+ #if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
+ /**
+  * Synonym for value:withObjCType: .
+  */
+ + (NSValue*) valueWithBytes: (const void*)value objCType: (const char*)type;
+ 
+ /** <init/>
+  * Initialize with value of type, parallel to value:withObjCType: .
+  */
+ - (id) initWithBytes: (const void*)data objCType: (const char*)type;
+ 
+ /**
+  * Compares this instance to another <code>NSValue</code>.  For equality,
+  * both contents and declared type of the two values must match.
+  */
+ - (BOOL) isEqualToValue: (NSValue*)other;
+ #endif	/* GS_API_MACOSX */
+ 
+ // Accessing Data 
+ 
+ /**
+  * Copies bytes from the pointer receiver was initialized with into buffer
+  * pointed to by value.  Number of bytes copied is determined by the type.  If
+  * type was a void * pointer or object id, the memory address itself is
+  * copied.
+  */
+ - (void) getValue: (void*)value;
+ 
+ /**
+  * Returns the string <code>@encode(...)</code> compatible type the receiver
+  * was initialized with.
+  */
+ - (const char*) objCType;
+ 
+ /**
+  * If receiver was initialized with an object ID, return it, else raises
+  * <code>NSInternalInconsistencyException</code>.
+  */
+ - (id) nonretainedObjectValue;
+ 
+ /**
+  * If receiver was initialized with a void * pointer, return it, else raises
+  * <code>NSInternalInconsistencyException</code>.
+  */
+ - (void*) pointerValue;
+ 
+ /**
+  * If receiver was initialized with an <code>NSRange</code> value, return it,
+  * else raises <code>NSInternalInconsistencyException</code>.
+  */
+ - (NSRange) rangeValue;
+ 
+ /**
+  * If receiver was initialized with an <code>NSRect</code> value, return it,
+  * else raises <code>NSInternalInconsistencyException</code>.
+  */
+ - (NSRect) rectValue;
+ 
+ /**
+  * If receiver was initialized with an <code>NSSize</code> value, return it,
+  * else raises <code>NSInternalInconsistencyException</code>.
+  */
+ - (NSSize) sizeValue;
+ 
+ /**
+  * If receiver was initialized with an <code>NSPoint</code> value, return it,
+  * else raises <code>NSInternalInconsistencyException</code>.
+  */
+ - (NSPoint) pointValue;
+ 
+ @end
+ 
+ /**
+  * Subclass of [NSValue] offering convenience methods for initializing from
+  * and accessing as any C primitive numeric type.  On access, the value will
+  * be type-converted if necessary, using standard C conversion rules.
+  */
+ @interface NSNumber : NSValue <NSCopying,NSCoding>
+ 
+ // Allocating and Initializing
+ 
+ /** New instance from boolean value. */
+ + (NSNumber*) numberWithBool: (BOOL)value; 
+ /** New instance from signed char value. */
+ + (NSNumber*) numberWithChar: (signed char)value;
+ /** New instance from double value. */
+ + (NSNumber*) numberWithDouble: (double)value;
+ /** New instance from float value. */
+ + (NSNumber*) numberWithFloat: (float)value;
+ /** New instance from (signed) int value. */
+ + (NSNumber*) numberWithInt: (signed int)value;
+ /** New instance from (signed) long value. */
+ + (NSNumber*) numberWithLong: (signed long)value;
+ /** New instance from (signed) long long value. */
+ + (NSNumber*) numberWithLongLong: (signed long long)value;
+ /** New instance from (signed) short value. */
+ + (NSNumber*) numberWithShort: (signed short)value;
+ /** New instance from unsigned char value. */
+ + (NSNumber*) numberWithUnsignedChar: (unsigned char)value;
+ /** New instance from unsigned int value. */
+ + (NSNumber*) numberWithUnsignedInt: (unsigned int)value;
+ /** New instance from unsigned long value. */
+ + (NSNumber*) numberWithUnsignedLong: (unsigned long)value;
+ /** New instance from unsigned long long value. */
+ + (NSNumber*) numberWithUnsignedLongLong: (unsigned long long)value;
+ /** New instance from unsigned short value. */
+ + (NSNumber*) numberWithUnsignedShort: (unsigned short)value;
+ 
+ /** Initialize from boolean value. */
+ - (id) initWithBool: (BOOL)value;
+ /** Initialize from signed char value. */
+ - (id) initWithChar: (signed char)value;
+ /** Initialize from double value. */
+ - (id) initWithDouble: (double)value;
+ /** Initialize from float value. */
+ - (id) initWithFloat: (float)value;
+ /** Initialize from (signed) int value. */
+ - (id) initWithInt: (signed int)value;
+ /** Initialize from (signed) long value. */
+ - (id) initWithLong: (signed long)value;
+ /** Initialize from (signed) long long value. */
+ - (id) initWithLongLong: (signed long long)value;
+ /** Initialize from (signed) short value. */
+ - (id) initWithShort: (signed short)value;
+ /** Initialize from unsigned char value. */
+ - (id) initWithUnsignedChar: (unsigned char)value;
+ /** Initialize from unsigned int value. */
+ - (id) initWithUnsignedInt: (unsigned int)value;
+ /** Initialize from unsigned long value. */
+ - (id) initWithUnsignedLong: (unsigned long)value;
+ /** Initialize from unsigned long long value. */
+ - (id) initWithUnsignedLongLong: (unsigned long long)value;
+ /** Initialize from unsigned short value. */
+ - (id) initWithUnsignedShort: (unsigned short)value;
+ 
+ // Accessing Data 
+ 
+ /**
+  * Return value as a BOOL; this will in fact be a char value converted
+  * if necessary from type initialized with; if you wish to consider anything
+  * nonzero TRUE do not compare directly to YES, but use <code>'!= NO'</code>.
+  */
+ - (BOOL) boolValue;
+ /** Returns value as a signed char, converting if necessary. */
+ - (signed char) charValue;
+ /** Returns value as a double, converting if necessary. */
+ - (double) doubleValue;
+ /** Returns value as a float, converting if necessary. */
+ - (float) floatValue;
+ /** Returns value as a (signed) int, converting if necessary. */
+ - (signed int) intValue;
+ /** Returns value as a (signed) long, converting if necessary. */
+ - (signed long) longValue;
+ /** Returns value as a (signed) long long, converting if necessary. */
+ - (signed long long) longLongValue;
+ /** Returns value as a (signed) short, converting if necessary. */
+ - (signed short) shortValue;
+ /** Returns value as an unsigned char, converting if necessary. */
+ - (unsigned char) unsignedCharValue;
+ /** Returns value as an unsigned int, converting if necessary. */
+ - (unsigned int) unsignedIntValue;
+ /** Returns value as an unsigned long, converting if necessary. */
+ - (unsigned long) unsignedLongValue;
+ /** Returns value as an unsigned long long, converting if necessary. */
+ - (unsigned long long) unsignedLongLongValue;
+ /** Returns value as an unsigned short, converting if necessary. */
+ - (unsigned short) unsignedShortValue;
+ 
+ /** Returns -description . */
+ - (NSString*) stringValue;
+ 
+ /**
+  * Returns the string representation of this number using a non-localised
+  * conversion (decimal point is '.' irrespective of the locale).
+  */
+ - (NSString*) description;
+ 
+ /**
+  * <p>
+  *   Produces a string representation of the number.  For a boolean
+  *   this will be either 'true' or 'false'.  For other numbers the
+  *   format is produced using the initWithFormat:locale:... method
+  *   of NSString, and the format depends on the type of number as
+  *   follows -
+  * </p>
+  * <deflist>
+  *   <term>char</term>
+  *   <desc>%i</desc>
+  *   <term> short</term>
+  *   <desc>%hi</desc>
+  *   <term> int</term>
+  *   <desc>%i</desc>
+  *   <term> long</term>
+  *   <desc>%li</desc>
+  *   <term> long long</term>
+  *   <desc>%lli</desc>
+  *   <term> unsigned char</term>
+  *   <desc>%u</desc>
+  *   <term> unsigned short</term>
+  *   <desc>%hu</desc>
+  *   <term> unsigned int</term>
+  *   <desc>%u</desc>
+  *   <term> unsigned long</term>
+  *   <desc>%lu</desc>
+  *   <term> unsigned long long</term>
+  *   <desc>%llu</desc>
+  *   <term> float</term>
+  *   <desc>%0.7g</desc>
+  *   <term> double</term>
+  *   <desc>%0.16g</desc>
+  * </deflist>
+  */
+ - (NSString*) descriptionWithLocale: (id)locale;
+ 
+ /**
+  * Compares receiver with otherNumber, using C type conversion if necessary,
+  * and returns <code>NSOrderedAscending</code>,
+  * <code>NSOrderedDescending</code>, or <code>NSOrderedSame</code> depending
+  * on whether it is less than, greater than, or equal to otherNumber.
+  */
+ - (NSComparisonResult) compare: (NSNumber*)otherNumber;
+ 
+ /**
+  * Returns whether receiver and otherNumber represent the same numerical value.
+  */
+ - (BOOL) isEqualToNumber: (NSNumber*)otherNumber;
+ 
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
+ /** Return a number intialised with NSInteger.
+  */
+ + (NSNumber*) numberWithInteger: (NSInteger)value;
+ /** Return a number intialised with NSUInteger.
+  */
+ + (NSNumber*) numberWithUnsignedInteger: (NSUInteger)value;
+ /** Initialise the receiver with NSInteger content.
+  */
+ - (id) initWithInteger: (NSInteger)value;
+ /** Initialise the receiver with NSUInteger content.
+  */
+ - (id) initWithUnsignedInteger: (NSUInteger)value;
+ /** Return the contents of the receiver as NSInteger.
+  */
+ - (NSInteger) integerValue;
+ /** Return the contents of the receiver as NSUInteger.
+  */
+ - (NSUInteger) unsignedIntegerValue;
+ #endif
+ 
+ @end
+ 
+ #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
+ 
+ /** Note: Defines a method that is not in the OpenStep spec, but makes
+     subclassing easier. */
+ @interface NSValue (Subclassing)
+ 
+ /** Used by value: withObjCType: to determine the concrete subclass to alloc. */
+ + (Class) valueClassWithObjCType: (const char*)type;
+ 
+ @end
+ #endif
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #if     !NO_GNUSTEP && !defined(GNUSTEP_BASE_INTERNAL)
+ #import "../GNUstepBase/NSNumber+GNUstepBase.h"
+ #endif
+ 
+ #endif /* __NSValue_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSZone.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSZone.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSZone.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSZone.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,335 ----
+ /** Zone memory management. -*- Mode: ObjC -*-
+    Copyright (C) 1997,1998,1999 Free Software Foundation, Inc.
+ 
+    Written by: Yoo C. Chung <wacko@laplace.snu.ac.kr>
+    Date: January 1997
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+     AutogsdocSource:	NSZone.m
+     AutogsdocSource:	NSPage.m
+ 
+    */
+ 
+ #ifndef __NSZone_h_GNUSTEP_BASE_INCLUDE
+ #define __NSZone_h_GNUSTEP_BASE_INCLUDE
+ #import	"../GNUstepBase/GSVersionMacros.h"
+ 
+ /**
+  * Primary structure representing an <code>NSZone</code>.  Technically it
+  * consists of a set of function pointers for zone upkeep functions plus some
+  * other things-
+ <example>
+ {
+   // Functions for zone.
+   void *(*malloc)(struct _NSZone *zone, size_t size);
+   void *(*realloc)(struct _NSZone *zone, void *ptr, size_t size);
+   void (*free)(struct _NSZone *zone, void *ptr);
+   void (*recycle)(struct _NSZone *zone);
+   BOOL (*check)(struct _NSZone *zone);
+   BOOL (*lookup)(struct _NSZone *zone, void *ptr);
+ 
+   // Zone statistics (not always maintained).
+   struct NSZoneStats (*stats)(struct _NSZone *zone);
+   
+   size_t gran;    // Zone granularity (passed in on initialization)
+   NSString *name; // Name of zone (default is 'nil')
+   NSZone *next;   // Pointer used for internal management of multiple zones.
+ }</example>
+  */
+ typedef struct _NSZone NSZone;
+ 
+ #import	"NSObjCRuntime.h"
+ 
+ @class NSString;
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ struct _NSZone
+ {
+   /* Functions for zone. */
+   void *(*malloc)(struct _NSZone *zone, size_t size);
+   void *(*realloc)(struct _NSZone *zone, void *ptr, size_t size);
+   void (*free)(struct _NSZone *zone, void *ptr);
+   void (*recycle)(struct _NSZone *zone);
+   BOOL (*check)(struct _NSZone *zone);
+   BOOL (*lookup)(struct _NSZone *zone, void *ptr);
+   struct NSZoneStats (*stats)(struct _NSZone *zone);
+   
+   size_t gran; // Zone granularity
+   __unsafe_unretained NSString *name; // Name of zone (default is 'nil')
+   NSZone *next;
+ };
+ 
+ /**
+  * Creates a new zone of start bytes, which will grow and shrink by
+  * granularity bytes.  If canFree is 0, memory in zone is allocated but
+  * never freed, meaning allocation will be very fast.  The whole zone can
+  * still be freed with NSRecycleZone(), and you should still call NSZoneFree
+  * on memory in the zone that is no longer needed, since a count of allocated
+  * pointers is kept and must reach zero before freeing the zone.<br />
+  * If Garbage Collection is enabled, this function does nothing other than
+  * log a warning and return the same value as the NSDefaultMallocZone()
+  * function.
+  */
+ GS_EXPORT NSZone*
+ NSCreateZone (NSUInteger start, NSUInteger gran, BOOL canFree);
+ 
+ /** Returns the default zone for memory allocation.  Memory created in this
+  * zone is the same as memory allocates using the system malloc() function.
+  */
+ GS_EXPORT NSZone*
+ NSDefaultMallocZone (void);
+ 
+ /**
+  * Searches and finds the zone ptr was allocated from.  The speed depends
+  * upon the number of zones and their size.<br />
+  * If Garbage Collection is enabled, this function always returns the
+  * same as the NSDefaultMallocZone() function.
+  */
+ GS_EXPORT NSZone*
+ NSZoneFromPointer (void *ptr);
+ 
+ /**
+  * Allocates and returns memory for elems items of size bytes, in the
+  * given zone.  Returns NULL if allocation of size 0 requested.  Raises
+  * <code>NSMallocException</code> if not enough free memory in zone to
+  * allocate and no more can be obtained from system, unless using the
+  * default zone, in which case NULL is returned.<br />
+  * If Garbage Collection is enabled, this function always allocates
+  * non-scanned, non-collectable memory in the NSDefaultMallocZone() and
+  * the zone argument is ignored.
+  */
+ GS_EXPORT void*
+ NSZoneMalloc (NSZone *zone, NSUInteger size);
+ 
+ /**
+  * Allocates and returns cleared memory for elems items of size bytes, in the
+  * given zone.  Returns NULL if allocation of size 0 requested.  Raises
+  * <code>NSMallocException</code> if not enough free memory in zone to
+  * allocate and no more can be obtained from system, unless using the
+  * default zone, in which case NULL is returned.<br />
+  * If Garbage Collection is enabled, this function always allocates
+  * non-scanned, non-collectable memory in the NSDefaultMallocZone() and
+  * the zone argument is ignored.
+  */
+ GS_EXPORT void*
+ NSZoneCalloc (NSZone *zone, NSUInteger elems, NSUInteger bytes);
+ 
+ /**
+  * Reallocates the chunk of memory in zone pointed to by ptr to a new one of
+  * size bytes.  Existing contents in ptr are copied over.  Raises an
+  * <code>NSMallocException</code> if insufficient memory is available in the
+  * zone and no more memory can be obtained from the system, unless using the
+  * default zone, in which case NULL is returned.<br />
+  * If Garbage Collection is enabled, the zone argument is ignored.
+  */
+ GS_EXPORT void*
+ NSZoneRealloc (NSZone *zone, void *ptr, NSUInteger size);
+ 
+ /**
+  * Return memory for an entire zone to system.  In fact, this will not be done
+  * unless all memory in the zone has been explicitly freed (by calls to
+  * NSZoneFree()).  For "non-freeable" zones, the number of NSZoneFree() calls
+  * must simply equal the number of allocation calls.  The default zone, on the
+  * other hand, cannot be recycled.<br />
+  * If Garbage Collection is enabled, this function has not effect.
+  */
+ GS_EXPORT void
+ NSRecycleZone (NSZone *zone);
+ 
+ /**
+  * Frees memory pointed to by ptr (which should have been allocated by a
+  * previous call to NSZoneMalloc(), NSZoneCalloc(), or NSZoneRealloc()) and
+  * returns it to zone.  Note, if this is a nonfreeable zone, the memory is
+  * not actually freed, but the count of number of free()s is updated.<br />
+  * If Garbage Collection is enabled, the zone argument is ignored and this
+  * function causes ptr to be deallocated immediately.
+  */
+ GS_EXPORT void
+ NSZoneFree (NSZone *zone, void *ptr);
+ 
+ /**
+  * Sets name of the given zone (useful for debugging and logging).
+  */
+ GS_EXPORT void
+ NSSetZoneName (NSZone *zone, NSString *name);
+ 
+ /**
+  * Returns the name of the given zone (useful for debugging and logging).
+  */
+ GS_EXPORT NSString*
+ NSZoneName (NSZone *zone);
+ 
+ #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
+ 
+ /** Deprecated ...<br />
+  * Checks integrity of a zone.  Not defined by OpenStep or OS X.
+  */
+ BOOL
+ NSZoneCheck (NSZone *zone);
+ 
+ /**
+  *  <code>NSZoneStats</code> is the structure returned by the NSZoneStats()
+  *  function that summarizes the current usage of a zone.  It is similar to
+  *  the structure <em>mstats</em> in the GNU C library.  It has 5 fields of
+  *  type <code>size_t</code>-
+  *  <deflist>
+  *    <term><code>bytes_total</code></term>
+  *    <desc>
+  *    This is the total size of memory managed by the zone, in bytes.</desc>
+  *    <term><code>chunks_used</code></term>
+  *    <desc>This is the number of memory chunks in use in the zone.</desc>
+  *    <term><code>bytes_used</code></term>
+  *    <desc>This is the number of bytes in use.</desc>
+  *    <term><code>chunks_free</code></term>
+  *    <desc>This is the number of memory chunks that are not in use.</desc>
+  *    <term><code>bytes_free</code></term>
+  *    <desc>
+  *    This is the number of bytes managed by the zone that are not in use.
+  *    </desc>
+  *  </deflist>
+  */
+ struct NSZoneStats
+ {
+   size_t bytes_total;
+   size_t chunks_used;
+   size_t bytes_used;
+   size_t chunks_free;
+   size_t bytes_free;
+ };
+ 
+ /** Deprecated ...<br />
+  *  Obtain statistics about the zone.  Implementation emphasis is on
+  *  correctness, not speed.  Not defined by OpenStep or OS X.
+  */
+ struct NSZoneStats
+ NSZoneStats (NSZone *zone);
+ 
+ /**
+  * Try to get more memory - the normal process has failed.
+  * If we can't do anything, just return a null pointer.
+  * Try to do some logging if possible.
+  */
+ void*
+ GSOutOfMemory(NSUInteger size, BOOL retry);
+ 
+ /**
+  * Called during +initialize to tell the class that instances created
+  * in future should have the specified instance variable as a weak
+  * pointer for garbage collection.<br />
+  * NB. making a pointer weak does not mean that it is automatically
+  * zeroed when the object it points to is garbage collected. To get that
+  * behavior you must asign values to the pointer using the
+  * GSAssignZeroingWeakPointer() function.<br />
+  * This function has no effect if the system is
+  * not built for garbage collection.
+  */
+ GS_EXPORT void
+ GSMakeWeakPointer(Class theClass, const char *iVarName);
+ 
+ /**
+  * This function must be used to assign a value to a zeroing weak pointer.<br />
+  * A zeroing weak pointer is one where, when the garbage collector collects
+  * the object pointed to, it also clears the weak pointer.<br />
+  * Assigning zero (nil) will always succeed and has the effect of telling the
+  * garbage collector that it no longer needs to track the previously assigned
+  * object.  Apart from that case, a source needs to be garbage collectable for
+  * this function to work, and using a non-garbage collectable value will
+  * cause the function to return NO.<br />
+  * If the destination object (the weak pointer watching the source object)
+  * belongs to a chunk of memory which may be collected before the source
+  * object is collected, it is important that it is finalised and the
+  * finalisation code assigns zero to the pointer.<br />
+  * If garbage collection is not in use, this function performs a simple
+  * assignment returning YES, unless destination is null in which case it
+  * returns NO.
+  */
+ GS_EXPORT BOOL
+ GSAssignZeroingWeakPointer(void **destination, void *source);
+ 
+ #endif
+ 
+ GS_EXPORT NSUInteger
+ NSPageSize (void) __attribute__ ((const));
+ 
+ GS_EXPORT NSUInteger
+ NSLogPageSize (void) __attribute__ ((const));
+ 
+ GS_EXPORT NSUInteger
+ NSRoundDownToMultipleOfPageSize (NSUInteger bytes) __attribute__ ((const));
+ 
+ GS_EXPORT NSUInteger
+ NSRoundUpToMultipleOfPageSize (NSUInteger bytes) __attribute__ ((const));
+ 
+ GS_EXPORT NSUInteger
+ NSRealMemoryAvailable (void);
+ 
+ GS_EXPORT void*
+ NSAllocateMemoryPages (NSUInteger bytes);
+ 
+ GS_EXPORT void
+ NSDeallocateMemoryPages (void *ptr, NSUInteger bytes);
+ 
+ GS_EXPORT void
+ NSCopyMemoryPages (const void *src, void *dest, NSUInteger bytes);
+ 
+ #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, OS_API_LATEST)
+ 
+ enum {
+   NSScannedOption = (1<<0),
+   NSCollectorDisabledOption = (1<<1)
+ };
+ 
+ /** Allocate memory.  If garbage collection is not enabled this uses the
+  * default malloc zone and the options are ignored.<br />
+  * If garbage collection is enabled, the allocate memory is normally not
+  * scanned for pointers but is itsself garbage collectable.  The options
+  * argument is a bitmask in which NSScannedOption sets the memory to be
+  * scanned for pointers by the garbage collector, and
+  * NSCollectorDisabledOption causes the memory to be excempt from being
+  * garbage collected itsself.<br />
+  * In any case the memory returned is zero'ed.
+  */
+ GS_EXPORT void *
+ NSAllocateCollectable(NSUInteger size, NSUInteger options);
+ 
+ /** Reallocate memory to be of a different size and/or to have different
+  * options settings.  The behavior of options is as for
+  * the NSAllocateCollectable() function.
+  */ 
+ GS_EXPORT void *
+ NSReallocateCollectable(void *ptr, NSUInteger size, NSUInteger options);
+ 
+ #endif
+ 
+ static inline id NSMakeCollectable(const void *cf) {
+ #if __has_feature(objc_arc)
+     return nil;
+ #else
+     return (id)cf; // Unimplemented; garbage collection is deprecated.
+ #endif
+ }
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif /* not __NSZone_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GNUstep.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,418 ----
+ /* GNUstep.h - macros to make easier to port gnustep apps to macos-x
+    Copyright (C) 2001 Free Software Foundation, Inc.
+ 
+    Written by: Nicola Pero <n.pero@mi.flashnet.it>
+    Date: March, October 2001
+    
+    This file is part of GNUstep.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+    
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+ */ 
+ 
+ #ifndef __GNUSTEP_GNUSTEP_H_INCLUDED_
+ #define __GNUSTEP_GNUSTEP_H_INCLUDED_
+ 
+ /* The contents of this file are designed to be usable with either
+  * GNUstep-base or MacOS-X Foundation.
+  */
+ 
+ #ifndef __has_feature
+ #  define __has_feature(x) 0
+ #endif
+ 
+ /*
+  * __has_extension has slightly different semantics from __has_feature.
+  * It evaluates to true if the feature is supported by by clang for the
+  * current compilation unit (language and -f switches), regardless of 
+  * whether it is part of the language standard or just a (non-standard)
+  * extension.
+  */
+ #ifndef __has_extension
+ #  define __has_extension(x) __has_feature(x)
+ #endif
+ 
+ /*
+  * __has_attribute is the equivalent to __has_feature and __has_extension
+  * for GNU-style attributes.
+  */
+ #ifndef __has_attribute
+ #  define __has_attribute(x) 0
+ #endif
+ 
+ #if	__has_feature(objc_arc)
+ 
+ #ifndef	RETAIN
+ #define	RETAIN(object)		        (object)
+ #endif
+ #ifndef	RELEASE
+ #define	RELEASE(object)		
+ #endif
+ #ifndef	AUTORELEASE
+ #define	AUTORELEASE(object)	        (object)
+ #endif
+ 
+ #ifndef	TEST_RETAIN
+ #define	TEST_RETAIN(object)	        (object)
+ #endif
+ #ifndef	TEST_RELEASE
+ #define	TEST_RELEASE(object)
+ #endif
+ #ifndef	TEST_AUTORELEASE
+ #define	TEST_AUTORELEASE(object)	(object)
+ #endif
+ 
+ #ifndef	ASSIGN
+ #define	ASSIGN(object,value)	        object = (value)
+ #endif
+ #ifndef	ASSIGNCOPY
+ #define	ASSIGNCOPY(object,value)	object = [(value) copy]
+ #endif
+ #ifndef	DESTROY
+ #define	DESTROY(object) 	        object = nil
+ #endif
+ 
+ #define	IF_NO_GC(X)	
+ 
+ #ifndef ENTER_POOL
+ #define ENTER_POOL                      @autoreleasepool{do{
+ #endif
+ 
+ #ifndef LEAVE_POOL
+ #define LEAVE_POOL                      }while(0);}
+ #endif
+ 
+ #ifndef DEALLOC
+ #define DEALLOC
+ #endif
+ 
+ #else
+ 
+ #ifndef	RETAIN
+ /**
+  *	Basic retain operation ... calls [NSObject-retain]<br />
+  *	Deprecated ... pointless on modern processors.
+  *	Simply call the -retain method.
+  */
+ #define	RETAIN(object)		[(object) retain]
+ #endif
+ 
+ #ifndef	RELEASE
+ /**
+  *	Basic release operation ... calls [NSObject-release]<br />
+  *	Deprecated ... pointless on modern processors.
+  *	Simply call the -release method.
+  */
+ #define	RELEASE(object)		[(object) release]
+ #endif
+ 
+ #ifndef	AUTORELEASE
+ /**
+  *	Basic autorelease operation ... calls [NSObject-autorelease]<br />
+  *	Deprecated ... pointless on modern processors.
+  *	Simply call the -autorelease method.
+  */
+ #define	AUTORELEASE(object)	[(object) autorelease]
+ #endif
+ 
+ #ifndef	TEST_RETAIN
+ /**
+  *	Tested retain - only invoke the
+  *	objective-c method if the receiver is not nil.<br />
+  *	Deprecated ... pointless on modern processors.
+  *	Simply call the -retain method.
+  */
+ #define	TEST_RETAIN(object)	({\
+ id __object = (object); (__object != nil) ? [__object retain] : nil; })
+ #endif
+ 
+ #ifndef	TEST_RELEASE
+ /**
+  *	Tested release - only invoke the
+  *	objective-c method if the receiver is not nil.<br />
+  *	Deprecated ... pointless on modern processors.
+  *	Simply call the -release method.
+  */
+ #define	TEST_RELEASE(object)	({\
+ id __object = (object); if (__object != nil) [__object release]; })
+ #endif
+ 
+ #ifndef	TEST_AUTORELEASE
+ /**
+  *	Tested autorelease - only invoke the
+  *	objective-c method if the receiver is not nil.<br />
+  *	Deprecated ... pointless on modern processors.
+  *	Simply call the -autorelease method.
+  */
+ #define	TEST_AUTORELEASE(object)	({\
+ id __object = (object); (__object != nil) ? [__object autorelease] : nil; })
+ #endif
+ 
+ #ifndef	ASSIGN
+ /**
+  *	ASSIGN(object,value) assigns the value to the object with
+  *	appropriate retain and release operations.<br />
+  *	Use this to avoid retain/release errors.
+  */
+ #define	ASSIGN(object,value)	({\
+   id __object = object; \
+   object = [(value) retain]; \
+   [__object release]; \
+ })
+ #endif
+ 
+ #ifndef	ASSIGNCOPY
+ /**
+  *	ASSIGNCOPY(object,value) assigns a copy of the value to the object
+  *	with release of the original.<br />
+  *	Use this to avoid retain/release errors.
+  */
+ #define	ASSIGNCOPY(object,value)	({\
+   id __object = object; \
+   object = [(value) copy];\
+   [__object release]; \
+ })
+ #endif
+ 
+ #ifndef	DESTROY
+ /**
+  *	DESTROY() is a release operation which also sets the variable to be
+  *	a nil pointer for tidiness - we can't accidentally use a DESTROYED
+  *	object later.  It also makes sure to set the variable to nil before
+  *	releasing the object - to avoid side-effects of the release trying
+  *	to reference the object being released through the variable.
+  */
+ #define	DESTROY(object) 	({ \
+   id __o = object; \
+   object = nil; \
+   [__o release]; \
+ })
+ #endif
+ 
+ #define	IF_NO_GC(X)	X
+ 
+ #ifndef ENTER_POOL
+ /**
+  *	ENTER_POOL creates an autorelease pool and places subsequent code
+  *	in a do/while loop (executed only once) which can be broken out of
+  *	to reach the point when the pool is drained.<br />
+  *	The block must be terminated with a corresponding LEAVE_POOL.<br />
+  *	You should not return from such a block of code (to do so could
+  *	leak an autorelease pool and give objects a longer lifetime than
+  *	they ought to have.  If you wish to leave the block of code early,
+  *	you may do so using a 'break' statement.
+  */
+ #define ENTER_POOL      {NSAutoreleasePool *_lARP=[NSAutoreleasePool new];do{
+ #endif
+ 
+ #ifndef LEAVE_POOL
+ /**
+  *	LEAVE_POOL terminates a block of code started with ENTER_POOL.
+  */
+ #define LEAVE_POOL      }while(0);[_lARP drain];}
+ #endif
+ 
+ #ifndef DEALLOC
+ /**
+  *	DEALLOC calls the superclass implementation of dealloc, unless
+  *	ARC is in use (in which case it does nothing).
+  */
+ #define DEALLOC         [super dealloc];
+ #endif
+ #endif
+ 
+ #ifndef	CREATE_AUTORELEASE_POOL
+ /** DEPRECATED ... use ENTER_POOL and LEAVE_POOL
+  */
+ #define	CREATE_AUTORELEASE_POOL(X)	\
+   NSAutoreleasePool *X = [NSAutoreleasePool new]
+ #endif
+ 
+ #ifndef RECREATE_AUTORELEASE_POOL
+ /** DEPRECATED ... use ENTER_POOL and LEAVE_POOL
+  */
+ #define RECREATE_AUTORELEASE_POOL(X)  \
+   DESTROY(X);\
+   X = [NSAutoreleasePool new]
+ #endif
+ 
+ 
+ /**
+  * <p>
+  *   This function (macro) is a GNUstep extension.
+  * </p>
+  * <p>
+  *   <code>_(@"My string to translate")</code>
+  * </p>
+  * <p>
+  *   is basically equivalent to
+  * </p>
+  * <p>
+  *   <code>NSLocalizedString(@"My string to translate", @"")</code>
+  * </p>
+  * <p>
+  * It is useful when you need to translate an application
+  * very quickly, as you just need to enclose all strings
+  * inside <code>_()</code>.  But please note that when you
+  * use this macro, you are not taking advantage of comments
+  * for the translator, so consider using
+  * <code>NSLocalizedString</code> instead when you need a
+  * comment.
+  * </p>
+  * <p>You may define GS_LOCALISATION_BUNDLE_ID to the bundle identifier
+  * of the bundle which is to provide the localisation information.<br />
+  * This can be used when compiling a single file by specifying something like
+  * '-D GS_LOCALISATION_BUNDLE_ID=$(FRAMEWORK_NAME)' in your make file.<br />
+  * If this is not defined, the localisation is provided by your application's
+  * main bundle exactly like the NSLocalizedString function.
+  * </p>
+  * <p>Alternatively you may define GS_LOCALISATION_BUNDLE to be the bundle
+  * to be used to prvide the localisation information.
+  * </p>
+  */
+ # define _(X) \
+   [GS_LOCALISATION_BUNDLE localizedStringForKey: (X) value: @"" table: nil]
+ 
+ #if	!defined(GS_LOCALISATION_BUNDLE)
+ # if	defined(GS_LOCALISATION_BUNDLE_ID)
+ #   define	GS_LOCALISATION_BUNDLE	[NSBundle bundleWithIdentifier: \
+   GS_LOCALISATION_BUNDLE_ID]
+ # else
+ #   define	GS_LOCALISATION_BUNDLE	[NSBundle mainBundle]
+ # endif
+ #endif
+ 
+ 
+  
+ /**
+  * <p>
+  *   This function (macro) is a GNUstep extension.
+  * </p>
+  * <p>
+  *   <code>__(@"My string to translate")</code>
+  * </p>
+  * <p>
+  *   is exactly the same as
+  * </p>
+  * <p>
+  *   <code>GSLocalizedStaticString(@"My string to translate", @"")</code>
+  * </p>
+  * <p>
+  *   It is useful when you need to translate an application very
+  *   quickly.  You would use it as follows for static strings:
+  * </p>
+  * <p>
+  *  <code>
+  *    NSString *message = __(@"Hello there");
+  *    ... more code ...
+  *    NSLog (_(messages));
+  *  </code>
+  * </p>
+  * <p>
+  *   But please note that when you use this macro, you are not
+  *   taking advantage of comments for the translator, so
+  *   consider using <code>GSLocalizedStaticString</code>
+  *   instead when you need a comment.
+  * </p>
+  */
+ #define __(X) X
+ 
+ /* The better way for a static string, with a comment - use as follows -
+  *
+  * static NSString *string = GSLocalizedStaticString (@"New Game",
+  *                                                    @"Menu Option");
+  *
+  * NSLog (_(string));
+  *
+  * If you need anything more complicated than this, please initialize
+  * the static strings manually.
+  */
+ 
+ /**
+  * <p>
+  *   This function (macro) is a GNUstep extensions, and it is used
+  *   to localize static strings.  Here is an example of a static
+  *   string:
+  * </p>
+  * <p>
+  *   <code>
+  *     NSString *message = @"Hi there";
+  *     ... some code ...
+  *     NSLog (message);
+  *  </code>
+  * </p>
+  * <p>
+  *   This string can not be localized using the standard
+  *   openstep functions/macros.  By using this gnustep extension,
+  *   you can localize it as follows:
+  * </p>
+  * <p>
+  *   <code>
+  *     NSString *message = GSLocalizedStaticString (@"Hi there",
+  *       @"Greeting");
+  * 
+  *     ... some code ...
+  * 
+  *     NSLog (NSLocalizedString (message, @""));
+  *  </code>
+  * </p>
+  * <p>
+  *   When the tools generate the
+  *   <code>Localizable.strings</code> file from the source
+  *   code, they will ignore the <code>NSLocalizedString</code>
+  *   call while they will extract the string (and the comment)
+  *   to localize from the <code>GSLocalizedStaticString</code>
+  *   call.
+  * </p>
+  * <p>
+  *   When the code is compiled, instead, the
+  *   <code>GSLocalizedStaticString</code> call is ignored (discarded,
+  *   it is a macro which simply expands to <code>key</code>), while
+  *   the <code>NSLocalizedString</code> will actually look up the
+  *   string for translation in the <code>Localizable.strings</code>
+  *   file.
+  * </p>
+  * <p>
+  *   Please note that there is currently no macro/function to
+  *   localize static strings using different tables.  If you
+  *   need that functionality, you have either to prepare the
+  *   localization tables by hand, or to rewrite your code in
+  *   such a way as not to use static strings.
+  * </p>
+  */
+ #define GSLocalizedStaticString(key, comment) key
+ 
+ /**
+  * To be used inside a method for making sure that a range does not specify
+  * anything outside the size of an array/string.  Raises exception if range
+  * extends beyond [0,size]. Size must be an unsigned integer (NSUInteger).
+  */
+ #define GS_RANGE_CHECK(RANGE, SIZE) \
+   if (RANGE.location > (NSUInteger)SIZE \
+     || RANGE.length > ((NSUInteger)SIZE - RANGE.location)) \
+     [NSException raise: NSRangeException format: @"in %s, range { %"\
+       PRIuPTR ", %" PRIuPTR " } extends beyond size (%" PRIuPTR ")", \
+       GSNameFromSelector(_cmd), RANGE.location, RANGE.length, (NSUInteger)SIZE]
+ 
+ /** Checks whether INDEX is strictly less than OVER (within C array space).
+  * INDEX and OVER must be unsigned integers (NSUInteger).
+  */
+ #define CHECK_INDEX_RANGE_ERROR(INDEX, OVER) \
+ if ((NSUInteger)INDEX >= (NSUInteger)OVER) \
+   [NSException raise: NSRangeException \
+     format: @"in %s, index %" PRIuPTR " is out of range", \
+     GSNameFromSelector(_cmd), (NSUInteger)INDEX]
+ 
+ #endif /* __GNUSTEP_GNUSTEP_H_INCLUDED_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSBlocks.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,145 ----
+ /** Definitions for block support for GNUStep
+    Copyright (C) 2011 Free Software Foundation, Inc.
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+    */
+ 
+ #ifndef __GSBlocks_h_GNUSTEP_BASE_INCLUDE
+ #define __GSBlocks_h_GNUSTEP_BASE_INCLUDE
+ 
+ /* Define the has_feature pseudo-macro for GCC. */
+ #ifndef __has_feature
+ #define __has_feature(x) 0
+ #endif
+ 
+ #ifndef GCC_VERSION
+ #define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__)
+ #endif
+ 
+ #if __has_feature(blocks)
+ 
+ #define BLOCK_SCOPE __block
+ /**
+  * Defines a block type.  Will work whether or not the compiler natively
+  * supports blocks.
+  */
+ #define DEFINE_BLOCK_TYPE(name, retTy, argTys, ...) \
+ typedef retTy(^name)(argTys, ## __VA_ARGS__)
+ 
+ #define DEFINE_BLOCK_TYPE_NO_ARGS(name, retTy) \
+ typedef retTy(^name)()
+ 
+ /**
+  * Calls a block.  Works irrespective of whether the compiler supports blocks.
+  */
+ #define CALL_BLOCK(block, args, ...) block(args, ## __VA_ARGS__)
+ 
+ /**
+  * Calls a block without arguments.
+  */
+ #define CALL_BLOCK_NO_ARGS(block) block()
+ #else
+ 
+ /* Fall-back versions for when the compiler doesn't have native blocks support.
+  */
+ #if (GCC_VERSION >= 3000)
+ 
+ #define DEFINE_BLOCK_TYPE(name, retTy, argTys, ...) \
+   typedef struct {\
+     void *isa;\
+     int flags;\
+     int reserved;\
+     retTy (*invoke)(void*, argTys, ## __VA_ARGS__);\
+   } *name
+ 
+ #define DEFINE_BLOCK_TYPE_NO_ARGS(name, retTy) \
+   typedef struct {\
+     void *isa;\
+     int flags;\
+     int reserved;\
+     retTy (*invoke)(void*);\
+   } *name
+ 
+ #define CALL_BLOCK(block, args, ...) block->invoke(block, args, ## __VA_ARGS__)
+ 
+ #define CALL_BLOCK_NO_ARGS(block) block->invoke(block)
+ #define BLOCK_SCOPE
+ 
+ #else /* GCC_VERSION >= 3000 */
+ 
+ #define DEFINE_BLOCK_TYPE(name, retTy, argTys...) \
+   typedef struct {\
+     void *isa;\
+     int flags;\
+     int reserved;\
+     retTy (*invoke)(void*, argTys);\
+   } *name
+ 
+ #define DEFINE_BLOCK_TYPE_NO_ARGS(name, retTy) \
+   typedef struct {\
+     void *isa;\
+     int flags;\
+     int reserved;\
+     retTy (*invoke)(void*);\
+   } *name
+ 
+ 
+ #define CALL_BLOCK(block, args...) block->invoke(block, args)
+ #define CALL_BLOCK_NO_ARGS(block) block->invoke(block)
+ #define BLOCK_SCOPE
+ #endif /* GCC_VERSION >= 3000 */
+ 
+ #endif /* __has_feature(blocks) */
+ 
+ #if __has_include(<objc/blocks_runtime.h>)
+ #  include <objc/blocks_runtime.h>
+ #else
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ /**
+  * _Block_copy and _Block_release are weakly imported, but can be assumed
+  * to be available whenever a feature using blocks is accessed
+  * by an application.
+  */
+ 
+ /* weak attributed supported only with ELF, MINGW is COFF */
+ #ifndef __MINGW32__
+ 
+ void *_Block_copy(const void *) __attribute__((weak));
+ void _Block_release(const void *) __attribute__((weak));
+ 
+ #endif /* __MINGW32__ */
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #ifndef Block_copy
+ #  define Block_copy(x) ((__typeof(x))_Block_copy((const void *)(x)))
+ #endif
+ #ifndef Block_release
+ #  define Block_release(x) _Block_release((const void *)(x))
+ #endif
+ 
+ #endif /* __has_include(<objc/blocks_runtime.h>) */
+ #endif /* __GSBlocks_h_GNUSTEP_BASE_INCLUDE */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSConfig.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,462 ----
+ /* Machine/OS specific configuration information for GNUstep
+ 
+    Please NOTE - GSConfig.h is generated by the configure script from the
+    file GSConfig.h.in - changes/fixes need to be made to the original file,
+    not to the GSConfig.h generated from it.
+ 
+    Copyright (C) 1998-2010 Free Software Foundation, Inc.
+ 
+    Written by:  Richard frith-Macdonald <richard@brainstorm.co.uk>
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+    */
+ 
+ #ifndef	included_GSConfig_h
+ #define	included_GSConfig_h
+ 
+ /* Check the compiler to see if we are building on/for ms-windows.
+  * Whatever the compiler uses, we want a standard setting of _WIN64
+  * to indicate 64bit AND _WIN32 to indicate ms-windows.
+  * These are defined by gcc, clang, and microsoft compilers anyway.
+  */
+ #if     defined(__WIN32__) \
+ 	|| defined(__MS_WIN32__) \
+ 	|| defined(__MINGW32__)
+ #  if	!defined(_WIN32)
+ #    define _WIN32
+ #  endif
+ #endif
+ #if     defined(__WIN64__) \
+ 	|| defined(__MS_WIN64__) \
+ 	|| defined(__MINGW64__)
+ #  if	!defined(__WIN64__)
+ #    define __WIN64__
+ #  endif
+ #  if	!defined(_WIN32)
+ #    define _WIN32
+ #  endif
+ #endif
+ 
+ /* Check to see if this is a MINGW build (all we currently support)
+  */
+ #if	defined(__MINGW32__) || defined(__MINGW64__)
+ #  if	!defined(__MINGW__)
+ #    define __MINGW__
+ #  endif
+ #endif
+ 
+ // Make sure we expose the constants that we use in ObjC++ mode
+ #ifndef __STDC_CONSTANT_MACROS
+ #define __STDC_CONSTANT_MACROS 1
+ #endif
+ #ifndef __STDC_LIMIT_MACROS 
+ #define __STDC_LIMIT_MACROS 1
+ #endif
+ 
+ #if !defined(NeXT_Foundation_LIBRARY)
+ 
+ /* An alternate to GS_FAKE_MAIN which forces the user to call the
+    NSProcessInfo initialization in 'main', GS_FAKE_MAIN must also
+    be undefined. */
+ #if 0
+ #define GS_PASS_ARGUMENTS 0
+ #endif
+ 
+ #define GS_FAKE_MAIN	0
+ #if	GS_FAKE_MAIN
+ 
+ /*
+  * NOTE - if GS_FAKE_MAIN (above) is set to 1, this hack applies - and you
+  * must make sure that this file is included in any file that implements
+  * the 'main()' function and links with the GNUstep base libarary.
+  * You should NOT include this file in a program that does not link with
+  * the base library.
+  * This file is included automatically in NSObject.h and Foundation.h
+  *
+  * The Foundation classe NSProcessInfo need access to the argc, argv,
+  * and env variables of the main() function. The purpose of this (ugly hack)
+  * definition is to give the gstep-base library the opportunity to implement
+  * its own main function with private access to the global vars. The private
+  * main() implementation (in NSProcessInfo.m) will then call the user defined
+  * gnustep_base_user_main() function.
+  *
+  * The original hack was -
+  ** Written by:  Georg Tuparev, EMBL & Academia Naturalis,
+  **              Heidelberg, Germany
+  **              Tuparev@EMBL-Heidelberg.de
+  **
+  **  NOTE! This is very dirty and dangerous trick. I spend several hours
+  ** on thinking and man pages browsing, but couldn't find better solution.
+  ** I know that I will spend 666 years in the Computer Hell for writing
+  ** this hack, and the master devil (Bully Boy) will send me to write
+  ** Windowz software.
+  ** BTW, for writing this hack I got personal congratulations from Dennis
+  ** Ritchie and Bjarne Stroustrup sent me a bunch of flowers and asked me
+  ** to participate in the standardization committee for C-- v.6.0 as
+  ** responsible for the new Tab-Overriding-Operator and Scope-Sensitive-
+  ** Comments ... but this makes my situation even worse ;-)
+  ** - Georg
+  *
+  * On some systems, there are other relatively clean workarounds, if this
+  * applies to the system you are running on, your configuration script
+  * should have set GS_FAKE_MAIN to zero, so that this define hack will
+  * not be used.
+  */
+ 
+ #define main gnustep_base_user_main
+ 
+ #endif	/* GS_FAKE_MAIN */
+ #endif
+ 
+ /*
+  * Definition to specify if your processor stores words with the most
+  * significant byte first (like Motorola and SPARC, unlike Intel and VAX).
+  */
+ #define GS_WORDS_BIGENDIAN	0
+ 
+ /*
+  *	Size definitions for standard types
+  */
+ #define	GS_SIZEOF_SHORT		2
+ #define	GS_SIZEOF_INT		4
+ #define	GS_SIZEOF_LONG		8
+ #define	GS_SIZEOF_LONG_LONG	8
+ #define	GS_SIZEOF_FLOAT		4
+ #define	GS_SIZEOF_DOUBLE	8
+ #define	GS_SIZEOF_VOIDP		8
+ 
+ /*
+  *	Size information to be places in bits 5 and 6 of type encoding bytes
+  *	in archives (bits 0 to 4 are used for basic type info and bit 7 is
+  *	used to mark cross-references to previously encoded objects).
+  */
+ #define	_GSC_S_SHT	_GSC_I16
+ #define	_GSC_S_INT	_GSC_I32
+ #define	_GSC_S_LNG	_GSC_I64
+ #define	_GSC_S_LNG_LNG	_GSC_I64
+ 
+ /*
+  * Type definitions for types with known sizes.
+  */
+ typedef signed char gss8;
+ typedef unsigned char gsu8;
+ typedef signed short gss16;
+ typedef unsigned short gsu16;
+ typedef signed int gss32;
+ typedef unsigned int gsu32;
+ typedef signed long gss64;
+ typedef unsigned long gsu64;
+ typedef struct { gsu8 a[16]; } gss128;
+ typedef struct { gsu8 a[16]; } gsu128;
+ typedef float gsf32;
+ typedef double gsf64;
+ 
+ /*
+  * Integer type with same size as a pointer
+  */
+ typedef	unsigned long gsuaddr;
+ typedef	long gssaddr;
+ typedef	gsuaddr gsaddr;
+ 
+ /*
+  *	Do we have real 64-bit and 128-bit integers or are we just pretending.
+  */
+ #define GS_HAVE_I64	1
+ #define GS_HAVE_I128	0
+ 
+ /*
+  * Ensure some standard types are defined.
+  */
+ #include <inttypes.h>
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+ /*
+  * PTR Limit information replacements for buggy headers
+  */ 
+ #if 0
+ #undef INTPTR_MAX
+ #define INTPTR_MAX 
+ #undef INTPTR_MIN
+ #define INTPTR_MIN 
+ #undef UINTPTR_MAX
+ #define UINTPTR_MAX 
+ #endif
+ 
+ 
+ /*
+  *	Do we have zlib for file handle compression?
+  */
+ #define USE_ZLIB	1
+ 
+ /*
+  *	Do we have the GNU Multiple-precision library for NSDecimal?
+  */
+ //#define USE_GMP	1
+ #define USE_GMP	0
+ 
+ #ifdef	GS_WITH_GC
+ #undef  GS_WITH_GC
+ #endif
+ #define	GS_WITH_GC	0
+ 
+ /*
+  * Define to say if we use NXConstantString or NSConstantString
+  */
+ #define NXConstantString	NSConstantString
+ 
+ 
+ /*
+  * Wide unicode character type.
+  */
+ #ifndef	UTF32Char
+ #define	UTF32Char	uint32_t
+ #endif
+ 
+ /*
+  * Native character type for use in systemcalls etc.
+  */
+ 
+ #if	defined(__MINGW__)
+ #  define	GSNativeChar	uint16_t
+ #else
+ #  define	GSNativeChar	char
+ #endif
+ 
+ /*
+  * Types used to avoid exposing pthread header in NSLock.h
+  * NB. These types should *never* be used except to provide enough space
+  * in a class layout for the type of data actually used by the pthread
+  * implementation of the current platform.
+  */
+ typedef	struct {
+   uint8_t	dummy[48];
+ } gs_cond_t	__attribute__((aligned (8)));
+ typedef	struct {
+   uint8_t	dummy[40];
+ } gs_mutex_t	__attribute__((aligned (8)));
+ 
+ #define	OBJC2RUNTIME 1
+ #define BASE_NATIVE_OBJC_EXCEPTIONS     1
+ #define GS_NONFRAGILE     0
+ #define GS_MIXEDABI     0
+ #define GS_USE_LIBXML 0
+ #define GS_USE_GNUTLS 0
+ #define GS_USE_AVAHI 0
+ #define GS_USE_MDNS 0
+ #define GS_USE_ICU 0
+ #define GS_USE_LIBDISPATCH 0
+ #define GS_USE_LIBDISPATCH_RUNLOOP 0
+ #define GS_HAVE_OBJC_ROOT_CLASS_ATTR 0
+ 
+ #ifndef __has_include
+ #  define __has_include(x) 0
+ #endif
+ #ifndef __has_feature
+ #  define __has_feature(x) 0
+ #endif
+ #ifndef __has_builtin
+ #  define __has_builtin(x) 0
+ #endif
+ 
+ /*
+  * __has_extension has slightly different semantics from __has_feature.
+  * It evaluates to true if the feature is supported by by clang for the
+  * current compilation unit (language and -f switches), regardless of
+  * whether it is part of the language standard or just a (non-standard)
+  * extension.
+  */
+ #ifndef __has_extension
+ #  define __has_extension(x) __has_feature(x)
+ #endif
+ 
+ #if defined(_WIN32)
+ #define BOOL WinBOOL
+ #define __OBJC_BOOL 1
+ #include <w32api.h>
+ #ifndef _WIN32_WINNT
+ #define _WIN32_WINNT Windows2000
+ #endif
+ #if	!defined(WINVER)
+ #define WINVER Windows2000
+ #elif (WINVER < Windows2000)
+ #undef	WINVER
+ #define WINVER Windows2000
+ #endif
+ 
+ #if defined(__WIN64__)
+ #include <winsock2.h>
+ #include <windows.h>
+ #else
+ #include <windows.h>
+ #include <winsock2.h>
+ #endif
+ 
+ #undef __OBJC_BOOL
+ #undef  BOOL
+ #endif
+ 
+ /* Include the blocks runtime header if it's available (It shouldn't matter
+  * that this doesn't work on compilers that don't support __has_include(),
+  * because they also don't support blocks).
+  */
+ #if __has_include(<objc/block_runtime.h>)
+ #  include <objc/block_runtime.h>
+ #endif
+ 
+ #ifndef _WIN32
+ #include <sys/param.h> /* Hack to get rid of warning in GNU libc 2.0.3. */
+ #endif
+ 
+ /* The following group of lines maintained by the gstep-base configure */
+ #define GNUSTEP_BASE_VERSION            1.26.0
+ #define GNUSTEP_BASE_MAJOR_VERSION      1
+ #define GNUSTEP_BASE_MINOR_VERSION      26
+ #define GNUSTEP_BASE_SUBMINOR_VERSION   0
+ #define GNUSTEP_BASE_GCC_VERSION        4.0.0
+ 
+ /* Do not use the following macros!
+  */
+ #define OBJC_DEP(M) \
+   ({ static BOOL beenHere = NO; if (beenHere == NO) {\
+     beenHere = YES; fprintf(stderr, "%s:%d %s", __FILE__, __LINE__, (M));}})
+ 
+ #define OBJC_MALLOC(VAR, TYPE, NUM) \
+    (OBJC_DEP("OBJC_MALLOC is deprecated ... use malloc\n"),(VAR) = (TYPE *) malloc ((unsigned)(NUM)*sizeof(TYPE)))
+ #define OBJC_VALLOC(VAR, TYPE, NUM) \
+    (OBJC_DEP("OBJC_VALLOC is deprecated\n"),(VAR) = (TYPE *) valloc ((unsigned)(NUM)*sizeof(TYPE)))
+ #define OBJC_ATOMIC_MALLOC(VAR, TYPE, NUM) \
+    (OBJC_DEP("OBJC_ATOMIC_MALLOC is deprecated\n"),(VAR) = (TYPE *) malloc ((unsigned)(NUM)*sizeof(TYPE)))
+ #define OBJC_REALLOC(VAR, TYPE, NUM) \
+    (OBJC_DEP("OBJC_REALLOC is deprecated ... use realloc\n"),(VAR) = (TYPE *) realloc ((VAR), (unsigned)(NUM)*sizeof(TYPE)))
+ #define OBJC_CALLOC(VAR, TYPE, NUM) \
+    (OBJC_DEP("OBJC_CALLOC is deprecated ... use calloc\n"),(VAR) = (TYPE *) calloc ((unsigned)(NUM), sizeof(TYPE)))
+ #define OBJC_FREE(PTR) (OBJC_DEP("OBJC_FREE is deprecated ... use free\n"), free (PTR))
+ 
+ #ifndef MAX
+ #define MAX(a,b) \
+        ({__typeof__(a) _MAX_a = (a); __typeof__(b) _MAX_b = (b);  \
+          _MAX_a > _MAX_b ? _MAX_a : _MAX_b; })
+ #endif
+ 
+ #ifndef MIN
+ #define MIN(a,b) \
+        ({__typeof__(a) _MIN_a = (a); __typeof__(b) _MIN_b = (b);  \
+          _MIN_a < _MIN_b ? _MIN_a : _MIN_b; })
+ #endif
+ 
+ #ifndef ABS
+ #define ABS(a) \
+        ({__typeof__(a) _ABS_a = (a); \
+          _ABS_a < 0 ? -_ABS_a : _ABS_a; })
+ #endif
+ 
+ #ifndef STRINGIFY
+ #define STRINGIFY(s) XSTRINGIFY(s)
+ #define XSTRINGIFY(s) #s
+ #endif
+ 
+ #ifndef OBJC_STRINGIFY
+ #define OBJC_STRINGIFY(s) OBJC_XSTRINGIFY(s)
+ #define OBJC_XSTRINGIFY(s) @#s
+ #endif
+ 
+ #ifndef PTR2LONG
+ #define PTR2LONG(P) (((char*)(P))-(char*)0)
+ #endif
+ #ifndef LONG2PTR
+ #define LONG2PTR(L) (((char*)0)+(L))
+ #endif
+ 
+ #if VSPRINTF_RETURNS_LENGTH
+ #define VSPRINTF_LENGTH(VSPF_CALL) (VSPF_CALL)
+ #else
+ #define VSPRINTF_LENGTH(VSPF_CALL) strlen((VSPF_CALL))
+ #endif /* VSPRINTF_RETURNS_LENGTH */
+ 
+ #if VASPRINTF_RETURNS_LENGTH
+ #define VASPRINTF_LENGTH(VASPF_CALL) (VASPF_CALL)
+ #else
+ #define VASPRINTF_LENGTH(VASPF_CALL) strlen((VASPF_CALL))
+ #endif /* VSPRINTF_RETURNS_LENGTH */
+ 
+ /* Evil hack to stop gcc-4.1 complaining about a dealloc method which
+  * does not call the superclass implementation.
+  */
+ #define	GSNOSUPERDEALLOC	if (0) [super dealloc]
+ 
+ #ifndef CF_EXCLUDE_CSTD_HEADERS
+ #include <sys/types.h>
+ #include <stdarg.h>
+ #include <assert.h>
+ #include <ctype.h>
+ #include <errno.h>
+ #include <float.h>
+ #include <limits.h>
+ #include <locale.h>
+ #include <math.h>
+ #include <setjmp.h>
+ #include <signal.h>
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <time.h>
+ #include <stdbool.h>
+ #endif
+ 
+ #if !__has_feature(objc_arc)
+ // NetBSD > 6 defines __weak in cdefs_elf.h
+ #ifdef __NetBSD__
+ #undef __weak
+ #endif
+ #  if !defined(__weak)
+ #    define __weak
+ #  endif
+ #  if !defined(__strong)
+ #    define __strong
+ #  endif
+ #endif
+ 
+ #ifndef __unsafe_unretained
+ #  if !__has_feature(objc_arc)
+ #    define __unsafe_unretained
+ #  endif
+ #endif
+ #ifndef __bridge
+ #  if !__has_feature(objc_arc)
+ #    define __bridge
+ #  endif
+ #endif
+ 
+ #if __has_builtin(__builtin_unreachable)
+ #  define GS_UNREACHABLE() __builtin_unreachable()
+ #else
+ #  define GS_UNREACHABLE() abort()
+ #endif
+ 
+ #endif	/* included_GSConfig_h */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSObjCRuntime.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,631 ----
+ /** Interface to ObjC runtime for GNUStep
+    Copyright (C) 1995, 1997, 2000, 2002, 2003 Free Software Foundation, Inc.
+ 
+    Written by:  Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
+    Date: 1995
+    Written by:  Richard Frith-Macdonald <rfm@gnu.org>
+    Date: 2002
+    
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+    
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+     AutogsdocSource: Additions/GSObjCRuntime.m
+ 
+    */ 
+ 
+ #ifndef __GSObjCRuntime_h_GNUSTEP_BASE_INCLUDE
+ #define __GSObjCRuntime_h_GNUSTEP_BASE_INCLUDE
+ 
+ #import "GSVersionMacros.h"
+ #import "GSConfig.h"
+ 
+ #include <stdio.h>
+ 
+ #if 1 || NeXT_RUNTIME
+  #include <objc/objc.h>
+  #include <objc/objc-class.h>
+  #include <objc/objc-runtime.h>
+  #ifndef _C_ATOM
+   #define _C_ATOM '%'
+  #endif
+  #define _F_CONST    0x01
+  #define _F_IN       0x01
+  #define _F_OUT      0x02
+  #define _F_INOUT    0x03
+  #define _F_BYCOPY   0x04
+  #define _F_ONEWAY   0x08
+  #define _C_CONST    'r'
+  #define _C_IN       'n'
+  #define _C_INOUT    'N'
+  #define _C_OUT      'o'
+  #define _C_BYCOPY   'O'
+  #define _C_ONEWAY   'V'
+ #else				/* GNU Objective C Runtime */
+  #include <objc/objc.h>
+  #if defined (__GNU_LIBOBJC__)
+   #include <objc/runtime.h>
+  #else
+   #include <objc/objc-api.h>
+   #include <objc/encoding.h>
+  #endif
+ #endif
+ 
+ /*
+  * Hack for older compiler versions that don't have all defines
+  * needed in  objc-api.h
+  */
+ #ifndef	_C_LNG_LNG
+ #define	_C_LNG_LNG	'q'
+ #endif
+ #ifndef	_C_ULNG_LNG
+ #define	_C_ULNG_LNG	'Q'
+ #endif
+ 
+ #if	OBJC2RUNTIME
+ /* We have a real ObjC2 runtime.
+  */
+ #include <objc/runtime.h>
+ #else
+ /* We emulate an ObjC2 runtime.
+  */
+ #include <ObjectiveC2/objc/runtime.h>
+ #endif
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+ @class	NSArray;
+ @class	NSDictionary;
+ @class	NSObject;
+ @class	NSString;
+ @class	NSValue;
+ 
+ #ifndef YES
+ #define YES		1
+ #endif
+ #ifndef NO
+ #define NO		0
+ #endif
+ #ifndef nil
+ #define nil		0
+ #endif
+ 
+ #if	!defined(_C_CONST)
+ #define _C_CONST        'r'
+ #endif
+ #if	!defined(_C_IN)
+ #define _C_IN           'n'
+ #endif
+ #if	!defined(_C_INOUT)
+ #define _C_INOUT        'N'
+ #endif
+ #if	!defined(_C_OUT)
+ #define _C_OUT          'o'
+ #endif
+ #if	!defined(_C_BYCOPY)
+ #define _C_BYCOPY       'O'
+ #endif
+ #if	!defined(_C_BYREF)
+ #define _C_BYREF        'R'
+ #endif
+ #if	!defined(_C_ONEWAY)
+ #define _C_ONEWAY       'V'
+ #endif
+ #if	!defined(_C_GCINVISIBLE)
+ #define _C_GCINVISIBLE  '!'
+ #endif
+ 
+ /*
+  * Functions for accessing instance variables directly -
+  * We can copy an ivar into arbitrary data,
+  * Get the type encoding for a named ivar,
+  * and copy a value into an ivar.
+  */
+ GS_EXPORT BOOL
+ GSObjCFindVariable(id obj, const char *name,
+ 		   const char **type, unsigned int *size, int *offset);
+ 
+ GS_EXPORT void
+ GSObjCGetVariable(id obj, int offset, unsigned int size, void *data);
+ 
+ GS_EXPORT void
+ GSObjCSetVariable(id obj, int offset, unsigned int size, const void *data);
+ 
+ GS_EXPORT NSArray *
+ GSObjCMethodNames(id obj, BOOL recurse);
+ 
+ GS_EXPORT NSArray *
+ GSObjCVariableNames(id obj, BOOL recurse);
+ 
+ /**
+  * <p>A Behavior can be seen as a "Protocol with an implementation" or a
+  * "Class without any instance variables".  A key feature of behaviors
+  * is that they give a degree of multiple inheritance.
+  * </p>
+  * <p>Behavior methods, when added to a class, override the class's
+  * superclass methods, but not the class's methods.
+  * </p>
+  * <p>Whan a behavior class is added to a receiver class, not only are the
+  * methods defined in the behavior class added, but the methods from the
+  * behavior's class hierarchy are also added (unless already present).
+  * </p>
+  * <p>It's not the case that a class adding behaviors from another class
+  * must have "no instance vars".  The receiver class just has to have the
+  * same layout as the behavior class (optionally with some additional
+  * ivars after those of the behavior class).
+  * </p>
+  * <p>This function provides Behaviors without adding any new syntax to
+  * the Objective C language.  Simply define a class with the methods you
+  * want to add, then call this function with that class as the behavior
+  * argument.
+  * </p>
+  * <p>This function should be called in the +initialize method of the receiver.
+  * </p>
+  * <p>If you add several behaviors to a class, be aware that the order of
+  * the additions is significant.
+  * </p>
+  */
+ GS_EXPORT void
+ GSObjCAddClassBehavior(Class receiver, Class behavior);
+ 
+ /**
+  * <p>An Override can be seen as a "category implemented as a separate class
+  * and manually added to the receiver class under program control, rather
+  * than automatically added by the compiler/runtime.
+  * </p>
+  * <p>Override methods, when added to a receiver class, replace the class's
+  * class's methods of the same name (or are added if the class did not define
+  * methods with that name).
+  * </p>
+  * <p>It's not the case that a class adding overrides from another class
+  * must have "no instance vars".  The receiver class just has to have the
+  * same layout as the override class (optionally with some additional
+  * ivars after those of the override class).
+  * </p>
+  * <p>This function provides overrides without adding any new syntax to
+  * the Objective C language.  Simply define a class with the methods you
+  * want to add, then call this function with that class as the override
+  * argument.
+  * </p>
+  * <p>This function should usually be called in the +initialize method
+  * of the receiver.
+  * </p>
+  * <p>If you add several overrides to a class, be aware that the order of
+  * the additions is significant.
+  * </p>
+  */
+ GS_EXPORT void
+ GSObjCAddClassOverride(Class receiver, Class override);
+ 
+ /** Turn on (YES), off (NO) or test (-1) behavior debugging.
+  */
+ GS_EXPORT BOOL GSObjCBehaviorDebug(int setget);
+ 
+ GS_EXPORT NSValue *
+ GSObjCMakeClass(NSString *name, NSString *superName, NSDictionary *iVars);
+ 
+ GS_EXPORT void
+ GSObjCAddClasses(NSArray *classes);
+ 
+ /**
+  * Given a NULL terminated list of methods, add them to the class.<br />
+  * If the method already exists in a superclass, the new version overrides
+  * that one, but if the method already exists in the class itsself, the
+  * new one is quietly ignored (replace==NO) or replaced with the new
+  * version (if replace==YES).<br />
+  * To add class methods, cls should be the metaclass of the class to
+  * which the methods are being added.
+  */
+ GS_EXPORT void
+ GSObjCAddMethods(Class cls, Method *list, BOOL replace);
+ 
+ /*
+  * Functions for key-value encoding ... they access values in an object
+  * either by selector or directly, but do so using NSNumber for the
+  * scalar types of data.
+  */
+ GS_EXPORT id
+ GSObjCGetVal(NSObject *self, const char *key, SEL sel,
+   const char *type, unsigned size, int offset);
+ 
+ GS_EXPORT void
+ GSObjCSetVal(NSObject *self, const char *key, id val, SEL sel,
+   const char *type, unsigned size, int offset);
+ 
+ /*
+  * This section includes runtime functions
+  * to query and manipulate the ObjC runtime structures.
+  * These functions take care to not use ObjC code so
+  * that they can safely be used in +(void)load implementations
+  * where applicable.
+  */
+ 
+ /**
+  * Deprecated ... use objc_getClassList()
+  */
+ GS_EXPORT unsigned int
+ GSClassList(Class *buffer, unsigned int max, BOOL clearCache);
+ 
+ /**
+  * GSObjCClass() is deprecated ... use object_getClass()
+  */
+ GS_EXPORT Class GSObjCClass(id obj);
+ 
+ /**
+  * GSObjCSuper() is deprecated ... use class_getSuperclass()
+  */
+ GS_EXPORT Class GSObjCSuper(Class cls);
+ 
+ /**
+  * GSObjCIsInstance() is deprecated ... use object_getClass()
+  * in conjunction with class_isMetaClass()
+  */
+ GS_EXPORT BOOL GSObjCIsInstance(id obj);
+ 
+ /**
+  * GSObjCIsClass() is deprecated ... use object_getClass()
+  * in conjunction with class_isMetaClass()
+  */
+ GS_EXPORT BOOL GSObjCIsClass(Class cls);
+ 
+ /**
+  * Test to see if class inherits from another class
+  * The argument to this function must NOT be nil.
+  */
+ GS_EXPORT BOOL GSObjCIsKindOf(Class cls, Class other);
+ 
+ /**
+  * GSClassFromName() is deprecated ... use objc_lookUpClass()
+  */
+ GS_EXPORT Class GSClassFromName(const char *name);
+ 
+ /**
+  * GSNameFromClass() is deprecated ... use class_getName()
+  */
+ GS_EXPORT const char *GSNameFromClass(Class cls);
+ 
+ /**
+  * GSClassNameFromObject() is deprecated ... use object_getClass()
+  * in conjunction with class_getName()
+  */
+ GS_EXPORT const char *GSClassNameFromObject(id obj);
+ 
+ /**
+  * GSNameFromSelector() is deprecated ... use sel_getName()
+  */
+ GS_EXPORT const char *GSNameFromSelector(SEL sel);
+ 
+ /**
+  * GSSelectorFromName() is deprecated ... use sel_getUid()
+  */
+ GS_EXPORT SEL
+ GSSelectorFromName(const char *name);
+ 
+ /**
+  * Return the selector for the specified name and types.<br />
+  * Returns a nul pointer if the name is nul.<br />
+  * Creates a new selector if necessary.<br />
+  * Code must NOT rely on this providing a selector with type information.
+  */
+ GS_EXPORT SEL
+ GSSelectorFromNameAndTypes(const char *name, const char *types);
+ 
+ /**
+  * Return the type information from the specified selector.<br />
+  * May return a nul pointer if the selector was a nul pointer or if it
+  * was not typed (or if the runtime does not support typed selectors).<br />
+  * Code must NOT rely on this providing any type information.
+  */
+ GS_EXPORT const char *
+ GSTypesFromSelector(SEL sel);
+ 
+ /**
+  * Compare only the type information ignoring qualifiers, the frame layout
+  * and register markers.  Unlike sel_types_match, this function also
+  * handles comparisons of types with and without any layout information.
+  */
+ GS_EXPORT BOOL
+ GSSelectorTypesMatch(const char *types1, const char *types2);
+ 
+ /** Takes full type information and skips forward to the actual type
+  * as specified in the _C_... constants.
+  */
+ GS_EXPORT const char *
+ GSSkipTypeQualifierAndLayoutInfo(const char *types);
+ 
+ /**
+  * Returns a protocol object with the corresponding name.
+  * This function searches the registered classes for any protocol
+  * with the supplied name.  If one is found, it is cached in
+  * for future requests.  If efficiency is a factor then use
+  * GSRegisterProtocol() to insert a protocol explicitly into the cache
+  * used by this function.  If no protocol is found this function returns
+  * nil.
+  */
+ GS_EXPORT Protocol *
+ GSProtocolFromName(const char *name);
+ 
+ /**
+  * Registers proto in the cache used by GSProtocolFromName().
+  */
+ GS_EXPORT void
+ GSRegisterProtocol(Protocol *proto);
+ 
+ /**
+  * A variant of protocol_getMethodDescription which recursively searches
+  * parent protocols if the requested selector isn't found in the given
+  * protocol.
+  *
+  * Returns a {NULL, NULL} structure if the requested selector couldn't be
+  * found.
+  */
+ GS_EXPORT struct objc_method_description
+ GSProtocolGetMethodDescriptionRecursive(Protocol *aProtocol, SEL aSel, BOOL isRequired, BOOL isInstance);
+ 
+ /*
+  * Unfortunately the definition of the symbols
+  * 'Method(_t)', 'MethodList(_t)'  and 'IVar(_t)'
+  * are incompatible between the GNU and NeXT/Apple runtimes.
+  * We introduce GSMethod, GSMethodList and GSIVar to allow portability.
+  */
+ typedef Method	GSMethod;
+ typedef Ivar	GSIVar;
+ 
+ /**
+  * Returns the pointer to the method structure
+  * for the selector in the specified class.
+  * Depending on searchInstanceMethods, this function searches
+  * either instance or class methods.
+  * Depending on searchSuperClassesm this function searches
+  * either the specified class only or also its superclasses.<br/>
+  * To obtain the implementation pointer IMP use returnValue->method_imp
+  * which should be safe across all runtimes.<br/>
+  * It should be safe to use this function in +load implementations.<br/>
+  * This function should currently (June 2004) be considered WIP.
+  * Please follow potential changes (Name, parameters, ...) closely until
+  * it stabilizes.
+  */
+ GS_EXPORT GSMethod
+ GSGetMethod(Class cls, SEL sel,
+ 	    BOOL searchInstanceMethods,
+ 	    BOOL searchSuperClasses);
+ 
+ /**
+  * Deprecated .. does nothing.
+  */
+ GS_EXPORT void
+ GSFlushMethodCacheForClass (Class cls);
+ 
+ /**
+  * Deprecated .. use class_getInstanceVariable()
+  */
+ GS_EXPORT GSIVar
+ GSCGetInstanceVariableDefinition(Class cls, const char *name);
+ 
+ /**
+  * Deprecated .. use class_getInstanceVariable()
+  */
+ GS_EXPORT GSIVar
+ GSObjCGetInstanceVariableDefinition(Class cls, NSString *name);
+ 
+ /**
+  * GSObjCVersion() is deprecated ... use class_getVersion()
+  */
+ GS_EXPORT int GSObjCVersion(Class cls);
+ 
+ /**
+  * Quickly return autoreleased data storage area.
+  */
+ GS_EXPORT void *
+ GSAutoreleasedBuffer(unsigned size);
+ 
+ /**
+  * <p>Prints a message to fptr using the format string provided and any
+  * additional arguments.  The format string is interpreted as by
+  * the NSString formatted initialisers, and understands the '%@' syntax
+  * for printing an object.
+  * </p>
+  * <p>The data is written to the file pointer in the default CString
+  * encoding if possible, as a UTF8 string otherwise.
+  * </p>
+  * <p>This function is recommended for printing general log messages.
+  * For debug messages use NSDebugLog() and friends.  For error logging
+  * use NSLog(), and for warnings you might consider NSWarnLog().
+  * </p>
+  */
+ GS_EXPORT BOOL
+ GSPrintf (FILE *fptr, NSString *format, ...);
+ 
+ 
+ 
+ GS_EXPORT NSArray *
+ GSObjCAllSubclassesOfClass(Class cls);
+ 
+ GS_EXPORT NSArray *
+ GSObjCDirectSubclassesOfClass(Class cls);
+ 
+ /** Function to change the class of the specified instance to newClass.
+  * This handles memory debugging issues in GNUstep-base and also
+  * deals with class finalisation issues in a garbage collecting
+  * environment, so you should use this function rather than attempting
+  * to swizzle class pointers directly.
+  */
+ GS_EXPORT void
+ GSClassSwizzle(id instance, Class newClass);
+ 
+ #if !defined(GS_GNUSTEP_V) || (GS_GNUSTEP_V >= GS_API_ANY && GS_GNUSTEP_V < 011500)
+ //GS_API_VERSION(GS_API_ANY,011500)
+ 
+ GS_EXPORT const char *
+ GSLastErrorStr(long error_id) GS_DEPRECATED_FUNC;
+ 
+ #endif
+ 
+ 
+ 
+ #ifndef	GS_MAX_OBJECTS_FROM_STACK
+ /**
+  * The number of objects to try to get from varargs into an array on
+  * the stack ... if there are more than this, use the heap.
+  * NB. This MUST be a multiple of 2
+  */
+ #define	GS_MAX_OBJECTS_FROM_STACK	128
+ #endif
+ 
+ /**
+  * <p>This is a macro designed to minimise the use of memory allocation and
+  * deallocation when you need to work with a vararg list of objects.<br />
+  * The objects are unpacked from the vararg list into two 'C' arrays and
+  * then a code fragment you specify is able to make use of them before
+  * that 'C' array is destroyed. 
+  * </p>
+  * <p>The firstObject argument is the name of the formal parameter in your
+  * method or function which precedes the ', ...' denoting variable args.
+  * </p>
+  * <p>The code argument is a piece of objective-c code to be executed to
+  * make use of the objects stored in the 'C' arrays.<br />
+  * When this code is called the unsigned integer '__count' will contain the
+  * number of objects unpacked, the pointer '__objects' will point to
+  * the first object in each pair, and the pointer '__pairs' will point
+  * to an array containing the second halves of the pairs of objects
+  * whose first halves are in '__objects'.<br />
+  * This lets you pack a list of the form 'key, value, key, value, ...'
+  * into an array of keys and an array of values.
+  * </p>
+  */
+ #define GS_USEIDPAIRLIST(firstObject, code...) ({\
+   va_list	__ap; \
+   unsigned int	__max = GS_MAX_OBJECTS_FROM_STACK; \
+   unsigned int	__count = 0; \
+   id		__buf[__max]; \
+   id		*__objects = __buf; \
+   id		*__pairs = &__objects[__max/2]; \
+   id		__obj = firstObject; \
+   va_start(__ap, firstObject); \
+   while (__obj != nil && __count < __max) \
+     { \
+       if ((__count % 2) == 0) \
+ 	{ \
+ 	  __objects[__count/2] = __obj; \
+ 	} \
+       else \
+ 	{ \
+ 	  __pairs[__count/2] = __obj; \
+ 	} \
+       __obj = va_arg(__ap, id); \
+       if (++__count == __max) \
+ 	{ \
+ 	  while (__obj != nil) \
+ 	    { \
+ 	      __count++; \
+ 	      __obj = va_arg(__ap, id); \
+ 	    } \
+ 	} \
+     } \
+   if ((__count % 2) == 1) \
+     { \
+       __pairs[__count/2] = nil; \
+       __count++; \
+     } \
+   va_end(__ap); \
+   if (__count > __max) \
+     { \
+       unsigned int	__tmp; \
+       __objects = (id*)malloc(__count*sizeof(id)); \
+       __pairs = &__objects[__count/2]; \
+       __objects[0] = firstObject; \
+       va_start(__ap, firstObject); \
+       for (__tmp = 1; __tmp < __count; __tmp++) \
+ 	{ \
+ 	  if ((__tmp % 2) == 0) \
+ 	    { \
+ 	      __objects[__tmp/2] = va_arg(__ap, id); \
+ 	    } \
+ 	  else \
+ 	    { \
+ 	      __pairs[__tmp/2] = va_arg(__ap, id); \
+ 	    } \
+ 	} \
+       va_end(__ap); \
+     } \
+   code; \
+   if (__objects != __buf) free(__objects); \
+ })
+ 
+ /**
+  * <p>This is a macro designed to minimise the use of memory allocation and
+  * deallocation when you need to work with a vararg list of objects.<br />
+  * The objects are unpacked from the vararg list into a 'C' array and
+  * then a code fragment you specify is able to make use of them before
+  * that 'C' array is destroyed. 
+  * </p>
+  * <p>The firstObject argument is the name of the formal parameter in your
+  * method or function which precedes the ', ...' denoting variable args.
+  * </p>
+  * <p>The code argument is a piece of objective-c code to be executed to
+  * make use of the objects stored in the 'C' array.<br />
+  * When this code is called the unsigned integer '__count' will contain the
+  * number of objects unpacked, and the pointer '__objects' will point to
+  * the unpacked objects, ie. firstObject followed by the vararg arguments
+  * up to (but not including) the first nil.
+  * </p>
+  */
+ #define GS_USEIDLIST(firstObject, code...) ({\
+   va_list	__ap; \
+   unsigned int	__max = GS_MAX_OBJECTS_FROM_STACK; \
+   unsigned int	__count = 0; \
+   id		__buf[__max]; \
+   id		*__objects = __buf; \
+   id		__obj = firstObject; \
+   va_start(__ap, firstObject); \
+   while (__obj != nil && __count < __max) \
+     { \
+       __objects[__count] = __obj; \
+       __obj = va_arg(__ap, id); \
+       if (++__count == __max) \
+ 	{ \
+ 	  while (__obj != nil) \
+ 	    { \
+ 	      __count++; \
+ 	      __obj = va_arg(__ap, id); \
+ 	    } \
+ 	} \
+     } \
+   va_end(__ap); \
+   if (__count > __max) \
+     { \
+       unsigned int	__tmp; \
+       __objects = (id*)NSZoneMalloc(NSDefaultMallocZone(),__count*sizeof(id)); \
+       va_start(__ap, firstObject); \
+       __objects[0] = firstObject; \
+       for (__tmp = 1; __tmp < __count; __tmp++) \
+ 	{ \
+ 	  __objects[__tmp] = va_arg(__ap, id); \
+ 	} \
+       va_end(__ap); \
+     } \
+   code; \
+   if (__objects != __buf) NSZoneFree (NSDefaultMallocZone(),__objects); \
+ })
+ 
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+ 
+ #endif /* __GSObjCRuntime_h_GNUSTEP_BASE_INCLUDE */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/GSVersionMacros.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,460 ----
+ /* GSVersionMacros.h - macros for managing API versioning and visibility
+    Copyright (C) 2006-2014 Free Software Foundation, Inc.
+ 
+    Written by: Richard Frith-Macdonald <rfm@gnu.org>
+    Date: Oct, October 2006
+ 
+    This file is part of GNUstep.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02110-1301, USA.
+ */
+ 
+ #ifndef __GNUSTEP_GSVERSIONMACROS_H_INCLUDED_
+ #define __GNUSTEP_GSVERSIONMACROS_H_INCLUDED_
+ 
+ /* By default we defined NO_GNUSTEP to 0 so that we will include extensions.
+  */
+ #if	!defined(NO_GNUSTEP)
+ #  define	NO_GNUSTEP	0
+ #endif
+ 
+ /* Check consistency of definitions for system compatibility.
+  */
+ #if	defined(STRICT_OPENSTEP)
+ #  define	GS_OPENSTEP_V	 10000
+ #  undef	NO_GNUSTEP
+ #  define	NO_GNUSTEP	1
+ #elif	defined(STRICT_MACOS_X)
+ #  define	GS_OPENSTEP_V	100600
+ #  undef	NO_GNUSTEP
+ #  define	NO_GNUSTEP	1
+ #endif
+ 
+ /* Define the GS_OSX_ADJUST() macro to adjust OSX style version macros
+  * to GNUstep style version macros.
+  */
+ #define	GS_OSX_ADJUST(V) ((V) >= 10000 ? (V) : ((V)/100*10000 + (V)%100*10))
+ 
+ /* Define OSX compatibility version macros if necessary.
+  */
+ #if     !defined(MAC_OS_X_VERSION_10_0)
+ #define	MAC_OS_X_VERSION_10_0	1000
+ #define	MAC_OS_X_VERSION_10_1	1010
+ #define	MAC_OS_X_VERSION_10_2	1020
+ #define	MAC_OS_X_VERSION_10_3	1030
+ #define	MAC_OS_X_VERSION_10_4	1040
+ #define	MAC_OS_X_VERSION_10_5	1050
+ #define	MAC_OS_X_VERSION_10_6	1060
+ #define	MAC_OS_X_VERSION_10_7	1070
+ #define	MAC_OS_X_VERSION_10_8	1080
+ #define	MAC_OS_X_VERSION_10_9	1090
+ #define MAC_OS_X_VERSION_10_10	1100
+ #define MAC_OS_X_VERSION_10_11	1110
+ #define MAC_OS_X_VERSION_10_12	1120
+ #define MAC_OS_X_VERSION_10_13	1130
+ #define MAC_OS_X_VERSION_10_14	1140
+ #endif	/* MAC_OS_X_VERSION_10_0 */
+ 
+ /* Allow MAC_OS_X_VERSION_MAX_ALLOWED to be used in place of GS_OPENSTEP_V
+  * if GS_OPENSTEP_V is not defined.
+  */
+ #ifndef	GS_OPENSTEP_V
+ #ifdef	MAC_OS_X_VERSION_MAX_ALLOWED
+ #define	GS_OPENSTEP_V	GS_OSX_ADJUST(MAC_OS_X_VERSION_MAX_ALLOWED)
+ #endif	/* MAC_OS_X_VERSION_MAX_ALLOWED */
+ #endif	/* GS_OPENSTEP_V */
+ 
+ /*
+  * NB. The version values below must be integers ... by convention these are
+  * made up of two digits each for major, minor and subminor version numbers
+  * (ie each is in the range 00 to 99 though a leading zero in the major
+  * number is not permitted).
+  * So for a MacOS-X 10.3.9 release the version number would be 100309
+  *
+  * You may define GS_GNUSTEP_V or GS_OPENSTEP_V to ensure that your
+  * program only 'sees' the specified varsion of the API.
+  */
+ 
+ /**
+  * <p>Macro to check a defined GNUstep version number (GS_GNUSTEP_V) against
+  * the supplied arguments.  Returns true if no GNUstep version is specified,
+  * or if ADD &lt;= version &lt; REM, where ADD is the version
+  * number at which a feature guarded by the macro was introduced and
+  * REM is the version number at which it was removed.
+  * </p>
+  * <p>The version number arguments are six digit integers where the first
+  * two digits are the major version number, the second two are the minor
+  * version number and the last two are the subminor number (all left padded
+  * with a zero where necessary).  However, for convenience you can also
+  * use the predefined constants ...
+  * <ref type="macro" id="GS_API_NONE">GS_API_NONE</ref>,
+  * <ref type="macro" id="GS_API_LATEST">GS_API_LATEST</ref>,
+  * </p>
+  * <p>Also see <ref type="macro" id="OS_API_VERSION">OS_API_VERSION</ref>
+  * </p>
+  * <p>NB. If you are changing the API (eg adding a new feature) you need
+  * to control the visibility io the new header file code using<br />
+  * <code>#if GS_API_VERSION(ADD,GS_API_LATEST)</code><br />
+  * where <code>ADD</code> is the version number of the next minor
+  * release after the most recent one.<br />
+  * As a general principle you should <em>not</em> change the API with
+  * changing subminor version numbers ... as that tends to confuse
+  * people (though Apple has sometimes done it).
+  * </p>
+  */
+ #define	GS_API_VERSION(ADD,REM) \
+   (!defined(GS_GNUSTEP_V) || (GS_GNUSTEP_V >= ADD && GS_GNUSTEP_V < REM))
+ 
+ /**
+  * <p>Macro to check a defined OpenStep/OPENSTEP/MacOS-X version against the
+  * supplied arguments.  Returns true if no version is specified, or if
+  * ADD &lt;= version &lt; REM, where ADD is the version
+  * number at which a feature guarded by the macro was introduced and
+  * REM is the version number at which it was removed.
+  * </p>
+  * <p>The version number arguments are six digit integers where the first
+  * two digits are the major version number, the second two are the minor
+  * version number and the last two are the subminor number (all left padded
+  * with a zero where necessary).  However, for convenience you can also
+  * use any of several predefined constants ...
+  * <ref type="macro" id="GS_API_NONE">GS_API_NONE</ref>,
+  * <ref type="macro" id="GS_API_LATEST">GS_API_LATEST</ref>,
+  * <ref type="macro" id="GS_API_OSSPEC">GS_API_OSSPEC</ref>,
+  * <ref type="macro" id="GS_API_OPENSTEP">GS_API_OPENSTEP</ref>,
+  * <ref type="macro" id="GS_API_MACOSX">GS_API_MACOSX</ref>
+  * </p>
+  * <p>Also see <ref type="macro" id="GS_API_VERSION">GS_API_VERSION</ref>
+  * </p>
+  * <p>For OSX compatibility, this macro also supports the use of Apple's
+  * symbolic constants for version numbering.  Their contants are currently
+  * four digit values (two digits for the major version, one for the minor,
+  * and one for the subminor). 
+  * </p>
+  * <p>The Apple compatibility version macros are currently:
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_0">MAC_OS_X_VERSION_10_0</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_1">MAC_OS_X_VERSION_10_1</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_2">MAC_OS_X_VERSION_10_2</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_3">MAC_OS_X_VERSION_10_3</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_4">MAC_OS_X_VERSION_10_4</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_5">MAC_OS_X_VERSION_10_5</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_6">MAC_OS_X_VERSION_10_6</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_7">MAC_OS_X_VERSION_10_7</ref>,
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_8">MAC_OS_X_VERSION_10_8</ref>
+  * <ref type="macro" id="MAC_OS_X_VERSION_10_9">MAC_OS_X_VERSION_10_9</ref>
+  * </p>
+  */
+ #define	OS_API_VERSION(ADD,REM) \
+   (!defined(GS_OPENSTEP_V) \
+   || (GS_OPENSTEP_V>=GS_OSX_ADJUST(ADD) && GS_OPENSTEP_V<GS_OSX_ADJUST(REM)))
+ 
+ /**
+  * A constant which is the lowest possible version number (0) so that
+  * when used as the removal version (second argument of the GS_API_VERSION
+  * or OS_API_VERSION macro) represents a feature which is not present in
+  * any version.<br />
+  * eg.<br />
+  * #if <ref type="macro" id="OS_API_VERSION">OS_API_VERSION</ref>
+  * (GS_API_NONE, GS_API_NONE)<br />
+  * denotes  code not present in OpenStep/OPENSTEP/MacOS-X
+  */
+ #define	GS_API_NONE	     0
+ 
+ /**
+  * A constant to represent a feature which is still present in the latest
+  * version.  This is the highest possible version number.<br />
+  * eg.<br />
+  * #if <ref type="macro" id="OS_API_VERSION">OS_API_VERSION</ref>
+  * (GS_API_MACOSX, GS_API_LATEST)<br />
+  * denotes code present from the initial MacOS-X version onwards.
+  */
+ #define	GS_API_LATEST	999999
+ 
+ /**
+  * The version number of the initial OpenStep specification.<br />
+  * eg.<br />
+  * #if <ref type="macro" id="OS_API_VERSION">OS_API_VERSION</ref>
+  * (GS_API_OSSPEC, GS_API_LATEST)<br />
+  * denotes code present from the OpenStep specification onwards.
+  */
+ #define	GS_API_OSSPEC	 10000
+ 
+ /**
+  * The version number of the first OPENSTEP implementation.<br />
+  * eg.<br />
+  * #if <ref type="macro" id="OS_API_VERSION">OS_API_VERSION</ref>
+  * (GS_API_OPENSTEP, GS_API_LATEST)<br />
+  * denotes code present from the initial OPENSTEP version onwards.
+  */
+ #define	GS_API_OPENSTEP	 40000
+ 
+ /**
+  * The version number of the first MacOS-X implementation.<br />
+  * eg.<br />
+  * #if <ref type="macro" id="OS_API_VERSION">OS_API_VERSION</ref>
+  * (GS_API_MACOSX, GS_API_LATEST)<br />
+  * denotes code present from the initial MacOS-X version onwards.
+  */
+ #define	GS_API_MACOSX	100000
+ 
+ /* Allow OSX code comparing MAC_OS_X_VERSION_MAX_ALLOWED with a specific
+  * version to see if that version is allowed, to always have it allowed
+  * on GNUstep.
+  */
+ #ifndef	MAC_OS_X_VERSION_MAX_ALLOWED
+ #define	MAC_OS_X_VERSION_MAX_ALLOWED    GS_API_LATEST
+ #endif  /* MAC_OS_X_VERSION_MAX_ALLOWED */
+ 
+ 
+ #if	defined(GNUSTEP_BASE_INTERNAL)
+ #include "GNUstepBase/GSConfig.h"
+ #else
+ #include "GSConfig.h"
+ #endif
+ 
+ 
+ #if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__clang__)
+ #  define GS_GCC_MINREQ(maj, min) \
+   ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+ #else
+ #  define GS_GCC_MINREQ(maj, min) 0
+ #endif
+ 
+ #if defined(__clang__)
+ #  define GS_CLANG_MINREQ(maj, min) \
+   ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
+ #else
+ #  define GS_CLANG_MINREQ(maj, min) 0
+ #endif
+ 
+ /* Attribute definitions for attributes which may or may not be supported
+  * depending on the compiler being used.
+  * NB we currently expect gcc to be version 4 or later.
+  *
+  * The definition should be of the form GS_XXX_CONTEXT where XXX is the
+  * name of the attribute and CONTEXT is one of FUNC, METH, or IVAR
+  * depending on where the attribute can be applied.
+  */
+ 
+ #if defined(__clang__) || GS_GCC_MINREQ(3,1)
+ #  define GS_DEPRECATED_FUNC __attribute__ ((deprecated))
+ #else
+ #  define GS_DEPRECATED_FUNC
+ #endif
+ 
+ #define GS_UNUSED_ARG __attribute__((unused))
+ 
+ #define GS_UNUSED_FUNC __attribute__((unused))
+ 
+ // FIXME ... what version of gcc?
+ #if __clang__
+ #  define GS_UNUSED_IVAR __attribute__((unused))
+ #else
+ #  define GS_UNUSED_IVAR 
+ #endif
+ 
+ 
+ 
+ #ifndef __has_feature
+ #define __has_feature(x) 0
+ #endif
+ 
+ /* The following is for deciding whether private instance variables
+  * should be visible ... if we are building with a compiler which
+  * does not define __has_feature then we know we don't have non-fragile
+  * ivar support.
+  * In the header we bracket instance variable declarations in a
+  * '#if	GS_EXPOSE(classname) ... #endif' sequence, so that the variables
+  * will not be visible to code which uses the library.
+  * In the source file we define EXPOSE_classname_IVARS to be 1
+  * before including the header, so that the ivars are always available
+  * in the class source itsself
+  */
+ 
+ #if	GS_MIXEDABI
+ #  undef	GS_NONFRAGILE
+ #  define	GS_NONFRAGILE	0	/* Mixed is treated as fragile */
+ #else
+ #  if (__has_feature(objc_nonfragile_abi))
+ #    if	!GS_NONFRAGILE
+ #      if	defined(GNUSTEP_BASE_INTERNAL)
+ #        error "You are building gnustep-base using the objc-nonfragile-abi but your gnustep-base was not configured to use it."
+ #      endif
+ #    endif
+ #  else
+ #    if	GS_NONFRAGILE
+ #      error "Your gnustep-base was configured for the objc-nonfragile-abi but you are not using it now."
+ #    endif
+ #  endif
+ #endif
+ 
+ #define	GS_EXPOSE(X)	(!GS_NONFRAGILE || defined(EXPOSE_##X##_IVARS))
+ 
+ /* Static analyser macros: Provide annotations to help the analyser */
+ #ifdef __clang__
+ #  define GS_NORETURN_METHOD __attribute__((__noreturn__))
+ #else
+ #  define GS_NORETURN_METHOD
+ #endif
+ 
+ #ifndef NS_RETURNS_RETAINED
+ #  if __has_feature(attribute_ns_returns_retained)
+ #    define NS_RETURNS_RETAINED __attribute__((ns_returns_retained))
+ #  else
+ #    define NS_RETURNS_RETAINED
+ #  endif
+ #endif
+ 
+ #ifndef NS_RETURNS_NOT_RETAINED
+ #  if __has_feature(attribute_ns_returns_not_retained)
+ #    define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
+ #  else
+ #    define NS_RETURNS_NOT_RETAINED
+ #  endif
+ #endif
+ 
+ #ifndef NS_CONSUMED
+ #  if __has_feature(attribute_ns_consumed)
+ #    define NS_CONSUMED __attribute__((ns_consumed))
+ #  else
+ #    define NS_CONSUMED
+ #  endif
+ #endif
+ 
+ 
+ #ifndef NS_CONSUMES_SELF
+ #  if __has_feature(attribute_ns_consumes_self)
+ #    define NS_CONSUMES_SELF __attribute__((ns_consumes_self))
+ #  else
+ #    define NS_CONSUMES_SELF
+ #  endif
+ #endif
+ 
+ #if defined(__clang__) && defined(__OBJC__)
+ static inline void gs_consumed(id NS_CONSUMED o) GS_UNUSED_FUNC;
+ static inline void gs_consumed(id NS_CONSUMED GS_UNUSED_ARG o) { return; }
+ #define	GS_CONSUMED(O)	gs_consumed(O);
+ #else
+ #define	GS_CONSUMED(O)
+ #endif
+ 
+ /* Include the appropriate header for ObjC2 blocks support if it is in use.
+  *
+  * FIXME: "OBJC2RUNTIME" is set to "1" if the runtime supports the ObjC2
+  * runtime API, which is unrelated to whether the compiler has blocks
+  * support or not.
+  */
+ #if __has_feature(blocks)
+ #  if	OBJC2RUNTIME
+ #    if defined(__APPLE__)
+ #      include <Block.h>
+ #    else
+ #      include <objc/blocks_runtime.h>
+ #    endif
+ #  else
+ #    include <ObjectiveC2/blocks_runtime.h>
+ #  endif
+ #endif
+ 
+ /* Attribute definition for root classes, annotates the interface declaration
+  * of the class.
+  */
+ #ifndef GS_ROOT_CLASS
+ #  if GS_HAVE_OBJC_ROOT_CLASS_ATTR || __has_feature(attribute_objc_root_class)
+ #    define GS_ROOT_CLASS __attribute__((objc_root_class))
+ #  else
+ #    define GS_ROOT_CLASS
+ #  endif
+ #endif
+ 
+ 
+ 
+ #if	defined(GNUSTEP_WITH_DLL)
+ 
+ #if BUILD_libgnustep_base_DLL
+ #
+ # if defined(__MINGW__)
+   /* On Mingw, the compiler will export all symbols automatically, so
+    * __declspec(dllexport) is not needed.
+    */
+ #  define GS_EXPORT  extern
+ #  define GS_DECLARE
+ # else
+ #  define GS_EXPORT  __declspec(dllexport)
+ #  define GS_DECLARE __declspec(dllexport)
+ # endif
+ #else
+ #  define GS_EXPORT  extern __declspec(dllimport)
+ #  define GS_DECLARE __declspec(dllimport)
+ #endif
+ 
+ #else /* GNUSTEP_WITH[OUT]_DLL */
+ 
+ #  define GS_EXPORT extern
+ #  define GS_DECLARE
+ 
+ #endif
+ 
+ 
+ /* Attribute macros compatible with Apple.
+  */
+ 
+ #ifndef NS_FORMAT_ARGUMENT
+ #if defined(__clang__) || GS_GCC_MINREQ(4,2)
+ #  define NS_FORMAT_ARGUMENT(A) __attribute__((format_arg(A)))
+ #else
+ #  define NS_FORMAT_ARGUMENT(F,A) 
+ #endif
+ #endif
+ 
+ // FIXME ... what version of gcc?
+ #ifndef NS_FORMAT_FUNCTION
+ #if __clang__
+ #  define NS_FORMAT_FUNCTION(F,A) __attribute__((format(__NSString__, F, A)))
+ #else
+ #  define NS_FORMAT_FUNCTION(F,A) 
+ #endif
+ #endif
+ 
+ #ifndef NS_REQUIRES_NIL_TERMINATION
+ #define NS_REQUIRES_NIL_TERMINATION __attribute__((sentinel))
+ #endif
+ 
+ // FIXME ... what exact version of clang and gcc?
+ #ifndef UNAVAILABLE_ATTRIBUTE
+ #if defined(__clang__) || GS_GCC_MINREQ(4,0)
+ #  define UNAVAILABLE_ATTRIBUTE __attribute__((unavailable))
+ #else
+ #  define UNAVAILABLE_ATTRIBUTE
+ #endif
+ #endif
+ 
+ /* Check if compiler supports @optional in protocols
+  */
+ #if defined(__clang__) || GS_GCC_MINREQ(4,6)
+ #  define GS_PROTOCOLS_HAVE_OPTIONAL 1
+ #else
+ #  define GS_PROTOCOLS_HAVE_OPTIONAL 0
+ #endif
+ 
+ /* Check if compiler supports declared properties
+  */
+ #if defined(__clang__) || GS_GCC_MINREQ(4,6)
+ #  define GS_HAS_DECLARED_PROPERTIES 1
+ #else
+ #  define GS_HAS_DECLARED_PROPERTIES 0
+ #endif
+ 
+ #endif /* __GNUSTEP_GSVERSIONMACROS_H_INCLUDED_ */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSArray+GNUstepBase.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,78 ----
+ /** Declaration of extension methods for base additions
+ 
+    Copyright (C) 2003-2010 Free Software Foundation, Inc.
+ 
+    Written by:  Richard Frith-Macdonald <rfm@gnu.org>
+    and:         Adam Fedor <fedor@gnu.org>
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+ */
+ 
+ #ifndef	INCLUDED_NSArray_GNUstepBase_h
+ #define	INCLUDED_NSArray_GNUstepBase_h
+ 
+ #import "../GNUstepBase/GSVersionMacros.h"
+ #import "../Foundation/NSArray.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ #if	OS_API_VERSION(GS_API_NONE,GS_API_LATEST)
+ 
+ @interface NSArray (GNUstepBase)
+ 
+ /** <p>Method for working with sorted arrays - use a binary chop
+  * to determine the insertion location for an object.  If equal objects
+  * already exist in the array, they will be located immediately before
+  * the insertion position.
+  * </p>
+  * <p>The comparator function takes two items as arguments, the first is the
+  * item to be added, the second is the item already in the array.
+  * The function should return NSOrderedAscending if the item to be
+  * added is 'less than' the item in the array, NSOrderedDescending
+  * if it is greater, and NSOrderedSame if it is equal.
+  * </p>
+  */
+ - (NSUInteger) insertionPosition: (id)item
+ 		   usingFunction: (NSComparisonResult (*)(id, id, void *))sorter
+ 		         context: (void *)context;
+ 
+ /* <p>Method for working with sorted arrays - use a binary chop
+  * to determine the insertion location for an object.  If equal objects
+  * already exist in the array, they will be located immediately before
+  * the insertion position.
+  * </p> 
+  * <p>The selector identifies a method returning NSOrderedAscending if
+  * the receiver is 'less than' the argument, and NSOrderedDescending if
+  * it is greate.
+  * </p>
+  */
+ - (NSUInteger) insertionPosition: (id)item
+ 		   usingSelector: (SEL)comp;
+ @end
+ 
+ #endif	/* OS_API_VERSION */
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif	/* INCLUDED_NSArray_GNUstepBase_h */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSMutableString+GNUstepBase.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,57 ----
+ /** Declaration of extension methods for base additions
+ 
+    Copyright (C) 2003-2010 Free Software Foundation, Inc.
+ 
+    Written by:  Richard Frith-Macdonald <rfm@gnu.org>
+    and:         Adam Fedor <fedor@gnu.org>
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+ */
+ 
+ #ifndef	INCLUDED_NSMutableString_GNUstepBase_h
+ #define	INCLUDED_NSMutableString_GNUstepBase_h
+ 
+ #import "GSVersionMacros.h"
+ #import "../Foundation/NSString.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ #if	OS_API_VERSION(GS_API_NONE,GS_API_LATEST)
+ 
+ @interface NSMutableString (GNUstepBase)
+ - (void) deleteSuffix: (NSString*)suffix;
+ - (void) deletePrefix: (NSString*)prefix;
+ - (NSString*) immutableProxy;
+ - (void) replaceString: (NSString*)replace
+             withString: (NSString*)by;
+ - (void) trimLeadSpaces;
+ - (void) trimTailSpaces;
+ - (void) trimSpaces;
+ @end
+ 
+ #endif	/* OS_API_VERSION */
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif	/* INCLUDED_NSMutableString_GNUstepBase_h */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSNumber+GNUstepBase.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,56 ----
+ /** Declaration of extension methods for base additions
+ 
+    Copyright (C) 2003-2010 Free Software Foundation, Inc.
+ 
+    Written by:  Richard Frith-Macdonald <rfm@gnu.org>
+    and:         Adam Fedor <fedor@gnu.org>
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+ */
+ 
+ #ifndef	INCLUDED_NSNumber_GNUstepBase_h
+ #define	INCLUDED_NSNumber_GNUstepBase_h
+ 
+ #import "GSVersionMacros.h"
+ #import "../Foundation/NSValue.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ #if	OS_API_VERSION(GS_API_NONE,GS_API_LATEST)
+ 
+ @interface NSNumber(GNUstepBase)
+ /**
+  * Parses string as a <code>double</code>, <code>int</code>, or <code>unsigned
+  * int</code> depending on what characters are present.  Uses
+  * <code>atof</code> and <code>atoi</code> which don't report errors, so be
+  * careful if the string might contain an invalid value.
+  */
+ + (NSValue*) valueFromString: (NSString *)string;
+ @end
+ 
+ #endif	/* OS_API_VERSION */
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif	/* INCLUDED_NSNumber_GNUstepBase_h */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSObject+GNUstepBase.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,242 ----
+ /** Declaration of extension methods for base additions
+ 
+    Copyright (C) 2003-2010 Free Software Foundation, Inc.
+ 
+    Written by:  Richard Frith-Macdonald <rfm@gnu.org>
+    and:         Adam Fedor <fedor@gnu.org>
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+ */
+ 
+ #ifndef	INCLUDED_NSObject_GNUstepBase_h
+ #define	INCLUDED_NSObject_GNUstepBase_h
+ 
+ #import "GSVersionMacros.h"
+ #import "../Foundation/NSObject.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ #if	OS_API_VERSION(GS_API_NONE,GS_API_LATEST)
+ 
+ @class  NSHashTable;
+ 
+ @interface NSObject (GNUstepBase)
+ 
+ /**
+   WARNING: The -compare: method for NSObject is deprecated
+            due to subclasses declaring the same selector with 
+ 	   conflicting signatures.
+            Comparision of arbitrary objects is not just meaningless
+            but also dangerous as most concrete implementations
+            expect comparable objects as arguments often accessing
+ 	   instance variables directly.
+ 	   This method will be removed in a future release.
+ */
+ - (NSComparisonResult) compare: (id)anObject;
+ 
+ /** For backward compatibility only ... use class_isMetaClass() on the
+  * class of the receiver instead.
+  */
+ - (BOOL) isInstance;
+ 
+ /** DEPRECATED ... do not use.
+  * Transmutes the receiver into an immutable version of the same object
+  * and returns the result.<br />
+  * If the receiver is not a mutable object or cannot be simply transmuted,
+  * then this method either returns the receiver unchanged or,
+  * if the force flag is set to YES, returns an autoreleased copy of the
+  * receiver.<br />
+  * Mutable classes should override this default implementation.<br />
+  * This method is used in methods which are declared to return immutable
+  * objects (eg. an NSArray), but which create and build mutable ones
+  * internally.
+  */
+ - (id) makeImmutableCopyOnFail: (BOOL)force;
+ 
+ /** Transmutes the receiver into an immutable version of the same object.
+  * Returns YES if the receiver has become immutable, NO otherwise.<br />
+  * The default implementation returns NO.<br />
+  * Mutable classes which have an immutable counterpart they can efficiently
+  * change into, should override to transmute themselves and return YES.<br />
+  * Immutable classes should override this to simply return YES with no
+  * further action.<br />
+  * This method is used in methods which are declared to return immutable
+  * objects (eg. an NSArray), but which create and build mutable ones
+  * internally.
+  */
+ - (BOOL) makeImmutable;
+ 
+ /**
+  * Message sent when an implementation wants to explicitly exclude a method
+  * (but cannot due to compiler constraint), and wants to make sure it is not
+  * called by mistake.  Default implementation raises an exception at runtime.
+  */
+ - (id) notImplemented: (SEL)aSel GS_NORETURN_METHOD;
+ 
+ /**
+  * Message sent when an implementation wants to explicitly require a subclass
+  * to implement a method (but cannot at compile time since there is no
+  * <code>abstract</code> keyword in Objective-C).  Default implementation
+  * raises an exception at runtime to alert developer that he/she forgot to
+  * override a method.
+  */
+ - (id) subclassResponsibility: (SEL)aSel GS_NORETURN_METHOD;
+ 
+ /**
+  * Message sent when an implementation wants to explicitly exclude a method
+  * (but cannot due to compiler constraint) and forbid that subclasses
+  * implement it.  Default implementation raises an exception at runtime.  If a
+  * subclass <em>does</em> implement this method, however, the superclass's
+  * implementation will not be called, so this is not a perfect mechanism.
+  */
+ - (id) shouldNotImplement: (SEL)aSel GS_NORETURN_METHOD;
+ 
+ @end
+ 
+ /** This is an informal protocol ... classes may implement the method to
+  * report how much memory is used by the instance and any objects it acts
+  * as a container for.
+  */
+ @interface      NSObject(MemoryFootprint)
+ /* This method returns the memory usage of the receiver, excluding any
+  * objects already present in the exclude table.<br />
+  * The argument is a hash table configured to hold non-retained pointer
+  * objects and is used to inform the receiver that its size should not
+  * be counted again if it's already in the table.<br />
+  * The NSObject implementation returns zero if the receiver is in the
+  * table, but otherwise adds itself to the table and returns its memory
+  * footprint (the sum of all of its instance variables, but not any
+  * memory pointed to by those variables).<br />
+  * Subclasses should override this method by calling the superclass
+  * implementation, and either return the result (if it was zero) or
+  * return that value plus the sizes of any memory owned by the receiver
+  * (eg found by calling the same method on objects pointed to by the
+  * receiver's instance variables).
+  */
+ - (NSUInteger) sizeInBytesExcluding: (NSHashTable*)exclude;
+ @end
+ 
+ /** This is an informal protocol ... classes may implement the method and
+  * register themselves to have it called on process exit.
+  */
+ @interface NSObject(GSAtExit)
+ /** This method is called on exit for any class which implements it and which
+  * has called +registerAtExit to register it to be called.<br />
+  * The order in which methods for different classes is called is the reverse
+  * of the order in which the classes were registered, but it's best to assume
+  * the method can not depend on any other class being in a usable state
+  * at the point when the method is called (rather like +load).<br />
+  * Typical use would be to release memory occupied by class data structures
+  * so that memory usage analysis software will not think the memory has
+  * been leaked.
+  */
+ + (void) atExit;
+ @end
+ 
+ /** Category for methods handling leaked memory cleanup on exit of process
+  * (for use when debugging memory leaks).<br />
+  * You enable this by calling the +setShouldCleanUp: method (done implicitly
+  * by gnustep-base if the GNUSTEP_SHOULD_CLEAN_UP environment variable is
+  * set to YES).<br />
+  * Your class then has two options for performing cleanup when the process
+  * ends:
+  * <p>1. Use the +leak: method to register objects which are simply to be 
+  * retained until the process ends, and then either ignored or released
+  * depending on the cleanup setting in force.  This mechanism is simple
+  * and should be sufficient for many classes.
+  * </p>
+  * <p>2. Implement a +atExit method to be run when the process ends and,
+  * within your +initialize implementation, call +shouldCleanUp to determine
+  * whether cleanup should be done, and if it returns YES then call
+  * +registerAtExit to have your +atExit method called when the process
+  * terminates.
+  * </p>
+  * <p>The order in which 'leaked' objects are released and +atExit methods
+  * are called on process exist is the reverse of the order in which they
+  * werse set up suing this API.
+  * </p>
+  */
+ @interface NSObject(GSCleanup)
+ 
+ 
+ /** This method simply retains its argument so that it will never be
+  * deallocated during normal operation, but keeps track of it so that
+  * it is released during process exit if cleanup is enabled.<br />
+  * Returns its argument.
+  */
+ + (id) NS_RETURNS_RETAINED leak: (id)anObject;
+ 
+ /** This method retains the object at *anAddress so that it will never be
+  * deallocated during normal operation, but keeps track of the address
+  * so that the object is released and the address is zeroed during process
+  * exit if cleanup is enabled.<br />
+  * Returns the object at *anAddress.
+  */
+ + (id) NS_RETURNS_RETAINED leakAt: (id*)anAddress;
+ 
+ /** Sets the receiver to have its +atExit method called at the point when
+  * the process terminates.<br />
+  * Returns YES on success and NO on failure (if the class does not implement
+  * the method or if it is already registered to call it).<br />
+  * Implemented as a call to +registerAtExit: with the selector for the +atExit
+  * method as its argument.
+  */
+ + (BOOL) registerAtExit;
+ 
+ /** Sets the receiver to have the specified  method called at the point when
+  * the process terminates.<br />
+  * Returns YES on success and NO on failure (if the class does not implement
+  * the method ir if it is already registered to call it).
+  */
+ + (BOOL) registerAtExit: (SEL)aSelector;
+ 
+ /** Specifies the default cleanup behavior on process exit ... the value
+  * returned by the NSObject implementation of the +shouldClanUp method.<br />
+  * Calling this method with a YES argument implicitly calls the +enableAtExit
+  * method as well.<br />
+  * The GNUstep Base library calls this method with the value obtained from
+  * the GNUSTEP_SHOULD_CLEAN_UP environment variable when NSObject is
+  * initialised.
+  */
+ + (void) setShouldCleanUp: (BOOL)aFlag;
+ 
+ /** Returns a flag indicating whether the receiver should clean up
+  * its data structures etc at process exit.<br />
+  * The NSObject implementation returns the value set by the +setShouldCleanUp:
+  * method but subclasses may override this.
+  */
+ + (BOOL) shouldCleanUp;
+ 
+ @end
+ 
+ /* Macro to take an autoreleased object and either make it immutable or
+  * create an autoreleased copy of the original.
+  */
+ #define GS_IMMUTABLE(O) ([O makeImmutable] == YES ? O : AUTORELEASE([O copy]))
+ 
+ #endif	/* OS_API_VERSION */
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif	/* INCLUDED_NSObject_GNUstepBase_h */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h
*** gcc-7.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/GNUstepBase/NSString+GNUstepBase.h	Sun Sep 15 02:38:25 2019
***************
*** 0 ****
--- 1,105 ----
+ /** Declaration of extension methods for base additions
+ 
+    Copyright (C) 2003-2010 Free Software Foundation, Inc.
+ 
+    Written by:  Richard Frith-Macdonald <rfm@gnu.org>
+    and:         Adam Fedor <fedor@gnu.org>
+ 
+    This file is part of the GNUstep Base Library.
+ 
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, 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
+    Library General Public License for more details.
+ 
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+    Boston, MA 02111 USA.
+ 
+ */
+ 
+ #ifndef	INCLUDED_NSString_GNUstepBase_h
+ #define	INCLUDED_NSString_GNUstepBase_h
+ 
+ #import "GSVersionMacros.h"
+ #import "../Foundation/NSString.h"
+ 
+ #if	defined(__cplusplus)
+ extern "C" {
+ #endif
+ 
+ #if	OS_API_VERSION(GS_API_NONE,GS_API_LATEST)
+ 
+ /**
+  * Provides some additional (non-standard) utility methods.
+  */
+ @interface NSString (GNUstepBase)
+ 
+ /**
+  * Alternate way to invoke <code>stringWithFormat</code> if you have or wish
+  * to build an explicit <code>va_list</code> structure.
+  */
+ + (id) stringWithFormat: (NSString*)format
+ 	      arguments: (va_list)argList NS_FORMAT_FUNCTION(1,0);
+ 
+ /**
+  * Returns a string formed by removing the prefix string from the
+  * receiver.  Raises an exception if the prefix is not present.
+  */
+ - (NSString*) stringByDeletingPrefix: (NSString*)prefix;
+ 
+ /**
+  * Returns a string formed by removing the suffix string from the
+  * receiver.  Raises an exception if the suffix is not present.
+  */
+ - (NSString*) stringByDeletingSuffix: (NSString*)suffix;
+ 
+ /**
+  * Returns a string formed by removing leading white space from the
+  * receiver.
+  */
+ - (NSString*) stringByTrimmingLeadSpaces;
+ 
+ /**
+  * Returns a string formed by removing trailing white space from the
+  * receiver.
+  */
+ - (NSString*) stringByTrimmingTailSpaces;
+ 
+ /**
+  * Returns a string formed by removing both leading and trailing
+  * white space from the receiver.
+  */
+ - (NSString*) stringByTrimmingSpaces;
+ 
+ /**
+  * Returns a string in which any (and all) occurrences of
+  * replace in the receiver have been replaced with by.
+  * Returns the receiver if replace
+  * does not occur within the receiver.  NB. an empty string is
+  * not considered to exist within the receiver.
+  */
+ - (NSString*) stringByReplacingString: (NSString*)replace
+ 			   withString: (NSString*)by;
+ 
+ /**
+  * An obsolete name for -substringWithRange: ... deprecated.
+  */
+ - (NSString*) substringFromRange: (NSRange)aRange;
+ 
+ @end
+ 
+ #endif	/* OS_API_VERSION */
+ 
+ #if	defined(__cplusplus)
+ }
+ #endif
+ 
+ #endif	/* INCLUDED_NSString_GNUstepBase_h */
+ 
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/encode-7-next-64bit.m gcc-7.5.0/gcc/testsuite/objc.dg/encode-7-next-64bit.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/encode-7-next-64bit.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/encode-7-next-64bit.m	Sun Sep 15 02:38:25 2019
***************
*** 9,18 ****
  #include <stdbool.h>
  #include <string.h>
  #include <stdlib.h>
! #include <Foundation/NSObject.h>
  #include "../objc-obj-c++-shared/runtime.h"
  
- extern int printf(char *,...);
  void CHECK_IF(const char *s1, const char *s2)
  {
   if (strcmp(s1,s2) != 0) {
--- 9,19 ----
  #include <stdbool.h>
  #include <string.h>
  #include <stdlib.h>
! #include <stdio.h>
! #include "../objc-obj-c++-shared/F-NSObject.h"
! #include "../objc-obj-c++-shared/CF-CFString.h"
  #include "../objc-obj-c++-shared/runtime.h"
  
  void CHECK_IF(const char *s1, const char *s2)
  {
   if (strcmp(s1,s2) != 0) {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/headers.m gcc-7.5.0/gcc/testsuite/objc.dg/headers.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/headers.m	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/objc.dg/headers.m	Sun Sep 15 02:38:25 2019
***************
*** 2,7 ****
--- 2,8 ----
  // test in libstdc++-v3).  Author: Loren J. Rittle <ljrittle@acm.org>.
  // { dg-options "-Wall -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wshadow" }
  // { dg-do compile }
+ /* { dg-xfail-if "PR90709" { *-*-darwin1[4-9]* } { "-fnext-runtime" } { "" } } */
  
  #ifdef __NEXT_RUNTIME__
  #include <Foundation/NSString.h>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/image-info.m gcc-7.5.0/gcc/testsuite/objc.dg/image-info.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/image-info.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/image-info.m	Sun Sep 15 02:38:25 2019
***************
*** 7,13 ****
  /* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-freplace-objc-classes" } */
  
! #include <Foundation/NSObject.h>
  
  extern void abort(void);
  #define CHECK_IF(expr) if(!(expr)) abort();
--- 7,13 ----
  /* { dg-skip-if "NeXT-only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-freplace-objc-classes" } */
  
! #include "../objc-obj-c++-shared/F-NSObject.h"
  
  extern void abort(void);
  #define CHECK_IF(expr) if(!(expr)) abort();
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/instancetype-0.m gcc-7.5.0/gcc/testsuite/objc.dg/instancetype-0.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/instancetype-0.m	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/gcc/testsuite/objc.dg/instancetype-0.m	Thu Sep  5 19:06:44 2019
***************
*** 0 ****
--- 1,30 ----
+ /* Contributed by Iain Sandoe <iain@sandoe.co.uk>, May 2019.  */
+ /* { dg-do compile } */
+ 
+ /* Basic check of parsing instancetype.  */
+ 
+ extern id class_createInstance (id, int);
+ extern id class_getSuperclass (id);
+ 
+ @interface MyObject
+ {
+   Class isa;
+ }
+ + (instancetype)alloc;
+ - (instancetype)init;
+ + (instancetype)initialize;
+ + (instancetype)factoryMethodA;
+ + (id)factoryMethodB;
+ + (Class) class;
+ + (Class) superclass;
+ @end
+ 
+ @implementation MyObject
+ + (instancetype)alloc { return class_createInstance (self, 0); }
+ - (instancetype)init  { return self; }
+ + (instancetype)initialize { return self; }
+ + (instancetype)factoryMethodA { return [[[self class] alloc] init]; }
+ + (id)factoryMethodB { return [[[self class] alloc] init]; }
+ + (Class) class { return self; }
+ + (Class) superclass { return class_getSuperclass (self); }
+ @end
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/isa-field-1.m gcc-7.5.0/gcc/testsuite/objc.dg/isa-field-1.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/isa-field-1.m	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/objc.dg/isa-field-1.m	Sun Sep 15 02:38:25 2019
***************
*** 1,5 ****
--- 1,7 ----
  /* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects.  */
  /* { dg-do compile } */
+ /* The use of isa is deprecated, but we still want to test that it works. */
+ /* { dg-additional-options "-Wno-deprecated-declarations" } */
  
  #include "../objc-obj-c++-shared/TestsuiteObject.h"
  #include "../objc-obj-c++-shared/runtime.h"
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/method-6.m gcc-7.5.0/gcc/testsuite/objc.dg/method-6.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/method-6.m	Wed Apr 19 06:55:33 2017
--- gcc-7.5.0/gcc/testsuite/objc.dg/method-6.m	Sun Sep 15 02:38:25 2019
***************
*** 5,16 ****
  /* { dg-options "-Wstrict-selector-match" } */
  
  #ifdef __NEXT_RUNTIME__
! #include <Foundation/NSObject.h>
! #define OBJECT NSObject
  #else
! #include <objc/Object.h>
! #include <objc/Protocol.h>
! #define OBJECT Object
  #endif
  
  @interface Base
--- 5,16 ----
  /* { dg-options "-Wstrict-selector-match" } */
  
  #ifdef __NEXT_RUNTIME__
! # include "../objc-obj-c++-shared/F-NSObject.h"
! # define OBJECT NSObject
  #else
! # include <objc/Object.h>
! # include <objc/Protocol.h>
! # define OBJECT Object
  #endif
  
  @interface Base
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/no-extra-load.m gcc-7.5.0/gcc/testsuite/objc.dg/no-extra-load.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/no-extra-load.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/no-extra-load.m	Sun Sep 15 02:38:25 2019
***************
*** 1,7 ****
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  
! #include <Foundation/NSObject.h>
  main() { [NSObject new]; }
  
  /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
--- 1,7 ----
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  
! #include "../objc-obj-c++-shared/F-NSObject.h"
  main() { [NSObject new]; }
  
  /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/objc-foreach-4.m gcc-7.5.0/gcc/testsuite/objc.dg/objc-foreach-4.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/objc-foreach-4.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/objc-foreach-4.m	Sun Sep 15 02:38:25 2019
***************
*** 5,13 ****
  /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
  /* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
  
! #include <Foundation/NSString.h>
! #include <Foundation/NSAutoreleasePool.h>
! #include <Foundation/NSArray.h>
  
  // gcc -o foo foo.m -framework Foundation
  
--- 5,13 ----
  /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
  /* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
  
! #include "../objc-obj-c++-shared/F-NSString.h"
! #include "../objc-obj-c++-shared/F-NSAutoreleasePool.h"
! #include "../objc-obj-c++-shared/F-NSArray.h"
  
  // gcc -o foo foo.m -framework Foundation
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/objc-foreach-5.m gcc-7.5.0/gcc/testsuite/objc.dg/objc-foreach-5.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/objc-foreach-5.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/objc-foreach-5.m	Sun Sep 15 02:38:25 2019
***************
*** 4,11 ****
  /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
  /* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
  
! #include <Foundation/NSArray.h>
! #include <Foundation/NSAutoreleasePool.h>
  
  NSArray * createTestVictim(unsigned capacity) {
      NSMutableArray * arr = [[NSMutableArray alloc] initWithCapacity:capacity];
--- 4,12 ----
  /* { dg-skip-if "No NeXT fast enum. pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
  /* { dg-additional-options "-framework Foundation" { target { *-*-darwin* } } } */
  
! #include "../objc-obj-c++-shared/F-NSArray.h"
! #include "../objc-obj-c++-shared/F-NSAutoreleasePool.h"
! #include "../objc-obj-c++-shared/F-NSValue.h"
  
  NSArray * createTestVictim(unsigned capacity) {
      NSMutableArray * arr = [[NSMutableArray alloc] initWithCapacity:capacity];
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/objc-gc-4.m gcc-7.5.0/gcc/testsuite/objc.dg/objc-gc-4.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/objc-gc-4.m	Mon Jun  6 22:46:58 2011
--- gcc-7.5.0/gcc/testsuite/objc.dg/objc-gc-4.m	Sun Sep 15 02:38:25 2019
***************
*** 3,8 ****
--- 3,9 ----
  /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
  
  /* { dg-do compile } */
+ /* { dg-skip-if "GC API is an error from Darwin16." { *-*-darwin1[6-8]* } { "-fnext-runtime" } { "" } } */
  /* { dg-options "-fobjc-gc" } */
  /* { dg-prune-output "cc1obj: warning: '-fobjc-gc' is ignored for '-fgnu-runtime'" } */
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/proto-lossage-7.m gcc-7.5.0/gcc/testsuite/objc.dg/proto-lossage-7.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/proto-lossage-7.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/proto-lossage-7.m	Sun Sep 15 02:38:25 2019
***************
*** 3,9 ****
  /* { dg-do compile } */
  
  #ifdef __NEXT_RUNTIME__
! #include <Foundation/NSObject.h>
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
--- 3,9 ----
  /* { dg-do compile } */
  
  #ifdef __NEXT_RUNTIME__
! #include "../objc-obj-c++-shared/F-NSObject.h"
  #define OBJECT NSObject
  #else
  #include <objc/Object.h>
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/strings/const-cfstring-2.m gcc-7.5.0/gcc/testsuite/objc.dg/strings/const-cfstring-2.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/strings/const-cfstring-2.m	Fri Oct 22 10:30:29 2010
--- gcc-7.5.0/gcc/testsuite/objc.dg/strings/const-cfstring-2.m	Sun Sep 15 02:38:25 2019
***************
*** 8,15 ****
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mconstant-cfstrings -Wnonportable-cfstrings" } */
  
! #import <Foundation/NSString.h>
! #import <CoreFoundation/CFString.h>
  
  #ifndef __CONSTANT_CFSTRINGS__
  #error The -fconstant-cfstrings option is not functioning properly
--- 8,15 ----
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mconstant-cfstrings -Wnonportable-cfstrings" } */
  
! #include "../../objc-obj-c++-shared/F-NSString.h"
! #include "../../objc-obj-c++-shared/CF-CFString.h"
  
  #ifndef __CONSTANT_CFSTRINGS__
  #error The -fconstant-cfstrings option is not functioning properly
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/strings/const-cfstring-5.m gcc-7.5.0/gcc/testsuite/objc.dg/strings/const-cfstring-5.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/strings/const-cfstring-5.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/strings/const-cfstring-5.m	Sun Sep 15 02:38:25 2019
***************
*** 6,12 ****
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mconstant-cfstrings" } */
  
! #include <Foundation/NSObject.h>
  
  @interface Foo: NSObject {
    char *cString;
--- 6,12 ----
  /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mconstant-cfstrings" } */
  
! #include "../../objc-obj-c++-shared/F-NSObject.h"
  
  @interface Foo: NSObject {
    char *cString;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/strings/const-str-12b.m gcc-7.5.0/gcc/testsuite/objc.dg/strings/const-str-12b.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/strings/const-str-12b.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/strings/const-str-12b.m	Sun Sep 15 02:38:25 2019
***************
*** 6,16 ****
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
  
  #ifdef __NEXT_RUNTIME__
! #include <Foundation/NSObject.h>
! #define OBJECT NSObject
  #else
! #include <objc/Object.h>
! #define OBJECT Object
  #endif
  #include "../../objc-obj-c++-shared/objc-test-suite-types.h"
  
--- 6,16 ----
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=Foo" { target *-*-darwin* } } */
  
  #ifdef __NEXT_RUNTIME__
! # include "../../objc-obj-c++-shared/F-NSObject.h"
! # define OBJECT NSObject
  #else
! # include <objc/Object.h>
! # define OBJECT Object
  #endif
  #include "../../objc-obj-c++-shared/objc-test-suite-types.h"
  
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/stubify-1.m gcc-7.5.0/gcc/testsuite/objc.dg/stubify-1.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/stubify-1.m	Tue Apr 27 00:08:28 2010
--- gcc-7.5.0/gcc/testsuite/objc.dg/stubify-1.m	Fri Nov  1 20:30:26 2019
***************
*** 4,10 ****
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-Os -mdynamic-no-pic -mmacosx-version-min=10.4" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
--- 4,10 ----
  /* { dg-do compile { target *-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-Os -mdynamic-no-pic -mmacosx-version-min=10.4 -msymbol-stubs" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/stubify-2.m gcc-7.5.0/gcc/testsuite/objc.dg/stubify-2.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/stubify-2.m	Tue Apr 27 00:08:28 2010
--- gcc-7.5.0/gcc/testsuite/objc.dg/stubify-2.m	Fri Nov  1 20:30:26 2019
***************
*** 4,10 ****
  /* { dg-do compile { target powerpc*-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
--- 4,10 ----
  /* { dg-do compile { target powerpc*-*-darwin* } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-require-effective-target ilp32 } */
! /* { dg-options "-mdynamic-no-pic -fdump-rtl-jump -mmacosx-version-min=10.4 -msymbol-stubs" } */
  
  typedef struct objc_object { } *id ;
  int x = 41 ;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/symtab-1.m gcc-7.5.0/gcc/testsuite/objc.dg/symtab-1.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/symtab-1.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/symtab-1.m	Sun Sep 15 02:38:25 2019
***************
*** 4,10 ****
  /* { dg-do compile { target { *-*-darwin* } } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  
! #include <Foundation/NSObject.h>
  
  @interface Base: NSObject 
  - (void)setValues;
--- 4,10 ----
  /* { dg-do compile { target { *-*-darwin* } } } */
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  
! #include "../objc-obj-c++-shared/F-NSObject.h"
  
  @interface Base: NSObject 
  - (void)setValues;
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m	Thu Nov  4 18:19:54 2010
--- gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-cfstring-1.m	Sun Sep 15 02:38:25 2019
***************
*** 13,20 ****
     Well, we don't implement writable ones at this juncture.  */
  /* { dg-options "-mconstant-cfstrings -framework Cocoa -Wl,-w" { target *-*-darwin[123]* } } */
  
! #import <Foundation/NSString.h>
! #import <CoreFoundation/CFString.h>
  #include <stdlib.h>
  
  void printOut(NSString *str) {
--- 13,20 ----
     Well, we don't implement writable ones at this juncture.  */
  /* { dg-options "-mconstant-cfstrings -framework Cocoa -Wl,-w" { target *-*-darwin[123]* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSString.h"
! #include "../../../objc-obj-c++-shared/CF-CFString.h"
  #include <stdlib.h>
  
  void printOut(NSString *str) {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-str-10.m gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-str-10.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-str-10.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-str-10.m	Sun Sep 15 02:38:25 2019
***************
*** 6,12 ****
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include <Foundation/NSObject.h>
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSString: NSObject
--- 6,13 ----
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSObject.h"
! #include <stdlib.h>
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSString: NSObject
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-str-11.m gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-str-11.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-str-11.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-str-11.m	Sun Sep 15 02:38:25 2019
***************
*** 7,13 ****
  /* { dg-options "-fconstant-string-class=XStr" } */
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
  
! #include <Foundation/NSObject.h>
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface XString: NSObject {
--- 7,13 ----
  /* { dg-options "-fconstant-string-class=XStr" } */
  /* { dg-options "-mno-constant-cfstrings -fconstant-string-class=XStr" { target *-*-darwin* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSObject.h"
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface XString: NSObject {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-str-9.m gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-str-9.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/torture/strings/const-str-9.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/torture/strings/const-str-9.m	Sun Sep 15 02:38:25 2019
***************
*** 5,11 ****
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include <Foundation/NSObject.h>
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSConstantString: NSObject {
--- 5,11 ----
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-mno-constant-cfstrings" { target *-*-darwin* } } */
  
! #include "../../../objc-obj-c++-shared/F-NSObject.h"
  #include "../../../objc-obj-c++-shared/runtime.h" /* For NEXT_OBJC_USE_NEW_INTERFACE.  */
  
  @interface NSConstantString: NSObject {
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/zero-link-1.m gcc-7.5.0/gcc/testsuite/objc.dg/zero-link-1.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/zero-link-1.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/zero-link-1.m	Sun Sep 15 02:38:25 2019
***************
*** 5,11 ****
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-fzero-link" } */
  
! #include <Foundation/NSObject.h>
  
  extern void abort(void);
  #define CHECK_IF(expr) if(!(expr)) abort();
--- 5,11 ----
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-fzero-link" } */
  
! #include "../objc-obj-c++-shared/F-NSObject.h"
  
  extern void abort(void);
  #define CHECK_IF(expr) if(!(expr)) abort();
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/zero-link-2.m gcc-7.5.0/gcc/testsuite/objc.dg/zero-link-2.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/zero-link-2.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/zero-link-2.m	Sun Sep 15 02:38:25 2019
***************
*** 5,11 ****
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-fno-zero-link" } */
  
! #include <Foundation/NSObject.h>
  
  extern void abort(void);
  #define CHECK_IF(expr) if(!(expr)) abort();
--- 5,11 ----
  /* { dg-skip-if "" { *-*-* } { "-fgnu-runtime" } { "" } } */
  /* { dg-options "-fno-zero-link" } */
  
! #include "../objc-obj-c++-shared/F-NSObject.h"
  
  extern void abort(void);
  #define CHECK_IF(expr) if(!(expr)) abort();
diff -Nrcpad gcc-7.4.0/gcc/testsuite/objc.dg/zero-link-3.m gcc-7.5.0/gcc/testsuite/objc.dg/zero-link-3.m
*** gcc-7.4.0/gcc/testsuite/objc.dg/zero-link-3.m	Tue Jul 16 10:41:30 2013
--- gcc-7.5.0/gcc/testsuite/objc.dg/zero-link-3.m	Sun Sep 15 02:38:25 2019
***************
*** 7,18 ****
  /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
  
  #ifdef __NEXT_RUNTIME__
! #include <Foundation/NSObject.h>
! #define OBJECT NSObject
  #else
! #include <objc/Object.h>
! #include <objc/Protocol.h>
! #define OBJECT Object
  #endif
  
  extern void abort(void);
--- 7,18 ----
  /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
  
  #ifdef __NEXT_RUNTIME__
! # include "../objc-obj-c++-shared/F-NSObject.h"
! # define OBJECT NSObject
  #else
! # include <objc/Object.h>
! # include <objc/Protocol.h>
! # define OBJECT Object
  #endif
  
  extern void abort(void);
diff -Nrcpad gcc-7.4.0/gcc/toplev.c gcc-7.5.0/gcc/toplev.c
*** gcc-7.4.0/gcc/toplev.c	Fri Sep 15 08:18:34 2017
--- gcc-7.5.0/gcc/toplev.c	Fri Aug 30 12:07:12 2019
*************** do_compile ()
*** 1981,1986 ****
--- 1981,2016 ----
  	else
  	  int_n_enabled_p[i] = false;
  
+       /* Initialize mpfrs exponent range.  This is important to get
+          underflow/overflow in a reasonable timeframe.  */
+       machine_mode mode;
+       int min_exp = -1;
+       int max_exp = 1;
+       for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
+ 	   mode != VOIDmode;
+ 	   mode = GET_MODE_WIDER_MODE (mode))
+ 	if (SCALAR_FLOAT_MODE_P (mode))
+ 	  {
+ 	    const real_format *fmt = REAL_MODE_FORMAT (mode);
+ 	    if (fmt)
+ 	      {
+ 		/* fmt->emin - fmt->p + 1 should be enough but the
+ 		   back-and-forth dance in real_to_decimal_for_mode we
+ 		   do for checking fails due to rounding effects then.  */
+ 		if ((fmt->emin - fmt->p) < min_exp)
+ 		  min_exp = fmt->emin - fmt->p;
+ 		if (fmt->emax > max_exp)
+ 		  max_exp = fmt->emax;
+ 	      }
+ 	  }
+       /* E.g. mpc_norm assumes it can square a number without bothering with
+ 	 with range scaling, so until that is fixed, double the minimum
+ 	 and maximum exponents, plus add some buffer for arithmetics
+ 	 on the squared numbers.  */
+       if (mpfr_set_emin (2 * (min_exp - 1))
+ 	  || mpfr_set_emax (2 * (max_exp + 1)))
+ 	sorry ("mpfr not configured to handle all float modes");
+ 
        /* Set up the back-end if requested.  */
        if (!no_backend)
  	backend_init ();
diff -Nrcpad gcc-7.4.0/gcc/tree-cfg.c gcc-7.5.0/gcc/tree-cfg.c
*** gcc-7.4.0/gcc/tree-cfg.c	Mon Nov 26 11:59:05 2018
--- gcc-7.5.0/gcc/tree-cfg.c	Thu Sep  5 12:11:52 2019
*************** remove_bb (basic_block bb)
*** 2170,2176 ****
  		}
  
  	      new_bb = bb->prev_bb;
! 	      new_gsi = gsi_start_bb (new_bb);
  	      gsi_remove (&i, false);
  	      gsi_insert_before (&new_gsi, stmt, GSI_NEW_STMT);
  	    }
--- 2170,2176 ----
  		}
  
  	      new_bb = bb->prev_bb;
! 	      new_gsi = gsi_after_labels (new_bb);
  	      gsi_remove (&i, false);
  	      gsi_insert_before (&new_gsi, stmt, GSI_NEW_STMT);
  	    }
*************** gimple_can_duplicate_bb_p (const_basic_b
*** 5989,5995 ****
     preserve SSA form.  */
  
  static basic_block
! gimple_duplicate_bb (basic_block bb)
  {
    basic_block new_bb;
    gimple_stmt_iterator gsi_tgt;
--- 5989,5995 ----
     preserve SSA form.  */
  
  static basic_block
! gimple_duplicate_bb (basic_block bb, copy_bb_data *id)
  {
    basic_block new_bb;
    gimple_stmt_iterator gsi_tgt;
*************** gimple_duplicate_bb (basic_block bb)
*** 6053,6058 ****
--- 6053,6091 ----
  	      && (!VAR_P (base) || !DECL_HAS_VALUE_EXPR_P (base)))
  	    DECL_NONSHAREABLE (base) = 1;
  	}
+  
+       /* If requested remap dependence info of cliques brought in
+          via inlining.  */
+       if (id)
+ 	for (unsigned i = 0; i < gimple_num_ops (copy); ++i)
+ 	  {
+ 	    tree op = gimple_op (copy, i);
+ 	    if (!op)
+ 	      continue;
+ 	    if (TREE_CODE (op) == ADDR_EXPR
+ 		|| TREE_CODE (op) == WITH_SIZE_EXPR)
+ 	      op = TREE_OPERAND (op, 0);
+ 	    while (handled_component_p (op))
+ 	      op = TREE_OPERAND (op, 0);
+ 	    if ((TREE_CODE (op) == MEM_REF
+ 		 || TREE_CODE (op) == TARGET_MEM_REF)
+ 		&& MR_DEPENDENCE_CLIQUE (op) > 1
+ 		&& MR_DEPENDENCE_CLIQUE (op) != bb->loop_father->owned_clique)
+ 	      {
+ 		if (!id->dependence_map)
+ 		  id->dependence_map = new hash_map<dependence_hash,
+ 						    unsigned short>;
+ 		bool existed;
+ 		unsigned short &newc = id->dependence_map->get_or_insert
+ 		    (MR_DEPENDENCE_CLIQUE (op), &existed);
+ 		if (!existed)
+ 		  {
+ 		    gcc_assert (MR_DEPENDENCE_CLIQUE (op) <= cfun->last_clique);
+ 		    newc = ++cfun->last_clique;
+ 		  }
+ 		MR_DEPENDENCE_CLIQUE (op) = newc;
+ 	      }
+ 	  }
  
        /* Create new names for all the definitions created by COPY and
  	 add replacement mappings for each new name.  */
*************** move_block_to_fn (struct function *dest_
*** 6914,6920 ****
        if (virtual_operand_p (op))
  	{
  	  /* Remove the phi nodes for virtual operands (alias analysis will be
! 	     run for the new function, anyway).  */
            remove_phi_node (&psi, true);
  	  continue;
  	}
--- 6947,6960 ----
        if (virtual_operand_p (op))
  	{
  	  /* Remove the phi nodes for virtual operands (alias analysis will be
! 	     run for the new function, anyway).  But replace all uses that
! 	     might be outside of the region we move.  */
! 	  use_operand_p use_p;
! 	  imm_use_iterator iter;
! 	  gimple *use_stmt;
! 	  FOR_EACH_IMM_USE_STMT (use_stmt, iter, op)
! 	    FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
! 	      SET_USE (use_p, SSA_NAME_VAR (op));
            remove_phi_node (&psi, true);
  	  continue;
  	}
*************** move_block_to_fn (struct function *dest_
*** 7002,7012 ****
  }
  
  /* Examine the statements in BB (which is in SRC_CFUN); find and return
!    the outermost EH region.  Use REGION as the incoming base EH region.  */
  
  static eh_region
  find_outermost_region_in_block (struct function *src_cfun,
! 				basic_block bb, eh_region region)
  {
    gimple_stmt_iterator si;
  
--- 7042,7055 ----
  }
  
  /* Examine the statements in BB (which is in SRC_CFUN); find and return
!    the outermost EH region.  Use REGION as the incoming base EH region.
!    If there is no single outermost region, return NULL and set *ALL to
!    true.  */
  
  static eh_region
  find_outermost_region_in_block (struct function *src_cfun,
! 				basic_block bb, eh_region region,
! 				bool *all)
  {
    gimple_stmt_iterator si;
  
*************** find_outermost_region_in_block (struct f
*** 7025,7031 ****
  	  else if (stmt_region != region)
  	    {
  	      region = eh_region_outermost (src_cfun, stmt_region, region);
! 	      gcc_assert (region != NULL);
  	    }
  	}
      }
--- 7068,7078 ----
  	  else if (stmt_region != region)
  	    {
  	      region = eh_region_outermost (src_cfun, stmt_region, region);
! 	      if (region == NULL)
! 		{
! 		  *all = true;
! 		  return NULL;
! 		}
  	    }
  	}
      }
*************** move_sese_region_to_fn (struct function
*** 7319,7330 ****
    if (saved_cfun->eh)
      {
        eh_region region = NULL;
  
        FOR_EACH_VEC_ELT (bbs, i, bb)
! 	region = find_outermost_region_in_block (saved_cfun, bb, region);
  
        init_eh_for_function ();
!       if (region != NULL)
  	{
  	  new_label_map = htab_create (17, tree_map_hash, tree_map_eq, free);
  	  eh_map = duplicate_eh_regions (saved_cfun, region, 0,
--- 7366,7382 ----
    if (saved_cfun->eh)
      {
        eh_region region = NULL;
+       bool all = false;
  
        FOR_EACH_VEC_ELT (bbs, i, bb)
! 	{
! 	  region = find_outermost_region_in_block (saved_cfun, bb, region, &all);
! 	  if (all)
! 	    break;
! 	}
  
        init_eh_for_function ();
!       if (region != NULL || all)
  	{
  	  new_label_map = htab_create (17, tree_map_hash, tree_map_eq, free);
  	  eh_map = duplicate_eh_regions (saved_cfun, region, 0,
diff -Nrcpad gcc-7.4.0/gcc/tree-complex.c gcc-7.5.0/gcc/tree-complex.c
*** gcc-7.4.0/gcc/tree-complex.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-complex.c	Wed Sep  4 08:06:24 2019
*************** static vec<tree> complex_ssa_name_compon
*** 75,80 ****
--- 75,83 ----
     non-SSA_NAME/non-invariant args that need to be replaced by SSA_NAMEs.  */
  static vec<gphi *> phis_to_revisit;
  
+ /* BBs that need EH cleanup.  */
+ static bitmap need_eh_cleanup;
+ 
  /* Lookup UID in the complex_variable_components hashtable and return the
     associated tree.  */
  static tree
*************** update_complex_components_on_edge (edge
*** 690,702 ****
  static void
  update_complex_assignment (gimple_stmt_iterator *gsi, tree r, tree i)
  {
!   gimple *stmt;
! 
    gimple_assign_set_rhs_with_ops (gsi, COMPLEX_EXPR, r, i);
!   stmt = gsi_stmt (*gsi);
    update_stmt (stmt);
!   if (maybe_clean_eh_stmt (stmt))
!     gimple_purge_dead_eh_edges (gimple_bb (stmt));
  
    if (gimple_in_ssa_p (cfun))
      update_complex_components (gsi, gsi_stmt (*gsi), r, i);
--- 693,704 ----
  static void
  update_complex_assignment (gimple_stmt_iterator *gsi, tree r, tree i)
  {
!   gimple *old_stmt = gsi_stmt (*gsi);
    gimple_assign_set_rhs_with_ops (gsi, COMPLEX_EXPR, r, i);
!   gimple *stmt = gsi_stmt (*gsi);
    update_stmt (stmt);
!   if (maybe_clean_or_replace_eh_stmt (old_stmt, stmt))
!     bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index);
  
    if (gimple_in_ssa_p (cfun))
      update_complex_components (gsi, gsi_stmt (*gsi), r, i);
*************** expand_complex_comparison (gimple_stmt_i
*** 1451,1456 ****
--- 1453,1460 ----
      }
  
    update_stmt (stmt);
+   if (maybe_clean_eh_stmt (stmt))
+     bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index);
  }
  
  /* Expand inline asm that sets some complex SSA_NAMEs.  */
*************** tree_lower_complex (void)
*** 1668,1673 ****
--- 1672,1679 ----
    init_parameter_lattice_values ();
    ssa_propagate (complex_visit_stmt, complex_visit_phi);
  
+   need_eh_cleanup = BITMAP_ALLOC (NULL);
+ 
    complex_variable_components = new int_tree_htab_type (10);
  
    complex_ssa_name_components.create (2 * num_ssa_names);
*************** tree_lower_complex (void)
*** 1711,1721 ****
  
    gsi_commit_edge_inserts ();
  
    delete complex_variable_components;
    complex_variable_components = NULL;
    complex_ssa_name_components.release ();
    complex_lattice_values.release ();
!   return 0;
  }
  
  namespace {
--- 1717,1731 ----
  
    gsi_commit_edge_inserts ();
  
+   unsigned todo
+     = gimple_purge_all_dead_eh_edges (need_eh_cleanup) ? TODO_cleanup_cfg : 0;
+   BITMAP_FREE (need_eh_cleanup);
+ 
    delete complex_variable_components;
    complex_variable_components = NULL;
    complex_ssa_name_components.release ();
    complex_lattice_values.release ();
!   return todo;
  }
  
  namespace {
diff -Nrcpad gcc-7.4.0/gcc/tree-core.h gcc-7.5.0/gcc/tree-core.h
*** gcc-7.4.0/gcc/tree-core.h	Wed Apr 12 07:35:49 2017
--- gcc-7.5.0/gcc/tree-core.h	Thu Sep  5 12:11:52 2019
*************** struct GTY(()) tree_base {
*** 977,983 ****
         expression trees and specify known data non-dependences.  For
         two memory references in a function they are known to not
         alias if dependence_info.clique are equal and dependence_info.base
!        are distinct.  */
      struct {
        unsigned short clique;
        unsigned short base;
--- 977,985 ----
         expression trees and specify known data non-dependences.  For
         two memory references in a function they are known to not
         alias if dependence_info.clique are equal and dependence_info.base
!        are distinct.  Clique number zero means there is no information,
!        clique number one is populated from function global information
!        and thus needs no remapping on transforms like loop unrolling.  */
      struct {
        unsigned short clique;
        unsigned short base;
*************** struct GTY(()) tree_base {
*** 1138,1143 ****
--- 1140,1148 ----
         OMP_CLAUSE_LINEAR_VARIABLE_STRIDE in
  	   OMP_CLAUSE_LINEAR
  
+        ASM_INLINE_P in
+ 	   ASM_EXPR
+ 
     side_effects_flag:
  
         TREE_SIDE_EFFECTS in
*************** struct GTY(()) tree_decl_common {
*** 1611,1616 ****
--- 1616,1622 ----
    /* In a VAR_DECL and PARM_DECL, this is DECL_READ_P.  */
    unsigned decl_read_flag : 1;
    /* In a VAR_DECL or RESULT_DECL, this is DECL_NONSHAREABLE.  */
+   /* In a PARM_DECL, this is DECL_HIDDEN_STRING_LENGTH.  */
    unsigned decl_nonshareable_flag : 1;
  
    /* DECL_OFFSET_ALIGN, used only for FIELD_DECLs.  */
diff -Nrcpad gcc-7.4.0/gcc/tree-data-ref.c gcc-7.5.0/gcc/tree-data-ref.c
*** gcc-7.4.0/gcc/tree-data-ref.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-data-ref.c	Thu Sep  5 12:11:52 2019
*************** object_address_invariant_in_loop_p (cons
*** 1396,1402 ****
  
  bool
  dr_may_alias_p (const struct data_reference *a, const struct data_reference *b,
! 		bool loop_nest)
  {
    tree addr_a = DR_BASE_OBJECT (a);
    tree addr_b = DR_BASE_OBJECT (b);
--- 1396,1402 ----
  
  bool
  dr_may_alias_p (const struct data_reference *a, const struct data_reference *b,
! 		struct loop *loop_nest)
  {
    tree addr_a = DR_BASE_OBJECT (a);
    tree addr_b = DR_BASE_OBJECT (b);
*************** dr_may_alias_p (const struct data_refere
*** 1420,1425 ****
--- 1420,1430 ----
  
    if ((TREE_CODE (addr_a) == MEM_REF || TREE_CODE (addr_a) == TARGET_MEM_REF)
        && (TREE_CODE (addr_b) == MEM_REF || TREE_CODE (addr_b) == TARGET_MEM_REF)
+       /* For cross-iteration dependences the cliques must be valid for the
+ 	 whole loop, not just individual iterations.  */
+       && (!loop_nest
+ 	  || MR_DEPENDENCE_CLIQUE (addr_a) == 1
+ 	  || MR_DEPENDENCE_CLIQUE (addr_a) == loop_nest->owned_clique)
        && MR_DEPENDENCE_CLIQUE (addr_a) == MR_DEPENDENCE_CLIQUE (addr_b)
        && MR_DEPENDENCE_BASE (addr_a) != MR_DEPENDENCE_BASE (addr_b))
      return false;
*************** initialize_data_dependence_relation (str
*** 1500,1506 ****
      }
  
    /* If the data references do not alias, then they are independent.  */
!   if (!dr_may_alias_p (a, b, loop_nest.exists ()))
      {
        DDR_ARE_DEPENDENT (res) = chrec_known;
        return res;
--- 1505,1511 ----
      }
  
    /* If the data references do not alias, then they are independent.  */
!   if (!dr_may_alias_p (a, b, loop_nest.exists () ? loop_nest[0] : NULL))
      {
        DDR_ARE_DEPENDENT (res) = chrec_known;
        return res;
*************** initialize_matrix_A (lambda_matrix A, tr
*** 2118,2123 ****
--- 2123,2130 ----
    switch (TREE_CODE (chrec))
      {
      case POLYNOMIAL_CHREC:
+       if (!cst_and_fits_in_hwi (CHREC_RIGHT (chrec)))
+ 	return chrec_dont_know;
        A[index][0] = mult * int_cst_value (CHREC_RIGHT (chrec));
        return initialize_matrix_A (A, CHREC_LEFT (chrec), index + 1, mult);
  
*************** analyze_subscript_affine_affine (tree ch
*** 2499,2505 ****
  				 tree *last_conflicts)
  {
    unsigned nb_vars_a, nb_vars_b, dim;
!   HOST_WIDE_INT init_a, init_b, gamma, gcd_alpha_beta;
    lambda_matrix A, U, S;
    struct obstack scratch_obstack;
  
--- 2506,2512 ----
  				 tree *last_conflicts)
  {
    unsigned nb_vars_a, nb_vars_b, dim;
!   HOST_WIDE_INT gamma, gcd_alpha_beta;
    lambda_matrix A, U, S;
    struct obstack scratch_obstack;
  
*************** analyze_subscript_affine_affine (tree ch
*** 2536,2544 ****
    A = lambda_matrix_new (dim, 1, &scratch_obstack);
    S = lambda_matrix_new (dim, 1, &scratch_obstack);
  
!   init_a = int_cst_value (initialize_matrix_A (A, chrec_a, 0, 1));
!   init_b = int_cst_value (initialize_matrix_A (A, chrec_b, nb_vars_a, -1));
!   gamma = init_b - init_a;
  
    /* Don't do all the hard work of solving the Diophantine equation
       when we already know the solution: for example,
--- 2543,2562 ----
    A = lambda_matrix_new (dim, 1, &scratch_obstack);
    S = lambda_matrix_new (dim, 1, &scratch_obstack);
  
!   tree init_a = initialize_matrix_A (A, chrec_a, 0, 1);
!   tree init_b = initialize_matrix_A (A, chrec_b, nb_vars_a, -1);
!   if (init_a == chrec_dont_know
!       || init_b == chrec_dont_know)
!     {
!       if (dump_file && (dump_flags & TDF_DETAILS))
! 	fprintf (dump_file, "affine-affine test failed: "
! 		 "representation issue.\n");
!       *overlaps_a = conflict_fn_not_known ();
!       *overlaps_b = conflict_fn_not_known ();
!       *last_conflicts = chrec_dont_know;
!       goto end_analyze_subs_aa;
!     }
!   gamma = int_cst_value (init_b) - int_cst_value (init_a);
  
    /* Don't do all the hard work of solving the Diophantine equation
       when we already know the solution: for example,
diff -Nrcpad gcc-7.4.0/gcc/tree-data-ref.h gcc-7.5.0/gcc/tree-data-ref.h
*** gcc-7.4.0/gcc/tree-data-ref.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-data-ref.h	Thu Sep  5 12:11:52 2019
*************** extern tree find_data_references_in_bb (
*** 338,344 ****
                                          vec<data_reference_p> *);
  
  extern bool dr_may_alias_p (const struct data_reference *,
! 			    const struct data_reference *, bool);
  extern bool dr_equal_offsets_p (struct data_reference *,
                                  struct data_reference *);
  
--- 338,344 ----
                                          vec<data_reference_p> *);
  
  extern bool dr_may_alias_p (const struct data_reference *,
! 			    const struct data_reference *, struct loop *);
  extern bool dr_equal_offsets_p (struct data_reference *,
                                  struct data_reference *);
  
diff -Nrcpad gcc-7.4.0/gcc/tree-inline.c gcc-7.5.0/gcc/tree-inline.c
*** gcc-7.4.0/gcc/tree-inline.c	Fri Oct 12 13:41:56 2018
--- gcc-7.5.0/gcc/tree-inline.c	Thu Sep  5 12:11:52 2019
*************** remap_type_1 (tree type, copy_body_data
*** 569,574 ****
--- 569,660 ----
    return new_tree;
  }
  
+ /* Helper function for remap_type_2, called through walk_tree.  */
+ 
+ static tree
+ remap_type_3 (tree *tp, int *walk_subtrees, void *data)
+ {
+   copy_body_data *id = (copy_body_data *) data;
+ 
+   if (TYPE_P (*tp))
+     *walk_subtrees = 0;
+ 
+   else if (DECL_P (*tp) && remap_decl (*tp, id) != *tp)
+     return *tp;
+ 
+   return NULL_TREE;
+ }
+ 
+ /* Return true if TYPE needs to be remapped because remap_decl on any
+    needed embedded decl returns something other than that decl.  */
+ 
+ static bool
+ remap_type_2 (tree type, copy_body_data *id)
+ {
+   tree t;
+ 
+ #define RETURN_TRUE_IF_VAR(T) \
+   do								\
+     {								\
+       tree _t = (T);						\
+       if (_t)							\
+ 	{							\
+ 	  if (DECL_P (_t) && remap_decl (_t, id) != _t)		\
+ 	    return true;					\
+ 	  if (!TYPE_SIZES_GIMPLIFIED (type)			\
+ 	      && walk_tree (&_t, remap_type_3, id, NULL))	\
+ 	    return true;					\
+ 	}							\
+     }								\
+   while (0)
+ 
+   switch (TREE_CODE (type))
+     {
+     case POINTER_TYPE:
+     case REFERENCE_TYPE:
+     case FUNCTION_TYPE:
+     case METHOD_TYPE:
+       return remap_type_2 (TREE_TYPE (type), id);
+ 
+     case INTEGER_TYPE:
+     case REAL_TYPE:
+     case FIXED_POINT_TYPE:
+     case ENUMERAL_TYPE:
+     case BOOLEAN_TYPE:
+       RETURN_TRUE_IF_VAR (TYPE_MIN_VALUE (type));
+       RETURN_TRUE_IF_VAR (TYPE_MAX_VALUE (type));
+       return false;
+ 
+     case ARRAY_TYPE:
+       if (remap_type_2 (TREE_TYPE (type), id)
+ 	  || (TYPE_DOMAIN (type) && remap_type_2 (TYPE_DOMAIN (type), id)))
+ 	return true;
+       break;
+ 
+     case RECORD_TYPE:
+     case UNION_TYPE:
+     case QUAL_UNION_TYPE:
+       for (t = TYPE_FIELDS (type); t; t = DECL_CHAIN (t))
+ 	if (TREE_CODE (t) == FIELD_DECL)
+ 	  {
+ 	    RETURN_TRUE_IF_VAR (DECL_FIELD_OFFSET (t));
+ 	    RETURN_TRUE_IF_VAR (DECL_SIZE (t));
+ 	    RETURN_TRUE_IF_VAR (DECL_SIZE_UNIT (t));
+ 	    if (TREE_CODE (type) == QUAL_UNION_TYPE)
+ 	      RETURN_TRUE_IF_VAR (DECL_QUALIFIER (t));
+ 	  }
+       break;
+ 
+     default:
+       return false;
+     }
+ 
+   RETURN_TRUE_IF_VAR (TYPE_SIZE (type));
+   RETURN_TRUE_IF_VAR (TYPE_SIZE_UNIT (type));
+   return false;
+ #undef RETURN_TRUE_IF_VAR
+ }
+ 
  tree
  remap_type (tree type, copy_body_data *id)
  {
*************** remap_type (tree type, copy_body_data *i
*** 584,590 ****
      return *node;
  
    /* The type only needs remapping if it's variably modified.  */
!   if (! variably_modified_type_p (type, id->src_fn))
      {
        insert_decl_map (id, type, type);
        return type;
--- 670,679 ----
      return *node;
  
    /* The type only needs remapping if it's variably modified.  */
!   if (! variably_modified_type_p (type, id->src_fn)
!       /* Don't remap if copy_decl method doesn't always return a new
! 	 decl and for all embedded decls returns the passed in decl.  */
!       || (id->dont_remap_vla_if_no_change && !remap_type_2 (type, id)))
      {
        insert_decl_map (id, type, type);
        return type;
*************** remap_dependence_clique (copy_body_data
*** 859,865 ****
    bool existed;
    unsigned short &newc = id->dependence_map->get_or_insert (clique, &existed);
    if (!existed)
!     newc = ++cfun->last_clique;
    return newc;
  }
  
--- 948,959 ----
    bool existed;
    unsigned short &newc = id->dependence_map->get_or_insert (clique, &existed);
    if (!existed)
!     {
!       /* Clique 1 is reserved for local ones set by PTA.  */
!       if (cfun->last_clique == 0)
! 	cfun->last_clique = 1;
!       newc = ++cfun->last_clique;
!     }
    return newc;
  }
  
*************** copy_loops (copy_body_data *id,
*** 2629,2635 ****
  	      dest_loop->simduid = remap_decl (src_loop->simduid, id);
  	      cfun->has_simduid_loops = true;
  	    }
! 
  	  /* Recurse.  */
  	  copy_loops (id, dest_loop, src_loop);
  	}
--- 2723,2733 ----
  	      dest_loop->simduid = remap_decl (src_loop->simduid, id);
  	      cfun->has_simduid_loops = true;
  	    }
! 	  if (id->src_cfun->last_clique != 0)
! 	    dest_loop->owned_clique
! 	      = remap_dependence_clique (id,
! 					 src_loop->owned_clique
! 					 ? src_loop->owned_clique : 1);
  	  /* Recurse.  */
  	  copy_loops (id, dest_loop, src_loop);
  	}
*************** estimate_num_insns (gimple *stmt, eni_we
*** 4173,4178 ****
--- 4271,4279 ----
  	   with very long asm statements.  */
  	if (count > 1000)
  	  count = 1000;
+ 	/* If this asm is asm inline, count anything as minimum size.  */
+ 	if (gimple_asm_inline_p (as_a <gasm *> (stmt)))
+ 	  count = MIN (1, count);
  	return count;
        }
  
diff -Nrcpad gcc-7.4.0/gcc/tree-inline.h gcc-7.5.0/gcc/tree-inline.h
*** gcc-7.4.0/gcc/tree-inline.h	Tue Mar 28 17:24:57 2017
--- gcc-7.5.0/gcc/tree-inline.h	Fri Aug 30 12:33:00 2019
*************** struct copy_body_data
*** 119,124 ****
--- 119,131 ----
    /* > 0 if we are remapping a type currently.  */
    int remapping_type_depth;
  
+   /* Usually copy_decl callback always creates new decls, in that case
+      we want to remap all variably_modified_type_p types.  If this flag
+      is set, remap_type will do further checks to see if remap_decl
+      of any decls mentioned in the type will remap to anything but itself
+      and only in that case will actually remap the type.  */
+   bool dont_remap_vla_if_no_change;
+ 
    /* A function to be called when duplicating BLOCK nodes.  */
    void (*transform_lang_insert_block) (tree);
  
diff -Nrcpad gcc-7.4.0/gcc/tree-loop-distribution.c gcc-7.5.0/gcc/tree-loop-distribution.c
*** gcc-7.4.0/gcc/tree-loop-distribution.c	Tue Mar 14 12:47:42 2017
--- gcc-7.5.0/gcc/tree-loop-distribution.c	Fri Aug 30 12:02:02 2019
*************** along with GCC; see the file COPYING3.
*** 64,69 ****
--- 64,70 ----
  #include "cfgloop.h"
  #include "tree-scalar-evolution.h"
  #include "tree-vectorizer.h"
+ #include "tree-eh.h"
  
  
  /* A Reduced Dependence Graph (RDG) vertex representing a statement.  */
*************** generate_memset_builtin (struct loop *lo
*** 815,820 ****
--- 816,822 ----
  
    nb_bytes = build_size_arg_loc (loc, partition->main_dr, partition->niter,
  				 partition->plus_one);
+   nb_bytes = rewrite_to_non_trapping_overflow (nb_bytes);
    nb_bytes = force_gimple_operand_gsi (&gsi, nb_bytes, true, NULL_TREE,
  				       false, GSI_CONTINUE_LINKING);
    mem = build_addr_arg_loc (loc, partition->main_dr, nb_bytes);
*************** generate_memcpy_builtin (struct loop *lo
*** 871,876 ****
--- 873,879 ----
  
    nb_bytes = build_size_arg_loc (loc, partition->main_dr, partition->niter,
  				 partition->plus_one);
+   nb_bytes = rewrite_to_non_trapping_overflow (nb_bytes);
    nb_bytes = force_gimple_operand_gsi (&gsi, nb_bytes, true, NULL_TREE,
  				       false, GSI_CONTINUE_LINKING);
    dest = build_addr_arg_loc (loc, partition->main_dr, nb_bytes);
diff -Nrcpad gcc-7.4.0/gcc/tree-outof-ssa.c gcc-7.5.0/gcc/tree-outof-ssa.c
*** gcc-7.4.0/gcc/tree-outof-ssa.c	Mon Feb 13 21:56:13 2017
--- gcc-7.5.0/gcc/tree-outof-ssa.c	Fri Aug 30 12:44:03 2019
*************** get_temp_reg (tree name)
*** 651,656 ****
--- 651,658 ----
    tree type = TREE_TYPE (name);
    int unsignedp;
    machine_mode reg_mode = promote_ssa_mode (name, &unsignedp);
+   if (reg_mode == BLKmode)
+     return assign_temp (type, 0, 0);
    rtx x = gen_reg_rtx (reg_mode);
    if (POINTER_TYPE_P (type))
      mark_reg_pointer (x, TYPE_ALIGN (TREE_TYPE (type)));
diff -Nrcpad gcc-7.4.0/gcc/tree-scalar-evolution.c gcc-7.5.0/gcc/tree-scalar-evolution.c
*** gcc-7.4.0/gcc/tree-scalar-evolution.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-scalar-evolution.c	Mon Sep  2 14:14:14 2019
*************** along with GCC; see the file COPYING3.
*** 280,285 ****
--- 280,286 ----
  #include "params.h"
  #include "tree-ssa-propagate.h"
  #include "gimple-fold.h"
+ #include "tree-into-ssa.h"
  
  static tree analyze_scalar_evolution_1 (struct loop *, tree, tree);
  static tree analyze_scalar_evolution_for_address_of (struct loop *loop,
*************** get_loop_exit_condition (const struct lo
*** 866,872 ****
        gimple *stmt;
  
        stmt = last_stmt (exit_edge->src);
!       if (gcond *cond_stmt = dyn_cast <gcond *> (stmt))
  	res = cond_stmt;
      }
  
--- 867,873 ----
        gimple *stmt;
  
        stmt = last_stmt (exit_edge->src);
!       if (gcond *cond_stmt = safe_dyn_cast <gcond *> (stmt))
  	res = cond_stmt;
      }
  
*************** simplify_peeled_chrec (struct loop *loop
*** 1412,1417 ****
--- 1413,1423 ----
        return build_polynomial_chrec (loop->num, init_cond, right);
      }
  
+   /* The affine code only deals with pointer and integer types.  */
+   if (!POINTER_TYPE_P (type)
+       && !INTEGRAL_TYPE_P (type))
+     return chrec_dont_know;
+ 
    /* Try harder to check if they are equal.  */
    tree_to_aff_combination_expand (left, type, &aff1, &peeled_chrec_map);
    tree_to_aff_combination_expand (step_val, type, &aff2, &peeled_chrec_map);
*************** static tree
*** 1532,1538 ****
  follow_copies_to_constant (tree var)
  {
    tree res = var;
!   while (TREE_CODE (res) == SSA_NAME)
      {
        gimple *def = SSA_NAME_DEF_STMT (res);
        if (gphi *phi = dyn_cast <gphi *> (def))
--- 1538,1547 ----
  follow_copies_to_constant (tree var)
  {
    tree res = var;
!   while (TREE_CODE (res) == SSA_NAME
! 	 /* We face not updated SSA form in multiple places and this walk
! 	    may end up in sibling loops so we have to guard it.  */
! 	 && !name_registered_for_update_p (res))
      {
        gimple *def = SSA_NAME_DEF_STMT (res);
        if (gphi *phi = dyn_cast <gphi *> (def))
diff -Nrcpad gcc-7.4.0/gcc/tree-sra.c gcc-7.5.0/gcc/tree-sra.c
*** gcc-7.4.0/gcc/tree-sra.c	Wed May 31 08:45:23 2017
--- gcc-7.5.0/gcc/tree-sra.c	Wed Aug 21 13:44:45 2019
*************** compare_access_positions (const void *a,
*** 1516,1534 ****
  	       && TREE_CODE (f2->type) != COMPLEX_TYPE
  	       && TREE_CODE (f2->type) != VECTOR_TYPE)
  	return -1;
!       /* Put the integral type with the bigger precision first.  */
        else if (INTEGRAL_TYPE_P (f1->type)
  	       && INTEGRAL_TYPE_P (f2->type))
- 	return TYPE_PRECISION (f2->type) - TYPE_PRECISION (f1->type);
-       /* Put any integral type with non-full precision last.  */
-       else if (INTEGRAL_TYPE_P (f1->type)
- 	       && (TREE_INT_CST_LOW (TYPE_SIZE (f1->type))
- 		   != TYPE_PRECISION (f1->type)))
  	return 1;
!       else if (INTEGRAL_TYPE_P (f2->type)
! 	       && (TREE_INT_CST_LOW (TYPE_SIZE (f2->type))
! 		   != TYPE_PRECISION (f2->type)))
! 	return -1;
        /* Stabilize the sort.  */
        return TYPE_UID (f1->type) - TYPE_UID (f2->type);
      }
--- 1516,1535 ----
  	       && TREE_CODE (f2->type) != COMPLEX_TYPE
  	       && TREE_CODE (f2->type) != VECTOR_TYPE)
  	return -1;
!       /* Put any integral type before any non-integral type.  When splicing, we
! 	 make sure that those with insufficient precision and occupying the
! 	 same space are not scalarized.  */
        else if (INTEGRAL_TYPE_P (f1->type)
+ 	       && !INTEGRAL_TYPE_P (f2->type))
+ 	return -1;
+       else if (!INTEGRAL_TYPE_P (f1->type)
  	       && INTEGRAL_TYPE_P (f2->type))
  	return 1;
!       /* Put the integral type with the bigger precision first.  */
!       else if (INTEGRAL_TYPE_P (f1->type)
! 	       && INTEGRAL_TYPE_P (f2->type)
! 	       && (TYPE_PRECISION (f2->type) != TYPE_PRECISION (f1->type)))
! 	return TYPE_PRECISION (f2->type) - TYPE_PRECISION (f1->type);
        /* Stabilize the sort.  */
        return TYPE_UID (f1->type) - TYPE_UID (f2->type);
      }
*************** sort_and_splice_var_accesses (tree var)
*** 2029,2034 ****
--- 2030,2040 ----
        bool grp_partial_lhs = access->grp_partial_lhs;
        bool first_scalar = is_gimple_reg_type (access->type);
        bool unscalarizable_region = access->grp_unscalarizable_region;
+       bool bf_non_full_precision
+ 	= (INTEGRAL_TYPE_P (access->type)
+ 	   && TYPE_PRECISION (access->type) != access->size
+ 	   && TREE_CODE (access->expr) == COMPONENT_REF
+ 	   && DECL_BIT_FIELD (TREE_OPERAND (access->expr, 1)));
  
        if (first || access->offset >= high)
  	{
*************** sort_and_splice_var_accesses (tree var)
*** 2076,2081 ****
--- 2082,2103 ----
  	     this combination of size and offset, the comparison function
  	     should have put the scalars first.  */
  	  gcc_assert (first_scalar || !is_gimple_reg_type (ac2->type));
+ 	  /* It also prefers integral types to non-integral.  However, when the
+ 	     precision of the selected type does not span the entire area and
+ 	     should also be used for a non-integer (i.e. float), we must not
+ 	     let that happen.  Normally analyze_access_subtree expands the type
+ 	     to cover the entire area but for bit-fields it doesn't.  */
+ 	  if (bf_non_full_precision && !INTEGRAL_TYPE_P (ac2->type))
+ 	    {
+ 	      if (dump_file && (dump_flags & TDF_DETAILS))
+ 		{
+ 		  fprintf (dump_file, "Cannot scalarize the following access "
+ 			   "because insufficient precision integer type was "
+ 			   "selected.\n  ");
+ 		  dump_access (dump_file, access, false);
+ 		}
+ 	      unscalarizable_region = true;
+ 	    }
  	  ac2->group_representative = access;
  	  j++;
  	}
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-copy.c gcc-7.5.0/gcc/tree-ssa-copy.c
*** gcc-7.4.0/gcc/tree-ssa-copy.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-ssa-copy.c	Fri Jun 28 21:01:56 2019
*************** fini_copy_prop (void)
*** 532,544 ****
  	      duplicate_ssa_name_ptr_info (copy_of[i].value,
  					   SSA_NAME_PTR_INFO (var));
  	      /* Points-to information is cfg insensitive,
! 		 but alignment info might be cfg sensitive, if it
! 		 e.g. is derived from VRP derived non-zero bits.
! 		 So, do not copy alignment info if the two SSA_NAMEs
! 		 aren't defined in the same basic block.  */
  	      if (var_bb != copy_of_bb)
! 		mark_ptr_info_alignment_unknown
! 				(SSA_NAME_PTR_INFO (copy_of[i].value));
  	    }
  	  else if (!POINTER_TYPE_P (TREE_TYPE (var))
  		   && SSA_NAME_RANGE_INFO (var)
--- 532,543 ----
  	      duplicate_ssa_name_ptr_info (copy_of[i].value,
  					   SSA_NAME_PTR_INFO (var));
  	      /* Points-to information is cfg insensitive,
! 		 but [E]VRP might record context sensitive alignment
! 		 info, non-nullness, etc.  So reset context sensitive
! 		 info if the two SSA_NAMEs aren't defined in the same
! 		 basic block.  */
  	      if (var_bb != copy_of_bb)
! 		reset_flow_sensitive_info (copy_of[i].value);
  	    }
  	  else if (!POINTER_TYPE_P (TREE_TYPE (var))
  		   && SSA_NAME_RANGE_INFO (var)
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-dom.c gcc-7.5.0/gcc/tree-ssa-dom.c
*** gcc-7.4.0/gcc/tree-ssa-dom.c	Tue Apr 11 13:44:24 2017
--- gcc-7.5.0/gcc/tree-ssa-dom.c	Tue Mar 26 11:18:26 2019
*************** pass_dominator::execute (function *fun)
*** 531,537 ****
  	  if (bb == NULL)
  	    continue;
  	  while (single_succ_p (bb)
! 		 && (single_succ_edge (bb)->flags & EDGE_EH) == 0)
  	    bb = single_succ (bb);
  	  if (bb == EXIT_BLOCK_PTR_FOR_FN (fun))
  	    continue;
--- 531,538 ----
  	  if (bb == NULL)
  	    continue;
  	  while (single_succ_p (bb)
! 		 && (single_succ_edge (bb)->flags
! 		     & (EDGE_EH|EDGE_DFS_BACK)) == 0)
  	    bb = single_succ (bb);
  	  if (bb == EXIT_BLOCK_PTR_FOR_FN (fun))
  	    continue;
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-forwprop.c gcc-7.5.0/gcc/tree-ssa-forwprop.c
*** gcc-7.4.0/gcc/tree-ssa-forwprop.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-ssa-forwprop.c	Mon Sep  2 12:56:24 2019
*************** pass_forwprop::execute (function *fun)
*** 2427,2432 ****
--- 2427,2434 ----
  		  {
  		    int did_something;
  		    did_something = forward_propagate_into_comparison (&gsi);
+ 		    if (maybe_clean_or_replace_eh_stmt (stmt, gsi_stmt (gsi)))
+ 		      bitmap_set_bit (to_purge, bb->index);
  		    if (did_something == 2)
  		      cfg_changed = true;
  		    changed = did_something != 0;
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-loop-ch.c gcc-7.5.0/gcc/tree-ssa-loop-ch.c
*** gcc-7.4.0/gcc/tree-ssa-loop-ch.c	Tue Nov 20 14:47:49 2018
--- gcc-7.5.0/gcc/tree-ssa-loop-ch.c	Mon Sep  2 14:14:14 2019
*************** should_duplicate_loop_header_p (basic_bl
*** 99,105 ****
      }
  
    last = last_stmt (header);
!   if (gimple_code (last) != GIMPLE_COND)
      {
        if (dump_file && (dump_flags & TDF_DETAILS))
  	fprintf (dump_file,
--- 99,105 ----
      }
  
    last = last_stmt (header);
!   if (!last || gimple_code (last) != GIMPLE_COND)
      {
        if (dump_file && (dump_flags & TDF_DETAILS))
  	fprintf (dump_file,
*************** ch_base::copy_headers (function *fun)
*** 373,383 ****
  		{
  		  gimple *stmt = gsi_stmt (bsi);
  		  if (gimple_code (stmt) == GIMPLE_COND)
! 		    gimple_set_no_warning (stmt, true);
  		  else if (is_gimple_assign (stmt))
  		    {
  		      enum tree_code rhs_code = gimple_assign_rhs_code (stmt);
! 		      if (TREE_CODE_CLASS (rhs_code) == tcc_comparison)
  			gimple_set_no_warning (stmt, true);
  		    }
  		}
--- 373,395 ----
  		{
  		  gimple *stmt = gsi_stmt (bsi);
  		  if (gimple_code (stmt) == GIMPLE_COND)
! 		    {
! 		      tree lhs = gimple_cond_lhs (stmt);
! 		      if (gimple_cond_code (stmt) != EQ_EXPR
! 			  && gimple_cond_code (stmt) != NE_EXPR
! 			  && INTEGRAL_TYPE_P (TREE_TYPE (lhs))
! 			  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (lhs)))
! 			gimple_set_no_warning (stmt, true);
! 		    }
  		  else if (is_gimple_assign (stmt))
  		    {
  		      enum tree_code rhs_code = gimple_assign_rhs_code (stmt);
! 		      tree rhs1 = gimple_assign_rhs1 (stmt);
! 		      if (TREE_CODE_CLASS (rhs_code) == tcc_comparison
! 			  && rhs_code != EQ_EXPR
! 			  && rhs_code != NE_EXPR
! 			  && INTEGRAL_TYPE_P (TREE_TYPE (rhs1))
! 			  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (rhs1)))
  			gimple_set_no_warning (stmt, true);
  		    }
  		}
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-loop-ivcanon.c gcc-7.5.0/gcc/tree-ssa-loop-ivcanon.c
*** gcc-7.4.0/gcc/tree-ssa-loop-ivcanon.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-ssa-loop-ivcanon.c	Mon Sep  2 14:14:14 2019
*************** canonicalize_loop_induction_variables (s
*** 1131,1137 ****
    niter = number_of_latch_executions (loop);
    exit = single_exit (loop);
    if (TREE_CODE (niter) == INTEGER_CST)
!     locus = gimple_location (last_stmt (exit->src));
    else
      {
        /* If the loop has more than one exit, try checking all of them
--- 1131,1137 ----
    niter = number_of_latch_executions (loop);
    exit = single_exit (loop);
    if (TREE_CODE (niter) == INTEGER_CST)
!     locus = gimple_location_safe (last_stmt (exit->src));
    else
      {
        /* If the loop has more than one exit, try checking all of them
*************** canonicalize_loop_induction_variables (s
*** 1146,1152 ****
  	niter = find_loop_niter_by_eval (loop, &exit);
  
        if (exit)
!         locus = gimple_location (last_stmt (exit->src));
  
        if (TREE_CODE (niter) != INTEGER_CST)
  	exit = NULL;
--- 1146,1152 ----
  	niter = find_loop_niter_by_eval (loop, &exit);
  
        if (exit)
!         locus = gimple_location_safe (last_stmt (exit->src));
  
        if (TREE_CODE (niter) != INTEGER_CST)
  	exit = NULL;
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-loop-ivopts.c gcc-7.5.0/gcc/tree-ssa-loop-ivopts.c
*** gcc-7.4.0/gcc/tree-ssa-loop-ivopts.c	Mon Apr 10 16:54:14 2017
--- gcc-7.5.0/gcc/tree-ssa-loop-ivopts.c	Mon Sep  2 10:10:44 2019
*************** struct ivopts_data
*** 566,571 ****
--- 566,574 ----
    /* The common candidates.  */
    vec<iv_common_cand *> iv_common_cands;
  
+   /* Hash map recording base object information of tree exp.  */
+   hash_map<tree, tree> *base_object_map;
+ 
    /* The maximum invariant id.  */
    unsigned max_inv_id;
  
*************** tree_ssa_iv_optimize_init (struct ivopts
*** 1066,1124 ****
    data->inv_expr_tab = new hash_table<iv_inv_expr_hasher> (10);
    data->max_inv_expr_id = 0;
    data->name_expansion_cache = NULL;
    data->iv_common_cand_tab = new hash_table<iv_common_cand_hasher> (10);
    data->iv_common_cands.create (20);
    decl_rtl_to_reset.create (20);
    gcc_obstack_init (&data->iv_obstack);
  }
  
! /* Returns a memory object to that EXPR points.  In case we are able to
!    determine that it does not point to any such object, NULL is returned.  */
  
  static tree
! determine_base_object (tree expr)
  {
!   enum tree_code code = TREE_CODE (expr);
!   tree base, obj;
! 
!   /* If this is a pointer casted to any type, we need to determine
!      the base object for the pointer; so handle conversions before
!      throwing away non-pointer expressions.  */
!   if (CONVERT_EXPR_P (expr))
!     return determine_base_object (TREE_OPERAND (expr, 0));
! 
!   if (!POINTER_TYPE_P (TREE_TYPE (expr)))
!     return NULL_TREE;
! 
!   switch (code)
      {
!     case INTEGER_CST:
!       return NULL_TREE;
! 
!     case ADDR_EXPR:
!       obj = TREE_OPERAND (expr, 0);
!       base = get_base_address (obj);
! 
        if (!base)
! 	return expr;
! 
!       if (TREE_CODE (base) == MEM_REF)
! 	return determine_base_object (TREE_OPERAND (base, 0));
  
!       return fold_convert (ptr_type_node,
! 			   build_fold_addr_expr (base));
  
!     case POINTER_PLUS_EXPR:
!       return determine_base_object (TREE_OPERAND (expr, 0));
  
!     case PLUS_EXPR:
!     case MINUS_EXPR:
!       /* Pointer addition is done solely using POINTER_PLUS_EXPR.  */
!       gcc_unreachable ();
  
!     default:
!       return fold_convert (ptr_type_node, expr);
      }
  }
  
  /* Return true if address expression with non-DECL_P operand appears
--- 1069,1136 ----
    data->inv_expr_tab = new hash_table<iv_inv_expr_hasher> (10);
    data->max_inv_expr_id = 0;
    data->name_expansion_cache = NULL;
+   data->base_object_map = NULL;
    data->iv_common_cand_tab = new hash_table<iv_common_cand_hasher> (10);
    data->iv_common_cands.create (20);
    decl_rtl_to_reset.create (20);
    gcc_obstack_init (&data->iv_obstack);
  }
  
! /* walk_tree callback for determine_base_object.  */
  
  static tree
! determine_base_object_1 (tree *tp, int *walk_subtrees, void *wdata)
  {
!   tree_code code = TREE_CODE (*tp);
!   tree obj = NULL_TREE;
!   if (code == ADDR_EXPR)
      {
!       tree base = get_base_address (TREE_OPERAND (*tp, 0));
        if (!base)
!         obj = *tp;
!       else if (TREE_CODE (base) != MEM_REF)
!         obj = fold_convert (ptr_type_node, build_fold_addr_expr (base));
!     }
!   else if (code == SSA_NAME && POINTER_TYPE_P (TREE_TYPE (*tp)))
!         obj = fold_convert (ptr_type_node, *tp);
  
!   if (!obj)
!     {
!       if (!EXPR_P (*tp))
!         *walk_subtrees = 0;
  
!       return NULL_TREE;
!     }
!   /* Record special node for multiple base objects and stop.  */
!   if (*static_cast<tree *> (wdata))
!     {
!       *static_cast<tree *> (wdata) = integer_zero_node;
!       return integer_zero_node;
!     }
!   /* Record the base object and continue looking.  */
!   *static_cast<tree *> (wdata) = obj;
!   return NULL_TREE;
! }
  
! /* Returns a memory object to that EXPR points with caching.  Return NULL if we
!    are able to determine that it does not point to any such object; specially
!    return integer_zero_node if EXPR contains multiple base objects.  */
  
! static tree
! determine_base_object (struct ivopts_data *data, tree expr)
! {
!   tree *slot, obj = NULL_TREE;
!   if (data->base_object_map)
!     {
!       if ((slot = data->base_object_map->get(expr)) != NULL)
!         return *slot;
      }
+   else
+     data->base_object_map = new hash_map<tree, tree>;
+ 
+   (void) walk_tree_without_duplicates (&expr, determine_base_object_1, &obj);
+   data->base_object_map->put (expr, obj);
+   return obj;
  }
  
  /* Return true if address expression with non-DECL_P operand appears
*************** alloc_iv (struct ivopts_data *data, tree
*** 1176,1182 ****
      }
  
    iv->base = base;
!   iv->base_object = determine_base_object (base);
    iv->step = step;
    iv->biv_p = false;
    iv->nonlin_use = NULL;
--- 1188,1194 ----
      }
  
    iv->base = base;
!   iv->base_object = determine_base_object (data, base);
    iv->step = step;
    iv->biv_p = false;
    iv->nonlin_use = NULL;
*************** tree_ssa_iv_optimize_finalize (struct iv
*** 7728,7733 ****
--- 7740,7747 ----
    delete data->inv_expr_tab;
    data->inv_expr_tab = NULL;
    free_affine_expand_cache (&data->name_expansion_cache);
+   if (data->base_object_map)
+     delete data->base_object_map;
    delete data->iv_common_cand_tab;
    data->iv_common_cand_tab = NULL;
    data->iv_common_cands.release ();
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-loop-split.c gcc-7.5.0/gcc/tree-ssa-loop-split.c
*** gcc-7.4.0/gcc/tree-ssa-loop-split.c	Wed Mar  8 11:35:23 2017
--- gcc-7.5.0/gcc/tree-ssa-loop-split.c	Tue Mar 26 13:18:23 2019
*************** tree_ssa_split_loops (void)
*** 649,655 ****
  					false, true)
  	  && niter.cmp != ERROR_MARK
  	  /* We can't yet handle loops controlled by a != predicate.  */
! 	  && niter.cmp != NE_EXPR)
  	{
  	  if (split_loop (loop, &niter))
  	    {
--- 649,656 ----
  					false, true)
  	  && niter.cmp != ERROR_MARK
  	  /* We can't yet handle loops controlled by a != predicate.  */
! 	  && niter.cmp != NE_EXPR
! 	  && can_duplicate_loop_p (loop))
  	{
  	  if (split_loop (loop, &niter))
  	    {
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-math-opts.c gcc-7.5.0/gcc/tree-ssa-math-opts.c
*** gcc-7.4.0/gcc/tree-ssa-math-opts.c	Fri Dec 22 08:52:28 2017
--- gcc-7.5.0/gcc/tree-ssa-math-opts.c	Fri Aug 30 12:36:49 2019
*************** is_division_by (gimple *use_stmt, tree d
*** 337,343 ****
  	 /* Do not recognize x / x as valid division, as we are getting
  	    confused later by replacing all immediate uses x in such
  	    a stmt.  */
! 	 && gimple_assign_rhs1 (use_stmt) != def;
  }
  
  /* Walk the subset of the dominator tree rooted at OCC, setting the
--- 337,344 ----
  	 /* Do not recognize x / x as valid division, as we are getting
  	    confused later by replacing all immediate uses x in such
  	    a stmt.  */
! 	 && gimple_assign_rhs1 (use_stmt) != def
! 	 && !stmt_can_throw_internal (use_stmt);
  }
  
  /* Walk the subset of the dominator tree rooted at OCC, setting the
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-phiopt.c gcc-7.5.0/gcc/tree-ssa-phiopt.c
*** gcc-7.4.0/gcc/tree-ssa-phiopt.c	Fri Dec 22 08:51:26 2017
--- gcc-7.5.0/gcc/tree-ssa-phiopt.c	Mon Sep  2 12:56:24 2019
*************** cond_store_replacement (basic_block midd
*** 1792,1797 ****
--- 1792,1802 ----
        || gimple_has_volatile_ops (assign))
      return false;
  
+   /* And no PHI nodes so all uses in the single stmt are also
+      available where we insert to.  */
+   if (!gimple_seq_empty_p (phi_nodes (middle_bb)))
+     return false;
+ 
    locus = gimple_location (assign);
    lhs = gimple_assign_lhs (assign);
    rhs = gimple_assign_rhs1 (assign);
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-phiprop.c gcc-7.5.0/gcc/tree-ssa-phiprop.c
*** gcc-7.4.0/gcc/tree-ssa-phiprop.c	Thu Feb  8 13:30:49 2018
--- gcc-7.5.0/gcc/tree-ssa-phiprop.c	Thu Oct 24 09:38:56 2019
*************** propagate_with_phi (basic_block bb, gphi
*** 338,345 ****
  	    && (!type
  		|| types_compatible_p
  		     (TREE_TYPE (gimple_assign_lhs (use_stmt)), type))
! 	    /* We cannot replace a load that may throw or is volatile.  */
! 	    && !stmt_can_throw_internal (use_stmt)))
  	continue;
  
        /* Check if we can move the loads.  The def stmt of the virtual use
--- 338,352 ----
  	    && (!type
  		|| types_compatible_p
  		     (TREE_TYPE (gimple_assign_lhs (use_stmt)), type))
! 	    /* We cannot replace a load that may throw or is volatile.
! 	       For volatiles the transform can change the number of
! 	       executions if the load is inside a loop but the address
! 	       computations outside (PR91812).  We could relax this
! 	       if we guard against that appropriately.  For loads that can
! 	       throw we could relax things if the moved loads all are
! 	       known to not throw.  */
! 	    && !stmt_can_throw_internal (use_stmt)
! 	    && !gimple_has_volatile_ops (use_stmt)))
  	continue;
  
        /* Check if we can move the loads.  The def stmt of the virtual use
*************** pass_phiprop::execute (function *fun)
*** 495,502 ****
    bbs = get_all_dominated_blocks (CDI_DOMINATORS,
  				  single_succ (ENTRY_BLOCK_PTR_FOR_FN (fun)));
    FOR_EACH_VEC_ELT (bbs, i, bb)
!     for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi))
!       did_something |= propagate_with_phi (bb, gsi.phi (), phivn, n);
  
    if (did_something)
      gsi_commit_edge_inserts ();
--- 502,515 ----
    bbs = get_all_dominated_blocks (CDI_DOMINATORS,
  				  single_succ (ENTRY_BLOCK_PTR_FOR_FN (fun)));
    FOR_EACH_VEC_ELT (bbs, i, bb)
!     {
!       /* Since we're going to move dereferences across predecessor
!          edges avoid blocks with abnormal predecessors.  */
!       if (bb_has_abnormal_pred (bb))
! 	continue;
!       for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi))
! 	did_something |= propagate_with_phi (bb, gsi.phi (), phivn, n);
!     }
  
    if (did_something)
      gsi_commit_edge_inserts ();
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-pre.c gcc-7.5.0/gcc/tree-ssa-pre.c
*** gcc-7.4.0/gcc/tree-ssa-pre.c	Tue Mar  6 10:01:52 2018
--- gcc-7.5.0/gcc/tree-ssa-pre.c	Mon Sep  2 12:56:24 2019
*************** compute_avail (void)
*** 3948,3953 ****
--- 3948,3960 ----
  			  continue;
  			}
  
+ 		      /* If the REFERENCE traps and there was a preceding
+ 		         point in the block that might not return avoid
+ 			 adding the reference to EXP_GEN.  */
+ 		      if (BB_MAY_NOTRETURN (block)
+ 			  && vn_reference_may_trap (ref))
+ 			continue;
+ 
  		      /* If the value of the reference is not invalidated in
  			 this block until it is computed, add the expression
  			 to EXP_GEN.  */
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-reassoc.c gcc-7.5.0/gcc/tree-ssa-reassoc.c
*** gcc-7.4.0/gcc/tree-ssa-reassoc.c	Fri Jun 22 21:19:32 2018
--- gcc-7.5.0/gcc/tree-ssa-reassoc.c	Fri Aug 30 16:44:17 2019
*************** eliminate_using_constants (enum tree_cod
*** 1012,1018 ****
  		    fprintf (dump_file, "Found * 0, removing all other ops\n");
  
  		  reassociate_stats.ops_eliminated += ops->length () - 1;
! 		  ops->truncate (1);
  		  ops->quick_push (oelast);
  		  return;
  		}
--- 1012,1018 ----
  		    fprintf (dump_file, "Found * 0, removing all other ops\n");
  
  		  reassociate_stats.ops_eliminated += ops->length () - 1;
! 		  ops->truncate (0);
  		  ops->quick_push (oelast);
  		  return;
  		}
*************** init_range_entry (struct range_entry *r,
*** 2140,2146 ****
  	  exp_type = boolean_type_node;
  	}
  
!       if (TREE_CODE (arg0) != SSA_NAME)
  	break;
        loc = gimple_location (stmt);
        switch (code)
--- 2140,2147 ----
  	  exp_type = boolean_type_node;
  	}
  
!       if (TREE_CODE (arg0) != SSA_NAME
! 	  || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (arg0))
  	break;
        loc = gimple_location (stmt);
        switch (code)
*************** rewrite_expr_tree_parallel (gassign *stm
*** 4593,4598 ****
--- 4594,4600 ----
        else
  	{
  	  stmts[i] = build_and_add_sum (TREE_TYPE (last_rhs1), op1, op2, opcode);
+ 	  gimple_set_visited (stmts[i], true);
  	}
        if (dump_file && (dump_flags & TDF_DETAILS))
  	{
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-sccvn.c gcc-7.5.0/gcc/tree-ssa-sccvn.c
*** gcc-7.4.0/gcc/tree-ssa-sccvn.c	Wed Nov 28 12:57:58 2018
--- gcc-7.5.0/gcc/tree-ssa-sccvn.c	Mon Sep  2 12:56:24 2019
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 1981,1989 ****
  	  tree rhs = gimple_assign_rhs1 (def_stmt);
  	  if (TREE_CODE (rhs) == SSA_NAME)
  	    rhs = SSA_VAL (rhs);
  	  len = native_encode_expr (gimple_assign_rhs1 (def_stmt),
  				    buffer, sizeof (buffer),
! 				    (offset - offset2) / BITS_PER_UNIT);
  	  if (len > 0 && len * BITS_PER_UNIT >= ref->size)
  	    {
  	      tree type = vr->type;
--- 1981,2000 ----
  	  tree rhs = gimple_assign_rhs1 (def_stmt);
  	  if (TREE_CODE (rhs) == SSA_NAME)
  	    rhs = SSA_VAL (rhs);
+ 	  unsigned pad = 0;
+ 	  enum machine_mode mode = TYPE_MODE (TREE_TYPE (rhs));
+ 	  if (BYTES_BIG_ENDIAN
+ 	      && (SCALAR_INT_MODE_P (mode)
+ 		  || ALL_SCALAR_FIXED_POINT_MODE_P (mode)
+ 		  || SCALAR_FLOAT_MODE_P (mode)))
+ 	    {
+ 	      /* On big-endian the padding is at the 'front' so
+ 		 just skip the initial bytes.  */
+ 	      pad = GET_MODE_SIZE (mode) - size2 / BITS_PER_UNIT;
+ 	    }
  	  len = native_encode_expr (gimple_assign_rhs1 (def_stmt),
  				    buffer, sizeof (buffer),
! 				    (offset - offset2) / BITS_PER_UNIT + pad);
  	  if (len > 0 && len * BITS_PER_UNIT >= ref->size)
  	    {
  	      tree type = vr->type;
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 2029,2034 ****
--- 2040,2046 ----
        base2 = get_ref_base_and_extent (gimple_assign_lhs (def_stmt),
  				       &offset2, &size2, &maxsize2,
  				       &reverse);
+       tree def_rhs = gimple_assign_rhs1 (def_stmt);
        if (!reverse
  	  && maxsize2 != -1
  	  && maxsize2 == size2
*************** vn_reference_lookup_3 (ao_ref *ref, tree
*** 2041,2051 ****
  	     according to endianness.  */
  	  && (! INTEGRAL_TYPE_P (vr->type)
  	      || ref->size == TYPE_PRECISION (vr->type))
! 	  && ref->size % BITS_PER_UNIT == 0)
  	{
  	  code_helper rcode = BIT_FIELD_REF;
  	  tree ops[3];
! 	  ops[0] = SSA_VAL (gimple_assign_rhs1 (def_stmt));
  	  ops[1] = bitsize_int (ref->size);
  	  ops[2] = bitsize_int (offset - offset2);
  	  tree val = vn_nary_build_or_lookup (rcode, vr->type, ops);
--- 2053,2066 ----
  	     according to endianness.  */
  	  && (! INTEGRAL_TYPE_P (vr->type)
  	      || ref->size == TYPE_PRECISION (vr->type))
! 	  && ref->size % BITS_PER_UNIT == 0
! 	  && (! INTEGRAL_TYPE_P (TREE_TYPE (def_rhs))
! 	      || (TYPE_PRECISION (TREE_TYPE (def_rhs))
! 		  == GET_MODE_PRECISION (TYPE_MODE (TREE_TYPE (def_rhs))))))
  	{
  	  code_helper rcode = BIT_FIELD_REF;
  	  tree ops[3];
! 	  ops[0] = SSA_VAL (def_rhs);
  	  ops[1] = bitsize_int (ref->size);
  	  ops[2] = bitsize_int (offset - offset2);
  	  tree val = vn_nary_build_or_lookup (rcode, vr->type, ops);
*************** visit_nary_op (tree lhs, gassign *stmt)
*** 3572,3578 ****
  		  ops[0] = vn_nary_op_lookup_pieces
  		      (2, gimple_assign_rhs_code (def), type, ops, NULL);
  		  /* We have wider operation available.  */
! 		  if (ops[0])
  		    {
  		      unsigned lhs_prec = TYPE_PRECISION (type);
  		      unsigned rhs_prec = TYPE_PRECISION (TREE_TYPE (rhs1));
--- 3587,3603 ----
  		  ops[0] = vn_nary_op_lookup_pieces
  		      (2, gimple_assign_rhs_code (def), type, ops, NULL);
  		  /* We have wider operation available.  */
! 		  if (ops[0]
! 		      /* If the leader is a wrapping operation we can
! 			 insert it for code hoisting w/o introducing
! 			 undefined overflow.  If it is not it has to
! 			 be available.  See PR86554.  */
! 		      && (TYPE_OVERFLOW_WRAPS (TREE_TYPE (ops[0]))
! 			  || TREE_CODE (ops[0]) != SSA_NAME
! 			  || SSA_NAME_IS_DEFAULT_DEF (ops[0])
! 			  || dominated_by_p_w_unex
! 			       (gimple_bb (stmt),
! 				gimple_bb (SSA_NAME_DEF_STMT (ops[0])))))
  		    {
  		      unsigned lhs_prec = TYPE_PRECISION (type);
  		      unsigned rhs_prec = TYPE_PRECISION (TREE_TYPE (rhs1));
*************** vn_nary_may_trap (vn_nary_op_t nary)
*** 5133,5135 ****
--- 5158,5211 ----
  
    return false;
  }
+ 
+ /* Return true if the reference operation REF may trap.  */
+ 
+ bool
+ vn_reference_may_trap (vn_reference_t ref)
+ {
+   switch (ref->operands[0].opcode)
+     {
+     case MODIFY_EXPR:
+     case CALL_EXPR:
+       /* We do not handle calls.  */
+     case ADDR_EXPR:
+       /* And toplevel address computations never trap.  */
+       return false;
+     default:;
+     }
+ 
+   vn_reference_op_t op;
+   unsigned i;
+   FOR_EACH_VEC_ELT (ref->operands, i, op)
+     {
+       switch (op->opcode)
+ 	{
+ 	case WITH_SIZE_EXPR:
+ 	case TARGET_MEM_REF:
+ 	  /* Always variable.  */
+ 	  return true;
+ 	case COMPONENT_REF:
+ 	  if (op->op1 && TREE_CODE (op->op1) == SSA_NAME)
+ 	    return true;
+ 	  break;
+ 	case ARRAY_RANGE_REF:
+ 	case ARRAY_REF:
+ 	  if (TREE_CODE (op->op0) == SSA_NAME)
+ 	    return true;
+ 	  break;
+ 	case MEM_REF:
+ 	  /* Nothing interesting in itself, the base is separate.  */
+ 	  break;
+ 	/* The following are the address bases.  */
+ 	case SSA_NAME:
+ 	  return true;
+ 	case ADDR_EXPR:
+ 	  if (op->op0)
+ 	    return tree_could_trap_p (TREE_OPERAND (op->op0, 0));
+ 	  return false;
+ 	default:;
+ 	}
+     }
+   return false;
+ }
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-sccvn.h gcc-7.5.0/gcc/tree-ssa-sccvn.h
*** gcc-7.4.0/gcc/tree-ssa-sccvn.h	Wed May  3 11:22:34 2017
--- gcc-7.5.0/gcc/tree-ssa-sccvn.h	Mon Sep  2 12:56:24 2019
*************** vn_reference_t vn_reference_insert_piece
*** 237,242 ****
--- 237,243 ----
  bool vn_nary_op_eq (const_vn_nary_op_t const vno1,
  		    const_vn_nary_op_t const vno2);
  bool vn_nary_may_trap (vn_nary_op_t);
+ bool vn_reference_may_trap (vn_reference_t);
  bool vn_reference_eq (const_vn_reference_t const, const_vn_reference_t const);
  unsigned int get_max_value_id (void);
  unsigned int get_next_value_id (void);
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-sink.c gcc-7.5.0/gcc/tree-ssa-sink.c
*** gcc-7.4.0/gcc/tree-ssa-sink.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-ssa-sink.c	Fri Aug 30 16:44:17 2019
*************** statement_sink_location (gimple *stmt, b
*** 431,437 ****
  	  if (sinkbb == frombb)
  	    return false;
  
! 	  *togsi = gsi_for_stmt (use);
  
  	  return true;
  	}
--- 431,440 ----
  	  if (sinkbb == frombb)
  	    return false;
  
! 	  if (sinkbb == gimple_bb (use))
! 	    *togsi = gsi_for_stmt (use);
! 	  else
! 	    *togsi = gsi_after_labels (sinkbb);
  
  	  return true;
  	}
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-strlen.c gcc-7.5.0/gcc/tree-ssa-strlen.c
*** gcc-7.4.0/gcc/tree-ssa-strlen.c	Wed Jan 17 11:43:56 2018
--- gcc-7.5.0/gcc/tree-ssa-strlen.c	Fri Aug 30 12:18:54 2019
*************** valid_builtin_call (gimple *stmt)
*** 936,945 ****
--- 936,953 ----
      return false;
  
    tree callee = gimple_call_fndecl (stmt);
+   tree decl = builtin_decl_explicit (DECL_FUNCTION_CODE (callee));
+   if (decl
+       && decl != callee
+       && !gimple_builtin_call_types_compatible_p (stmt, decl))
+     return false;
+ 
    switch (DECL_FUNCTION_CODE (callee))
      {
      case BUILT_IN_MEMCMP:
      case BUILT_IN_MEMCMP_EQ:
+     case BUILT_IN_STRCMP:
+     case BUILT_IN_STRNCMP:
      case BUILT_IN_STRCHR:
      case BUILT_IN_STRCHR_CHKP:
      case BUILT_IN_STRLEN:
*************** valid_builtin_call (gimple *stmt)
*** 964,969 ****
--- 972,979 ----
      case BUILT_IN_STPCPY_CHK:
      case BUILT_IN_STPCPY_CHKP:
      case BUILT_IN_STPCPY_CHK_CHKP:
+     case BUILT_IN_STPNCPY:
+     case BUILT_IN_STPNCPY_CHK:
      case BUILT_IN_STRCAT:
      case BUILT_IN_STRCAT_CHK:
      case BUILT_IN_STRCAT_CHKP:
*************** valid_builtin_call (gimple *stmt)
*** 972,977 ****
--- 982,991 ----
      case BUILT_IN_STRCPY_CHK:
      case BUILT_IN_STRCPY_CHKP:
      case BUILT_IN_STRCPY_CHK_CHKP:
+     case BUILT_IN_STRNCAT:
+     case BUILT_IN_STRNCAT_CHK:
+     case BUILT_IN_STRNCPY:
+     case BUILT_IN_STRNCPY_CHK:
        /* The above functions should be neither const nor pure.  Punt if they
  	 aren't.  */
        if (gimple_vdef (stmt) == NULL_TREE || gimple_vuse (stmt) == NULL_TREE)
diff -Nrcpad gcc-7.4.0/gcc/tree-ssa-structalias.c gcc-7.5.0/gcc/tree-ssa-structalias.c
*** gcc-7.4.0/gcc/tree-ssa-structalias.c	Mon Nov 26 13:31:21 2018
--- gcc-7.5.0/gcc/tree-ssa-structalias.c	Thu Sep  5 12:11:52 2019
*************** set_uids_in_ptset (bitmap into, bitmap f
*** 6322,6328 ****
  	      && bitmap_bit_p (escaped_vi->solution, i)))
  	{
  	  pt->vars_contains_escaped = true;
! 	  pt->vars_contains_escaped_heap = vi->is_heap_var;
  	}
  
        if (vi->is_restrict_var)
--- 6322,6328 ----
  	      && bitmap_bit_p (escaped_vi->solution, i)))
  	{
  	  pt->vars_contains_escaped = true;
! 	  pt->vars_contains_escaped_heap |= vi->is_heap_var;
  	}
  
        if (vi->is_restrict_var)
*************** maybe_set_dependence_info (tree ref, tre
*** 7365,7371 ****
        if (MR_DEPENDENCE_CLIQUE (ref) == 0)
  	{
  	  if (clique == 0)
! 	    clique = ++cfun->last_clique;
  	  if (restrict_var->ruid == 0)
  	    restrict_var->ruid = ++last_ruid;
  	  MR_DEPENDENCE_CLIQUE (ref) = clique;
--- 7365,7375 ----
        if (MR_DEPENDENCE_CLIQUE (ref) == 0)
  	{
  	  if (clique == 0)
! 	    {
! 	      if (cfun->last_clique == 0)
! 		cfun->last_clique = 1;
! 	      clique = 1;
! 	    }
  	  if (restrict_var->ruid == 0)
  	    restrict_var->ruid = ++last_ruid;
  	  MR_DEPENDENCE_CLIQUE (ref) = clique;
*************** maybe_set_dependence_info (tree ref, tre
*** 7376,7387 ****
--- 7380,7421 ----
    return false;
  }
  
+ /* Clear dependence info for the clique DATA.  */
+ 
+ static bool
+ clear_dependence_clique (gimple *, tree base, tree, void *data)
+ {
+   unsigned short clique = (uintptr_t)data;
+   if ((TREE_CODE (base) == MEM_REF
+        || TREE_CODE (base) == TARGET_MEM_REF)
+       && MR_DEPENDENCE_CLIQUE (base) == clique)
+     {
+       MR_DEPENDENCE_CLIQUE (base) = 0;
+       MR_DEPENDENCE_BASE (base) = 0;
+     }
+ 
+   return false;
+ }
+ 
  /* Compute the set of independend memory references based on restrict
     tags and their conservative propagation to the points-to sets.  */
  
  static void
  compute_dependence_clique (void)
  {
+   /* First clear the special "local" clique.  */
+   basic_block bb;
+   if (cfun->last_clique != 0)
+     FOR_EACH_BB_FN (bb, cfun)
+       for (gimple_stmt_iterator gsi = gsi_start_bb (bb);
+ 	   !gsi_end_p (gsi); gsi_next (&gsi))
+ 	{
+ 	  gimple *stmt = gsi_stmt (gsi);
+ 	  walk_stmt_load_store_ops (stmt, (void *)(uintptr_t) 1,
+ 				    clear_dependence_clique,
+ 				    clear_dependence_clique);
+ 	}
+ 
    unsigned short clique = 0;
    unsigned short last_ruid = 0;
    bitmap rvars = BITMAP_ALLOC (NULL);
*************** compute_dependence_clique (void)
*** 7456,7462 ****
  	    }
  	  if (used)
  	    {
! 	      bitmap_set_bit (rvars, restrict_var->id);
  	      varinfo_t escaped = get_varinfo (find (escaped_id));
  	      if (bitmap_bit_p (escaped->solution, restrict_var->id))
  		escaped_p = true;
--- 7490,7499 ----
  	    }
  	  if (used)
  	    {
! 	      /* Add all subvars to the set of restrict pointed-to set. */
! 	      for (unsigned sv = restrict_var->head; sv != 0;
! 		   sv = get_varinfo (sv)->next)
! 		bitmap_set_bit (rvars, sv);
  	      varinfo_t escaped = get_varinfo (find (escaped_id));
  	      if (bitmap_bit_p (escaped->solution, restrict_var->id))
  		escaped_p = true;
diff -Nrcpad gcc-7.4.0/gcc/tree-ssanames.c gcc-7.5.0/gcc/tree-ssanames.c
*** gcc-7.4.0/gcc/tree-ssanames.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/gcc/tree-ssanames.c	Fri Jun 28 21:01:56 2019
*************** reset_flow_sensitive_info (tree name)
*** 744,750 ****
      {
        /* points-to info is not flow-sensitive.  */
        if (SSA_NAME_PTR_INFO (name))
! 	mark_ptr_info_alignment_unknown (SSA_NAME_PTR_INFO (name));
      }
    else
      SSA_NAME_RANGE_INFO (name) = NULL;
--- 744,755 ----
      {
        /* points-to info is not flow-sensitive.  */
        if (SSA_NAME_PTR_INFO (name))
! 	{
! 	  /* [E]VRP can derive context sensitive alignment info and
! 	     non-nullness properties.  We must reset both.  */
! 	  mark_ptr_info_alignment_unknown (SSA_NAME_PTR_INFO (name));
! 	  SSA_NAME_PTR_INFO (name)->pt.null = 1;
! 	}
      }
    else
      SSA_NAME_RANGE_INFO (name) = NULL;
diff -Nrcpad gcc-7.4.0/gcc/tree-streamer-in.c gcc-7.5.0/gcc/tree-streamer-in.c
*** gcc-7.4.0/gcc/tree-streamer-in.c	Wed Apr 12 07:35:49 2017
--- gcc-7.5.0/gcc/tree-streamer-in.c	Fri Aug 30 12:41:43 2019
*************** unpack_ts_decl_common_value_fields (stru
*** 244,262 ****
        LABEL_DECL_UID (expr) = -1;
      }
  
!   if (TREE_CODE (expr) == FIELD_DECL)
      {
        DECL_PACKED (expr) = (unsigned) bp_unpack_value (bp, 1);
        DECL_NONADDRESSABLE_P (expr) = (unsigned) bp_unpack_value (bp, 1);
        expr->decl_common.off_align = bp_unpack_value (bp, 8);
      }
  
!   if (VAR_P (expr))
      {
        DECL_HAS_DEBUG_EXPR_P (expr) = (unsigned) bp_unpack_value (bp, 1);
        DECL_NONLOCAL_FRAME (expr) = (unsigned) bp_unpack_value (bp, 1);
      }
  
    if (TREE_CODE (expr) == RESULT_DECL
        || TREE_CODE (expr) == PARM_DECL
        || VAR_P (expr))
--- 244,265 ----
        LABEL_DECL_UID (expr) = -1;
      }
  
!   else if (TREE_CODE (expr) == FIELD_DECL)
      {
        DECL_PACKED (expr) = (unsigned) bp_unpack_value (bp, 1);
        DECL_NONADDRESSABLE_P (expr) = (unsigned) bp_unpack_value (bp, 1);
        expr->decl_common.off_align = bp_unpack_value (bp, 8);
      }
  
!   else if (VAR_P (expr))
      {
        DECL_HAS_DEBUG_EXPR_P (expr) = (unsigned) bp_unpack_value (bp, 1);
        DECL_NONLOCAL_FRAME (expr) = (unsigned) bp_unpack_value (bp, 1);
      }
  
+   else if (TREE_CODE (expr) == PARM_DECL)
+     DECL_HIDDEN_STRING_LENGTH (expr) = (unsigned) bp_unpack_value (bp, 1);
+ 
    if (TREE_CODE (expr) == RESULT_DECL
        || TREE_CODE (expr) == PARM_DECL
        || VAR_P (expr))
diff -Nrcpad gcc-7.4.0/gcc/tree-streamer-out.c gcc-7.5.0/gcc/tree-streamer-out.c
*** gcc-7.4.0/gcc/tree-streamer-out.c	Wed Apr 12 07:35:49 2017
--- gcc-7.5.0/gcc/tree-streamer-out.c	Fri Aug 30 12:41:43 2019
*************** pack_ts_decl_common_value_fields (struct
*** 207,225 ****
        bp_pack_var_len_unsigned (bp, EH_LANDING_PAD_NR (expr));
      }
  
!   if (TREE_CODE (expr) == FIELD_DECL)
      {
        bp_pack_value (bp, DECL_PACKED (expr), 1);
        bp_pack_value (bp, DECL_NONADDRESSABLE_P (expr), 1);
        bp_pack_value (bp, expr->decl_common.off_align, 8);
      }
  
!   if (VAR_P (expr))
      {
        bp_pack_value (bp, DECL_HAS_DEBUG_EXPR_P (expr), 1);
        bp_pack_value (bp, DECL_NONLOCAL_FRAME (expr), 1);
      }
  
    if (TREE_CODE (expr) == RESULT_DECL
        || TREE_CODE (expr) == PARM_DECL
        || VAR_P (expr))
--- 207,228 ----
        bp_pack_var_len_unsigned (bp, EH_LANDING_PAD_NR (expr));
      }
  
!   else if (TREE_CODE (expr) == FIELD_DECL)
      {
        bp_pack_value (bp, DECL_PACKED (expr), 1);
        bp_pack_value (bp, DECL_NONADDRESSABLE_P (expr), 1);
        bp_pack_value (bp, expr->decl_common.off_align, 8);
      }
  
!   else if (VAR_P (expr))
      {
        bp_pack_value (bp, DECL_HAS_DEBUG_EXPR_P (expr), 1);
        bp_pack_value (bp, DECL_NONLOCAL_FRAME (expr), 1);
      }
  
+   else if (TREE_CODE (expr) == PARM_DECL)
+     bp_pack_value (bp, DECL_HIDDEN_STRING_LENGTH (expr), 1);
+ 
    if (TREE_CODE (expr) == RESULT_DECL
        || TREE_CODE (expr) == PARM_DECL
        || VAR_P (expr))
diff -Nrcpad gcc-7.4.0/gcc/tree-vect-data-refs.c gcc-7.5.0/gcc/tree-vect-data-refs.c
*** gcc-7.4.0/gcc/tree-vect-data-refs.c	Mon Nov 26 13:31:21 2018
--- gcc-7.5.0/gcc/tree-vect-data-refs.c	Wed Sep  4 11:56:15 2019
*************** along with GCC; see the file COPYING3.
*** 50,55 ****
--- 50,56 ----
  #include "expr.h"
  #include "builtins.h"
  #include "params.h"
+ #include "internal-fn.h"
  
  /* Return true if load- or store-lanes optab OPTAB is implemented for
     COUNT vectors of type VECTYPE.  NAME is the name of OPTAB.  */
*************** vect_get_smallest_scalar_type (gimple *s
*** 131,136 ****
--- 132,161 ----
        if (rhs < lhs)
          scalar_type = rhs_type;
      }
+   else if (gcall *call = dyn_cast <gcall *> (stmt))
+     {
+       unsigned int i = 0;
+       if (gimple_call_internal_p (call))
+ 	{
+ 	  internal_fn ifn = gimple_call_internal_fn (call);
+ 	  if (internal_load_fn_p (ifn) || internal_store_fn_p (ifn))
+ 	    /* gimple_expr_type already picked the type of the loaded
+ 	       or stored data.  */
+ 	    i = ~0U;
+ 	  else if (internal_fn_mask_index (ifn) == 0)
+ 	    i = 1;
+ 	}
+       if (i < gimple_call_num_args (call))
+ 	{
+ 	  tree rhs_type = TREE_TYPE (gimple_call_arg (call, i));
+ 	  if (tree_fits_uhwi_p (TYPE_SIZE_UNIT (rhs_type)))
+ 	    {
+ 	      rhs = TREE_INT_CST_LOW (TYPE_SIZE_UNIT (rhs_type));
+ 	      if (rhs < lhs)
+ 		scalar_type = rhs_type;
+ 	    }
+ 	}
+     }
  
    *lhs_size_unit = lhs;
    *rhs_size_unit = rhs;
*************** vect_analyze_data_ref_dependence (struct
*** 445,452 ****
  	     reversed (to make distance vector positive), and the actual
  	     distance is negative.  */
  	  if (dump_enabled_p ())
! 	    dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
  	                     "dependence distance negative.\n");
  	  /* Record a negative dependence distance to later limit the
  	     amount of stmt copying / unrolling we can perform.
  	     Only need to handle read-after-write dependence.  */
--- 470,488 ----
  	     reversed (to make distance vector positive), and the actual
  	     distance is negative.  */
  	  if (dump_enabled_p ())
! 	    dump_printf_loc (MSG_NOTE, vect_location,
  	                     "dependence distance negative.\n");
+ 	  /* When doing outer loop vectorization, we need to check if there is
+ 	     a backward dependence at the inner loop level if the dependence
+ 	     at the outer loop is reversed.  See PR81740.  */
+ 	  if (nested_in_vect_loop_p (loop, DR_STMT (dra))
+ 	      || nested_in_vect_loop_p (loop, DR_STMT (drb)))
+ 	    {
+ 	      unsigned inner_depth = index_in_loop_nest (loop->inner->num,
+ 							 DDR_LOOP_NEST (ddr));
+ 	      if (dist_v[inner_depth] < 0)
+ 		return true;
+ 	    }
  	  /* Record a negative dependence distance to later limit the
  	     amount of stmt copying / unrolling we can perform.
  	     Only need to handle read-after-write dependence.  */
diff -Nrcpad gcc-7.4.0/gcc/tree-vect-slp.c gcc-7.5.0/gcc/tree-vect-slp.c
*** gcc-7.4.0/gcc/tree-vect-slp.c	Fri Oct 20 11:18:00 2017
--- gcc-7.5.0/gcc/tree-vect-slp.c	Wed Sep  4 10:51:02 2019
*************** vect_slp_analyze_node_operations (slp_tr
*** 2482,2498 ****
        gcc_assert (stmt_info);
        gcc_assert (STMT_SLP_TYPE (stmt_info) != loop_vect);
  
        /* Push SLP node def-type to stmt operands.  */
        FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), j, child)
  	if (SLP_TREE_DEF_TYPE (child) != vect_internal_def)
  	  STMT_VINFO_DEF_TYPE (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (child)[i]))
  	    = SLP_TREE_DEF_TYPE (child);
!       res = vect_analyze_stmt (stmt, &dummy, node);
        /* Restore def-types.  */
        FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), j, child)
  	if (SLP_TREE_DEF_TYPE (child) != vect_internal_def)
  	  STMT_VINFO_DEF_TYPE (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (child)[i]))
! 	    = vect_internal_def;
        if (! res)
  	break;
      }
--- 2482,2528 ----
        gcc_assert (stmt_info);
        gcc_assert (STMT_SLP_TYPE (stmt_info) != loop_vect);
  
+       /* ???  We have to catch the case late where two first scalar stmts appear
+ 	 in multiple SLP children with different def type and fail.  Remember
+ 	 original def types first since SLP_TREE_DEF_TYPE doesn't necessarily
+ 	 match it when that is vect_internal_def.  */
+       auto_vec<vect_def_type, 4> dt;
+       dt.safe_grow (SLP_TREE_CHILDREN (node).length ());
+       FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), j, child)
+ 	dt[j]
+ 	  = STMT_VINFO_DEF_TYPE (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (child)[i]));
+ 
        /* Push SLP node def-type to stmt operands.  */
        FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), j, child)
  	if (SLP_TREE_DEF_TYPE (child) != vect_internal_def)
  	  STMT_VINFO_DEF_TYPE (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (child)[i]))
  	    = SLP_TREE_DEF_TYPE (child);
! 
!       /* Check everything worked out.  */
!       FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), j, child)
! 	if (SLP_TREE_DEF_TYPE (child) != vect_internal_def)
! 	  {
! 	    if (STMT_VINFO_DEF_TYPE
! 		  (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (child)[i]))
! 		!= SLP_TREE_DEF_TYPE (child))
! 	      res = false;
! 	  }
! 	else if (STMT_VINFO_DEF_TYPE
! 		   (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (child)[i])) != dt[j])
! 	  res = false;
!       if (!res && dump_enabled_p ())
! 	dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
! 			 "not vectorized: same operand with different "
! 			 "def type in stmt.\n");
! 
!       if (res)
! 	res = vect_analyze_stmt (stmt, &dummy, node);
! 
        /* Restore def-types.  */
        FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (node), j, child)
  	if (SLP_TREE_DEF_TYPE (child) != vect_internal_def)
  	  STMT_VINFO_DEF_TYPE (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (child)[i]))
! 	    = dt[j];
        if (! res)
  	break;
      }
diff -Nrcpad gcc-7.4.0/gcc/tree-vect-stmts.c gcc-7.5.0/gcc/tree-vect-stmts.c
*** gcc-7.4.0/gcc/tree-vect-stmts.c	Thu Jun  7 10:10:00 2018
--- gcc-7.5.0/gcc/tree-vect-stmts.c	Wed Sep  4 08:06:24 2019
*************** vectorizable_shift (gimple *stmt, gimple
*** 4943,4948 ****
--- 4943,4958 ----
  	  FOR_EACH_VEC_ELT (stmts, k, slpstmt)
  	    if (!operand_equal_p (gimple_assign_rhs2 (slpstmt), op1, 0))
  	      scalar_shift_arg = false;
+ 
+ 	  /* For internal SLP defs we have to make sure we see scalar stmts
+ 	     for all vector elements.
+ 	     ???  For different vectors we could resort to a different
+ 	     scalar shift operand but code-generation below simply always
+ 	     takes the first.  */
+ 	  if (dt[1] == vect_internal_def
+ 	      && (nunits_out * SLP_TREE_NUMBER_OF_VEC_STMTS (slp_node)
+ 		  != stmts.length ()))
+ 	    scalar_shift_arg = false;
  	}
  
        /* If the shift amount is computed by a pattern stmt we cannot
diff -Nrcpad gcc-7.4.0/gcc/tree-vrp.c gcc-7.5.0/gcc/tree-vrp.c
*** gcc-7.4.0/gcc/tree-vrp.c	Fri Jun 22 21:33:07 2018
--- gcc-7.5.0/gcc/tree-vrp.c	Wed Oct 23 13:17:34 2019
*************** extract_range_from_binary_expr_1 (value_
*** 2535,2544 ****
  		max_ovf = 1;
  	    }
  
! 	  /* If we have overflow for the constant part and the resulting
! 	     range will be symbolic, drop to VR_VARYING.  */
! 	  if ((min_ovf && sym_min_op0 != sym_min_op1)
! 	      || (max_ovf && sym_max_op0 != sym_max_op1))
  	    {
  	      set_value_range_to_varying (vr);
  	      return;
--- 2535,2547 ----
  		max_ovf = 1;
  	    }
  
! 	  /* If the resulting range will be symbolic, we need to eliminate any
! 	     explicit or implicit overflow introduced in the above computation
! 	     because compare_values could make an incorrect use of it.  That's
! 	     why we require one of the ranges to be a singleton.  */
! 	  if ((sym_min_op0 != sym_min_op1 || sym_max_op0 != sym_max_op1)
! 	      && (min_ovf || max_ovf
! 		  || (min_op0 != max_op0 && min_op1 != max_op1)))
  	    {
  	      set_value_range_to_varying (vr);
  	      return;
diff -Nrcpad gcc-7.4.0/gcc/tree.c gcc-7.5.0/gcc/tree.c
*** gcc-7.4.0/gcc/tree.c	Sat Aug 25 11:52:15 2018
--- gcc-7.5.0/gcc/tree.c	Fri Aug 30 12:14:46 2019
*************** handle_dll_attribute (tree * pnode, tree
*** 6456,6461 ****
--- 6456,6466 ----
  	     a function global scope, unless declared static.  */
  	  if (current_function_decl != NULL_TREE && !TREE_STATIC (node))
  	    TREE_PUBLIC (node) = 1;
+ 	  /* Clear TREE_STATIC because DECL_EXTERNAL is set, unless
+ 	     it is a C++ static data member.  */
+ 	  if (DECL_CONTEXT (node) == NULL_TREE
+ 	      || !RECORD_OR_UNION_TYPE_P (DECL_CONTEXT (node)))
+ 	    TREE_STATIC (node) = 0;
  	}
  
        if (*no_add_attrs == false)
diff -Nrcpad gcc-7.4.0/gcc/tree.h gcc-7.5.0/gcc/tree.h
*** gcc-7.4.0/gcc/tree.h	Wed Nov 29 22:13:34 2017
--- gcc-7.5.0/gcc/tree.h	Fri Aug 30 12:41:43 2019
*************** extern void omp_clause_range_check_faile
*** 912,917 ****
--- 912,922 ----
    (TREE_CHECK2 (NODE, VAR_DECL, \
  		RESULT_DECL)->decl_common.decl_nonshareable_flag)
  
+ /* In a PARM_DECL, set for Fortran hidden string length arguments that some
+    buggy callers don't pass to the callee.  */
+ #define DECL_HIDDEN_STRING_LENGTH(NODE) \
+   (TREE_CHECK (NODE, PARM_DECL)->decl_common.decl_nonshareable_flag)
+ 
  /* In a CALL_EXPR, means that the call is the jump from a thunk to the
     thunked-to function.  */
  #define CALL_FROM_THUNK_P(NODE) (CALL_EXPR_CHECK (NODE)->base.protected_flag)
*************** extern void protected_set_expr_location
*** 1231,1236 ****
--- 1236,1244 ----
     ASM_OPERAND with no operands.  */
  #define ASM_INPUT_P(NODE) (ASM_EXPR_CHECK (NODE)->base.static_flag)
  #define ASM_VOLATILE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.public_flag)
+ /* Nonzero if we want to consider this asm as minimum length and cost
+    for inlining decisions.  */
+ #define ASM_INLINE_P(NODE) (ASM_EXPR_CHECK (NODE)->base.protected_flag)
  
  /* COND_EXPR accessors.  */
  #define COND_EXPR_COND(NODE)	(TREE_OPERAND (COND_EXPR_CHECK (NODE), 0))
diff -Nrcpad gcc-7.4.0/gcc/valtrack.c gcc-7.5.0/gcc/valtrack.c
*** gcc-7.4.0/gcc/valtrack.c	Fri Dec 15 21:53:29 2017
--- gcc-7.5.0/gcc/valtrack.c	Fri Aug 30 11:20:47 2019
*************** static rtx
*** 56,63 ****
  cleanup_auto_inc_dec (rtx src, machine_mode mem_mode ATTRIBUTE_UNUSED)
  {
    rtx x = src;
-   if (!AUTO_INC_DEC)
-     return copy_rtx (x);
  
    const RTX_CODE code = GET_CODE (x);
    int i;
--- 56,61 ----
diff -Nrcpad gcc-7.4.0/gcc/varasm.c gcc-7.5.0/gcc/varasm.c
*** gcc-7.4.0/gcc/varasm.c	Fri Jun 22 20:51:42 2018
--- gcc-7.5.0/gcc/varasm.c	Fri Aug 30 11:08:10 2019
*************** decode_addr_const (tree exp, struct addr
*** 2881,2886 ****
--- 2881,2891 ----
        x = output_constant_def (target, 1);
        break;
  
+     case COMPOUND_LITERAL_EXPR:
+       gcc_assert (COMPOUND_LITERAL_EXPR_DECL (target));
+       x = DECL_RTL (COMPOUND_LITERAL_EXPR_DECL (target));
+       break;
+ 
      default:
        gcc_unreachable ();
      }
*************** output_constructor_bitfield (oc_local_st
*** 5175,5181 ****
      {
        int this_time;
        int shift;
!       HOST_WIDE_INT value;
        HOST_WIDE_INT next_byte = next_offset / BITS_PER_UNIT;
        HOST_WIDE_INT next_bit = next_offset % BITS_PER_UNIT;
  
--- 5180,5186 ----
      {
        int this_time;
        int shift;
!       unsigned HOST_WIDE_INT value;
        HOST_WIDE_INT next_byte = next_offset / BITS_PER_UNIT;
        HOST_WIDE_INT next_bit = next_offset % BITS_PER_UNIT;
  
*************** output_constructor_bitfield (oc_local_st
*** 5207,5221 ****
  	      this_time = end - shift + 1;
  	    }
  
! 	  /* Now get the bits from the appropriate constant word.  */
! 	  value = TREE_INT_CST_ELT (local->val, shift / HOST_BITS_PER_WIDE_INT);
! 	  shift = shift & (HOST_BITS_PER_WIDE_INT - 1);
  
  	  /* Get the result.  This works only when:
  	     1 <= this_time <= HOST_BITS_PER_WIDE_INT.  */
! 	  local->byte |= (((value >> shift)
! 			   & (((HOST_WIDE_INT) 2 << (this_time - 1)) - 1))
! 			  << (BITS_PER_UNIT - this_time - next_bit));
  	}
        else
  	{
--- 5212,5224 ----
  	      this_time = end - shift + 1;
  	    }
  
! 	  /* Now get the bits we want to insert.  */
! 	  value = wi::extract_uhwi (wi::to_widest (local->val),
! 				    shift, this_time);
  
  	  /* Get the result.  This works only when:
  	     1 <= this_time <= HOST_BITS_PER_WIDE_INT.  */
! 	  local->byte |= value << (BITS_PER_UNIT - this_time - next_bit);
  	}
        else
  	{
*************** output_constructor_bitfield (oc_local_st
*** 5232,5246 ****
  	    this_time
  	      = HOST_BITS_PER_WIDE_INT - (shift & (HOST_BITS_PER_WIDE_INT - 1));
  
! 	  /* Now get the bits from the appropriate constant word.  */
! 	  value = TREE_INT_CST_ELT (local->val, shift / HOST_BITS_PER_WIDE_INT);
! 	  shift = shift & (HOST_BITS_PER_WIDE_INT - 1);
  
  	  /* Get the result.  This works only when:
  	     1 <= this_time <= HOST_BITS_PER_WIDE_INT.  */
! 	  local->byte |= (((value >> shift)
! 			   & (((HOST_WIDE_INT) 2 << (this_time - 1)) - 1))
! 			  << next_bit);
  	}
  
        next_offset += this_time;
--- 5235,5247 ----
  	    this_time
  	      = HOST_BITS_PER_WIDE_INT - (shift & (HOST_BITS_PER_WIDE_INT - 1));
  
! 	  /* Now get the bits we want to insert.  */
! 	  value = wi::extract_uhwi (wi::to_widest (local->val),
! 				    shift, this_time);
  
  	  /* Get the result.  This works only when:
  	     1 <= this_time <= HOST_BITS_PER_WIDE_INT.  */
! 	  local->byte |= value << next_bit;
  	}
  
        next_offset += this_time;
diff -Nrcpad gcc-7.4.0/gcc/xcoffout.c gcc-7.5.0/gcc/xcoffout.c
*** gcc-7.4.0/gcc/xcoffout.c	Sat Feb 18 16:11:40 2017
--- gcc-7.5.0/gcc/xcoffout.c	Wed May 15 17:11:31 2019
*************** static const char *xcoff_current_functio
*** 63,68 ****
--- 63,69 ----
  
  char *xcoff_bss_section_name;
  char *xcoff_private_data_section_name;
+ char *xcoff_private_rodata_section_name;
  char *xcoff_tls_data_section_name;
  char *xcoff_tbss_section_name;
  char *xcoff_read_only_section_name;
diff -Nrcpad gcc-7.4.0/gcc/xcoffout.h gcc-7.5.0/gcc/xcoffout.h
*** gcc-7.4.0/gcc/xcoffout.h	Sat Feb 18 16:11:40 2017
--- gcc-7.5.0/gcc/xcoffout.h	Wed May 15 17:11:31 2019
*************** extern const char *xcoff_current_include
*** 127,132 ****
--- 127,133 ----
  
  extern char *xcoff_bss_section_name;
  extern char *xcoff_private_data_section_name;
+ extern char *xcoff_private_rodata_section_name;
  extern char *xcoff_tls_data_section_name;
  extern char *xcoff_tbss_section_name;
  extern char *xcoff_read_only_section_name;
diff -Nrcpad gcc-7.4.0/gnattools/ChangeLog gcc-7.5.0/gnattools/ChangeLog
*** gcc-7.4.0/gnattools/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gnattools/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/gotools/ChangeLog gcc-7.5.0/gotools/ChangeLog
*** gcc-7.4.0/gotools/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/gotools/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/include/ChangeLog gcc-7.5.0/include/ChangeLog
*** gcc-7.4.0/include/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/include/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/intl/ChangeLog gcc-7.5.0/intl/ChangeLog
*** gcc-7.4.0/intl/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/intl/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libada/ChangeLog gcc-7.5.0/libada/ChangeLog
*** gcc-7.4.0/libada/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libada/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libatomic/ChangeLog gcc-7.5.0/libatomic/ChangeLog
*** gcc-7.4.0/libatomic/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libatomic/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libbacktrace/ChangeLog gcc-7.5.0/libbacktrace/ChangeLog
*** gcc-7.4.0/libbacktrace/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libbacktrace/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libcc1/ChangeLog gcc-7.5.0/libcc1/ChangeLog
*** gcc-7.4.0/libcc1/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libcc1/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libcilkrts/ChangeLog gcc-7.5.0/libcilkrts/ChangeLog
*** gcc-7.4.0/libcilkrts/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libcilkrts/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libcpp/ChangeLog gcc-7.5.0/libcpp/ChangeLog
*** gcc-7.4.0/libcpp/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libcpp/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,26 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-03-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-18  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR c++/89383
+ 	* line-map.c (linemap_line_start): Use 1UL in order
+ 	to not overflow.
+ 
+ 2019-03-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	Backport from mainline
+ 	2019-02-11  Martin Liska  <mliska@suse.cz>
+ 
+ 	PR lto/88147
+ 	* line-map.c (linemap_line_start): Don't reuse the existing line
+ 	map if the line offset is sufficiently large to cause overflow
+ 	when computing location_t values.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libcpp/line-map.c gcc-7.5.0/libcpp/line-map.c
*** gcc-7.4.0/libcpp/line-map.c	Tue Jan 10 21:54:09 2017
--- gcc-7.5.0/libcpp/line-map.c	Mon Mar 11 11:18:22 2019
*************** linemap_line_start (struct line_maps *se
*** 753,758 ****
--- 753,763 ----
        if (line_delta < 0
  	  || last_line != ORDINARY_MAP_STARTING_LINE_NUMBER (map)
  	  || SOURCE_COLUMN (map, highest) >= (1U << (column_bits - range_bits))
+ 	  || ( /* We can't reuse the map if the line offset is sufficiently
+ 		  large to cause overflow when computing location_t values.  */
+ 	      (to_line - ORDINARY_MAP_STARTING_LINE_NUMBER (map))
+ 	      >= (((uint64_t) 1)
+ 		  << (CHAR_BIT * sizeof (linenum_type) - column_bits)))
  	  || range_bits < map->m_range_bits)
  	map = linemap_check_ordinary
  	        (const_cast <line_map *>
diff -Nrcpad gcc-7.4.0/libcpp/po/ChangeLog gcc-7.5.0/libcpp/po/ChangeLog
*** gcc-7.4.0/libcpp/po/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libcpp/po/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libdecnumber/ChangeLog gcc-7.5.0/libdecnumber/ChangeLog
*** gcc-7.4.0/libdecnumber/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libdecnumber/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libffi/ChangeLog gcc-7.5.0/libffi/ChangeLog
*** gcc-7.4.0/libffi/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libffi/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libgcc/ChangeLog gcc-7.5.0/libgcc/ChangeLog
*** gcc-7.4.0/libgcc/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libgcc/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,47 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.host (powerpc-*-darwin*,powerpc64-*-darwin*): Revise crt
+ 	list.
+ 	* config/rs6000/t-darwin: Build crt3_2 for older systems.  Revise
+ 	mmacosx-version-min for crts to run across all system versions.
+ 	* config/rs6000/t-darwin64 (LIB2ADD): Remove.
+ 	* config/t-darwin: Revise mmacosx-version-min for crts to run across
+ 	system versions >= 10.4.
+ 
+ 2019-11-01  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config.host: Add libef_ppc.a to the extra files for powerpc-darwin.
+ 	* config/rs6000/t-darwin: (PPC_ENDFILE_SRC, PPC_ENDFILE_OBJS): New.
+ 	Build objects for the out of line save/restore register functions
+ 	so that they can be used for any supported Darwin version.
+ 	* config/t-darwin: Default the build Darwin version to Darwin8
+ 	(MacOS 10.4).
+ 
+ 2019-09-04  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-06-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/t-darwin: Ensure that the unwinder is built with
+ 	altivec enabled.
+ 
+ 2019-09-03  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline.
+ 	2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* config/rs6000/darwin-vecsave.S: Set .machine appropriately.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libgcc/config/libbid/ChangeLog gcc-7.5.0/libgcc/config/libbid/ChangeLog
*** gcc-7.4.0/libgcc/config/libbid/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libgcc/config/libbid/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libgcc/config/rs6000/darwin-vecsave.S gcc-7.5.0/libgcc/config/rs6000/darwin-vecsave.S
*** gcc-7.4.0/libgcc/config/rs6000/darwin-vecsave.S	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libgcc/config/rs6000/darwin-vecsave.S	Tue Sep  3 19:08:38 2019
***************
*** 31,38 ****
     (4 bytes) to do the operation; for Vector regs, 2 instructions are
     required (8 bytes.).   */
  
  	.machine ppc7400
! .text
  	.align 2
  
  .private_extern saveVEC
--- 31,44 ----
     (4 bytes) to do the operation; for Vector regs, 2 instructions are
     required (8 bytes.).   */
  
+ /* With some assemblers, we need the correct machine directive to get the
+    right CPU type / subtype in the file header.  */
+ #if	__ppc64__
+ 	.machine ppc64
+ #else
  	.machine ppc7400
! #endif
! 	.text
  	.align 2
  
  .private_extern saveVEC
diff -Nrcpad gcc-7.4.0/libgcc/config/rs6000/t-darwin gcc-7.5.0/libgcc/config/rs6000/t-darwin
*** gcc-7.4.0/libgcc/config/rs6000/t-darwin	Wed Nov  2 15:23:48 2011
--- gcc-7.5.0/libgcc/config/rs6000/t-darwin	Fri Nov  1 20:44:32 2019
***************
*** 1,23 ****
- DARWIN_EXTRA_CRT_BUILD_CFLAGS = -mlongcall -mmacosx-version-min=10.4
  
  crt2.o: $(srcdir)/config/rs6000/darwin-crt2.c
! 	$(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $<
  
  LIB2ADD = $(srcdir)/config/rs6000/darwin-tramp.S \
  	  $(srcdir)/config/darwin-64.c \
! 	  $(srcdir)/config/rs6000/darwin-fpsave.S  \
! 	  $(srcdir)/config/rs6000/darwin-gpsave.S  \
! 	  $(srcdir)/config/rs6000/darwin-world.S \
! 	  $(srcdir)/config/rs6000/ppc64-fp.c
! 
! LIB2ADD_ST = \
! 	  $(srcdir)/config/rs6000/darwin-vecsave.S
  
  # The .S files above are designed to run on all processors, even though
  # they use AltiVec instructions.
  # -Wa is used because -force_cpusubtype_ALL doesn't work with -dynamiclib.
! # -mmacosx-version-min=10.4 is used to provide compatibility for code from
! # earlier OSX versions.
! HOST_LIBGCC2_CFLAGS += -Wa,-force_cpusubtype_ALL -mmacosx-version-min=10.4
  
  LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
--- 1,58 ----
  
  crt2.o: $(srcdir)/config/rs6000/darwin-crt2.c
! 	$(crt_compile) -mmacosx-version-min=10.1 -c $<
! 
! # The sources for this indicate that there are some parts that
! # don't apply >= 10.4
! crt3_2.o: $(srcdir)/config/darwin-crt3.c
! 	$(crt_compile) -mmacosx-version-min=10.1 -c $<
! 
! # The outlined register save/restore functions need to run anywhere, and
! # they must be leaf functions suitable for use in an endfile.
! 
! PPC_ENDFILE_SRC = \
!   $(srcdir)/config/rs6000/darwin-gpsave.S \
!   $(srcdir)/config/rs6000/darwin-fpsave.S \
!   $(srcdir)/config/rs6000/darwin-vecsave.S
! 
! PPC_ENDFILE_OBJS = \
!  darwin-gpsave.o \
!  darwin-fpsave.o \
!  darwin-vecsave.o
! 
! darwin-gpsave.o: $(srcdir)/config/rs6000/darwin-gpsave.S
! 	$(crt_compile) -mmacosx-version-min=10.1 -c $<
! 
! darwin-fpsave.o: $(srcdir)/config/rs6000/darwin-fpsave.S
! 	$(crt_compile) -mmacosx-version-min=10.1 -c $<
! 
! darwin-vecsave.o: $(srcdir)/config/rs6000/darwin-vecsave.S
! 	$(crt_compile) -mmacosx-version-min=10.1 -c $<
! 
! # We build these into a library, so that they are only linked as needed and not
! # forced into every object.
! 
! libef_ppc.a: $(PPC_ENDFILE_OBJS)
! 	$(AR_CREATE_FOR_TARGET) $@ $(PPC_ENDFILE_OBJS)
! 	$(RANLIB_FOR_TARGET) $@
! 
! dw_ppc.o: $(srcdir)/config/rs6000/darwin-world.S
! 	$(crt_compile) -mmacosx-version-min=10.1 -c $<
  
  LIB2ADD = $(srcdir)/config/rs6000/darwin-tramp.S \
  	  $(srcdir)/config/darwin-64.c \
! 	  $(srcdir)/config/rs6000/darwin-world.S
  
  # The .S files above are designed to run on all processors, even though
  # they use AltiVec instructions.
  # -Wa is used because -force_cpusubtype_ALL doesn't work with -dynamiclib.
! 
! HOST_LIBGCC2_CFLAGS += -Wa,-force_cpusubtype_ALL
! 
! # Although the default for 10.4 is G3, we need the unwinder to be built
! # with vector support so that the "save/rest_world" outlined functions are
! # correctly invoked.
! unwind-dw2_s.o: HOST_LIBGCC2_CFLAGS += -maltivec
! unwind-dw2.o: HOST_LIBGCC2_CFLAGS += -maltivec
  
  LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c
diff -Nrcpad gcc-7.4.0/libgcc/config/rs6000/t-darwin64 gcc-7.5.0/libgcc/config/rs6000/t-darwin64
*** gcc-7.4.0/libgcc/config/rs6000/t-darwin64	Sun Dec  4 15:46:28 2011
--- gcc-7.5.0/libgcc/config/rs6000/t-darwin64	Fri Nov  1 20:44:32 2019
***************
*** 1,7 ****
  LIB2_SIDITI_CONV_FUNCS = yes
- 
- LIB2ADD = $(srcdir)/config/rs6000/darwin-tramp.S \
- 	  $(srcdir)/config/darwin-64.c \
- 	  $(srcdir)/config/rs6000/darwin-fpsave.S \
- 	  $(srcdir)/config/rs6000/darwin-gpsave.S \
- 	  $(srcdir)/config/rs6000/darwin-world.S
--- 1 ----
diff -Nrcpad gcc-7.4.0/libgcc/config/t-darwin gcc-7.5.0/libgcc/config/t-darwin
*** gcc-7.4.0/libgcc/config/t-darwin	Sun Nov 27 15:07:22 2016
--- gcc-7.5.0/libgcc/config/t-darwin	Fri Nov  1 20:44:32 2019
***************
*** 1,21 ****
  # Set this as a minimum (unless overriden by arch t-files) since it's a
  # reasonable lowest common denominator that works for all our archs.
! HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.5
  
  crt3.o: $(srcdir)/config/darwin-crt3.c
! 	$(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $<
  
  crttms.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -DSTART -c $<
  
  crttme.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -DEND -c $<
! 
! # -pipe because there's an assembler bug, 4077127, which causes
! # it to not properly process the first # directive, causing temporary
! # file names to appear in stabs, causing the bootstrap to fail.  Using -pipe
! # works around this by not having any temporary file names.
! HOST_LIBGCC2_CFLAGS += -pipe
  
  # Use unwind-dw2-fde-darwin
  LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/config/unwind-dw2-fde-darwin.c \
--- 1,15 ----
  # Set this as a minimum (unless overriden by arch t-files) since it's a
  # reasonable lowest common denominator that works for all our archs.
! HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.4
  
  crt3.o: $(srcdir)/config/darwin-crt3.c
! 	$(crt_compile) -mmacosx-version-min=10.4 -c $<
  
  crttms.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) -mmacosx-version-min=10.4 -DSTART -c $<
  
  crttme.o: $(srcdir)/config/darwin-crt-tm.c
! 	$(crt_compile) -mmacosx-version-min=10.4 -DEND -c $<
  
  # Use unwind-dw2-fde-darwin
  LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/config/unwind-dw2-fde-darwin.c \
diff -Nrcpad gcc-7.4.0/libgcc/config.host gcc-7.5.0/libgcc/config.host
*** gcc-7.4.0/libgcc/config.host	Mon Jan  8 13:39:11 2018
--- gcc-7.5.0/libgcc/config.host	Fri Nov  1 20:44:32 2019
*************** powerpc-*-darwin*)
*** 992,1003 ****
  	  md_unwind_header=rs6000/darwin-unwind.h
  	  ;;
  	esac
! 	tmake_file="$tmake_file rs6000/t-ibm-ldouble"
! 	extra_parts="$extra_parts crt2.o"
  	;;
  powerpc64-*-darwin*)
  	tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
! 	extra_parts="$extra_parts crt2.o"
  	;;
  powerpc*-*-freebsd*)
  	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
--- 992,1003 ----
  	  md_unwind_header=rs6000/darwin-unwind.h
  	  ;;
  	esac
! 	tmake_file="$tmake_file rs6000/t-ppc64-fp rs6000/t-ibm-ldouble"
! 	extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
  	;;
  powerpc64-*-darwin*)
  	tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
! 	extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
  	;;
  powerpc*-*-freebsd*)
  	tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp"
diff -Nrcpad gcc-7.4.0/libgfortran/ChangeLog gcc-7.5.0/libgfortran/ChangeLog
*** gcc-7.4.0/libgfortran/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libgfortran/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,47 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-04-16  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2019-03-25  John David Anglin  <danglin@gcc.gnu.org>
+ 
+ 	PR libgfortran/79540
+ 	* io/write_float.def (build_float_string): Don't copy digits when
+ 	ndigits is negative.
+ 
+ 2019-02-03  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR libfortran/88678
+ 	Revert:
+ 	2016-11-16  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+ 
+ 	PR libfortran/78314
+ 	* config/fpu-glibc.h (support_fpu_trap): Use feenableexcept.
+ 
+ 2019-02-03  Uroš Bizjak  <ubizjak@gmail.com>
+ 
+ 	PR libfortran/88678
+ 	* config/fpu-glibc.h (set_fpu_trap_exceptions): Clear stalled
+ 	exception flags before changing trap mode.  Optimize to call
+ 	feenableexcept and fedisableexcept only once.
+ 
+ 2019-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR libfortran/88776
+ 	* io/list_read.c (namelist_read): Use nml_err_ret path on read error
+ 	not based on stdin_unit.
+ 	* io/open.c (newunit): Free format buffer if the unit specified is for
+ 	stdin, stdout, or stderr.
+ 
+ 2018-12-06  Janne Blomqvist  <jb@gcc.gnu.org>
+ 
+ 	Backport from trunk
+ 	PR libfortran/88137
+ 	* runtime/backtrace.c (show_backtrace): Store backtrace state in a
+ 	static variable, initialize once.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libgfortran/config/fpu-glibc.h gcc-7.5.0/libgfortran/config/fpu-glibc.h
*** gcc-7.4.0/libgfortran/config/fpu-glibc.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libgfortran/config/fpu-glibc.h	Sun Feb  3 16:21:06 2019
*************** _Static_assert (sizeof(fenv_t) <= (size_
*** 39,86 ****
  
  void set_fpu_trap_exceptions (int trap, int notrap)
  {
  #ifdef FE_INVALID
    if (trap & GFC_FPE_INVALID)
!     feenableexcept (FE_INVALID);
    if (notrap & GFC_FPE_INVALID)
!     fedisableexcept (FE_INVALID);
  #endif
  
  /* Some glibc targets (like alpha) have FE_DENORMAL, but not many.  */
  #ifdef FE_DENORMAL
    if (trap & GFC_FPE_DENORMAL)
!     feenableexcept (FE_DENORMAL);
    if (notrap & GFC_FPE_DENORMAL)
!     fedisableexcept (FE_DENORMAL);
  #endif
  
  #ifdef FE_DIVBYZERO
    if (trap & GFC_FPE_ZERO)
!     feenableexcept (FE_DIVBYZERO);
    if (notrap & GFC_FPE_ZERO)
!     fedisableexcept (FE_DIVBYZERO);
  #endif
  
  #ifdef FE_OVERFLOW
    if (trap & GFC_FPE_OVERFLOW)
!     feenableexcept (FE_OVERFLOW);
    if (notrap & GFC_FPE_OVERFLOW)
!     fedisableexcept (FE_OVERFLOW);
  #endif
  
  #ifdef FE_UNDERFLOW
    if (trap & GFC_FPE_UNDERFLOW)
!     feenableexcept (FE_UNDERFLOW);
    if (notrap & GFC_FPE_UNDERFLOW)
!     fedisableexcept (FE_UNDERFLOW);
  #endif
  
  #ifdef FE_INEXACT
    if (trap & GFC_FPE_INEXACT)
!     feenableexcept (FE_INEXACT);
    if (notrap & GFC_FPE_INEXACT)
!     fedisableexcept (FE_INEXACT);
  #endif
  }
  
  
--- 39,94 ----
  
  void set_fpu_trap_exceptions (int trap, int notrap)
  {
+   int mode_set = 0, mode_clr = 0;
+ 
  #ifdef FE_INVALID
    if (trap & GFC_FPE_INVALID)
!     mode_set |= FE_INVALID;
    if (notrap & GFC_FPE_INVALID)
!     mode_clr |= FE_INVALID;
  #endif
  
  /* Some glibc targets (like alpha) have FE_DENORMAL, but not many.  */
  #ifdef FE_DENORMAL
    if (trap & GFC_FPE_DENORMAL)
!     mode_set |= FE_DENORMAL;
    if (notrap & GFC_FPE_DENORMAL)
!     mode_clr |= FE_DENORMAL;
  #endif
  
  #ifdef FE_DIVBYZERO
    if (trap & GFC_FPE_ZERO)
!     mode_set |= FE_DIVBYZERO;
    if (notrap & GFC_FPE_ZERO)
!     mode_clr |= FE_DIVBYZERO;
  #endif
  
  #ifdef FE_OVERFLOW
    if (trap & GFC_FPE_OVERFLOW)
!     mode_set |= FE_OVERFLOW;
    if (notrap & GFC_FPE_OVERFLOW)
!     mode_clr |= FE_OVERFLOW;
  #endif
  
  #ifdef FE_UNDERFLOW
    if (trap & GFC_FPE_UNDERFLOW)
!     mode_set |= FE_UNDERFLOW;
    if (notrap & GFC_FPE_UNDERFLOW)
!     mode_clr |= FE_UNDERFLOW;
  #endif
  
  #ifdef FE_INEXACT
    if (trap & GFC_FPE_INEXACT)
!     mode_set |= FE_INEXACT;
    if (notrap & GFC_FPE_INEXACT)
!     mode_clr |= FE_INEXACT;
  #endif
+ 
+   /* Clear stalled exception flags.  */
+   feclearexcept (FE_ALL_EXCEPT);
+ 
+   feenableexcept (mode_set);
+   fedisableexcept (mode_clr);
  }
  
  
*************** get_fpu_trap_exceptions (void)
*** 121,161 ****
  int
  support_fpu_trap (int flag)
  {
!   int exceptions = 0;
!   int old;
! 
!   if (!support_fpu_flag (flag))
!     return 0;
! 
! #ifdef FE_INVALID
!   if (flag & GFC_FPE_INVALID) exceptions |= FE_INVALID;
! #endif
! 
! #ifdef FE_DIVBYZERO
!   if (flag & GFC_FPE_ZERO) exceptions |= FE_DIVBYZERO;
! #endif
! 
! #ifdef FE_OVERFLOW
!   if (flag & GFC_FPE_OVERFLOW) exceptions |= FE_OVERFLOW;
! #endif
! 
! #ifdef FE_UNDERFLOW
!   if (flag & GFC_FPE_UNDERFLOW) exceptions |= FE_UNDERFLOW;
! #endif
! 
! #ifdef FE_DENORMAL
!   if (flag & GFC_FPE_DENORMAL) exceptions |= FE_DENORMAL;
! #endif
! 
! #ifdef FE_INEXACT
!   if (flag & GFC_FPE_INEXACT) exceptions |= FE_INEXACT;
! #endif
! 
!   old = feenableexcept (exceptions);
!   if (old == -1)
!     return 0;
!   fedisableexcept (exceptions & ~old);
!   return 1;
  }
  
  
--- 129,135 ----
  int
  support_fpu_trap (int flag)
  {
!   return support_fpu_flag (flag);
  }
  
  
diff -Nrcpad gcc-7.4.0/libgfortran/io/list_read.c gcc-7.5.0/libgfortran/io/list_read.c
*** gcc-7.4.0/libgfortran/io/list_read.c	Sat Dec 16 21:57:17 2017
--- gcc-7.5.0/libgfortran/io/list_read.c	Mon Jan 14 01:12:27 2019
*************** find_nml_name:
*** 3613,3623 ****
    while (!dtp->u.p.input_complete)
      {
        if (!nml_get_obj_data (dtp, &prev_nl, nml_err_msg, sizeof nml_err_msg))
! 	{
! 	  if (dtp->u.p.current_unit->unit_number != options.stdin_unit)
! 	    goto nml_err_ret;
! 	  generate_error (&dtp->common, LIBERROR_READ_VALUE, nml_err_msg);
!         }
  
        /* Reset the previous namelist pointer if we know we are not going
  	 to be doing multiple reads within a single namelist object.  */
--- 3613,3619 ----
    while (!dtp->u.p.input_complete)
      {
        if (!nml_get_obj_data (dtp, &prev_nl, nml_err_msg, sizeof nml_err_msg))
! 	goto nml_err_ret;
  
        /* Reset the previous namelist pointer if we know we are not going
  	 to be doing multiple reads within a single namelist object.  */
diff -Nrcpad gcc-7.4.0/libgfortran/io/open.c gcc-7.5.0/libgfortran/io/open.c
*** gcc-7.4.0/libgfortran/io/open.c	Tue Apr 11 14:51:25 2017
--- gcc-7.5.0/libgfortran/io/open.c	Mon Jan 14 01:12:27 2019
*************** new_unit (st_parameter_open *opp, gfc_un
*** 529,534 ****
--- 529,542 ----
    if (u2 != NULL)
      unlock_unit (u2);
  
+   /* If the unit specified is preconnected with a file specified to be open,
+      then clear the format buffer.  */
+   if ((opp->common.unit == options.stdin_unit ||
+        opp->common.unit == options.stdout_unit ||
+        opp->common.unit == options.stderr_unit)
+       && (opp->common.flags & IOPARM_OPEN_HAS_FILE) != 0)
+     fbuf_destroy (u);
+ 
    /* Open file.  */
  
    s = open_external (opp, flags);
diff -Nrcpad gcc-7.4.0/libgfortran/io/write_float.def gcc-7.5.0/libgfortran/io/write_float.def
*** gcc-7.4.0/libgfortran/io/write_float.def	Sun Jun 10 03:10:00 2018
--- gcc-7.5.0/libgfortran/io/write_float.def	Wed Apr 17 00:22:23 2019
*************** build_float_string (st_parameter_dt *dtp
*** 620,633 ****
      }
  
    /* Set digits after the decimal point, padding with zeros.  */
!   if (nafter > 0)
      {
        if (nafter > ndigits)
  	i = ndigits;
        else
  	i = nafter;
  
!       memcpy (put, digits, i);
        while (i < nafter)
  	put[i++] = '0';
  
--- 620,634 ----
      }
  
    /* Set digits after the decimal point, padding with zeros.  */
!   if (ndigits >= 0 && nafter > 0)
      {
        if (nafter > ndigits)
  	i = ndigits;
        else
  	i = nafter;
  
!       if (i > 0)
! 	memcpy (put, digits, i);
        while (i < nafter)
  	put[i++] = '0';
  
diff -Nrcpad gcc-7.4.0/libgfortran/runtime/backtrace.c gcc-7.5.0/libgfortran/runtime/backtrace.c
*** gcc-7.4.0/libgfortran/runtime/backtrace.c	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libgfortran/runtime/backtrace.c	Thu Dec  6 15:38:25 2018
*************** full_callback (void *data, uintptr_t pc,
*** 135,148 ****
  void
  show_backtrace (bool in_signal_handler)
  {
    struct backtrace_state *lbstate;
    struct mystate state = { 0, false, in_signal_handler };
-  
-   lbstate = backtrace_create_state (NULL, __gthread_active_p (),
- 				    error_callback, NULL);
  
!   if (lbstate == NULL)
!     return;
  
    if (!BACKTRACE_SUPPORTED || (in_signal_handler && BACKTRACE_USES_MALLOC))
      {
--- 135,157 ----
  void
  show_backtrace (bool in_signal_handler)
  {
+   /* Note that libbacktrace allows the state to be accessed from
+      multiple threads, so we don't need to use a TLS variable for the
+      state here.  */
+   static struct backtrace_state *lbstate_saved;
    struct backtrace_state *lbstate;
    struct mystate state = { 0, false, in_signal_handler };
  
!   lbstate = __atomic_load_n (&lbstate_saved, __ATOMIC_RELAXED);
!   if (!lbstate)
!     {
!       lbstate = backtrace_create_state (NULL, __gthread_active_p (),
! 					error_callback, NULL);
!       if (lbstate)
! 	__atomic_store_n (&lbstate_saved, lbstate, __ATOMIC_RELAXED);
!       else
! 	return;
!     }
  
    if (!BACKTRACE_SUPPORTED || (in_signal_handler && BACKTRACE_USES_MALLOC))
      {
diff -Nrcpad gcc-7.4.0/libgomp/ChangeLog gcc-7.5.0/libgomp/ChangeLog
*** gcc-7.4.0/libgomp/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libgomp/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,28 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-08-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-05-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libgomp/90585
+ 	* plugin/plugin-hsa.c (print_kernel_dispatch, run_kernel): Use PRIu64
+ 	macro instead of "lu".
+ 	(release_kernel_dispatch): Likewise.  Cast shadow->debug to uintptr_t
+ 	before casting to void *.
+ 
+ 	2019-06-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/90811
+ 	* testsuite/libgomp.c/pr90811.c: New test.
+ 
+ 	2019-01-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/89002
+ 	* testsuite/libgomp.c/pr89002.c: New test.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libgomp/libgomp.info gcc-7.5.0/libgomp/libgomp.info
*** gcc-7.4.0/libgomp/libgomp.info	Thu Dec  6 10:24:09 2018
--- gcc-7.5.0/libgomp/libgomp.info	Thu Nov 14 08:00:41 2019
***************
*** 1,5 ****
  This is libgomp.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/libgomp/libgomp.texi.
  
  Copyright (C) 2006-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is libgomp.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/libgomp/libgomp.texi.
  
  Copyright (C) 2006-2017 Free Software Foundation, Inc.
  
diff -Nrcpad gcc-7.4.0/libgomp/plugin/plugin-hsa.c gcc-7.5.0/libgomp/plugin/plugin-hsa.c
*** gcc-7.4.0/libgomp/plugin/plugin-hsa.c	Tue Jan 31 14:32:58 2017
--- gcc-7.5.0/libgomp/plugin/plugin-hsa.c	Fri Aug 30 12:45:31 2019
*************** create_single_kernel_dispatch (struct ke
*** 1175,1182 ****
  static void
  release_kernel_dispatch (struct GOMP_hsa_kernel_dispatch *shadow)
  {
!   HSA_DEBUG ("Released kernel dispatch: %p has value: %lu (%p)\n", shadow,
! 	     shadow->debug, (void *) shadow->debug);
  
    hsa_fns.hsa_memory_free_fn (shadow->kernarg_address);
  
--- 1175,1183 ----
  static void
  release_kernel_dispatch (struct GOMP_hsa_kernel_dispatch *shadow)
  {
!   HSA_DEBUG ("Released kernel dispatch: %p has value: %" PRIu64 " (%p)\n",
! 	     shadow, shadow->debug,
! 	     (void *) (uintptr_t) shadow->debug);
  
    hsa_fns.hsa_memory_free_fn (shadow->kernarg_address);
  
*************** print_kernel_dispatch (struct GOMP_hsa_k
*** 1297,1305 ****
    indent_stream (stderr, indent);
    fprintf (stderr, "kernarg_address: %p\n", dispatch->kernarg_address);
    indent_stream (stderr, indent);
!   fprintf (stderr, "object: %lu\n", dispatch->object);
    indent_stream (stderr, indent);
!   fprintf (stderr, "signal: %lu\n", dispatch->signal);
    indent_stream (stderr, indent);
    fprintf (stderr, "private_segment_size: %u\n",
  	   dispatch->private_segment_size);
--- 1298,1306 ----
    indent_stream (stderr, indent);
    fprintf (stderr, "kernarg_address: %p\n", dispatch->kernarg_address);
    indent_stream (stderr, indent);
!   fprintf (stderr, "object: %" PRIu64 "\n", dispatch->object);
    indent_stream (stderr, indent);
!   fprintf (stderr, "signal: %" PRIu64 "\n", dispatch->signal);
    indent_stream (stderr, indent);
    fprintf (stderr, "private_segment_size: %u\n",
  	   dispatch->private_segment_size);
*************** print_kernel_dispatch (struct GOMP_hsa_k
*** 1307,1313 ****
    fprintf (stderr, "group_segment_size: %u\n",
  	   dispatch->group_segment_size);
    indent_stream (stderr, indent);
!   fprintf (stderr, "children dispatches: %lu\n",
  	   dispatch->kernel_dispatch_count);
    indent_stream (stderr, indent);
    fprintf (stderr, "omp_num_threads: %u\n",
--- 1308,1314 ----
    fprintf (stderr, "group_segment_size: %u\n",
  	   dispatch->group_segment_size);
    indent_stream (stderr, indent);
!   fprintf (stderr, "children dispatches: %" PRIu64 "\n",
  	   dispatch->kernel_dispatch_count);
    indent_stream (stderr, indent);
    fprintf (stderr, "omp_num_threads: %u\n",
*************** run_kernel (struct kernel_info *kernel,
*** 1615,1621 ****
  	hsa_signal_t child_s;
  	child_s.handle = shadow->children_dispatches[i]->signal;
  
! 	HSA_DEBUG ("Waiting for children completion signal: %lu\n",
  		   shadow->children_dispatches[i]->signal);
  	hsa_fns.hsa_signal_load_acquire_fn (child_s);
        }
--- 1616,1622 ----
  	hsa_signal_t child_s;
  	child_s.handle = shadow->children_dispatches[i]->signal;
  
! 	HSA_DEBUG ("Waiting for children completion signal: %" PRIu64 "\n",
  		   shadow->children_dispatches[i]->signal);
  	hsa_fns.hsa_signal_load_acquire_fn (child_s);
        }
diff -Nrcpad gcc-7.4.0/libgomp/testsuite/libgomp.c/pr89002.c gcc-7.5.0/libgomp/testsuite/libgomp.c/pr89002.c
*** gcc-7.4.0/libgomp/testsuite/libgomp.c/pr89002.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libgomp/testsuite/libgomp.c/pr89002.c	Fri Aug 30 11:33:12 2019
***************
*** 0 ****
--- 1,43 ----
+ /* PR middle-end/89002 */
+ 
+ extern void abort (void);
+ 
+ int
+ foo (int x)
+ {
+   int a;
+   int *p = &a;
+ 
+ #pragma omp taskloop lastprivate (a)
+   for (a = 0; a < x; ++a)
+     ;
+   return *p;
+ }
+ 
+ int
+ bar (int x)
+ {
+   int a;
+   int *p = &a;
+ 
+ #pragma omp parallel
+ #pragma omp single
+ #pragma omp taskloop lastprivate (a)
+   for (a = 0; a < x; ++a)
+     ;
+   return *p;
+ }
+ 
+ int
+ main ()
+ {
+ #pragma omp parallel
+ #pragma omp single
+   {
+     if (foo (4) != 4)
+       abort ();
+   }
+   if (bar (6) != 6)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/libgomp/testsuite/libgomp.c/pr90811.c gcc-7.5.0/libgomp/testsuite/libgomp.c/pr90811.c
*** gcc-7.4.0/libgomp/testsuite/libgomp.c/pr90811.c	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libgomp/testsuite/libgomp.c/pr90811.c	Fri Aug 30 12:43:04 2019
***************
*** 0 ****
--- 1,29 ----
+ /* PR target/90811 */
+ 
+ int
+ main ()
+ {
+   long long a[100], b[100];
+   int i;
+   for (i = 0; i < 100; i++)
+     {
+       a[i] = i;
+       b[i] = i % 10;
+     }
+   #pragma omp target teams distribute parallel for simd map(tofrom: a[:100], b[:100])
+   for (i = 0; i < 100; i++)
+     {
+       long long c = 0;
+       const long long d[] = { 1, 3, 5, 7, 9 };
+       for (int j = 4; j >= 0; j--)
+          c = d[j] + b[i] * c;
+       a[i] += c;
+     }
+   for (i = 0; i < 100; i++)
+     {
+       const long long r[] = { 1, 26, 229, 976, 2849, 6646, 13381, 24284, 40801, 64594 };
+       if (a[i] != r[i % 10] + (i / 10 * 10))
+ 	__builtin_abort ();
+     }
+   return 0;
+ }
diff -Nrcpad gcc-7.4.0/libhsail-rt/ChangeLog gcc-7.5.0/libhsail-rt/ChangeLog
*** gcc-7.4.0/libhsail-rt/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libhsail-rt/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libiberty/ChangeLog gcc-7.5.0/libiberty/ChangeLog
*** gcc-7.4.0/libiberty/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libiberty/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,16 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-07-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR lto/90924
+ 	Backport from mainline
+ 	2019-07-12  Ren Kimura  <rkx1209dev@gmail.com>
+ 
+ 	* simple-object-elf.c (simple_object_elf_match): Check zero value
+ 	shstrndx.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libiberty/simple-object-elf.c gcc-7.5.0/libiberty/simple-object-elf.c
*** gcc-7.4.0/libiberty/simple-object-elf.c	Wed Jan  4 11:30:51 2017
--- gcc-7.5.0/libiberty/simple-object-elf.c	Thu Jul 25 10:50:47 2019
*************** simple_object_elf_match (unsigned char h
*** 479,484 ****
--- 479,492 ----
        return NULL;
      }
  
+   if (eor->shstrndx == 0)
+     {
+       *errmsg = "invalid ELF shstrndx == 0";
+       *err = 0;
+       XDELETE (eor);
+       return NULL;
+     }
+ 
    return (void *) eor;
  }
  
diff -Nrcpad gcc-7.4.0/libitm/ChangeLog gcc-7.5.0/libitm/ChangeLog
*** gcc-7.4.0/libitm/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libitm/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,24 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
+ 
+ 	Backport from mainline
+ 	2018-08-03  Sergei Trofimovich  <slyfox@gentoo.org>
+ 
+ 	PR target/86712
+ 	* config/sh/sjlj.S: Adjust to use PIC vs normal code to avoid
+ 	absolute relocation in a shared library.
+ 
+ 2018-12-13  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	Backport from mainline
+ 	2018-12-13  Peter Bergner  <bergner@linux.ibm.com>
+ 
+ 	* config/powerpc/target.h (htm_available):  Add support for
+ 	PPC_FEATURE2_HTM_NO_SUSPEND.  Use __builtin_cpu_supports if available.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libitm/config/powerpc/target.h gcc-7.5.0/libitm/config/powerpc/target.h
*** gcc-7.4.0/libitm/config/powerpc/target.h	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libitm/config/powerpc/target.h	Thu Dec 13 18:08:47 2018
*************** cpu_relax (void)
*** 81,87 ****
  static inline bool
  htm_available (void)
  {
!   return (getauxval (AT_HWCAP2) & PPC_FEATURE2_HAS_HTM) ? true : false;
  }
  
  static inline uint32_t
--- 81,100 ----
  static inline bool
  htm_available (void)
  {
! #ifdef __BUILTIN_CPU_SUPPORTS__
!   if (__builtin_cpu_supports ("htm-no-suspend")
!       || __builtin_cpu_supports ("htm"))
!     return true;
! #else
!   unsigned long htm_flags = PPC_FEATURE2_HAS_HTM
! #ifdef PPC_FEATURE2_HTM_NO_SUSPEND
! 			    | PPC_FEATURE2_HTM_NO_SUSPEND
! #endif
! 			    | 0;
!   if (getauxval (AT_HWCAP2) & htm_flags)
!     return true;
! #endif
!   return false;
  }
  
  static inline uint32_t
diff -Nrcpad gcc-7.4.0/libitm/config/sh/sjlj.S gcc-7.5.0/libitm/config/sh/sjlj.S
*** gcc-7.4.0/libitm/config/sh/sjlj.S	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libitm/config/sh/sjlj.S	Sat Sep 28 09:12:34 2019
*************** _ITM_beginTransaction:
*** 53,59 ****
  #else
  	cfi_def_cfa_offset (4*10)
  #endif
! #if defined HAVE_ATTRIBUTE_VISIBILITY || !defined __PIC__
  	mov.l	.Lbegin, r1
  	jsr	@r1
  	 mov	r15, r5
--- 53,59 ----
  #else
  	cfi_def_cfa_offset (4*10)
  #endif
! #if !defined __PIC__
  	mov.l	.Lbegin, r1
  	jsr	@r1
  	 mov	r15, r5
*************** _ITM_beginTransaction:
*** 78,84 ****
  
  	.align  2
  .Lbegin:
! #if defined HAVE_ATTRIBUTE_VISIBILITY || !defined __PIC__
  	.long	GTM_begin_transaction
  #else
  	.long	GTM_begin_transaction@PCREL-(.Lbegin0-.)
--- 78,84 ----
  
  	.align  2
  .Lbegin:
! #if !defined __PIC__
  	.long	GTM_begin_transaction
  #else
  	.long	GTM_begin_transaction@PCREL-(.Lbegin0-.)
diff -Nrcpad gcc-7.4.0/libitm/libitm.info gcc-7.5.0/libitm/libitm.info
*** gcc-7.4.0/libitm/libitm.info	Thu Dec  6 10:25:31 2018
--- gcc-7.5.0/libitm/libitm.info	Thu Nov 14 08:02:07 2019
***************
*** 1,5 ****
  This is libitm.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/libitm/libitm.texi.
  
  Copyright (C) 2011-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is libitm.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/libitm/libitm.texi.
  
  Copyright (C) 2011-2017 Free Software Foundation, Inc.
  
diff -Nrcpad gcc-7.4.0/libmpx/ChangeLog gcc-7.5.0/libmpx/ChangeLog
*** gcc-7.4.0/libmpx/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libmpx/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libobjc/ChangeLog gcc-7.5.0/libobjc/ChangeLog
*** gcc-7.4.0/libobjc/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libobjc/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/liboffloadmic/ChangeLog gcc-7.5.0/liboffloadmic/ChangeLog
*** gcc-7.4.0/liboffloadmic/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/liboffloadmic/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libquadmath/ChangeLog gcc-7.5.0/libquadmath/ChangeLog
*** gcc-7.4.0/libquadmath/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libquadmath/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libquadmath/libquadmath.info gcc-7.5.0/libquadmath/libquadmath.info
*** gcc-7.4.0/libquadmath/libquadmath.info	Thu Dec  6 10:25:28 2018
--- gcc-7.5.0/libquadmath/libquadmath.info	Thu Nov 14 08:02:00 2019
***************
*** 1,5 ****
  This is libquadmath.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.4.0/gcc-7.4.0/libquadmath/libquadmath.texi.
  
  Copyright (C) 2010-2017 Free Software Foundation, Inc.
  
--- 1,5 ----
  This is libquadmath.info, produced by makeinfo version 4.13 from
! /space/rguenther/gcc-7.5.0/gcc-7.5.0/libquadmath/libquadmath.texi.
  
  Copyright (C) 2010-2017 Free Software Foundation, Inc.
  
diff -Nrcpad gcc-7.4.0/libsanitizer/ChangeLog gcc-7.5.0/libsanitizer/ChangeLog
*** gcc-7.4.0/libsanitizer/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libsanitizer/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libssp/ChangeLog gcc-7.5.0/libssp/ChangeLog
*** gcc-7.4.0/libssp/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libssp/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libstdc++-v3/ChangeLog gcc-7.5.0/libstdc++-v3/ChangeLog
*** gcc-7.4.0/libstdc++-v3/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libstdc++-v3/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,282 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
+ 2019-10-24  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-10-18  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/92143
+ 	* libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
+ 	to at least sizeof(void*).
+ 
+ 	Backport from mainline
+ 	2019-10-08  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/Makefile.am (doc-html-docbook-regenerate): New target.
+ 	(${docbook_outdir}/html): Do not create unused 'html/ext' directory.
+ 	* doc/Makefile.in: Regenerate.
+ 	* doc/xml/manual/documentation_hacking.xml: Document new target.
+ 	* doc/html/*: Regenerate.
+ 
+ 	* doc/xml/manual/allocator.xml: Use archived copy of CUJ article.
+ 
+ 	Backport from mainline
+ 	2019-05-31  Gerald Pfeifer  <gerald@pfeifer.com>
+ 
+ 	* doc/xml/manual/allocator.xml: Move hoard.org back to http.
+ 
+ 2019-09-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker.__call__):
+ 	Fix syntax error.
+ 
+ 2019-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR middle-end/89303
+ 	* testsuite/20_util/enable_shared_from_this/89303.cc: New test.
+ 
+ 2019-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
+ 	with dg-prune-output for enable_if failure.
+ 	* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Add
+ 	dg-prune-output for enable_if failure.
+ 
+ 	Backport from mainline
+ 	2019-07-31  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/91308
+ 	* include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
+ 	constraints on deleter that should only apply to the constructor.
+ 	(unique_ptr<T[], D>::__safe_conversion_up): Likewise.
+ 	(unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore
+ 	constraints on deleter here.
+ 	* testsuite/20_util/unique_ptr/assign/91308.cc: New test.
+ 
+ 2019-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-07-29  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/51333
+ 	* libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define
+ 	constructor inline.
+ 	* libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define
+ 	constructor.
+ 	* testsuite/18_support/51333.cc: New test.
+ 
+ 2019-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-06-07  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/90770
+ 	* src/Makefile.am (stamp-debug): Also test for missing makefile.
+ 	* src/Makefile.in: Regenerate.
+ 
+ 2019-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/status_cxx2017.xml: Add feature test macro for
+ 	P0040R3.
+ 	* doc/html/*: Regenerate.
+ 
+ 	Backport from mainline
+ 	2019-06-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/status_cxx2017.xml: Fix outdated reference to
+ 	C++17 working draft.
+ 
+ 	Backport from mainline
+ 	2019-05-21  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants.
+ 
+ 2019-09-02  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-05-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/random.h (seed_seq::param): Fix non-reserved name.
+ 	* include/experimental/type_traits (is_detected_exact)
+ 	(is_detected_exact_v): Likewise.
+ 	* testsuite/17_intro/names.cc: Check for more non-reserved names.
+ 	* testsuite/experimental/names.cc: New test.
+ 
+ 2019-06-26  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-05-28  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/90634
+ 	* include/experimental/bits/fs_path.h (path::path(path&&)): Only call
+ 	_M_split_cmpts() for a path with multiple components.
+ 	(path::_S_is_dir_sep()): Add missing 'static' keyword to function.
+ 	* src/filesystem/path.cc (path::_M_split_cmpts()): Count number of
+ 	components and reserve space in vector. Return early when there is
+ 	only one component.
+ 	* testsuite/experimental/filesystem/path/construct/90634.cc: New test.
+ 
+ 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-02-27  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/89466
+ 	* acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
+ 	stylesheet directories before check for xsltproc. Try to use
+ 	xmlcatalog to find local stylesheet directory before trying hardcoded
+ 	paths. Add path used by suse to hardcoded paths. Adjust xsltproc
+ 	check to look for the same stylesheet as doc/Makefile.am uses. Don't
+ 	use xsltproc if xmlcatalog fails to find a local stylesheet.
+ 	* configure.ac: Check for xmlcatalog.
+ 	* Makefile.in: Regenerate.
+ 	* configure: Likewise.
+ 	* doc/Makefile.in: Likewise.
+ 	* include/Makefile.in: Likewise.
+ 	* libsupc++/Makefile.in: Likewise.
+ 	* po/Makefile.in: Likewise.
+ 	* python/Makefile.in: Likewise.
+ 	* src/Makefile.in: Likewise.
+ 	* src/c++11/Makefile.in: Likewise.
+ 	* src/c++17/Makefile.in: Likewise.
+ 	* src/c++98/Makefile.in: Likewise.
+ 	* src/filesystem/Makefile.in: Likewise.
+ 	* testsuite/Makefile.in: Likewise.
+ 
+ 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-01-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/88740
+ 	* testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to
+ 	write to stderr instead of using printf.
+ 
+ 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/experimental/any (__any_caster): Use RTTI if comparing
+ 	addresses fails, to support non-unique addresses in shared libraries.
+ 	* include/std/any (__any_caster): Likewise.
+ 	* testsuite/experimental/any/misc/any_cast_neg.cc: Use 0 for dg-error
+ 	line number.
+ 
+ 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/90220
+ 	* include/experimental/any (__any_caster): Constrain to only be
+ 	callable for object types. Use remove_cv_t instead of decay_t.
+ 	If the type decays or isn't copy constructible, compare the manager
+ 	function to a dummy specialization.
+ 	(__any_caster): Add overload constrained for non-object types.
+ 	(any::_Manager_internal<_Op>): Add dummy specialization.
+ 	* testsuite/experimental/any/misc/any_cast.cc: Test function types
+ 	and array types.
+ 
+ 	Backport from mainline
+ 	2019-04-24  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/90220
+ 	* include/std/any (__any_caster): Use remove_cv_t instead of decay_t.
+ 	Avoid a runtime check for types that can never be stored in std::any.
+ 	* testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
+ 	array types.
+ 
+ 	Backport from mainline
+ 	2019-04-24  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/90220 (partial)
+ 	* include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do
+ 	not attempt ill-formed static_cast to pointers to non-object types.
+ 	* testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with
+ 	function types.
+ 
+ 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from mainline
+ 	2019-01-15  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
+ 	status.
+ 	* include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
+ 	Define.
+ 	* include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
+ 	changes are supported.
+ 	* include/std/optional (__cpp_lib_optional): Likewise.
+ 	* include/std/variant (__cpp_lib_variant): Likewise.
+ 
+ 2019-05-08  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backport from mainline
+ 	2019-04-17  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/90105
+ 	* include/bits/forward_list.tcc (operator==): Do not use operator!= to
+ 	compare elements.
+ 	(forward_list<T, A>::sort(Comp)): When elements are equal take the one
+ 	earlier in the list, so that sort is stable.
+ 	* testsuite/23_containers/forward_list/operations/90105.cc: New test.
+ 	* testsuite/23_containers/forward_list/comparable.cc: Test with
+ 	types that meet the minimum EqualityComparable and LessThanComparable
+ 	requirements. Remove irrelevant comment.
+ 
+ 	Backport from mainline
+ 	2019-03-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/89629
+ 	* libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes):
+ 	Use correct type for len_aligned.
+ 	* testsuite/20_util/hash/89629.cc: New test.
+ 
+ 2019-02-22  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/89446
+ 	* include/bits/char_traits.h (__constant_char_array): Check index is
+ 	in range before dereferencing.
+ 	* testsuite/21_strings/basic_string_view/operators/char/89446.cc:
+ 	New test.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-12-06  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	* scripts/make_exports.pl (check names): Don’t try to export
+ 	construction vtable symbols.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-12-06  Jonathan Wakely  <jwakely@redhat.com>
+ 		    Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR libstdc++/64883
+ 	* testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test
+ 	always_inline on Darwin.
+ 	* testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise.
+ 	* testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise.
+ 	* testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise.
+ 	* testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise.
+ 
+ 2018-12-24  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	Backport from mainline
+ 	2018-08-25  Iain Sandoe  <iain@sandoe.co.uk>
+ 
+ 	PR libstdc++/70694
+ 	* configure.host (OPT_LDFLAGS): Don't append
+ 	-fvisibility-inlines-hidden for newer Darwin.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/libstdc++-v3/Makefile.in gcc-7.5.0/libstdc++-v3/Makefile.in
*** gcc-7.4.0/libstdc++-v3/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 232,237 ****
--- 232,238 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/acinclude.m4 gcc-7.5.0/libstdc++-v3/acinclude.m4
*** gcc-7.4.0/libstdc++-v3/acinclude.m4	Tue Aug  7 22:50:49 2018
--- gcc-7.5.0/libstdc++-v3/acinclude.m4	Thu May 23 15:34:42 2019
*************** dnl  XSL_STYLE_DIR
*** 642,675 ****
  dnl
  AC_DEFUN([GLIBCXX_CONFIGURE_DOCBOOK], [
  
! AC_MSG_CHECKING([for docbook stylesheets for documentation creation])
! glibcxx_stylesheets=no
! if test x${XSLTPROC} = xyes && echo '<title/>' | xsltproc --noout --nonet --xinclude http://docbook.sourceforge.net/release/xsl-ns/current/xhtml-1_1/docbook.xsl - 2>/dev/null; then
!   glibcxx_stylesheets=yes
! fi
! AC_MSG_RESULT($glibcxx_stylesheets)
  
  AC_MSG_CHECKING([for local stylesheet directory])
  glibcxx_local_stylesheets=no
! if test x"$glibcxx_stylesheets" = x"yes"; then
!   if test -d /usr/share/sgml/docbook/xsl-ns-stylesheets; then
!     glibcxx_local_stylesheets=yes
!     XSL_STYLE_DIR=/usr/share/sgml/docbook/xsl-ns-stylesheets
!   fi
!   if test -d /usr/share/xml/docbook/stylesheet/docbook-xsl-ns; then
!     glibcxx_local_stylesheets=yes
!     XSL_STYLE_DIR=/usr/share/xml/docbook/stylesheet/docbook-xsl-ns
!   fi
!   if test -d /usr/share/xml/docbook/stylesheet/nwalsh5/current; then
!     glibcxx_local_stylesheets=yes
!     XSL_STYLE_DIR=/usr/share/xml/docbook/stylesheet/nwalsh5/current
!   fi
  fi
  AC_MSG_RESULT($glibcxx_local_stylesheets)
  
  if test x"$glibcxx_local_stylesheets" = x"yes"; then
    AC_SUBST(XSL_STYLE_DIR)
    AC_MSG_NOTICE($XSL_STYLE_DIR)
  else
    glibcxx_stylesheets=no
  fi
--- 642,684 ----
  dnl
  AC_DEFUN([GLIBCXX_CONFIGURE_DOCBOOK], [
  
! glibcxx_docbook_url=http://docbook.sourceforge.net/release/xsl-ns/current/
  
  AC_MSG_CHECKING([for local stylesheet directory])
  glibcxx_local_stylesheets=no
! if test x${XMLCATALOG} = xyes && xsl_style_dir=`xmlcatalog "" $glibcxx_docbook_url 2>/dev/null`
! then
!   XSL_STYLE_DIR=`echo $xsl_style_dir | sed -n 's;^file://;;p'`
!   glibcxx_local_stylesheets=yes
! else
!   for dir in \
!     /usr/share/sgml/docbook/xsl-ns-stylesheets \
!     /usr/share/xml/docbook/stylesheet/docbook-xsl-ns \
!     /usr/share/xml/docbook/stylesheet/nwalsh5/current \
!     /usr/share/xml/docbook/stylesheet/nwalsh/current
!   do
!     if test -d $dir; then
!       glibcxx_local_stylesheets=yes
!       XSL_STYLE_DIR=$dir
!       break
!     fi
!   done
  fi
  AC_MSG_RESULT($glibcxx_local_stylesheets)
  
  if test x"$glibcxx_local_stylesheets" = x"yes"; then
    AC_SUBST(XSL_STYLE_DIR)
    AC_MSG_NOTICE($XSL_STYLE_DIR)
+ 
+   AC_MSG_CHECKING([for docbook stylesheets for documentation creation])
+   glibcxx_stylesheets=no
+   if test x${XMLCATALOG} = xno || xmlcatalog "" $glibcxx_docbook_url/xhtml/docbook.xsl >/dev/null 2>&1; then
+     if test x${XSLTPROC} = xyes && echo '<title/>' | xsltproc --noout --nonet --xinclude $glibcxx_docbook_url/xhtml/docbook.xsl - 2>/dev/null; then
+       glibcxx_stylesheets=yes
+     fi
+   fi
+   AC_MSG_RESULT($glibcxx_stylesheets)
+ 
  else
    glibcxx_stylesheets=no
  fi
diff -Nrcpad gcc-7.4.0/libstdc++-v3/configure gcc-7.5.0/libstdc++-v3/configure
*** gcc-7.4.0/libstdc++-v3/configure	Mon Aug 13 19:16:02 2018
--- gcc-7.5.0/libstdc++-v3/configure	Thu May 23 15:34:42 2019
*************** BUILD_EPUB_TRUE
*** 637,642 ****
--- 637,643 ----
  XSL_STYLE_DIR
  XMLLINT
  XSLTPROC
+ XMLCATALOG
  DOT
  DOXYGEN
  BUILD_INFO_FALSE
*************** else
*** 11605,11611 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11608 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11606,11612 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11609 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 11711,11717 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11714 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 11712,11718 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 11715 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** $as_echo "$glibcxx_cv_atomic_long_long"
*** 15397,15403 ****
    # Fake what AC_TRY_COMPILE does.
  
      cat > conftest.$ac_ext << EOF
! #line 15400 "configure"
  int main()
  {
    typedef bool atomic_type;
--- 15398,15404 ----
    # Fake what AC_TRY_COMPILE does.
  
      cat > conftest.$ac_ext << EOF
! #line 15401 "configure"
  int main()
  {
    typedef bool atomic_type;
*************** $as_echo "$glibcxx_cv_atomic_bool" >&6;
*** 15432,15438 ****
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15435 "configure"
  int main()
  {
    typedef short atomic_type;
--- 15433,15439 ----
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15436 "configure"
  int main()
  {
    typedef short atomic_type;
*************** $as_echo "$glibcxx_cv_atomic_short" >&6;
*** 15467,15473 ****
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15470 "configure"
  int main()
  {
    // NB: _Atomic_word not necessarily int.
--- 15468,15474 ----
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15471 "configure"
  int main()
  {
    // NB: _Atomic_word not necessarily int.
*************** $as_echo "$glibcxx_cv_atomic_int" >&6; }
*** 15503,15509 ****
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15506 "configure"
  int main()
  {
    typedef long long atomic_type;
--- 15504,15510 ----
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15507 "configure"
  int main()
  {
    typedef long long atomic_type;
*************** $as_echo "$as_me: WARNING: Performance o
*** 15584,15590 ****
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 15587 "configure"
  int main()
  {
    _Decimal32 d1;
--- 15585,15591 ----
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 15588 "configure"
  int main()
  {
    _Decimal32 d1;
*************** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
*** 15626,15632 ****
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 15629 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
--- 15627,15633 ----
    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
! #line 15630 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
*************** $as_echo "$enable_int128" >&6; }
*** 15660,15666 ****
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15663 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
--- 15661,15667 ----
      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
! #line 15664 "configure"
  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
*************** fi
*** 80998,81003 ****
--- 80999,81042 ----
  
  
  # Check for docbook
+ # Extract the first word of "xmlcatalog", so it can be a program name with args.
+ set dummy xmlcatalog; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if test "${ac_cv_prog_XMLCATALOG+set}" = set; then :
+   $as_echo_n "(cached) " >&6
+ else
+   if test -n "$XMLCATALOG"; then
+   ac_cv_prog_XMLCATALOG="$XMLCATALOG" # Let the user override the test.
+ else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+     ac_cv_prog_XMLCATALOG="yes"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+   test -z "$ac_cv_prog_XMLCATALOG" && ac_cv_prog_XMLCATALOG="no"
+ fi
+ fi
+ XMLCATALOG=$ac_cv_prog_XMLCATALOG
+ if test -n "$XMLCATALOG"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLCATALOG" >&5
+ $as_echo "$XMLCATALOG" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
  # Extract the first word of "xsltproc", so it can be a program name with args.
  set dummy xsltproc; ac_word=$2
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
*************** fi
*** 81076,81106 ****
  
  
  
! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for docbook stylesheets for documentation creation" >&5
! $as_echo_n "checking for docbook stylesheets for documentation creation... " >&6; }
! glibcxx_stylesheets=no
! if test x${XSLTPROC} = xyes && echo '<title/>' | xsltproc --noout --nonet --xinclude http://docbook.sourceforge.net/release/xsl-ns/current/xhtml-1_1/docbook.xsl - 2>/dev/null; then
!   glibcxx_stylesheets=yes
! fi
! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_stylesheets" >&5
! $as_echo "$glibcxx_stylesheets" >&6; }
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for local stylesheet directory" >&5
  $as_echo_n "checking for local stylesheet directory... " >&6; }
  glibcxx_local_stylesheets=no
! if test x"$glibcxx_stylesheets" = x"yes"; then
!   if test -d /usr/share/sgml/docbook/xsl-ns-stylesheets; then
!     glibcxx_local_stylesheets=yes
!     XSL_STYLE_DIR=/usr/share/sgml/docbook/xsl-ns-stylesheets
!   fi
!   if test -d /usr/share/xml/docbook/stylesheet/docbook-xsl-ns; then
!     glibcxx_local_stylesheets=yes
!     XSL_STYLE_DIR=/usr/share/xml/docbook/stylesheet/docbook-xsl-ns
!   fi
!   if test -d /usr/share/xml/docbook/stylesheet/nwalsh5/current; then
!     glibcxx_local_stylesheets=yes
!     XSL_STYLE_DIR=/usr/share/xml/docbook/stylesheet/nwalsh5/current
!   fi
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_local_stylesheets" >&5
  $as_echo "$glibcxx_local_stylesheets" >&6; }
--- 81115,81142 ----
  
  
  
! glibcxx_docbook_url=http://docbook.sourceforge.net/release/xsl-ns/current/
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for local stylesheet directory" >&5
  $as_echo_n "checking for local stylesheet directory... " >&6; }
  glibcxx_local_stylesheets=no
! if test x${XMLCATALOG} = xyes && xsl_style_dir=`xmlcatalog "" $glibcxx_docbook_url 2>/dev/null`
! then
!   XSL_STYLE_DIR=`echo $xsl_style_dir | sed -n 's;^file://;;p'`
!   glibcxx_local_stylesheets=yes
! else
!   for dir in \
!     /usr/share/sgml/docbook/xsl-ns-stylesheets \
!     /usr/share/xml/docbook/stylesheet/docbook-xsl-ns \
!     /usr/share/xml/docbook/stylesheet/nwalsh5/current \
!     /usr/share/xml/docbook/stylesheet/nwalsh/current
!   do
!     if test -d $dir; then
!       glibcxx_local_stylesheets=yes
!       XSL_STYLE_DIR=$dir
!       break
!     fi
!   done
  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_local_stylesheets" >&5
  $as_echo "$glibcxx_local_stylesheets" >&6; }
*************** if test x"$glibcxx_local_stylesheets" =
*** 81109,81114 ****
--- 81145,81162 ----
  
    { $as_echo "$as_me:${as_lineno-$LINENO}: $XSL_STYLE_DIR" >&5
  $as_echo "$as_me: $XSL_STYLE_DIR" >&6;}
+ 
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for docbook stylesheets for documentation creation" >&5
+ $as_echo_n "checking for docbook stylesheets for documentation creation... " >&6; }
+   glibcxx_stylesheets=no
+   if test x${XMLCATALOG} = xno || xmlcatalog "" $glibcxx_docbook_url/xhtml/docbook.xsl >/dev/null 2>&1; then
+     if test x${XSLTPROC} = xyes && echo '<title/>' | xsltproc --noout --nonet --xinclude $glibcxx_docbook_url/xhtml/docbook.xsl - 2>/dev/null; then
+       glibcxx_stylesheets=yes
+     fi
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_stylesheets" >&5
+ $as_echo "$glibcxx_stylesheets" >&6; }
+ 
  else
    glibcxx_stylesheets=no
  fi
diff -Nrcpad gcc-7.4.0/libstdc++-v3/configure.ac gcc-7.5.0/libstdc++-v3/configure.ac
*** gcc-7.4.0/libstdc++-v3/configure.ac	Mon Aug 13 19:16:02 2018
--- gcc-7.5.0/libstdc++-v3/configure.ac	Thu May 23 15:34:42 2019
*************** AC_CHECK_PROG([DOXYGEN], doxygen, yes, n
*** 436,441 ****
--- 436,442 ----
  AC_CHECK_PROG([DOT], dot, yes, no)
  
  # Check for docbook
+ AC_CHECK_PROG([XMLCATALOG], xmlcatalog, yes, no)
  AC_CHECK_PROG([XSLTPROC], xsltproc, yes, no)
  AC_CHECK_PROG([XMLLINT], xmllint, yes, no)
  GLIBCXX_CONFIGURE_DOCBOOK
diff -Nrcpad gcc-7.4.0/libstdc++-v3/configure.host gcc-7.5.0/libstdc++-v3/configure.host
*** gcc-7.4.0/libstdc++-v3/configure.host	Thu Feb  2 16:24:03 2017
--- gcc-7.5.0/libstdc++-v3/configure.host	Mon Dec 24 12:26:11 2018
*************** case "${host_os}" in
*** 230,245 ****
      os_include_dir="os/newlib"
      OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)"
      ;;
!   darwin | darwin[1-7] | darwin[1-7].*)
!     # On Darwin, performance is improved if libstdc++ is single-module.
!     # Up to at least 10.3.7, -flat_namespace is required for proper
!     # treatment of coalesced symbols.
      OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module -Wl,-flat_namespace"
      os_include_dir="os/bsd/darwin"
      ;;
!   darwin[89] | darwin[89].* | darwin[1-9][0-9]* )
!     # On Darwin, performance is improved if libstdc++ is single-module,
!     # and on 8+ compatibility is better if not -flat_namespace.
      OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module"
      case "${host_cpu}" in
        i[34567]86 | x86_64)
--- 230,244 ----
      os_include_dir="os/newlib"
      OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)"
      ;;
!   darwin[4-7] | darwin[4-7].*)
!     # For earlier Darwin, performance is improved if libstdc++ is
!     # single-module. Up to at least 10.3.7, -flat_namespace is required
!     # for proper treatment of coalesced symbols.
      OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module -Wl,-flat_namespace"
      os_include_dir="os/bsd/darwin"
      ;;
!   darwin8 | darwin8.* )
!     # For 8+ compatibility is better if not -flat_namespace.
      OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module"
      case "${host_cpu}" in
        i[34567]86 | x86_64)
*************** case "${host_os}" in
*** 248,253 ****
--- 247,256 ----
      esac
      os_include_dir="os/bsd/darwin"
      ;;
+   darwin*)
+     # Post Darwin8, defaults should be sufficient.
+     os_include_dir="os/bsd/darwin"
+     ;;
    *djgpp*)      # leading * picks up "msdosdjgpp"
      os_include_dir="os/djgpp"
      error_constants_dir="os/djgpp"
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/Makefile.am gcc-7.5.0/libstdc++-v3/doc/Makefile.am
*** gcc-7.4.0/libstdc++-v3/doc/Makefile.am	Tue Feb  7 22:44:13 2017
--- gcc-7.5.0/libstdc++-v3/doc/Makefile.am	Thu Oct 24 15:30:57 2019
*************** ${docbook_outdir}/fo:
*** 477,483 ****
  
  ${docbook_outdir}/html:
  	mkdir -p ${docbook_outdir}/html
- 	mkdir -p ${docbook_outdir}/html/ext
  	mkdir -p ${docbook_outdir}/html/images
  	mkdir -p ${docbook_outdir}/html/manual
  
--- 477,482 ----
*************** stamp-html-docbook: $(xml_sources) ${doc
*** 546,551 ****
--- 545,556 ----
  
  doc-html-docbook: stamp-html-docbook-data
  
+ # Generate the HTML pages and copy them back to the source tree.
+ doc-html-docbook-regenerate: doc-html-docbook
+ 	$(INSTALL_DATA) ${docbook_outdir}/html/*.html ${top_srcdir}/doc/html
+ 	$(INSTALL_DATA) ${docbook_outdir}/html/images/* ${top_srcdir}/doc/html/images
+ 	$(INSTALL_DATA) ${docbook_outdir}/html/manual/*.html ${top_srcdir}/doc/html/manual
+ 
  # HTML, all one page
  # NB: Have to generate customization XSL for UTF-8 output.
  manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/Makefile.in gcc-7.5.0/libstdc++-v3/doc/Makefile.in
*** gcc-7.4.0/libstdc++-v3/doc/Makefile.in	Wed Mar 15 15:23:44 2017
--- gcc-7.5.0/libstdc++-v3/doc/Makefile.in	Thu Oct 24 15:30:57 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 204,209 ****
--- 204,210 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  
  # Validate existing XML structure.
  XMLLINT = xmllint
*************** ${docbook_outdir}/fo:
*** 925,931 ****
  
  ${docbook_outdir}/html:
  	mkdir -p ${docbook_outdir}/html
- 	mkdir -p ${docbook_outdir}/html/ext
  	mkdir -p ${docbook_outdir}/html/images
  	mkdir -p ${docbook_outdir}/html/manual
  
--- 926,931 ----
*************** stamp-html-docbook: $(xml_sources) ${doc
*** 977,982 ****
--- 977,988 ----
  	$(STAMP) stamp-html-docbook
  
  doc-html-docbook: stamp-html-docbook-data
+ 
+ # Generate the HTML pages and copy them back to the source tree.
+ doc-html-docbook-regenerate: doc-html-docbook
+ 	$(INSTALL_DATA) ${docbook_outdir}/html/*.html ${top_srcdir}/doc/html
+ 	$(INSTALL_DATA) ${docbook_outdir}/html/images/* ${top_srcdir}/doc/html/images
+ 	$(INSTALL_DATA) ${docbook_outdir}/html/manual/*.html ${top_srcdir}/doc/html/manual
  stamp-html-single-docbook: $(xml_sources) ${docbook_outdir}/html
  	@echo "Generating html single file..."
  	$(XSLTPROC) $(XSLT_PARAM) $(XSLT_FLAGS) -o ${manual_html} \
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/html/manual/documentation_hacking.html gcc-7.5.0/libstdc++-v3/doc/html/manual/documentation_hacking.html
*** gcc-7.4.0/libstdc++-v3/doc/html/manual/documentation_hacking.html	Wed Oct 25 14:18:43 2017
--- gcc-7.5.0/libstdc++-v3/doc/html/manual/documentation_hacking.html	Thu Oct 24 15:30:57 2019
***************
*** 381,391 ****
        </p><p>
        </p><pre class="screen"><strong class="userinput"><code>make doc-xml-single-docbook</code></strong></pre><p>
        </p><p>
! 	Generated files are output into separate sub directores of
  	<code class="filename">doc/docbook/</code> in the
  	build directory, based on the output format. For instance, the
  	HTML docs will be in <code class="filename">doc/docbook/html</code>.
        </p><p>
  	If the Docbook stylesheets are installed in a custom location,
  	one can use the variable <code class="literal">XSL_STYLE_DIR</code> to
  	override the Makefile defaults. For example:
--- 381,396 ----
        </p><p>
        </p><pre class="screen"><strong class="userinput"><code>make doc-xml-single-docbook</code></strong></pre><p>
        </p><p>
! 	Generated files are output into separate sub-directores of
  	<code class="filename">doc/docbook/</code> in the
  	build directory, based on the output format. For instance, the
  	HTML docs will be in <code class="filename">doc/docbook/html</code>.
        </p><p>
+ 	The </p><pre class="screen">doc-html-docbook-regenerate</pre><p> target will generate
+ 	the HTML files and copy them back to the libstdc++ source tree.
+ 	This can be used to update the HTML files that are checked in to
+ 	version control.
+       </p><p>
  	If the Docbook stylesheets are installed in a custom location,
  	one can use the variable <code class="literal">XSL_STYLE_DIR</code> to
  	override the Makefile defaults. For example:
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/html/manual/memory.html gcc-7.5.0/libstdc++-v3/doc/html/manual/memory.html
*** gcc-7.4.0/libstdc++-v3/doc/html/manual/memory.html	Wed Oct 25 14:18:43 2017
--- gcc-7.5.0/libstdc++-v3/doc/html/manual/memory.html	Thu Oct 24 15:30:57 2019
***************
*** 314,326 ****
      </em>. </span>
        isoc++_1998
      <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.3"></a><p><span class="title"><em>
! 	<a class="link" href="http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759" target="_top">
        The Standard Librarian: What Are Allocators Good For?
! 	</a>
!       </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
  	C/C++ Users Journal
!       . </span></span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.4"></a><p><span class="title"><em>
! 	<a class="link" href="http://www.hoard.org/" target="_top">
        The Hoard Memory Allocator
  	</a>
        </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.5"></a><p><span class="title"><em>
--- 314,326 ----
      </em>. </span>
        isoc++_1998
      <span class="pagenums">20.4 Memory. </span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.3"></a><p><span class="title"><em>
!       <a class="link" href="https://web.archive.org/web/20190622154249/http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759" target="_top">
        The Standard Librarian: What Are Allocators Good For?
!       </a>
!     </em>. </span><span class="author"><span class="firstname">Matt</span> <span class="surname">Austern</span>. </span><span class="publisher"><span class="publishername">
  	C/C++ Users Journal
!       . </span></span><span class="pubdate">2000-12. </span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.4"></a><p><span class="title"><em>
! 	<a class="link" href="http://hoard.org" target="_top">
        The Hoard Memory Allocator
  	</a>
        </em>. </span><span class="author"><span class="firstname">Emery</span> <span class="surname">Berger</span>. </span></p></div><div class="biblioentry"><a id="id-1.3.4.4.4.3.9.5"></a><p><span class="title"><em>
*************** not be conforming for <code class="class
*** 554,560 ****
  extra template parameter, even if it had a default value.  The
  available policies are:
      </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
!        <code class="constant">_S_Atomic</code>
         </p><p>
  Selected when GCC supports a builtin atomic compare-and-swap operation
  on the target processor (see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html" target="_top">Atomic
--- 554,560 ----
  extra template parameter, even if it had a default value.  The
  available policies are:
      </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
!        <code class="constant">_S_atomic</code>
         </p><p>
  Selected when GCC supports a builtin atomic compare-and-swap operation
  on the target processor (see <a class="link" href="http://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html" target="_top">Atomic
*************** Builtins</a>.)  The reference counts are
*** 562,574 ****
  algorithm and GCC's atomic builtins, which provide the required memory
  synchronisation.
         </p></li><li class="listitem"><p>
!        <code class="constant">_S_Mutex</code>
         </p><p>
  The _Sp_counted_base specialization for this policy contains a mutex,
  which is locked in add_ref_lock(). This policy is used when GCC's atomic
  builtins aren't available so explicit memory barriers are needed in places.
         </p></li><li class="listitem"><p>
!        <code class="constant">_S_Single</code>
         </p><p>
  This policy uses a non-reentrant add_ref_lock() with no locking. It is
  used when libstdc++ is built without <code class="literal">--enable-threads</code>.
--- 562,574 ----
  algorithm and GCC's atomic builtins, which provide the required memory
  synchronisation.
         </p></li><li class="listitem"><p>
!        <code class="constant">_S_mutex</code>
         </p><p>
  The _Sp_counted_base specialization for this policy contains a mutex,
  which is locked in add_ref_lock(). This policy is used when GCC's atomic
  builtins aren't available so explicit memory barriers are needed in places.
         </p></li><li class="listitem"><p>
!        <code class="constant">_S_single</code>
         </p><p>
  This policy uses a non-reentrant add_ref_lock() with no locking. It is
  used when libstdc++ is built without <code class="literal">--enable-threads</code>.
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/html/manual/status.html gcc-7.5.0/libstdc++-v3/doc/html/manual/status.html
*** gcc-7.4.0/libstdc++-v3/doc/html/manual/status.html	Fri Oct 12 11:36:18 2018
--- gcc-7.5.0/libstdc++-v3/doc/html/manual/status.html	Mon Sep  2 11:09:51 2019
*************** presence of the required flag.
*** 518,525 ****
  </p><p>
  This section describes the C++17 and library TS support in the GCC 7 series.
  </p><p>
! The following table lists new library features that have been accepted into
! the C++17 working draft. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
--- 518,525 ----
  </p><p>
  This section describes the C++17 and library TS support in the GCC 7 series.
  </p><p>
! The following table lists new library features that are included in
! the C++17 standard. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
*************** Feature-testing recommendations for C++<
*** 657,663 ****
  	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html" target="_top">
  	P0040R3
  	</a>
!       </td><td align="center"> 7.1 </td><td align="left"><code class="code"> </code></td></tr><tr><td align="left"> <code class="code">shared_ptr::weak_type</code></td><td align="left">
  	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html" target="_top">
  	P0163R0
  	</a>
--- 657,663 ----
  	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html" target="_top">
  	P0040R3
  	</a>
!       </td><td align="center"> 7.1 </td><td align="left"><code class="code">__cpp_lib_raw_memory_algorithms &gt;= 201606L</code></td></tr><tr><td align="left"> <code class="code">shared_ptr::weak_type</code></td><td align="left">
  	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html" target="_top">
  	P0163R0
  	</a>
*************** Feature-testing recommendations for C++<
*** 811,817 ****
  	P0067R5
  	</a>
        </td><td align="center"> 8 (only integral types supported) </td><td align="left"><code class="code"> __has_include(&lt;charconv&gt;) </code>
!              <code class="code"> __cpp_lib_to_chars &gt;= 201611 </code></td></tr></tbody></table></div></div><br class="table-break" /><p>
  Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the
  <code class="code">__cpp_lib</code> macro is not defined, and compilation will fail if the
  header is included without using <code class="option">-std</code> to enable C++17 support.
--- 811,829 ----
  	P0067R5
  	</a>
        </td><td align="center"> 8 (only integral types supported) </td><td align="left"><code class="code"> __has_include(&lt;charconv&gt;) </code>
!              <code class="code"> __cpp_lib_to_chars &gt;= 201611 </code></td></tr><tr><td align="left"> Homogeneous interface for variant, any and optional </td><td align="left">
! 	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf" target="_top">
! 	P0032R3
! 	</a>
!       </td><td align="center"> 7.1  </td><td align="left">
!              <code class="code"> __cpp_lib_any &gt;= 201606 </code>,
!              <code class="code"> __cpp_lib_optional &gt;= 201606 </code>,
!              <code class="code"> __cpp_lib_variant &gt;= 201606 </code>
!       </td></tr><tr><td align="left"> Making Optional Greater Equal Again </td><td align="left">
! 	<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf" target="_top">
! 	P0307R2
! 	</a>
!       </td><td align="center"> 7.1  </td><td align="left"> <code class="code"> __cpp_lib_optional &gt;= 201606 </code> </td></tr></tbody></table></div></div><br class="table-break" /><p>
  Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the
  <code class="code">__cpp_lib</code> macro is not defined, and compilation will fail if the
  header is included without using <code class="option">-std</code> to enable C++17 support.
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/xml/manual/allocator.xml gcc-7.5.0/libstdc++-v3/doc/xml/manual/allocator.xml
*** gcc-7.4.0/libstdc++-v3/doc/xml/manual/allocator.xml	Fri Jun 16 12:19:54 2017
--- gcc-7.5.0/libstdc++-v3/doc/xml/manual/allocator.xml	Thu Oct 24 15:30:53 2019
***************
*** 502,513 ****
    </biblioentry>
  
    <biblioentry>
!       <title>
! 	<link xmlns:xlink="http://www.w3.org/1999/xlink"
! 	      xlink:href="http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759">
        The Standard Librarian: What Are Allocators Good For?
! 	</link>
!       </title>
  
      <author><personname><firstname>Matt</firstname><surname>Austern</surname></personname></author>
      <publisher>
--- 502,513 ----
    </biblioentry>
  
    <biblioentry>
!     <title>
!       <link xmlns:xlink="http://www.w3.org/1999/xlink"
! 	    xlink:href="https://web.archive.org/web/20190622154249/http://www.drdobbs.com/the-standard-librarian-what-are-allocato/184403759">
        The Standard Librarian: What Are Allocators Good For?
!       </link>
!     </title>
  
      <author><personname><firstname>Matt</firstname><surname>Austern</surname></personname></author>
      <publisher>
***************
*** 515,526 ****
  	C/C++ Users Journal
        </publishername>
      </publisher>
    </biblioentry>
  
    <biblioentry>
        <title>
  	<link xmlns:xlink="http://www.w3.org/1999/xlink"
! 	      xlink:href="http://www.hoard.org/">
        The Hoard Memory Allocator
  	</link>
        </title>
--- 515,527 ----
  	C/C++ Users Journal
        </publishername>
      </publisher>
+     <pubdate>2000-12</pubdate>
    </biblioentry>
  
    <biblioentry>
        <title>
  	<link xmlns:xlink="http://www.w3.org/1999/xlink"
! 	      xlink:href="http://hoard.org">
        The Hoard Memory Allocator
  	</link>
        </title>
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/xml/manual/documentation_hacking.xml gcc-7.5.0/libstdc++-v3/doc/xml/manual/documentation_hacking.xml
*** gcc-7.4.0/libstdc++-v3/doc/xml/manual/documentation_hacking.xml	Wed Mar  1 12:53:28 2017
--- gcc-7.5.0/libstdc++-v3/doc/xml/manual/documentation_hacking.xml	Thu Oct 24 15:30:57 2019
***************
*** 805,811 ****
        </para>
  
        <para>
! 	Generated files are output into separate sub directores of
  	<filename class="directory">doc/docbook/</filename> in the
  	build directory, based on the output format. For instance, the
  	HTML docs will be in <filename
--- 805,811 ----
        </para>
  
        <para>
! 	Generated files are output into separate sub-directores of
  	<filename class="directory">doc/docbook/</filename> in the
  	build directory, based on the output format. For instance, the
  	HTML docs will be in <filename
***************
*** 813,818 ****
--- 813,825 ----
        </para>
  
        <para>
+ 	The <screen>doc-html-docbook-regenerate</screen> target will generate
+ 	the HTML files and copy them back to the libstdc++ source tree.
+ 	This can be used to update the HTML files that are checked in to
+ 	version control.
+       </para>
+ 
+       <para>
  	If the Docbook stylesheets are installed in a custom location,
  	one can use the variable <literal>XSL_STYLE_DIR</literal> to
  	override the Makefile defaults. For example:
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/xml/manual/shared_ptr.xml gcc-7.5.0/libstdc++-v3/doc/xml/manual/shared_ptr.xml
*** gcc-7.4.0/libstdc++-v3/doc/xml/manual/shared_ptr.xml	Thu Feb 16 15:25:18 2017
--- gcc-7.5.0/libstdc++-v3/doc/xml/manual/shared_ptr.xml	Mon Sep  2 11:09:51 2019
*************** available policies are:
*** 239,245 ****
     <orderedlist>
       <listitem>
         <para>
!        <constant>_S_Atomic</constant>
         </para>
         <para>
  Selected when GCC supports a builtin atomic compare-and-swap operation
--- 239,245 ----
     <orderedlist>
       <listitem>
         <para>
!        <constant>_S_atomic</constant>
         </para>
         <para>
  Selected when GCC supports a builtin atomic compare-and-swap operation
*************** synchronisation.
*** 252,258 ****
  
       <listitem>
         <para>
!        <constant>_S_Mutex</constant>
         </para>
         <para>
  The _Sp_counted_base specialization for this policy contains a mutex,
--- 252,258 ----
  
       <listitem>
         <para>
!        <constant>_S_mutex</constant>
         </para>
         <para>
  The _Sp_counted_base specialization for this policy contains a mutex,
*************** builtins aren't available so explicit me
*** 263,269 ****
  
       <listitem>
         <para>
!        <constant>_S_Single</constant>
         </para>
         <para>
  This policy uses a non-reentrant add_ref_lock() with no locking. It is
--- 263,269 ----
  
       <listitem>
         <para>
!        <constant>_S_single</constant>
         </para>
         <para>
  This policy uses a non-reentrant add_ref_lock() with no locking. It is
diff -Nrcpad gcc-7.4.0/libstdc++-v3/doc/xml/manual/status_cxx2017.xml gcc-7.5.0/libstdc++-v3/doc/xml/manual/status_cxx2017.xml
*** gcc-7.4.0/libstdc++-v3/doc/xml/manual/status_cxx2017.xml	Thu Jan 18 20:31:25 2018
--- gcc-7.5.0/libstdc++-v3/doc/xml/manual/status_cxx2017.xml	Mon Sep  2 11:09:51 2019
*************** This section describes the C++17 and lib
*** 24,31 ****
  </para>
  
  <para>
! The following table lists new library features that have been accepted into
! the C++17 working draft. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
--- 24,31 ----
  </para>
  
  <para>
! The following table lists new library features that are included in
! the C++17 standard. The "Proposal" column provides a link to the
  ISO C++ committee proposal that describes the feature, while the "Status"
  column indicates the first version of GCC that contains an implementation of
  this feature (if it has been implemented).
*************** Feature-testing recommendations for C++<
*** 381,387 ****
  	</link>
        </entry>
        <entry align="center"> 7.1 </entry>
!       <entry><code> </code></entry>
      </row>
  
      <row>
--- 381,387 ----
  	</link>
        </entry>
        <entry align="center"> 7.1 </entry>
!       <entry><code>__cpp_lib_raw_memory_algorithms &gt;= 201606L</code></entry>
      </row>
  
      <row>
*************** Feature-testing recommendations for C++<
*** 789,794 ****
--- 789,819 ----
               <code> __cpp_lib_to_chars >= 201611 </code></entry>
      </row>
  
+     <row>
+       <entry> Homogeneous interface for variant, any and optional </entry>
+       <entry>
+ 	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf">
+ 	P0032R3
+ 	</link>
+       </entry>
+       <entry align="center"> 7.1  </entry>
+       <entry>
+              <code> __cpp_lib_any >= 201606 </code>,
+              <code> __cpp_lib_optional >= 201606 </code>,
+              <code> __cpp_lib_variant >= 201606 </code>
+       </entry>
+     </row>
+ 
+     <row>
+       <entry> Making Optional Greater Equal Again </entry>
+       <entry>
+ 	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf">
+ 	P0307R2
+ 	</link>
+       </entry>
+       <entry align="center"> 7.1  </entry>
+       <entry> <code> __cpp_lib_optional >= 201606 </code> </entry>
+     </row>
  
    </tbody>
  </tgroup>
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/Makefile.in gcc-7.5.0/libstdc++-v3/include/Makefile.in
*** gcc-7.4.0/libstdc++-v3/include/Makefile.in	Mon Oct 22 08:47:52 2018
--- gcc-7.5.0/libstdc++-v3/include/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 204,209 ****
--- 204,210 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/bits/char_traits.h gcc-7.5.0/libstdc++-v3/include/bits/char_traits.h
*** gcc-7.4.0/libstdc++-v3/include/bits/char_traits.h	Fri Jun 15 16:42:57 2018
--- gcc-7.5.0/libstdc++-v3/include/bits/char_traits.h	Sat Feb 23 01:01:56 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 246,252 ****
      __constant_char_array_p(const _CharT* __a, size_t __n)
      {
        size_t __i = 0;
!       while (__builtin_constant_p(__a[__i]) && __i < __n)
  	__i++;
        return __i == __n;
      }
--- 246,252 ----
      __constant_char_array_p(const _CharT* __a, size_t __n)
      {
        size_t __i = 0;
!       while (__i < __n && __builtin_constant_p(__a[__i]))
  	__i++;
        return __i == __n;
      }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/bits/forward_list.tcc gcc-7.5.0/libstdc++-v3/include/bits/forward_list.tcc
*** gcc-7.4.0/libstdc++-v3/include/bits/forward_list.tcc	Wed Jul  4 13:59:42 2018
--- gcc-7.5.0/libstdc++-v3/include/bits/forward_list.tcc	Wed May  8 12:17:26 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 381,387 ****
        auto __iy = __ly.cbegin();
        while (__ix != __lx.cend() && __iy != __ly.cend())
          {
!           if (*__ix != *__iy)
              return false;
            ++__ix;
            ++__iy;
--- 381,387 ----
        auto __iy = __ly.cbegin();
        while (__ix != __lx.cend() && __iy != __ly.cend())
          {
!           if (!(*__ix == *__iy))
              return false;
            ++__ix;
            ++__iy;
*************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
*** 451,459 ****
                          __p = static_cast<_Node*>(__p->_M_next);
                          --__psize;
                        }
!                     else if (__comp(*__p->_M_valptr(), *__q->_M_valptr()))
                        {
!                         // First node of p is lower; e must come from p.
                          __e = __p;
                          __p = static_cast<_Node*>(__p->_M_next);
                          --__psize;
--- 451,459 ----
                          __p = static_cast<_Node*>(__p->_M_next);
                          --__psize;
                        }
!                     else if (!__comp(*__q->_M_valptr(), *__p->_M_valptr()))
                        {
!                         // First node of q is not lower; e must come from p.
                          __e = __p;
                          __p = static_cast<_Node*>(__p->_M_next);
                          --__psize;
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/bits/random.h gcc-7.5.0/libstdc++-v3/include/bits/random.h
*** gcc-7.4.0/libstdc++-v3/include/bits/random.h	Mon Jan 29 13:58:49 2018
--- gcc-7.5.0/libstdc++-v3/include/bits/random.h	Mon Sep  2 11:09:45 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 5982,5990 ****
      size_t size() const noexcept
      { return _M_v.size(); }
  
!     template<typename OutputIterator>
        void
!       param(OutputIterator __dest) const
        { std::copy(_M_v.begin(), _M_v.end(), __dest); }
  
      // no copy functions
--- 5982,5990 ----
      size_t size() const noexcept
      { return _M_v.size(); }
  
!     template<typename _OutputIterator>
        void
!       param(_OutputIterator __dest) const
        { std::copy(_M_v.begin(), _M_v.end(), __dest); }
  
      // no copy functions
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/bits/stl_uninitialized.h gcc-7.5.0/libstdc++-v3/include/bits/stl_uninitialized.h
*** gcc-7.4.0/libstdc++-v3/include/bits/stl_uninitialized.h	Tue Jul 25 18:05:13 2017
--- gcc-7.5.0/libstdc++-v3/include/bits/stl_uninitialized.h	Thu May 23 15:08:52 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 827,832 ****
--- 827,834 ----
  #endif
  
  #if __cplusplus > 201402L
+ # define __cpp_lib_raw_memory_algorithms 201606L
+ 
    template <typename _ForwardIterator>
      inline void
      uninitialized_default_construct(_ForwardIterator __first,
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/bits/unique_ptr.h gcc-7.5.0/libstdc++-v3/include/bits/unique_ptr.h
*** gcc-7.4.0/libstdc++-v3/include/bits/unique_ptr.h	Tue Oct 23 15:55:05 2018
--- gcc-7.5.0/libstdc++-v3/include/bits/unique_ptr.h	Mon Sep  2 11:10:04 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 171,184 ****
        // unique_ptr
        template<typename _Up, typename _Ep>
  	using __safe_conversion_up = __and_<
! 	        is_convertible<typename unique_ptr<_Up, _Ep>::pointer, pointer>,
!                 __not_<is_array<_Up>>,
!                 __or_<__and_<is_reference<deleter_type>,
!                              is_same<deleter_type, _Ep>>,
!                       __and_<__not_<is_reference<deleter_type>>,
!                              is_convertible<_Ep, deleter_type>>
!                 >
!               >;
  
        // Constructors.
  
--- 171,179 ----
        // unique_ptr
        template<typename _Up, typename _Ep>
  	using __safe_conversion_up = __and_<
! 	  is_convertible<typename unique_ptr<_Up, _Ep>::pointer, pointer>,
! 	  __not_<is_array<_Up>>
!         >;
  
        // Constructors.
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 419,434 ****
        // helper template for detecting a safe conversion from another
        // unique_ptr
        template<typename _Up, typename _Ep,
!                typename _Up_up = unique_ptr<_Up, _Ep>,
! 	       typename _Up_element_type = typename _Up_up::element_type>
  	using __safe_conversion_up = __and_<
            is_array<_Up>,
            is_same<pointer, element_type*>,
!           is_same<typename _Up_up::pointer, _Up_element_type*>,
!           is_convertible<_Up_element_type(*)[], element_type(*)[]>,
!           __or_<__and_<is_reference<deleter_type>, is_same<deleter_type, _Ep>>,
!                 __and_<__not_<is_reference<deleter_type>>,
!                        is_convertible<_Ep, deleter_type>>>
          >;
  
        // helper template for detecting a safe conversion from a raw pointer
--- 414,427 ----
        // helper template for detecting a safe conversion from another
        // unique_ptr
        template<typename _Up, typename _Ep,
!                typename _UPtr = unique_ptr<_Up, _Ep>,
! 	       typename _UP_pointer = typename _UPtr::pointer,
! 	       typename _UP_element_type = typename _UPtr::element_type>
  	using __safe_conversion_up = __and_<
            is_array<_Up>,
            is_same<pointer, element_type*>,
!           is_same<_UP_pointer, _UP_element_type*>,
!           is_convertible<_UP_element_type(*)[], element_type(*)[]>
          >;
  
        // helper template for detecting a safe conversion from a raw pointer
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 513,520 ****
  		typename = _DeleterConstraint<_Up>>
  	constexpr unique_ptr(nullptr_t) noexcept : _M_t() { }
  
!       template<typename _Up, typename _Ep,
! 	       typename = _Require<__safe_conversion_up<_Up, _Ep>>>
  	unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  	: _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter()))
  	{ }
--- 506,516 ----
  		typename = _DeleterConstraint<_Up>>
  	constexpr unique_ptr(nullptr_t) noexcept : _M_t() { }
  
!       template<typename _Up, typename _Ep, typename = _Require<
! 	       __safe_conversion_up<_Up, _Ep>,
! 	       typename conditional<is_reference<_Dp>::value,
! 				    is_same<_Ep, _Dp>,
! 				    is_convertible<_Ep, _Dp>>::type>>
  	unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  	: _M_t(__u.release(), std::forward<_Ep>(__u.get_deleter()))
  	{ }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/experimental/any gcc-7.5.0/libstdc++-v3/include/experimental/any
*** gcc-7.4.0/libstdc++-v3/include/experimental/any	Mon Oct 22 08:47:52 2018
--- gcc-7.5.0/libstdc++-v3/include/experimental/any	Thu May 23 15:09:02 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 300,306 ****
      _Storage _M_storage;
  
      template<typename _Tp>
!       friend void* __any_caster(const any* __any);
  
      // Manage in-place contained object.
      template<typename _Tp>
--- 300,307 ----
      _Storage _M_storage;
  
      template<typename _Tp>
!       friend enable_if_t<is_object<_Tp>::value, void*>
!       __any_caster(const any* __any);
  
      // Manage in-place contained object.
      template<typename _Tp>
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 410,428 ****
      }
    // @}
  
    template<typename _Tp>
!     void* __any_caster(const any* __any)
      {
!       struct _None { };
!       using _Up = decay_t<_Tp>;
!       using _Vp = conditional_t<is_copy_constructible<_Up>::value, _Up, _None>;
!       if (__any->_M_manager != &any::_Manager<_Vp>::_S_manage)
! 	return nullptr;
!       any::_Arg __arg;
!       __any->_M_manager(any::_Op_access, __any, &__arg);
!       return __arg._M_obj;
      }
  
    /**
     * @brief Access the contained object.
     *
--- 411,455 ----
      }
    // @}
  
+   /// @cond undocumented
    template<typename _Tp>
!     enable_if_t<is_object<_Tp>::value, void*>
!     __any_caster(const any* __any)
      {
!       // any_cast<T> returns non-null if __any->type() == typeid(T) and
!       // typeid(T) ignores cv-qualifiers so remove them:
!       using _Up = remove_cv_t<_Tp>;
!       // The contained value has a decayed type, so if decay_t<U> is not U,
!       // then it's not possible to have a contained value of type U.
!       using __does_not_decay = is_same<decay_t<_Up>, _Up>;
!       // Only copy constructible types can be used for contained values.
!       using __is_copyable = is_copy_constructible<_Up>;
!       // If the type _Tp could never be stored in an any we don't want to
!       // instantiate _Manager<_Tp>, so use _Manager<any::_Op> instead, which
!       // is explicitly specialized and has a no-op _S_manage function.
!       using _Vp = conditional_t<__and_<__does_not_decay, __is_copyable>::value,
! 				_Up, any::_Op>;
!       // First try comparing function addresses, which works without RTTI
!       if (__any->_M_manager == &any::_Manager<_Vp>::_S_manage
! #if __cpp_rtti
! 	  || __any->type() == typeid(_Tp)
! #endif
! 	  )
! 	{
! 	  any::_Arg __arg;
! 	  __any->_M_manager(any::_Op_access, __any, &__arg);
! 	  return __arg._M_obj;
! 	}
!       return nullptr;
      }
  
+   // This overload exists so that std::any_cast<void(*)()>(a) is well-formed.
+   template<typename _Tp>
+     enable_if_t<!is_object<_Tp>::value, _Tp*>
+     __any_caster(const any*) noexcept
+     { return nullptr; }
+   /// @endcond
+ 
    /**
     * @brief Access the contained object.
     *
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 517,522 ****
--- 544,557 ----
        }
      }
  
+   // Dummy specialization used by __any_caster.
+   template<>
+     struct any::_Manager_internal<any::_Op>
+     {
+       static void
+       _S_manage(_Op, const any*, _Arg*) { }
+     };
+ 
    // @} group any
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace fundamentals_v1
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/experimental/bits/fs_path.h gcc-7.5.0/libstdc++-v3/include/experimental/bits/fs_path.h
*** gcc-7.4.0/libstdc++-v3/include/experimental/bits/fs_path.h	Wed Jul  4 13:59:06 2018
--- gcc-7.5.0/libstdc++-v3/include/experimental/bits/fs_path.h	Wed Jun 26 15:12:15 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 182,188 ****
      path(path&& __p) noexcept
      : _M_pathname(std::move(__p._M_pathname)), _M_type(__p._M_type)
      {
!       _M_split_cmpts();
        __p.clear();
      }
  
--- 182,189 ----
      path(path&& __p) noexcept
      : _M_pathname(std::move(__p._M_pathname)), _M_type(__p._M_type)
      {
!       if (_M_type == _Type::_Multi)
! 	_M_split_cmpts();
        __p.clear();
      }
  
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 456,462 ****
  	return _S_convert_loc(__tmp.data(), __tmp.data()+__tmp.size(), __loc);
        }
  
!     bool _S_is_dir_sep(value_type __ch)
      {
  #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
        return __ch == L'/' || __ch == preferred_separator;
--- 457,463 ----
  	return _S_convert_loc(__tmp.data(), __tmp.data()+__tmp.size(), __loc);
        }
  
!     static bool _S_is_dir_sep(value_type __ch)
      {
  #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
        return __ch == L'/' || __ch == preferred_separator;
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/experimental/type_traits gcc-7.5.0/libstdc++-v3/include/experimental/type_traits
*** gcc-7.4.0/libstdc++-v3/include/experimental/type_traits	Mon Oct 22 08:47:52 2018
--- gcc-7.5.0/libstdc++-v3/include/experimental/type_traits	Mon Sep  2 11:09:45 2019
*************** template<typename _Default, template<typ
*** 254,265 ****
  template<typename _Default, template<typename...> class _Op, typename... _Args>
    using detected_or_t = typename detected_or<_Default, _Op, _Args...>::type;
  
! template<typename Expected, template<typename...> class _Op, typename... _Args>
!   using is_detected_exact = is_same<Expected, detected_t<_Op, _Args...>>;
  
! template<typename Expected, template<typename...> class _Op, typename... _Args>
    constexpr bool is_detected_exact_v
!     = is_detected_exact<Expected, _Op, _Args...>::value;
  
  template<typename _To, template<typename...> class _Op, typename... _Args>
    using is_detected_convertible
--- 254,265 ----
  template<typename _Default, template<typename...> class _Op, typename... _Args>
    using detected_or_t = typename detected_or<_Default, _Op, _Args...>::type;
  
! template<typename _Expected, template<typename...> class _Op, typename... _Args>
!   using is_detected_exact = is_same<_Expected, detected_t<_Op, _Args...>>;
  
! template<typename _Expected, template<typename...> class _Op, typename... _Args>
    constexpr bool is_detected_exact_v
!     = is_detected_exact<_Expected, _Op, _Args...>::value;
  
  template<typename _To, template<typename...> class _Op, typename... _Args>
    using is_detected_convertible
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/std/any gcc-7.5.0/libstdc++-v3/include/std/any
*** gcc-7.4.0/libstdc++-v3/include/std/any	Mon Jan 29 13:58:54 2018
--- gcc-7.5.0/libstdc++-v3/include/std/any	Thu May 23 15:09:02 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 66,72 ****
  #endif
    }
  
! #define __cpp_lib_any 201603
  
    /**
     *  @brief A type-safe container of any type.
--- 66,72 ----
  #endif
    }
  
! #define __cpp_lib_any 201606L
  
    /**
     *  @brief A type-safe container of any type.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 513,532 ****
      }
    // @}
  
    template<typename _Tp>
      void* __any_caster(const any* __any)
      {
!       if constexpr (is_copy_constructible_v<decay_t<_Tp>>)
  	{
! 	  if (__any->_M_manager == &any::_Manager<decay_t<_Tp>>::_S_manage)
! 	    {
! 	      any::_Arg __arg;
! 	      __any->_M_manager(any::_Op_access, __any, &__arg);
! 	      return __arg._M_obj;
! 	    }
  	}
        return nullptr;
      }
  
    /**
     * @brief Access the contained object.
--- 513,546 ----
      }
    // @}
  
+   /// @cond undocumented
    template<typename _Tp>
      void* __any_caster(const any* __any)
      {
!       // any_cast<T> returns non-null if __any->type() == typeid(T) and
!       // typeid(T) ignores cv-qualifiers so remove them:
!       using _Up = remove_cv_t<_Tp>;
!       // The contained value has a decayed type, so if decay_t<U> is not U,
!       // then it's not possible to have a contained value of type U:
!       if constexpr (!is_same_v<decay_t<_Up>, _Up>)
! 	return nullptr;
!       // Only copy constructible types can be used for contained values:
!       else if constexpr (!is_copy_constructible_v<_Up>)
! 	return nullptr;
!       // First try comparing function addresses, which works without RTTI
!       else if (__any->_M_manager == &any::_Manager<_Up>::_S_manage
! #if __cpp_rtti
! 	  || __any->type() == typeid(_Tp)
! #endif
! 	  )
  	{
! 	  any::_Arg __arg;
! 	  __any->_M_manager(any::_Op_access, __any, &__arg);
! 	  return __arg._M_obj;
  	}
        return nullptr;
      }
+   /// @endcond
  
    /**
     * @brief Access the contained object.
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 542,557 ****
    template<typename _ValueType>
      inline const _ValueType* any_cast(const any* __any) noexcept
      {
!       if (__any)
! 	return static_cast<_ValueType*>(__any_caster<_ValueType>(__any));
        return nullptr;
      }
  
    template<typename _ValueType>
      inline _ValueType* any_cast(any* __any) noexcept
      {
!       if (__any)
! 	return static_cast<_ValueType*>(__any_caster<_ValueType>(__any));
        return nullptr;
      }
    // @}
--- 556,573 ----
    template<typename _ValueType>
      inline const _ValueType* any_cast(const any* __any) noexcept
      {
!       if constexpr (is_object_v<_ValueType>)
! 	if (__any)
! 	  return static_cast<_ValueType*>(__any_caster<_ValueType>(__any));
        return nullptr;
      }
  
    template<typename _ValueType>
      inline _ValueType* any_cast(any* __any) noexcept
      {
!       if constexpr (is_object_v<_ValueType>)
! 	if (__any)
! 	  return static_cast<_ValueType*>(__any_caster<_ValueType>(__any));
        return nullptr;
      }
    // @}
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/std/optional gcc-7.5.0/libstdc++-v3/include/std/optional
*** gcc-7.4.0/libstdc++-v3/include/std/optional	Thu Jan  4 18:58:29 2018
--- gcc-7.5.0/libstdc++-v3/include/std/optional	Thu May 23 15:08:52 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 51,57 ****
     *  @{
     */
  
! #define __cpp_lib_optional 201603
  
    template<typename _Tp>
      class optional;
--- 51,57 ----
     *  @{
     */
  
! #define __cpp_lib_optional 201606L
  
    template<typename _Tp>
      class optional;
diff -Nrcpad gcc-7.4.0/libstdc++-v3/include/std/variant gcc-7.5.0/libstdc++-v3/include/std/variant
*** gcc-7.4.0/libstdc++-v3/include/std/variant	Wed Jul  4 13:59:37 2018
--- gcc-7.5.0/libstdc++-v3/include/std/variant	Thu May 23 15:08:52 2019
*************** _GLIBCXX_END_NAMESPACE_VERSION
*** 71,77 ****
  
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
! #define __cpp_lib_variant 201603
  
    template<typename... _Types> class tuple;
    template<typename... _Types> class variant;
--- 71,77 ----
  
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
  
! #define __cpp_lib_variant 201606L
  
    template<typename... _Types> class tuple;
    template<typename... _Types> class variant;
diff -Nrcpad gcc-7.4.0/libstdc++-v3/libsupc++/Makefile.in gcc-7.5.0/libstdc++-v3/libsupc++/Makefile.in
*** gcc-7.4.0/libstdc++-v3/libsupc++/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/libsupc++/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 277,282 ****
--- 277,283 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/libsupc++/cxxabi.h gcc-7.5.0/libstdc++-v3/libsupc++/cxxabi.h
*** gcc-7.4.0/libstdc++-v3/libsupc++/cxxabi.h	Wed Sep 13 10:07:25 2017
--- gcc-7.5.0/libstdc++-v3/libsupc++/cxxabi.h	Mon Sep  2 11:10:00 2019
*************** namespace __gnu_cxx
*** 683,690 ****
     *  @brief Exception thrown by __cxa_guard_acquire.
     *  @ingroup exceptions
     *
!    *  6.7[stmt.dcl]/4: If control re-enters the declaration (recursively)
!    *  while the object is being initialized, the behavior is undefined.
     *
     *  Since we already have a library function to handle locking, we might
     *  as well check for this situation and throw an exception.
--- 683,691 ----
     *  @brief Exception thrown by __cxa_guard_acquire.
     *  @ingroup exceptions
     *
!    *  C++ 2011 6.7 [stmt.dcl]/4: If control re-enters the declaration
!    *  recursively while the variable is being initialized, the behavior
!    *  is undefined.
     *
     *  Since we already have a library function to handle locking, we might
     *  as well check for this situation and throw an exception.
*************** namespace __gnu_cxx
*** 694,701 ****
    class recursive_init_error: public std::exception
    {
    public:
!     recursive_init_error() throw() { }
!     virtual ~recursive_init_error() throw ();
    };
  }
  #endif // __cplusplus
--- 695,702 ----
    class recursive_init_error: public std::exception
    {
    public:
!     recursive_init_error() _GLIBCXX_NOTHROW;
!     virtual ~recursive_init_error() _GLIBCXX_NOTHROW;
    };
  }
  #endif // __cplusplus
diff -Nrcpad gcc-7.4.0/libstdc++-v3/libsupc++/guard_error.cc gcc-7.5.0/libstdc++-v3/libsupc++/guard_error.cc
*** gcc-7.4.0/libstdc++-v3/libsupc++/guard_error.cc	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/libsupc++/guard_error.cc	Mon Sep  2 11:10:00 2019
***************
*** 26,31 ****
  
  namespace __gnu_cxx
  {
!   recursive_init_error::~recursive_init_error() throw() { }
  }
- 
--- 26,31 ----
  
  namespace __gnu_cxx
  {
!   recursive_init_error::recursive_init_error() noexcept { }
!   recursive_init_error::~recursive_init_error() noexcept { }
  }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/libsupc++/hash_bytes.cc gcc-7.5.0/libstdc++-v3/libsupc++/hash_bytes.cc
*** gcc-7.4.0/libstdc++-v3/libsupc++/hash_bytes.cc	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/libsupc++/hash_bytes.cc	Wed May  8 12:17:20 2019
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 139,145 ****
  
      // Remove the bytes not divisible by the sizeof(size_t).  This
      // allows the main loop to process the data as 64-bit integers.
!     const int len_aligned = len & ~0x7;
      const char* const end = buf + len_aligned;
      size_t hash = seed ^ (len * mul);
      for (const char* p = buf; p != end; p += 8)
--- 139,145 ----
  
      // Remove the bytes not divisible by the sizeof(size_t).  This
      // allows the main loop to process the data as 64-bit integers.
!     const size_t len_aligned = len & ~(size_t)0x7;
      const char* const end = buf + len_aligned;
      size_t hash = seed ^ (len * mul);
      for (const char* p = buf; p != end; p += 8)
diff -Nrcpad gcc-7.4.0/libstdc++-v3/libsupc++/new_opa.cc gcc-7.5.0/libstdc++-v3/libsupc++/new_opa.cc
*** gcc-7.4.0/libstdc++-v3/libsupc++/new_opa.cc	Wed Aug  8 15:53:25 2018
--- gcc-7.5.0/libstdc++-v3/libsupc++/new_opa.cc	Thu Oct 24 15:31:00 2019
*************** operator new (std::size_t sz, std::align
*** 114,122 ****
      sz = 1;
  
  #if _GLIBCXX_HAVE_ALIGNED_ALLOC
! # ifdef _AIX
    /* AIX 7.2.0.0 aligned_alloc incorrectly has posix_memalign's requirement
!    * that alignment is a multiple of sizeof(void*).  */
    if (align < sizeof(void*))
      align = sizeof(void*);
  # endif
--- 114,123 ----
      sz = 1;
  
  #if _GLIBCXX_HAVE_ALIGNED_ALLOC
! # if defined _AIX || defined __APPLE__
    /* AIX 7.2.0.0 aligned_alloc incorrectly has posix_memalign's requirement
!    * that alignment is a multiple of sizeof(void*).
!    * OS X 10.15 has the same requirement.  */
    if (align < sizeof(void*))
      align = sizeof(void*);
  # endif
diff -Nrcpad gcc-7.4.0/libstdc++-v3/po/Makefile.in gcc-7.5.0/libstdc++-v3/po/Makefile.in
*** gcc-7.4.0/libstdc++-v3/po/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/po/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 204,209 ****
--- 204,210 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/python/Makefile.in gcc-7.5.0/libstdc++-v3/python/Makefile.in
*** gcc-7.4.0/libstdc++-v3/python/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/python/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 234,239 ****
--- 234,240 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py gcc-7.5.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py
*** gcc-7.4.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py	Tue Jan 10 12:38:42 2017
--- gcc-7.5.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py	Wed Sep 11 11:41:36 2019
*************** class SharedPtrUseCountWorker(gdb.xmetho
*** 728,734 ****
          return gdb.lookup_type('long')
  
      def __call__(self, obj):
!         refcounts = ['_M_refcount']['_M_pi']
          return refcounts['_M_use_count'] if refcounts else 0
  
  class SharedPtrUniqueWorker(SharedPtrUseCountWorker):
--- 728,734 ----
          return gdb.lookup_type('long')
  
      def __call__(self, obj):
!         refcounts = obj['_M_refcount']['_M_pi']
          return refcounts['_M_use_count'] if refcounts else 0
  
  class SharedPtrUniqueWorker(SharedPtrUseCountWorker):
diff -Nrcpad gcc-7.4.0/libstdc++-v3/scripts/make_exports.pl gcc-7.5.0/libstdc++-v3/scripts/make_exports.pl
*** gcc-7.4.0/libstdc++-v3/scripts/make_exports.pl	Sun Oct 15 07:52:18 2006
--- gcc-7.5.0/libstdc++-v3/scripts/make_exports.pl	Mon Dec 24 13:09:39 2018
*************** NAME: while (<NM>) {
*** 103,108 ****
--- 103,116 ----
      # Ignore undefined and local symbols.
      next if (/^([^ ]+) [Ua-z] /);
  
+     # GCC does not export construction vtables from shared libraries.
+     # However the symbols are marked hidden, for Darwin that makes them
+     # also external "private_extern", which means that they show up in
+     # this list.  When ld64 encounters them it generates a warning that
+     # they cannot be exported, so trim them from the set now.
+     next if (/^construction vtable.*$/);
+     next if (/^__ZTC.*$/);
+ 
      # $sym is the name of the symbol, $noeh_sym is the same thing with
      # any '.eh' suffix removed.
      die "unknown nm output $_" if (! /^([^ ]+) [A-Z] /);
diff -Nrcpad gcc-7.4.0/libstdc++-v3/src/Makefile.am gcc-7.5.0/libstdc++-v3/src/Makefile.am
*** gcc-7.4.0/libstdc++-v3/src/Makefile.am	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/src/Makefile.am	Mon Sep  2 11:09:55 2019
*************** endif
*** 321,327 ****
  # Take care to fix all possibly-relative paths.
  debugdir = ${glibcxx_builddir}/src/debug
  stamp-debug:
! 	if test ! -d ${debugdir}; then \
  	  mkdir -p ${debugdir}; \
  	  for d in $(SUBDIRS); do mkdir -p  ${debugdir}/$$d; done; \
  	  (cd ${debugdir}; \
--- 321,327 ----
  # Take care to fix all possibly-relative paths.
  debugdir = ${glibcxx_builddir}/src/debug
  stamp-debug:
! 	if test ! -d ${debugdir} || test ! -f ${debugdir}/Makefile ; then \
  	  mkdir -p ${debugdir}; \
  	  for d in $(SUBDIRS); do mkdir -p  ${debugdir}/$$d; done; \
  	  (cd ${debugdir}; \
diff -Nrcpad gcc-7.4.0/libstdc++-v3/src/Makefile.in gcc-7.5.0/libstdc++-v3/src/Makefile.in
*** gcc-7.4.0/libstdc++-v3/src/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/src/Makefile.in	Mon Sep  2 11:09:55 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 267,272 ****
--- 267,273 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
*************** libstdc++convenience.la: $(toolexeclib_L
*** 992,998 ****
  	fi; \
  	echo `date` > stamp-libstdc++convenience;
  stamp-debug:
! 	if test ! -d ${debugdir}; then \
  	  mkdir -p ${debugdir}; \
  	  for d in $(SUBDIRS); do mkdir -p  ${debugdir}/$$d; done; \
  	  (cd ${debugdir}; \
--- 993,999 ----
  	fi; \
  	echo `date` > stamp-libstdc++convenience;
  stamp-debug:
! 	if test ! -d ${debugdir} || test ! -f ${debugdir}/Makefile ; then \
  	  mkdir -p ${debugdir}; \
  	  for d in $(SUBDIRS); do mkdir -p  ${debugdir}/$$d; done; \
  	  (cd ${debugdir}; \
diff -Nrcpad gcc-7.4.0/libstdc++-v3/src/c++11/Makefile.in gcc-7.5.0/libstdc++-v3/src/c++11/Makefile.in
*** gcc-7.4.0/libstdc++-v3/src/c++11/Makefile.in	Wed Apr 18 13:13:29 2018
--- gcc-7.5.0/libstdc++-v3/src/c++11/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 242,247 ****
--- 242,248 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/src/c++17/Makefile.in gcc-7.5.0/libstdc++-v3/src/c++17/Makefile.in
*** gcc-7.4.0/libstdc++-v3/src/c++17/Makefile.in	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/src/c++17/Makefile.in	Thu May 23 15:34:42 2019
***************
*** 0 ****
--- 1,754 ----
+ # Makefile.in generated by automake 1.15.1 from Makefile.am.
+ # @configure_input@
+ 
+ # Copyright (C) 1994-2017 Free Software Foundation, Inc.
+ 
+ # This Makefile.in is free software; the Free Software Foundation
+ # gives unlimited permission to copy and/or distribute it,
+ # with or without modifications, as long as this notice is preserved.
+ 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ # PARTICULAR PURPOSE.
+ 
+ @SET_MAKE@
+ 
+ VPATH = @srcdir@
+ am__is_gnu_make = { \
+   if test -z '$(MAKELEVEL)'; then \
+     false; \
+   elif test -n '$(MAKE_HOST)'; then \
+     true; \
+   elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+     true; \
+   else \
+     false; \
+   fi; \
+ }
+ am__make_running_with_option = \
+   case $${target_option-} in \
+       ?) ;; \
+       *) echo "am__make_running_with_option: internal error: invalid" \
+               "target option '$${target_option-}' specified" >&2; \
+          exit 1;; \
+   esac; \
+   has_opt=no; \
+   sane_makeflags=$$MAKEFLAGS; \
+   if $(am__is_gnu_make); then \
+     sane_makeflags=$$MFLAGS; \
+   else \
+     case $$MAKEFLAGS in \
+       *\\[\ \	]*) \
+         bs=\\; \
+         sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+           | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+     esac; \
+   fi; \
+   skip_next=no; \
+   strip_trailopt () \
+   { \
+     flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+   }; \
+   for flg in $$sane_makeflags; do \
+     test $$skip_next = yes && { skip_next=no; continue; }; \
+     case $$flg in \
+       *=*|--*) continue;; \
+         -*I) strip_trailopt 'I'; skip_next=yes;; \
+       -*I?*) strip_trailopt 'I';; \
+         -*O) strip_trailopt 'O'; skip_next=yes;; \
+       -*O?*) strip_trailopt 'O';; \
+         -*l) strip_trailopt 'l'; skip_next=yes;; \
+       -*l?*) strip_trailopt 'l';; \
+       -[dEDm]) skip_next=yes;; \
+       -[JT]) skip_next=yes;; \
+     esac; \
+     case $$flg in \
+       *$$target_option*) has_opt=yes; break;; \
+     esac; \
+   done; \
+   test $$has_opt = yes
+ am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+ am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+ pkgdatadir = $(datadir)/@PACKAGE@
+ pkgincludedir = $(includedir)/@PACKAGE@
+ pkglibdir = $(libdir)/@PACKAGE@
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
+ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ install_sh_DATA = $(install_sh) -c -m 644
+ install_sh_PROGRAM = $(install_sh) -c
+ install_sh_SCRIPT = $(install_sh) -c
+ INSTALL_HEADER = $(INSTALL_DATA)
+ transform = $(program_transform_name)
+ NORMAL_INSTALL = :
+ PRE_INSTALL = :
+ POST_INSTALL = :
+ NORMAL_UNINSTALL = :
+ PRE_UNINSTALL = :
+ POST_UNINSTALL = :
+ build_triplet = @build@
+ host_triplet = @host@
+ target_triplet = @target@
+ subdir = src/c++17
+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+ 	$(top_srcdir)/../config/enable.m4 \
+ 	$(top_srcdir)/../config/futex.m4 \
+ 	$(top_srcdir)/../config/hwcaps.m4 \
+ 	$(top_srcdir)/../config/iconv.m4 \
+ 	$(top_srcdir)/../config/lead-dot.m4 \
+ 	$(top_srcdir)/../config/lib-ld.m4 \
+ 	$(top_srcdir)/../config/lib-link.m4 \
+ 	$(top_srcdir)/../config/lib-prefix.m4 \
+ 	$(top_srcdir)/../config/lthostflags.m4 \
+ 	$(top_srcdir)/../config/multi.m4 \
+ 	$(top_srcdir)/../config/no-executables.m4 \
+ 	$(top_srcdir)/../config/override.m4 \
+ 	$(top_srcdir)/../config/stdint.m4 \
+ 	$(top_srcdir)/../config/unwind_ipinfo.m4 \
+ 	$(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+ 	$(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+ 	$(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/crossconfig.m4 \
+ 	$(top_srcdir)/linkage.m4 $(top_srcdir)/acinclude.m4 \
+ 	$(top_srcdir)/../config/gc++filt.m4 \
+ 	$(top_srcdir)/../config/tls.m4 $(top_srcdir)/../config/gthr.m4 \
+ 	$(top_srcdir)/../config/cet.m4 $(top_srcdir)/configure.ac
+ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ 	$(ACLOCAL_M4)
+ DIST_COMMON = $(srcdir)/Makefile.am
+ CONFIG_HEADER = $(top_builddir)/config.h
+ CONFIG_CLEAN_FILES =
+ CONFIG_CLEAN_VPATH_FILES =
+ LTLIBRARIES = $(noinst_LTLIBRARIES)
+ libc__17convenience_la_LIBADD =
+ @ENABLE_DUAL_ABI_TRUE@am__objects_1 = cow-fs_dir.lo cow-fs_ops.lo \
+ @ENABLE_DUAL_ABI_TRUE@	cow-fs_path.lo
+ am__objects_2 = fs_dir.lo fs_ops.lo fs_path.lo memory_resource.lo \
+ 	$(am__objects_1)
+ @ENABLE_DUAL_ABI_TRUE@am__objects_3 = cow-string-inst.lo
+ @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_4 = ostream-inst.lo \
+ @ENABLE_EXTERN_TEMPLATE_TRUE@	string-inst.lo $(am__objects_3)
+ am_libc__17convenience_la_OBJECTS = $(am__objects_2) $(am__objects_4)
+ libc__17convenience_la_OBJECTS = $(am_libc__17convenience_la_OBJECTS)
+ AM_V_lt = $(am__v_lt_@AM_V@)
+ am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+ am__v_lt_0 = --silent
+ am__v_lt_1 = 
+ AM_V_P = $(am__v_P_@AM_V@)
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+ am__v_P_0 = false
+ am__v_P_1 = :
+ AM_V_GEN = $(am__v_GEN_@AM_V@)
+ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+ am__v_GEN_0 = @echo "  GEN     " $@;
+ am__v_GEN_1 = 
+ AM_V_at = $(am__v_at_@AM_V@)
+ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+ am__v_at_0 = @
+ am__v_at_1 = 
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+ depcomp =
+ am__depfiles_maybe =
+ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+ AM_V_CXX = $(am__v_CXX_@AM_V@)
+ am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
+ am__v_CXX_0 = @echo "  CXX     " $@;
+ am__v_CXX_1 = 
+ CXXLD = $(CXX)
+ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
+ am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
+ am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+ am__v_CXXLD_1 = 
+ SOURCES = $(libc__17convenience_la_SOURCES)
+ am__can_run_installinfo = \
+   case $$AM_UPDATE_INFO_DIR in \
+     n|no|NO) false;; \
+     *) (install-info --version) >/dev/null 2>&1;; \
+   esac
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+ # Read a list of newline-separated strings from the standard input,
+ # and print each of them once, without duplicates.  Input order is
+ # *not* preserved.
+ am__uniquify_input = $(AWK) '\
+   BEGIN { nonempty = 0; } \
+   { items[$$0] = 1; nonempty = 1; } \
+   END { if (nonempty) { for (i in items) print i; }; } \
+ '
+ # Make sure the list of sources is unique.  This is necessary because,
+ # e.g., the same source file might be shared among _SOURCES variables
+ # for different programs/libraries.
+ am__define_uniq_tagged_files = \
+   list='$(am__tagged_files)'; \
+   unique=`for i in $$list; do \
+     if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+   done | $(am__uniquify_input)`
+ ETAGS = etags
+ CTAGS = ctags
+ ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@
+ ACLOCAL = @ACLOCAL@
+ ALLOCATOR_H = @ALLOCATOR_H@
+ ALLOCATOR_NAME = @ALLOCATOR_NAME@
+ AMTAR = @AMTAR@
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+ AR = @AR@
+ AS = @AS@
+ ATOMICITY_SRCDIR = @ATOMICITY_SRCDIR@
+ ATOMIC_FLAGS = @ATOMIC_FLAGS@
+ ATOMIC_WORD_SRCDIR = @ATOMIC_WORD_SRCDIR@
+ AUTOCONF = @AUTOCONF@
+ AUTOHEADER = @AUTOHEADER@
+ AUTOMAKE = @AUTOMAKE@
+ AWK = @AWK@
+ BASIC_FILE_CC = @BASIC_FILE_CC@
+ BASIC_FILE_H = @BASIC_FILE_H@
+ CC = @CC@
+ CCODECVT_CC = @CCODECVT_CC@
+ CCOLLATE_CC = @CCOLLATE_CC@
+ CCTYPE_CC = @CCTYPE_CC@
+ CFLAGS = @CFLAGS@
+ CLOCALE_CC = @CLOCALE_CC@
+ CLOCALE_H = @CLOCALE_H@
+ CLOCALE_INTERNAL_H = @CLOCALE_INTERNAL_H@
+ CMESSAGES_CC = @CMESSAGES_CC@
+ CMESSAGES_H = @CMESSAGES_H@
+ CMONEY_CC = @CMONEY_CC@
+ CNUMERIC_CC = @CNUMERIC_CC@
+ CPP = @CPP@
+ CPPFLAGS = @CPPFLAGS@
+ CPU_DEFINES_SRCDIR = @CPU_DEFINES_SRCDIR@
+ CPU_OPT_BITS_RANDOM = @CPU_OPT_BITS_RANDOM@
+ CPU_OPT_EXT_RANDOM = @CPU_OPT_EXT_RANDOM@
+ CSTDIO_H = @CSTDIO_H@
+ CTIME_CC = @CTIME_CC@
+ CTIME_H = @CTIME_H@
+ CXX = @CXX@
+ CXXCPP = @CXXCPP@
+ CXXFILT = @CXXFILT@
+ CXXFLAGS = @CXXFLAGS@
+ CYGPATH_W = @CYGPATH_W@
+ C_INCLUDE_DIR = @C_INCLUDE_DIR@
+ DBLATEX = @DBLATEX@
+ DEBUG_FLAGS = @DEBUG_FLAGS@
+ DEFS = @DEFS@
+ DOT = @DOT@
+ DOXYGEN = @DOXYGEN@
+ DSYMUTIL = @DSYMUTIL@
+ DUMPBIN = @DUMPBIN@
+ ECHO_C = @ECHO_C@
+ ECHO_N = @ECHO_N@
+ ECHO_T = @ECHO_T@
+ EGREP = @EGREP@
+ ERROR_CONSTANTS_SRCDIR = @ERROR_CONSTANTS_SRCDIR@
+ EXEEXT = @EXEEXT@
+ EXTRA_CFLAGS = @EXTRA_CFLAGS@
+ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
+ FGREP = @FGREP@
+ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
+ GLIBCXX_LIBS = @GLIBCXX_LIBS@
+ GREP = @GREP@
+ HWCAP_CFLAGS = @HWCAP_CFLAGS@
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+ LIBICONV = @LIBICONV@
+ LIBOBJS = @LIBOBJS@
+ LIBS = @LIBS@
+ LIBTOOL = @LIBTOOL@
+ LIPO = @LIPO@
+ LN_S = @LN_S@
+ LONG_DOUBLE_COMPAT_FLAGS = @LONG_DOUBLE_COMPAT_FLAGS@
+ LTLIBICONV = @LTLIBICONV@
+ LTLIBOBJS = @LTLIBOBJS@
+ MAINT = @MAINT@
+ MAKEINFO = @MAKEINFO@
+ MKDIR_P = @MKDIR_P@
+ NM = @NM@
+ NMEDIT = @NMEDIT@
+ OBJDUMP = @OBJDUMP@
+ OBJEXT = @OBJEXT@
+ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
+ OPT_LDFLAGS = @OPT_LDFLAGS@
+ OS_INC_SRCDIR = @OS_INC_SRCDIR@
+ OTOOL = @OTOOL@
+ OTOOL64 = @OTOOL64@
+ PACKAGE = @PACKAGE@
+ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+ PACKAGE_NAME = @PACKAGE_NAME@
+ PACKAGE_STRING = @PACKAGE_STRING@
+ PACKAGE_TARNAME = @PACKAGE_TARNAME@
+ PACKAGE_URL = @PACKAGE_URL@
+ PACKAGE_VERSION = @PACKAGE_VERSION@
+ PATH_SEPARATOR = @PATH_SEPARATOR@
+ PDFLATEX = @PDFLATEX@
+ RANLIB = @RANLIB@
+ SECTION_FLAGS = @SECTION_FLAGS@
+ SECTION_LDFLAGS = @SECTION_LDFLAGS@
+ SED = @SED@
+ SET_MAKE = @SET_MAKE@
+ SHELL = @SHELL@
+ STRIP = @STRIP@
+ SYMVER_FILE = @SYMVER_FILE@
+ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+ USE_NLS = @USE_NLS@
+ VERSION = @VERSION@
+ VTV_CXXFLAGS = @VTV_CXXFLAGS@
+ VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
+ VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
+ WARN_FLAGS = @WARN_FLAGS@
+ XMLCATALOG = @XMLCATALOG@
+ XMLLINT = @XMLLINT@
+ XSLTPROC = @XSLTPROC@
+ XSL_STYLE_DIR = @XSL_STYLE_DIR@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+ abs_top_builddir = @abs_top_builddir@
+ abs_top_srcdir = @abs_top_srcdir@
+ ac_ct_CC = @ac_ct_CC@
+ ac_ct_CXX = @ac_ct_CXX@
+ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ am__leading_dot = @am__leading_dot@
+ am__tar = @am__tar@
+ am__untar = @am__untar@
+ baseline_dir = @baseline_dir@
+ baseline_subdir_switch = @baseline_subdir_switch@
+ bindir = @bindir@
+ build = @build@
+ build_alias = @build_alias@
+ build_cpu = @build_cpu@
+ build_os = @build_os@
+ build_vendor = @build_vendor@
+ builddir = @builddir@
+ check_msgfmt = @check_msgfmt@
+ datadir = @datadir@
+ datarootdir = @datarootdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
+ enable_shared = @enable_shared@
+ enable_static = @enable_static@
+ exec_prefix = @exec_prefix@
+ get_gcc_base_ver = @get_gcc_base_ver@
+ glibcxx_MOFILES = @glibcxx_MOFILES@
+ glibcxx_PCHFLAGS = @glibcxx_PCHFLAGS@
+ glibcxx_POFILES = @glibcxx_POFILES@
+ glibcxx_builddir = @glibcxx_builddir@
+ glibcxx_compiler_pic_flag = @glibcxx_compiler_pic_flag@
+ glibcxx_compiler_shared_flag = @glibcxx_compiler_shared_flag@
+ glibcxx_cxx98_abi = @glibcxx_cxx98_abi@
+ glibcxx_localedir = @glibcxx_localedir@
+ glibcxx_lt_pic_flag = @glibcxx_lt_pic_flag@
+ glibcxx_prefixdir = @glibcxx_prefixdir@
+ glibcxx_srcdir = @glibcxx_srcdir@
+ glibcxx_toolexecdir = @glibcxx_toolexecdir@
+ glibcxx_toolexeclibdir = @glibcxx_toolexeclibdir@
+ gxx_include_dir = @gxx_include_dir@
+ host = @host@
+ host_alias = @host_alias@
+ host_cpu = @host_cpu@
+ host_os = @host_os@
+ host_vendor = @host_vendor@
+ htmldir = @htmldir@
+ includedir = @includedir@
+ infodir = @infodir@
+ install_sh = @install_sh@
+ libdir = @libdir@
+ libexecdir = @libexecdir@
+ libtool_VERSION = @libtool_VERSION@
+ localedir = @localedir@
+ localstatedir = @localstatedir@
+ lt_host_flags = @lt_host_flags@
+ mandir = @mandir@
+ mkdir_p = @mkdir_p@
+ multi_basedir = @multi_basedir@
+ oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
+ port_specific_symbol_files = @port_specific_symbol_files@
+ prefix = @prefix@
+ program_transform_name = @program_transform_name@
+ psdir = @psdir@
+ python_mod_dir = @python_mod_dir@
+ sbindir = @sbindir@
+ sharedstatedir = @sharedstatedir@
+ srcdir = @srcdir@
+ sysconfdir = @sysconfdir@
+ target = @target@
+ target_alias = @target_alias@
+ target_cpu = @target_cpu@
+ target_os = @target_os@
+ target_vendor = @target_vendor@
+ thread_header = @thread_header@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ toplevel_builddir = @toplevel_builddir@
+ toplevel_srcdir = @toplevel_srcdir@
+ 
+ # May be used by various substitution variables.
+ gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
+ MAINT_CHARSET = latin1
+ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
+ PWD_COMMAND = $${PWDCMD-pwd}
+ STAMP = echo timestamp >
+ toolexecdir = $(glibcxx_toolexecdir)
+ toolexeclibdir = $(glibcxx_toolexeclibdir)
+ @ENABLE_WERROR_FALSE@WERROR_FLAG = 
+ @ENABLE_WERROR_TRUE@WERROR_FLAG = -Werror
+ @ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = 
+ @ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates
+ 
+ # These bits are all figured out from configure.  Look in acinclude.m4
+ # or configure.ac to see how they are set.  See GLIBCXX_EXPORT_FLAGS.
+ CONFIG_CXXFLAGS = \
+ 	$(SECTION_FLAGS) $(HWCAP_CFLAGS) -frandom-seed=$@
+ 
+ WARN_CXXFLAGS = \
+ 	$(WARN_FLAGS) $(WERROR_FLAG) -fdiagnostics-show-location=once 
+ 
+ 
+ # -I/-D flags to pass when compiling.
+ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
+ 
+ # Convenience library for C++17 runtime.
+ noinst_LTLIBRARIES = libc++17convenience.la
+ headers = 
+ @ENABLE_DUAL_ABI_FALSE@extra_string_inst_sources = 
+ @ENABLE_DUAL_ABI_TRUE@extra_string_inst_sources = cow-string-inst.cc
+ @ENABLE_DUAL_ABI_FALSE@extra_fs_sources = 
+ @ENABLE_DUAL_ABI_TRUE@extra_fs_sources = \
+ @ENABLE_DUAL_ABI_TRUE@	cow-fs_dir.cc \
+ @ENABLE_DUAL_ABI_TRUE@	cow-fs_ops.cc \
+ @ENABLE_DUAL_ABI_TRUE@	cow-fs_path.cc
+ 
+ # XTEMPLATE_FLAGS =
+ @ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = 
+ 
+ # XTEMPLATE_FLAGS = -fno-implicit-templates
+ @ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = \
+ @ENABLE_EXTERN_TEMPLATE_TRUE@	ostream-inst.cc \
+ @ENABLE_EXTERN_TEMPLATE_TRUE@	string-inst.cc \
+ @ENABLE_EXTERN_TEMPLATE_TRUE@	$(extra_string_inst_sources)
+ 
+ sources = \
+ 	fs_dir.cc \
+ 	fs_ops.cc \
+ 	fs_path.cc \
+ 	memory_resource.cc \
+ 	$(extra_fs_sources)
+ 
+ libc__17convenience_la_SOURCES = $(sources)  $(inst_sources)
+ 
+ # AM_CXXFLAGS needs to be in each subdirectory so that it can be
+ # modified in a per-library or per-sub-library way.  Need to manually
+ # set this option because CONFIG_CXXFLAGS has to be after
+ # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
+ # as the occasion calls for it.
+ AM_CXXFLAGS = \
+ 	-std=gnu++17 \
+ 	$(glibcxx_lt_pic_flag) $(glibcxx_compiler_shared_flag) \
+ 	$(XTEMPLATE_FLAGS) $(VTV_CXXFLAGS) \
+ 	$(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) \
+ 	-fimplicit-templates
+ 
+ AM_MAKEFLAGS = \
+ 	"gxx_include_dir=$(gxx_include_dir)"
+ 
+ 
+ # Libtool notes
+ 
+ # 1) In general, libtool expects an argument such as `--tag=CXX' when
+ # using the C++ compiler, because that will enable the settings
+ # detected when C++ support was being configured.  However, when no
+ # such flag is given in the command line, libtool attempts to figure
+ # it out by matching the compiler name in each configuration section
+ # against a prefix of the command line.  The problem is that, if the
+ # compiler name and its initial flags stored in the libtool
+ # configuration file don't match those in the command line, libtool
+ # can't decide which configuration to use, and it gives up.  The
+ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
+ # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
+ # attempt to infer which configuration to use.
+ #
+ # The second tag argument, `--tag disable-shared` means that libtool
+ # only compiles each source once, for static objects. In actuality,
+ # glibcxx_lt_pic_flag and glibcxx_compiler_shared_flag are added to
+ # the libtool command that is used create the object, which is
+ # suitable for shared libraries.  The `--tag disable-shared` must be
+ # placed after --tag CXX lest things CXX undo the affect of
+ # disable-shared.
+ 
+ # 2) Need to explicitly set LTCXXCOMPILE so that EXTRA_CXX_FLAGS is
+ # last. (That way, things like -O2 passed down from the toplevel can
+ # be overridden by --enable-debug.)
+ LTCXXCOMPILE = \
+ 	$(LIBTOOL) --tag CXX --tag disable-shared \
+ 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ 	--mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \
+ 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(EXTRA_CXX_FLAGS)
+ 
+ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
+ 
+ # 3) We'd have a problem when building the shared libstdc++ object if
+ # the rules automake generates would be used.  We cannot allow g++ to
+ # be used since this would add -lstdc++ to the link line which of
+ # course is problematic at this point.  So, we get the top-level
+ # directory to configure libstdc++-v3 to use gcc as the C++
+ # compilation driver.
+ CXXLINK = \
+ 	$(LIBTOOL) --tag CXX --tag disable-shared \
+ 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ 	--mode=link $(CXX) \
+ 	$(VTV_CXXLINKFLAGS) \
+ 	$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@
+ 
+ all: all-am
+ 
+ .SUFFIXES:
+ .SUFFIXES: .cc .lo .o .obj
+ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps)
+ 	@for dep in $?; do \
+ 	  case '$(am__configure_deps)' in \
+ 	    *$$dep*) \
+ 	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ 	        && { if test -f $@; then exit 0; else break; fi; }; \
+ 	      exit 1;; \
+ 	  esac; \
+ 	done; \
+ 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps src/c++17/Makefile'; \
+ 	$(am__cd) $(top_srcdir) && \
+ 	  $(AUTOMAKE) --foreign --ignore-deps src/c++17/Makefile
+ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ 	@case '$?' in \
+ 	  *config.status*) \
+ 	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ 	  *) \
+ 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ 	esac;
+ $(top_srcdir)/fragment.am $(am__empty):
+ 
+ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ 
+ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+ $(am__aclocal_m4_deps):
+ 
+ clean-noinstLTLIBRARIES:
+ 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+ 	@list='$(noinst_LTLIBRARIES)'; \
+ 	locs=`for p in $$list; do echo $$p; done | \
+ 	      sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ 	      sort -u`; \
+ 	test -z "$$locs" || { \
+ 	  echo rm -f $${locs}; \
+ 	  rm -f $${locs}; \
+ 	}
+ 
+ libc++17convenience.la: $(libc__17convenience_la_OBJECTS) $(libc__17convenience_la_DEPENDENCIES) $(EXTRA_libc__17convenience_la_DEPENDENCIES) 
+ 	$(AM_V_CXXLD)$(CXXLINK)  $(libc__17convenience_la_OBJECTS) $(libc__17convenience_la_LIBADD) $(LIBS)
+ 
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+ 
+ distclean-compile:
+ 	-rm -f *.tab.c
+ 
+ .cc.o:
+ 	$(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $<
+ 
+ .cc.obj:
+ 	$(AM_V_CXX)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+ 
+ .cc.lo:
+ 	$(AM_V_CXX)$(LTCXXCOMPILE) -c -o $@ $<
+ 
+ mostlyclean-libtool:
+ 	-rm -f *.lo
+ 
+ clean-libtool:
+ 	-rm -rf .libs _libs
+ 
+ ID: $(am__tagged_files)
+ 	$(am__define_uniq_tagged_files); mkid -fID $$unique
+ tags: tags-am
+ TAGS: tags
+ 
+ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ 	set x; \
+ 	here=`pwd`; \
+ 	$(am__define_uniq_tagged_files); \
+ 	shift; \
+ 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ 	  test -n "$$unique" || unique=$$empty_fix; \
+ 	  if test $$# -gt 0; then \
+ 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	      "$$@" $$unique; \
+ 	  else \
+ 	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ 	      $$unique; \
+ 	  fi; \
+ 	fi
+ ctags: ctags-am
+ 
+ CTAGS: ctags
+ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ 	$(am__define_uniq_tagged_files); \
+ 	test -z "$(CTAGS_ARGS)$$unique" \
+ 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ 	     $$unique
+ 
+ GTAGS:
+ 	here=`$(am__cd) $(top_builddir) && pwd` \
+ 	  && $(am__cd) $(top_srcdir) \
+ 	  && gtags -i $(GTAGS_ARGS) "$$here"
+ cscopelist: cscopelist-am
+ 
+ cscopelist-am: $(am__tagged_files)
+ 	list='$(am__tagged_files)'; \
+ 	case "$(srcdir)" in \
+ 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ 	  *) sdir=$(subdir)/$(srcdir) ;; \
+ 	esac; \
+ 	for i in $$list; do \
+ 	  if test -f "$$i"; then \
+ 	    echo "$(subdir)/$$i"; \
+ 	  else \
+ 	    echo "$$sdir/$$i"; \
+ 	  fi; \
+ 	done >> $(top_builddir)/cscope.files
+ 
+ distclean-tags:
+ 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ check-am: all-am
+ check: check-am
+ all-am: Makefile $(LTLIBRARIES)
+ installdirs:
+ install: install-am
+ install-exec: install-exec-am
+ install-data: install-data-am
+ uninstall: uninstall-am
+ 
+ install-am: all-am
+ 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+ 
+ installcheck: installcheck-am
+ install-strip:
+ 	if test -z '$(STRIP)'; then \
+ 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	      install; \
+ 	else \
+ 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ 	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ 	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ 	fi
+ mostlyclean-generic:
+ 
+ clean-generic:
+ 
+ distclean-generic:
+ 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ 	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ 
+ maintainer-clean-generic:
+ 	@echo "This command is intended for maintainers to use"
+ 	@echo "it deletes files that may require special tools to rebuild."
+ clean: clean-am
+ 
+ clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+ 	mostlyclean-am
+ 
+ distclean: distclean-am
+ 	-rm -f Makefile
+ distclean-am: clean-am distclean-compile distclean-generic \
+ 	distclean-tags
+ 
+ dvi: dvi-am
+ 
+ dvi-am:
+ 
+ html: html-am
+ 
+ html-am:
+ 
+ info: info-am
+ 
+ info-am:
+ 
+ install-data-am:
+ 
+ install-dvi: install-dvi-am
+ 
+ install-dvi-am:
+ 
+ install-exec-am:
+ 
+ install-html: install-html-am
+ 
+ install-html-am:
+ 
+ install-info: install-info-am
+ 
+ install-info-am:
+ 
+ install-man:
+ 
+ install-pdf: install-pdf-am
+ 
+ install-pdf-am:
+ 
+ install-ps: install-ps-am
+ 
+ install-ps-am:
+ 
+ installcheck-am:
+ 
+ maintainer-clean: maintainer-clean-am
+ 	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+ 
+ mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ 	mostlyclean-libtool
+ 
+ pdf: pdf-am
+ 
+ pdf-am:
+ 
+ ps: ps-am
+ 
+ ps-am:
+ 
+ uninstall-am:
+ 
+ .MAKE: install-am install-strip
+ 
+ .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ 	clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \
+ 	ctags-am distclean distclean-compile distclean-generic \
+ 	distclean-libtool distclean-tags dvi dvi-am html html-am info \
+ 	info-am install install-am install-data install-data-am \
+ 	install-dvi install-dvi-am install-exec install-exec-am \
+ 	install-html install-html-am install-info install-info-am \
+ 	install-man install-pdf install-pdf-am install-ps \
+ 	install-ps-am install-strip installcheck installcheck-am \
+ 	installdirs maintainer-clean maintainer-clean-generic \
+ 	mostlyclean mostlyclean-compile mostlyclean-generic \
+ 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ 	uninstall-am
+ 
+ .PRECIOUS: Makefile
+ 
+ 
+ vpath % $(top_srcdir)/src/c++17
+ 
+ # 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.
+ .NOEXPORT:
diff -Nrcpad gcc-7.4.0/libstdc++-v3/src/c++98/Makefile.in gcc-7.5.0/libstdc++-v3/src/c++98/Makefile.in
*** gcc-7.4.0/libstdc++-v3/src/c++98/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/src/c++98/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 238,243 ****
--- 238,244 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/src/filesystem/Makefile.in gcc-7.5.0/libstdc++-v3/src/filesystem/Makefile.in
*** gcc-7.4.0/libstdc++-v3/src/filesystem/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/src/filesystem/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 246,251 ****
--- 246,252 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/src/filesystem/path.cc gcc-7.5.0/libstdc++-v3/src/filesystem/path.cc
*** gcc-7.4.0/libstdc++-v3/src/filesystem/path.cc	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/src/filesystem/path.cc	Wed Jun 26 15:12:15 2019
*************** path::_M_split_cmpts()
*** 333,338 ****
--- 333,360 ----
    if (_M_pathname.empty())
      return;
  
+   {
+     // Approximate count of components, to reserve space in _M_cmpts vector:
+     int count = 1;
+     bool saw_sep_last = _S_is_dir_sep(_M_pathname[0]);
+     bool saw_non_sep = !saw_sep_last;
+     for (value_type c : _M_pathname)
+       {
+        if (_S_is_dir_sep(c))
+          saw_sep_last = true;
+        else if (saw_sep_last)
+          {
+            ++count;
+            saw_sep_last = false;
+            saw_non_sep = true;
+          }
+       }
+     if (saw_non_sep && saw_sep_last)
+       ++count; // empty filename after trailing slash
+     if (count > 1)
+       _M_cmpts.reserve(count);
+   }
+ 
    size_t pos = 0;
    const size_t len = _M_pathname.size();
  
*************** path::_M_split_cmpts()
*** 355,363 ****
  	      pos = 3;
  	      while (pos < len && !_S_is_dir_sep(_M_pathname[pos]))
  		++pos;
  	      _M_add_root_name(pos);
! 	      if (pos < len) // also got root directory
! 		_M_add_root_dir(pos);
  	    }
  	  else
  	    {
--- 377,389 ----
  	      pos = 3;
  	      while (pos < len && !_S_is_dir_sep(_M_pathname[pos]))
  		++pos;
+ 	      if (pos == len)
+ 		{
+ 		  _M_type = _Type::_Root_name;
+ 		  return;
+ 		}
  	      _M_add_root_name(pos);
! 	      _M_add_root_dir(pos);
  	    }
  	  else
  	    {
*************** path::_M_split_cmpts()
*** 366,371 ****
--- 392,402 ----
  	      _M_add_root_dir(0);
  	    }
  	}
+       else if (len == 1) // got root directory only
+ 	{
+ 	  _M_type = _Type::_Root_dir;
+ 	  return;
+ 	}
        else // got root directory
  	_M_add_root_dir(0);
        ++pos;
*************** path::_M_split_cmpts()
*** 374,385 ****
--- 405,432 ----
    else if (len > 1 && _M_pathname[1] == L':')
      {
        // got disk designator
+       if (len == 2)
+ 	{
+ 	  _M_type = _Type::_Root_name;
+ 	  return;
+ 	}
        _M_add_root_name(2);
        if (len > 2 && _S_is_dir_sep(_M_pathname[2]))
  	_M_add_root_dir(2);
        pos = 2;
      }
  #endif
+   else
+     {
+       size_t n = 1;
+       for (; n < _M_pathname.size() && !_S_is_dir_sep(_M_pathname[n]); ++n)
+ 	{ }
+       if (n == _M_pathname.size())
+ 	{
+ 	  _M_type = _Type::_Filename;
+ 	  return;
+ 	}
+     }
  
    size_t back = pos;
    while (pos < len)
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc gcc-7.5.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/17_intro/headers/c++1998/all_attributes.cc	Mon Dec 24 13:01:04 2018
***************
*** 21,29 ****
  // Ensure the library only uses the __name__ form for attributes.
  // Don't test 'const' because it is reserved anyway.
  #define abi_tag 1
- #define always_inline 1
  #ifndef __APPLE__
  // darwin headers use these, see PR 64883
  # define deprecated 1
  # define noreturn 1
  # define visibility 1
--- 21,29 ----
  // Ensure the library only uses the __name__ form for attributes.
  // Don't test 'const' because it is reserved anyway.
  #define abi_tag 1
  #ifndef __APPLE__
  // darwin headers use these, see PR 64883
+ # define always_inline 1
  # define deprecated 1
  # define noreturn 1
  # define visibility 1
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc gcc-7.5.0/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/17_intro/headers/c++2011/all_attributes.cc	Mon Dec 24 13:01:04 2018
***************
*** 21,31 ****
  // Ensure the library only uses the __name__ form for attributes.
  // Don't test 'const' and 'noreturn' because they are reserved anyway.
  #define abi_tag 1
- #define always_inline 1
  #ifndef __APPLE__
  // darwin headers use these, see PR 64883
! # define visibility 1
  # define deprecated 1
  #endif
  #define packed 1
  #define pure 1
--- 21,31 ----
  // Ensure the library only uses the __name__ form for attributes.
  // Don't test 'const' and 'noreturn' because they are reserved anyway.
  #define abi_tag 1
  #ifndef __APPLE__
  // darwin headers use these, see PR 64883
! # define always_inline 1
  # define deprecated 1
+ # define visibility 1
  #endif
  #define packed 1
  #define pure 1
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc gcc-7.5.0/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/17_intro/headers/c++2014/all_attributes.cc	Mon Dec 24 13:01:04 2018
***************
*** 21,29 ****
  // Ensure the library only uses the __name__ form for attributes.
  // Don't test 'const' and 'noreturn' because they are reserved anyway.
  #define abi_tag 1
- #define always_inline 1
  #ifndef __APPLE__
  // darwin headers use these, see PR 64883
  # define deprecated 1
  # define visibility 1
  #endif
--- 21,29 ----
  // Ensure the library only uses the __name__ form for attributes.
  // Don't test 'const' and 'noreturn' because they are reserved anyway.
  #define abi_tag 1
  #ifndef __APPLE__
  // darwin headers use these, see PR 64883
+ # define always_inline 1
  # define deprecated 1
  # define visibility 1
  #endif
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/17_intro/names.cc gcc-7.5.0/libstdc++-v3/testsuite/17_intro/names.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/17_intro/names.cc	Tue Jan 16 20:40:30 2018
--- gcc-7.5.0/libstdc++-v3/testsuite/17_intro/names.cc	Mon Sep  2 11:09:45 2019
***************
*** 19,25 ****
  
  // Define macros for some common variables names that we must not use for
  // naming variables, parameters etc. in the library.
- #define tmp (
  #define A (
  #define B (
  #define C (
--- 19,24 ----
***************
*** 99,104 ****
--- 98,175 ----
  #define y (
  #define z (
  
+ #define tmp (
+ 
+ #if __cplusplus < 201703L
+ // <charconv> defines to_chars_result::ptr and to_chars_result::ec
+ #define ec (
+ #define ptr (
+ #endif
+ 
+ // Common template parameter names
+ #define OutputIterator		OutputIterator is not a reserved name
+ #define InputIterator		InputIterator is not a reserved name
+ #define ForwardIterator		ForwardIterator is not a reserved name
+ #define BidirectionalIterator	BidirectionalIterator is not a reserved name
+ #define RandomAccessIterator	RandomAccessIterator is not a reserved name
+ #define RandomAccessOutputIterator	RandomAccessOutputIterator is not a reserved name
+ #define RAIter			RAIter is not a reserved name
+ #define FwdIter			FwdIter is not a reserved name
+ #define OutIter			OutIter is not a reserved name
+ #define InIter			InIter is not a reserved name
+ 
+ #define Alloc			Alloc is not a reserved name
+ #define BinaryFunction1		BinaryFunction1 is not a reserved name
+ #define BinaryFunction2		BinaryFunction2 is not a reserved name
+ #define Char			Char is not a reserved name
+ #define CharT			CharT is not a reserved name
+ #define Cmp			Cmp is not a reserved name
+ #define Compare			Compare is not a reserved name
+ #define Const_Iterator		Const_Iterator is not a reserved name
+ #define Const_Key_Reference	Const_Key_Reference is not a reserved name
+ #define Const_Node_Iter		Const_Node_Iter is not a reserved name
+ #define Const_Pointer		Const_Pointer is not a reserved name
+ #define Const_Reference		Const_Reference is not a reserved name
+ #define Data			Data is not a reserved name
+ #define DiffType		DiffType is not a reserved name
+ #define Eq			Eq is not a reserved name
+ #define ExecPolicy		ExecPolicy is not a reserved name
+ #define Expected		Expected is not a reserved name
+ #define External_Load_Access	External_Load_Access is not a reserved name
+ #define External_Size_Access	External_Size_Access is not a reserved name
+ #define Fn			Fn is not a reserved name
+ #define Function		Function is not a reserved name
+ #define Functor			Functor is not a reserved name
+ #define Hash			Hash is not a reserved name
+ #define H1			H1 is not a reserved name
+ #define H2			H2 is not a reserved name
+ #define Head			Head is not a reserved name
+ #define It			It is not a reserved name
+ #define Iter			Iter is not a reserved name
+ #define Iterator		Iterator is not a reserved name
+ #define Key			Key is not a reserved name
+ #define Mapped			Mapped is not a reserved name
+ #define Node			Node is not a reserved name
+ #define Node_iter		Node_iter is not a reserved name
+ #define Node_ptr		Node_ptr is not a reserved name
+ #define Overflow		Overflow is not a reserved name
+ #define Pointer			Pointer is not a reserved name
+ #define Policy			Policy is not a reserved name
+ #define Pred			Pred is not a reserved name
+ #define Ptr			Ptr is not a reserved name
+ #define Reference		Reference is not a reserved name
+ #define Seq			Seq is not a reserved name
+ #define Seq_RAIter		Seq_RAIter is not a reserved name
+ #define Series			Series is not a reserved name
+ #define Set			Set is not a reserved name
+ #define String			String is not a reserved name
+ #define Tp			Tp is not a reserved name
+ #define Traits			Traits is not a reserved name
+ #define Type			Type is not a reserved name
+ #define Value			Value is not a reserved name
+ #define ValueT			ValueT is not a reserved name
+ #define ValueType		ValueType is not a reserved name
+ 
  #ifdef _AIX
  // See https://gcc.gnu.org/ml/libstdc++/2017-03/msg00015.html
  #undef f
***************
*** 116,119 ****
--- 187,195 ----
  #undef y
  #endif
  
+ #ifdef __sun__
+ // See https://gcc.gnu.org/ml/libstdc++/2019-05/msg00175.html
+ #undef ptr
+ #endif
+ 
  #include <bits/stdc++.h>
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/18_support/51333.cc gcc-7.5.0/libstdc++-v3/testsuite/18_support/51333.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/18_support/51333.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/18_support/51333.cc	Mon Sep  2 11:10:00 2019
***************
*** 0 ****
--- 1,22 ----
+ // 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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-options "-fkeep-inline-functions" }
+ // { dg-do link }
+ 
+ #include <cxxabi.h>
+ int main() { } // PR libstdc++/51333
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc gcc-7.5.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc	Fri Jan 20 01:22:54 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/20_util/any/misc/any_cast.cc	Thu May 23 15:08:58 2019
***************
*** 20,25 ****
--- 20,26 ----
  
  #include <any>
  #include <string>
+ #include <utility>
  #include <cstring>
  #include <testsuite_hooks.h>
  
*************** void test05()
*** 130,135 ****
--- 131,184 ----
    VERIFY( p == nullptr );
  }
  
+ void test06()
+ {
+   // The contained value of a std::any is always an object type,
+   // but std::any_cast does not forbid checking for function types.
+ 
+   any a(1);
+   void (*p1)() = any_cast<void()>(&a);
+   VERIFY( p1 == nullptr );
+   int (*p2)(int) = any_cast<int(int)>(&a);
+   VERIFY( p2 == nullptr );
+   int (*p3)() = any_cast<int()>(&std::as_const(a));
+   VERIFY( p3 == nullptr );
+ 
+   try {
+     any_cast<int(&)()>(a);
+     VERIFY( false );
+   } catch (const std::bad_any_cast&) {
+   }
+ 
+   try {
+     any_cast<int(&)()>(std::move(a));
+     VERIFY( false );
+   } catch (const std::bad_any_cast&) {
+   }
+ 
+   try {
+     any_cast<int(&)()>(std::as_const(a));
+     VERIFY( false );
+   } catch (const std::bad_any_cast&) {
+   }
+ }
+ 
+ void test07()
+ {
+   int arr[3];
+   any a(arr);
+   VERIFY( a.type() == typeid(int*) );	// contained value is decayed
+ 
+   int (*p1)[3] = any_cast<int[3]>(&a);
+   VERIFY( a.type() != typeid(int[3]) ); // so any_cast should return nullptr
+   VERIFY( p1 == nullptr );
+   int (*p2)[] = any_cast<int[]>(&a);
+   VERIFY( a.type() != typeid(int[]) );	// so any_cast should return nullptr
+   VERIFY( p2 == nullptr );
+   const int (*p3)[] = any_cast<int[]>(&std::as_const(a));
+   VERIFY( p3 == nullptr );
+ }
+ 
  int main()
  {
    test01();
*************** int main()
*** 137,140 ****
--- 186,191 ----
    test03();
    test04();
    test05();
+   test06();
+   test07();
  }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc gcc-7.5.0/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc	Mon Sep  2 11:10:08 2019
***************
*** 0 ****
--- 1,39 ----
+ // 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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-options "-O1" }
+ // { dg-do run { target c++11 } }
+ 
+ // PR middle-end/89303
+ 
+ #include <memory>
+ 
+ class blob final: public std::enable_shared_from_this<blob>
+ {
+   int* data;
+ 
+ public:
+   blob() { data = new int; }
+   ~blob() { delete data; }
+ };
+ 
+ int
+ main()
+ {
+   std::shared_ptr<blob> tg = std::make_shared<blob>();
+   return tg->shared_from_this().use_count() - 2;
+ }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/20_util/hash/89629.cc gcc-7.5.0/libstdc++-v3/testsuite/20_util/hash/89629.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/20_util/hash/89629.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/20_util/hash/89629.cc	Wed May  8 12:17:20 2019
***************
*** 0 ****
--- 1,43 ----
+ // 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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-do run { target { lp64 || llp64 } } }
+ // { dg-require-effective-target c++11 }
+ // { dg-require-effective-target run_expensive_tests }
+ 
+ #include <functional>
+ #include <string>
+ 
+ void
+ test01()
+ {
+   const std::size_t big = std::size_t(1) << 31;
+   std::string s;
+   try {
+     s.resize(big, 'a');
+   } catch (const std::bad_alloc&) {
+     return; // try to avoid a FAIL if memory allocation fails
+   }
+   // PR libstdc++/89629
+   (void) std::hash<std::string>{}(s);
+ }
+ 
+ int
+ main()
+ {
+   test01();
+ }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc gcc-7.5.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc	Wed Jan  4 13:21:02 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc	Mon Sep  2 11:10:04 2019
*************** void f()
*** 42,51 ****
    std::unique_ptr<int, D&> ud(nullptr, d);
    ub = std::move(ud); // { dg-error "no match" }
    ub2 = ud; // { dg-error "no match" }
- // { dg-error "no type" "" { target *-*-* } 301 }
  
    std::unique_ptr<int[], B&> uba(nullptr, b);
    std::unique_ptr<int[], D&> uda(nullptr, d);
    uba = std::move(uda); // { dg-error "no match" }
- // { dg-error "no type" "" { target *-*-* } 560 }
  }
--- 42,50 ----
    std::unique_ptr<int, D&> ud(nullptr, d);
    ub = std::move(ud); // { dg-error "no match" }
    ub2 = ud; // { dg-error "no match" }
  
    std::unique_ptr<int[], B&> uba(nullptr, b);
    std::unique_ptr<int[], D&> uda(nullptr, d);
    uba = std::move(uda); // { dg-error "no match" }
  }
+ // { dg-prune-output "no type" }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc gcc-7.5.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc	Mon Sep  2 11:10:04 2019
***************
*** 0 ****
--- 1,46 ----
+ // 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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-do compile { target c++11 } }
+ 
+ #include <memory>
+ 
+ struct D1
+ {
+   void operator()(int* p) const noexcept { }
+ };
+ 
+ struct D2 : D1
+ {
+   D2& operator=(D1&&) noexcept { return *this; }
+ };
+ 
+ void
+ test01()
+ {
+   std::unique_ptr<int, D1> d1;
+   std::unique_ptr<int, D2> d2;
+   d2 = std::move(d1);
+ }
+ 
+ void
+ test02()
+ {
+   std::unique_ptr<int[], D1> d1;
+   std::unique_ptr<int[], D2> d2;
+   d2 = std::move(d1);
+ }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc gcc-7.5.0/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc	Wed Jan  4 13:21:02 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc	Mon Sep  2 11:10:04 2019
*************** test07()
*** 39,45 ****
    std::unique_ptr<const A[]> cA3(p); // { dg-error "no matching function" }
    std::unique_ptr<volatile A[]> vA3(p); // { dg-error "no matching function" }
    std::unique_ptr<const volatile A[]> cvA3(p); // { dg-error "no matching function" }
!   // { dg-error "no type" "" { target *-*-* } 467 }
  }
  
  template<typename T>
--- 39,45 ----
    std::unique_ptr<const A[]> cA3(p); // { dg-error "no matching function" }
    std::unique_ptr<volatile A[]> vA3(p); // { dg-error "no matching function" }
    std::unique_ptr<const volatile A[]> cvA3(p); // { dg-error "no matching function" }
!   // { dg-prune-output "no type" }
  }
  
  template<typename T>
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc gcc-7.5.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/21_strings/basic_string_view/operators/char/89446.cc	Sat Feb 23 01:01:56 2019
***************
*** 0 ****
--- 1,28 ----
+ // 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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-options "-std=gnu++17 -fexceptions -fnon-call-exceptions -O1" }
+ // { dg-do run { target { powerpc*-*-linux* i?86-*-linux* x86_64-*-linux* } } }
+ // { dg-require-effective-target c++1z }
+ 
+ #include <string_view>
+ 
+ int main()
+ {
+   std::string_view s1, s2;
+   return s1 != s2;
+ }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc gcc-7.5.0/libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc	Sun Jan  1 12:07:43 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/23_containers/forward_list/comparable.cc	Wed May  8 12:17:26 2019
***************
*** 17,31 ****
  // with this library; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
- 
- // NOTE: This makes use of the fact that we know how moveable
- // is implemented on list (via swap). If the implementation changed
- // this test may begin to fail.
- 
  #include <forward_list>
  #include <testsuite_hooks.h>
  
! int main()
  {
    std::forward_list<double> a = {0.0, 1.0, 2.0, 3.0, 4.0};
    std::forward_list<double> b = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
--- 17,27 ----
  // with this library; see the file COPYING3.  If not see
  // <http://www.gnu.org/licenses/>.
  
  #include <forward_list>
  #include <testsuite_hooks.h>
  
! void
! test01()
  {
    std::forward_list<double> a = {0.0, 1.0, 2.0, 3.0, 4.0};
    std::forward_list<double> b = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
*************** int main()
*** 43,48 ****
    VERIFY((b >  a) == true);
    VERIFY((b >= a) == true);
    VERIFY((b <= a) == false);
  
!   return 0;
  }
--- 39,78 ----
    VERIFY((b >  a) == true);
    VERIFY((b >= a) == true);
    VERIFY((b <= a) == false);
+ }
  
! void
! test02()
! {
!   // The EqualityComparable requirements only require ==
!   struct X {
!     bool operator==(const X&) const { return true; }
!   };
! 
!   std::forward_list<X> a(2);
!   const auto b = a;
!   VERIFY( a == b );
! }
! 
! void
! test03()
! {
!   // The LessThanComparable requirements only require <
!   struct X {
!     bool operator<(const X&) const { return false; }
!   };
! 
!   std::forward_list<X> a(2);
!   const auto b = a;
!   VERIFY( !(a < b) );
!   VERIFY( !(a > b) );
!   VERIFY( a <= b );
!   VERIFY( a >= b );
! }
! 
! int main()
! {
!   test01();
!   test02();
!   test03();
  }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc gcc-7.5.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc	Wed May  8 12:17:26 2019
***************
*** 0 ****
--- 1,60 ----
+ // 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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-do run { target c++11 } }
+ 
+ #include <forward_list>
+ #include <testsuite_hooks.h>
+ 
+ // PR libstdc++/90105 - std::forward_list::sort() is not "stable"
+ 
+ struct X
+ {
+   int key;
+   int val;
+ };
+ 
+ bool operator<(const X& l, const X& r)
+ { return l.key < r.key; }
+ 
+ bool operator==(const X& l, const X& r)
+ { return l.key == r.key && l.val == r.val; }
+ 
+ void
+ test01()
+ {
+   std::forward_list<X> l{ {1, 1}, {2, 2}, {1, 3}, {0, 4}, {2, 5}, {0, 6} };
+   l.sort();
+   std::forward_list<X> exp{ {0, 4}, {0, 6}, {1, 1}, {1, 3}, {2, 2}, {2, 5} };
+   VERIFY( l == exp );
+ }
+ 
+ void
+ test02()
+ {
+   std::forward_list<X> l{ {1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6} };
+   const std::forward_list<X> exp = l;
+   l.sort();
+   VERIFY( l == exp );
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
+ }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/Makefile.in gcc-7.5.0/libstdc++-v3/testsuite/Makefile.in
*** gcc-7.4.0/libstdc++-v3/testsuite/Makefile.in	Tue Jan 17 09:38:48 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/Makefile.in	Thu May 23 15:34:42 2019
*************** VTV_CXXLINKFLAGS = @VTV_CXXLINKFLAGS@
*** 204,209 ****
--- 204,210 ----
  VTV_PCH_CXXFLAGS = @VTV_PCH_CXXFLAGS@
  WARN_FLAGS = @WARN_FLAGS@
  WERROR = @WERROR@
+ XMLCATALOG = @XMLCATALOG@
  XMLLINT = @XMLLINT@
  XSLTPROC = @XSLTPROC@
  XSL_STYLE_DIR = @XSL_STYLE_DIR@
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc gcc-7.5.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc	Fri Jan 20 01:22:54 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast.cc	Thu May 23 15:08:58 2019
***************
*** 24,29 ****
--- 24,30 ----
  
  using std::experimental::any;
  using std::experimental::any_cast;
+ using std::experimental::bad_any_cast;
  
  void test01()
  {
*************** void test01()
*** 56,62 ****
  
  void test02()
  {
-   using std::experimental::bad_any_cast;
    any x(1);
    auto p = any_cast<double>(&x);
    VERIFY(p == nullptr);
--- 57,62 ----
*************** void test03()
*** 105,111 ****
    MoveDeleted&& md3 = any_cast<MoveDeleted&&>(any(std::move(md)));
  }
  
! void test04()
  {
    // PR libstdc++/69321
    struct noncopyable {
--- 105,111 ----
    MoveDeleted&& md3 = any_cast<MoveDeleted&&>(any(std::move(md)));
  }
  
! void test05()
  {
    // PR libstdc++/69321
    struct noncopyable {
*************** void test04()
*** 117,126 ****
    VERIFY( p == nullptr );
  }
  
  int main()
  {
    test01();
    test02();
    test03();
!   test04();
  }
--- 117,176 ----
    VERIFY( p == nullptr );
  }
  
+ void test06()
+ {
+   // The contained value of a std::any is always an object type,
+   // but any_cast does not forbid checking for function types.
+ 
+   any a(1);
+   void (*p1)() = any_cast<void()>(&a);
+   VERIFY( p1 == nullptr );
+   int (*p2)(int) = any_cast<int(int)>(&a);
+   VERIFY( p2 == nullptr );
+   int (*p3)() = any_cast<int()>(&const_cast<const any&>(a));
+   VERIFY( p3 == nullptr );
+ 
+   try {
+     any_cast<int(&)()>(a);
+     VERIFY( false );
+   } catch (const bad_any_cast&) {
+   }
+ 
+   try {
+     any_cast<int(&)()>(std::move(a));
+     VERIFY( false );
+   } catch (const bad_any_cast&) {
+   }
+ 
+   try {
+     any_cast<int(&)()>(const_cast<const any&>(a));
+     VERIFY( false );
+   } catch (const bad_any_cast&) {
+   }
+ }
+ 
+ void test07()
+ {
+   int arr[3];
+   any a(arr);
+   VERIFY( a.type() == typeid(int*) );	// contained value is decayed
+ 
+   int (*p1)[3] = any_cast<int[3]>(&a);
+   VERIFY( a.type() != typeid(int[3]) ); // so any_cast should return nullptr
+   VERIFY( p1 == nullptr );
+   int (*p2)[] = any_cast<int[]>(&a);
+   VERIFY( a.type() != typeid(int[]) );	// so any_cast should return nullptr
+   VERIFY( p2 == nullptr );
+   const int (*p3)[] = any_cast<int[]>(&const_cast<const any&>(a));
+   VERIFY( p3 == nullptr );
+ }
+ 
  int main()
  {
    test01();
    test02();
    test03();
!   test05();
!   test06();
!   test07();
  }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc gcc-7.5.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc	Mon Oct 22 08:47:52 2018
--- gcc-7.5.0/libstdc++-v3/testsuite/experimental/any/misc/any_cast_neg.cc	Thu May 23 15:09:02 2019
*************** void test01()
*** 25,29 ****
    using std::experimental::any_cast;
  
    const any y(1);
!   any_cast<int&>(y); // { dg-error "qualifiers" "" { target { *-*-* } } 357 }
  }
--- 25,29 ----
    using std::experimental::any_cast;
  
    const any y(1);
!   any_cast<int&>(y); // { dg-error "qualifiers" "" { target { *-*-* } } 0 }
  }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc gcc-7.5.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc	Wed Jun 26 15:12:15 2019
***************
*** 0 ****
--- 1,75 ----
+ // 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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-options "-DUSE_FILESYSTEM_TS -lstdc++fs" }
+ // { dg-do run { target c++11 } }
+ // { dg-require-filesystem-ts "" }
+ 
+ #include <experimental/filesystem>
+ #include <cstdlib>
+ #include <testsuite_hooks.h>
+ 
+ std::size_t bytes_allocated = 0;
+ 
+ void* operator new(std::size_t n)
+ {
+   bytes_allocated += n;
+   return std::malloc(n);
+ }
+ 
+ void operator delete(void* p) noexcept { std::free(p); }
+ #if __cpp_sized_deallocation
+ void operator delete(void* p, std::size_t) noexcept { std::free(p); }
+ #endif
+ 
+ void
+ test01()
+ {
+ #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS
+   std::wstring s0;
+   std::wstring s1 = L"/";
+   std::wstring s2 = L"file";
+   std::wstring s3 = L"C:";
+   std::wstring s4 = L"\\";
+ #else
+   std::string s0;
+   std::string s1 = "/";
+   std::string s2 = "file";
+   std::string s3 = "C:";
+   std::string s4 = "\\";
+ #endif
+ 
+   using std::experimental::filesystem::path;
+ 
+   bytes_allocated = 0;
+   path p0 = std::move(s0);
+   VERIFY( bytes_allocated == 0 );
+   path p1 = std::move(s1);
+   VERIFY( bytes_allocated == 0 );
+   path p2 = std::move(s2);
+   VERIFY( bytes_allocated == 0 );
+   path p3 = std::move(s3);
+   VERIFY( bytes_allocated == 0 );
+   path p4 = std::move(s4);
+   VERIFY( bytes_allocated == 0 );
+ }
+ 
+ int
+ main()
+ {
+   test01();
+ }
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/experimental/names.cc gcc-7.5.0/libstdc++-v3/testsuite/experimental/names.cc
*** gcc-7.4.0/libstdc++-v3/testsuite/experimental/names.cc	Thu Jan  1 00:00:00 1970
--- gcc-7.5.0/libstdc++-v3/testsuite/experimental/names.cc	Mon Sep  2 11:09:45 2019
***************
*** 0 ****
--- 1,57 ----
+ // Copyright (C) 2017-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
+ // <http://www.gnu.org/licenses/>.
+ 
+ // { dg-do compile }
+ 
+ // Define macros for some common variables names that we must not use for
+ // naming variables, parameters etc. in the library.
+ 
+ #include "../17_intro/names.cc"
+ // Filesystem
+ #if __has_include(<experimental/filesystem>)
+ # include <experimental/filesystem>
+ #endif
+ // Library Fundamentals
+ #include <experimental/algorithm>
+ #include <experimental/any>
+ #include <experimental/array>
+ #include <experimental/chrono>
+ #include <experimental/deque>
+ #include <experimental/forward_list>
+ #include <experimental/functional>
+ #include <experimental/iterator>
+ #include <experimental/list>
+ #include <experimental/map>
+ #include <experimental/memory>
+ #include <experimental/memory_resource>
+ #include <experimental/numeric>
+ #include <experimental/optional>
+ #include <experimental/propagate_const>
+ #include <experimental/random>
+ #include <experimental/ratio>
+ #include <experimental/regex>
+ #include <experimental/set>
+ #include <experimental/source_location>
+ #include <experimental/string>
+ #include <experimental/string_view>
+ #include <experimental/system_error>
+ #include <experimental/tuple>
+ #include <experimental/type_traits>
+ #include <experimental/unordered_map>
+ #include <experimental/unordered_set>
+ #include <experimental/utility>
+ #include <experimental/vector>
diff -Nrcpad gcc-7.4.0/libstdc++-v3/testsuite/util/testsuite_hooks.h gcc-7.5.0/libstdc++-v3/testsuite/util/testsuite_hooks.h
*** gcc-7.4.0/libstdc++-v3/testsuite/util/testsuite_hooks.h	Mon Apr  3 17:16:06 2017
--- gcc-7.5.0/libstdc++-v3/testsuite/util/testsuite_hooks.h	Thu May 23 15:34:37 2019
***************
*** 46,63 ****
  #include <bits/c++config.h>
  #include <bits/functexcept.h>
  #include <ctime>
  
  #ifdef _GLIBCXX_HAVE_SYS_STAT_H
  #include <sys/stat.h>
  #endif
  
  #define VERIFY(fn)                                                      \
    do                                                                    \
    {                                                                     \
      if (! (fn))								\
        {									\
! 	__builtin_printf("%s:%d: %s: Assertion '%s' failed.\n",		\
! 			 __FILE__, __LINE__, __PRETTY_FUNCTION__, #fn); \
  	__builtin_abort();						\
        }									\
    } while (false)
--- 46,70 ----
  #include <bits/c++config.h>
  #include <bits/functexcept.h>
  #include <ctime>
+ #include <stdio.h>
  
  #ifdef _GLIBCXX_HAVE_SYS_STAT_H
  #include <sys/stat.h>
  #endif
  
+ #ifdef stderr
+ # define _VERIFY_PRINT(S, F, L, P, C) __builtin_fprintf(stderr, S, F, L, P, C)
+ #else
+ # define _VERIFY_PRINT(S, F, L, P, C) __builtin_printf(S, F, L, P, C)
+ #endif
+ 
  #define VERIFY(fn)                                                      \
    do                                                                    \
    {                                                                     \
      if (! (fn))								\
        {									\
! 	_VERIFY_PRINT("%s:%d: %s: Assertion '%s' failed.\n",		\
! 		      __FILE__, __LINE__, __PRETTY_FUNCTION__, #fn);	\
  	__builtin_abort();						\
        }									\
    } while (false)
diff -Nrcpad gcc-7.4.0/libvtv/ChangeLog gcc-7.5.0/libvtv/ChangeLog
*** gcc-7.4.0/libvtv/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/libvtv/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/lto-plugin/ChangeLog gcc-7.5.0/lto-plugin/ChangeLog
*** gcc-7.4.0/lto-plugin/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/lto-plugin/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/maintainer-scripts/ChangeLog gcc-7.5.0/maintainer-scripts/ChangeLog
*** gcc-7.4.0/maintainer-scripts/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/maintainer-scripts/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
diff -Nrcpad gcc-7.4.0/zlib/ChangeLog gcc-7.5.0/zlib/ChangeLog
*** gcc-7.4.0/zlib/ChangeLog	Thu Dec  6 10:00:03 2018
--- gcc-7.5.0/zlib/ChangeLog	Thu Nov 14 07:40:39 2019
***************
*** 1,3 ****
--- 1,7 ----
+ 2019-11-14  Release Manager
+ 
+ 	* GCC 7.5.0 released.
+ 
  2018-12-06  Release Manager
  
  	* GCC 7.4.0 released.
