diff -Nrcpad gcc-12-20250611/LAST_UPDATED gcc-12-20250618/LAST_UPDATED
*** gcc-12-20250611/LAST_UPDATED	Wed Jun 11 22:33:20 2025
--- gcc-12-20250618/LAST_UPDATED	Wed Jun 18 22:33:27 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-12 revision 4205c99e4fc9454b05ebd50e89553a287a8c094b
--- 1 ----
! Obtained from git: releases/gcc-12 revision 0a20ad9351c64c6dc6b65c0ff2c465adb941b6a0
diff -Nrcpad gcc-12-20250611/MD5SUMS gcc-12-20250618/MD5SUMS
*** gcc-12-20250611/MD5SUMS	Wed Jun 11 22:33:24 2025
--- gcc-12-20250618/MD5SUMS	Wed Jun 18 22:33:32 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-12-20250611.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-12-20250618.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
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 21,27 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 2bf1a065a476ab862759254676438338  LAST_UPDATED
  e854cb1e639422e089031eba0c689e15  MAINTAINERS
  5b26d0dff99e7a528342ab4d77a284df  Makefile.def
  e2f1751d40a9663c173f048c1179539e  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 184369c06ce0a760792d6cca21b85d31  LAST_UPDATED
  e854cb1e639422e089031eba0c689e15  MAINTAINERS
  5b26d0dff99e7a528342ab4d77a284df  Makefile.def
  e2f1751d40a9663c173f048c1179539e  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 471,477 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! ae417af41040ee7cde2b1d5dc0a2851d  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 471,477 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! eecddfb7063b056ab4ac4046d9da4f04  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 505,511 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 5bc008bae9116d8dda4e0cf1067c3fd6  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 505,511 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 9923e96702e14739479f35f431ca14d1  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** e8ddb5768af138adb4c7dc9ceeef18fc  gcc/ba
*** 3081,3090 ****
  effc7bf1ccdcbbcde7f3785aa54561c2  gcc/btfout.cc
  054e5fb089c16e62b46b994b919a245d  gcc/builtin-attrs.def
  9397c619ec5582634dc3e244ff03f6c9  gcc/builtin-types.def
! cb0ebb96c500ae3babe07c47b90dc82a  gcc/builtins.cc
  a72c74534e856f4d387a76fa2204ea5b  gcc/builtins.def
  48b30dc7e25f5905415a1dac460e9750  gcc/builtins.h
! c8d7d50b8d308974ff4afb0c10877b34  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  a7afd263f1b3f5cb5c733ee443f9dfe1  gcc/c-family/c-ada-spec.cc
  77ea826f6e5f43400d6095c1026cb640  gcc/c-family/c-ada-spec.h
--- 3081,3090 ----
  effc7bf1ccdcbbcde7f3785aa54561c2  gcc/btfout.cc
  054e5fb089c16e62b46b994b919a245d  gcc/builtin-attrs.def
  9397c619ec5582634dc3e244ff03f6c9  gcc/builtin-types.def
! 0e6f02354e236c8c1ee7e8a0567faf8f  gcc/builtins.cc
  a72c74534e856f4d387a76fa2204ea5b  gcc/builtins.def
  48b30dc7e25f5905415a1dac460e9750  gcc/builtins.h
! 20d3ca48f2b5f945353c7cf44ea86945  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  a7afd263f1b3f5cb5c733ee443f9dfe1  gcc/c-family/c-ada-spec.cc
  77ea826f6e5f43400d6095c1026cb640  gcc/c-family/c-ada-spec.h
*************** f7c3a2eff4387977c7c4e40122d5fe31  gcc/c-
*** 3092,3098 ****
  67aa846540cd3d9fe2c7636d03eb4716  gcc/c-family/c-common.cc
  8a7421b92ec542eccb81b8a4069ba2ad  gcc/c-family/c-common.def
  bd4a6637b69d074cb9b9ce8f5ffbd9a1  gcc/c-family/c-common.h
! 1d3feccdb648bc027a269369f47b3c83  gcc/c-family/c-cppbuiltin.cc
  ace6960d00063212ee9ff914f19af263  gcc/c-family/c-dump.cc
  80d00f99e45ecd540ec701c130df1919  gcc/c-family/c-format.cc
  074df03d16455b2d5d97400267b29292  gcc/c-family/c-format.h
--- 3092,3098 ----
  67aa846540cd3d9fe2c7636d03eb4716  gcc/c-family/c-common.cc
  8a7421b92ec542eccb81b8a4069ba2ad  gcc/c-family/c-common.def
  bd4a6637b69d074cb9b9ce8f5ffbd9a1  gcc/c-family/c-common.h
! f932a10dfd156811715cae2bb4234b92  gcc/c-family/c-cppbuiltin.cc
  ace6960d00063212ee9ff914f19af263  gcc/c-family/c-dump.cc
  80d00f99e45ecd540ec701c130df1919  gcc/c-family/c-format.cc
  074df03d16455b2d5d97400267b29292  gcc/c-family/c-format.h
*************** eb037f948fa34a189765877123cb18b4  gcc/c-
*** 3117,3130 ****
  d377f983a2b7608542fc0d1034ab9e5a  gcc/c-family/c-target.h
  014a9d801945dfd171d22b65b225162c  gcc/c-family/c-ubsan.cc
  644fa2dfeaf0cfe53b8bca3d6ad5bb1c  gcc/c-family/c-ubsan.h
! 155d7ecc0ef5487191360de62dd09b01  gcc/c-family/c-warn.cc
  9ba31ec21d4ddd5e65ec4f2a9510fb5f  gcc/c-family/c.opt
  dcb2cef5a26e1633b9899946a2ea78cb  gcc/c-family/cppspec.cc
  20446c529e92951bf598907c958af026  gcc/c-family/known-headers.cc
  a68d869def2a6738d328ed7689f87190  gcc/c-family/known-headers.h
  55d4227fdfb9e5cd81ffac2fadcf85c9  gcc/c-family/name-hint.h
  d5e5e6221af65ab5bf8c100105a7e635  gcc/c-family/stub-objc.cc
! f3a00163305dd2c4f3c75f8a0b4d4e5b  gcc/c/ChangeLog
  c34f18ab50963bd48783733e4cc912d5  gcc/c/Make-lang.in
  bca8b48089af255e3dc7cdc6705005fa  gcc/c/c-aux-info.cc
  a670199451d3424bfef5a97af7e81f86  gcc/c/c-convert.cc
--- 3117,3130 ----
  d377f983a2b7608542fc0d1034ab9e5a  gcc/c-family/c-target.h
  014a9d801945dfd171d22b65b225162c  gcc/c-family/c-ubsan.cc
  644fa2dfeaf0cfe53b8bca3d6ad5bb1c  gcc/c-family/c-ubsan.h
! 6b4e83e8fedbcb38954f73dbb25c0a5e  gcc/c-family/c-warn.cc
  9ba31ec21d4ddd5e65ec4f2a9510fb5f  gcc/c-family/c.opt
  dcb2cef5a26e1633b9899946a2ea78cb  gcc/c-family/cppspec.cc
  20446c529e92951bf598907c958af026  gcc/c-family/known-headers.cc
  a68d869def2a6738d328ed7689f87190  gcc/c-family/known-headers.h
  55d4227fdfb9e5cd81ffac2fadcf85c9  gcc/c-family/name-hint.h
  d5e5e6221af65ab5bf8c100105a7e635  gcc/c-family/stub-objc.cc
! a2cae5e7086e3aa581e916a73a9b0f0d  gcc/c/ChangeLog
  c34f18ab50963bd48783733e4cc912d5  gcc/c/Make-lang.in
  bca8b48089af255e3dc7cdc6705005fa  gcc/c/c-aux-info.cc
  a670199451d3424bfef5a97af7e81f86  gcc/c/c-convert.cc
*************** e2d3c0a7888d2d1089c7b84ca5cf8adb  gcc/c/
*** 3135,3144 ****
  4c41bcf57ef70a715d912f300edcaa93  gcc/c/c-lang.h
  98887635b3689bf1da23e924fb5f3af8  gcc/c/c-objc-common.cc
  1002460f01d21f3324f0ab1de4f57e08  gcc/c/c-objc-common.h
! d7823112039ac702a5510a61168966bf  gcc/c/c-parser.cc
  9a67949fe8b699fa17a2d86df0c26982  gcc/c/c-parser.h
  a0c8332636dfa9ddad34279ddb02f408  gcc/c/c-tree.h
! 4d0fb7afb63cc0802ef9d49ae33d804b  gcc/c/c-typeck.cc
  b7fb26d29af07468efe2938b8b9bf0af  gcc/c/config-lang.in
  3afc109228b19fcb0d4a94d5d641b0bb  gcc/c/gccspec.cc
  781af451520f205a34a5c0cf153b304e  gcc/c/gimple-parser.cc
--- 3135,3144 ----
  4c41bcf57ef70a715d912f300edcaa93  gcc/c/c-lang.h
  98887635b3689bf1da23e924fb5f3af8  gcc/c/c-objc-common.cc
  1002460f01d21f3324f0ab1de4f57e08  gcc/c/c-objc-common.h
! 9be233372fedf36b32c47d6b0e50a13e  gcc/c/c-parser.cc
  9a67949fe8b699fa17a2d86df0c26982  gcc/c/c-parser.h
  a0c8332636dfa9ddad34279ddb02f408  gcc/c/c-tree.h
! 37a05495394ba2e62ef4727ee3a2f89c  gcc/c/c-typeck.cc
  b7fb26d29af07468efe2938b8b9bf0af  gcc/c/config-lang.in
  3afc109228b19fcb0d4a94d5d641b0bb  gcc/c/gccspec.cc
  781af451520f205a34a5c0cf153b304e  gcc/c/gimple-parser.cc
*************** c07ae507570a86e164131d0adbb19c7a  gcc/cf
*** 3168,3174 ****
  4455a96e3179beb08bf7d4c4275ea90a  gcc/cfgloopmanip.h
  06df51e753cd5e404ce6c631e9f53a74  gcc/cfgrtl.cc
  3040600eba8d49493411fbff497fd94b  gcc/cfgrtl.h
! a9e07719fdcc54085a77ed0d2cfa2ba1  gcc/cgraph.cc
  36f2d894754990a4d109b7c95700ab75  gcc/cgraph.h
  5757ec66e81724328cf4c78ce0354445  gcc/cgraphbuild.cc
  af0efaf9e2173f391a376b4f8f61037f  gcc/cgraphclones.cc
--- 3168,3174 ----
  4455a96e3179beb08bf7d4c4275ea90a  gcc/cfgloopmanip.h
  06df51e753cd5e404ce6c631e9f53a74  gcc/cfgrtl.cc
  3040600eba8d49493411fbff497fd94b  gcc/cfgrtl.h
! a11456a9397736bbc4b4d21681ba0123  gcc/cgraph.cc
  36f2d894754990a4d109b7c95700ab75  gcc/cgraph.h
  5757ec66e81724328cf4c78ce0354445  gcc/cgraphbuild.cc
  af0efaf9e2173f391a376b4f8f61037f  gcc/cgraphclones.cc
*************** edbea9c45bd94aaebcdc56d9cf836f77  gcc/co
*** 3182,3188 ****
  2ec72d0e57c1f7b840013ba711e852c7  gcc/collect2.h
  a11d1e0986f7e4980609556464f7402b  gcc/color-macros.h
  8944f9bf83d393ae5343dc8323fbe27c  gcc/combine-stack-adj.cc
! 28754e1013e5b1e6ca8db21b827889bf  gcc/combine.cc
  95a28c5bec13efb49456ad7b0b35c5e8  gcc/common.md
  e204bf4b5990ec9536bc7ebd5fbed741  gcc/common.opt
  1dfb24e07014e2857e3871b986f7cda8  gcc/common/common-target-def.h
--- 3182,3188 ----
  2ec72d0e57c1f7b840013ba711e852c7  gcc/collect2.h
  a11d1e0986f7e4980609556464f7402b  gcc/color-macros.h
  8944f9bf83d393ae5343dc8323fbe27c  gcc/combine-stack-adj.cc
! a3cb6b5d84c46d042e97ebc7b53d0394  gcc/combine.cc
  95a28c5bec13efb49456ad7b0b35c5e8  gcc/common.md
  e204bf4b5990ec9536bc7ebd5fbed741  gcc/common.opt
  1dfb24e07014e2857e3871b986f7cda8  gcc/common/common-target-def.h
*************** e0c84d669ee99cd7622e8c33152058ed  gcc/co
*** 3248,3254 ****
  6a09dc5d69c18159e48b650b80038ce6  gcc/config.build
  a36897732f44933d376b872a2b8da9e5  gcc/config.gcc
  f9e9c6799c33fd97ecef8d0371a5960e  gcc/config.host
! d2539a7b151ea00b14ee8995c3be8c0e  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  f1de29e1b542d2f98786a8a5bed74596  gcc/config/aarch64/aarch64-arches.def
  fe42934bb2be20fce3a65bddc5f20adf  gcc/config/aarch64/aarch64-bti-insert.cc
--- 3248,3254 ----
  6a09dc5d69c18159e48b650b80038ce6  gcc/config.build
  a36897732f44933d376b872a2b8da9e5  gcc/config.gcc
  f9e9c6799c33fd97ecef8d0371a5960e  gcc/config.host
! 385c0b6b0e860d020b969ed4d727dc64  gcc/config.in
  8e697813dc96ca90f5d0f4c196efe2cc  gcc/config/README
  f1de29e1b542d2f98786a8a5bed74596  gcc/config/aarch64/aarch64-arches.def
  fe42934bb2be20fce3a65bddc5f20adf  gcc/config/aarch64/aarch64-bti-insert.cc
*************** d3b148611be020715f6ff78424760245  gcc/co
*** 3903,3911 ****
  af85d0ff6d4cd15b14460985c816bbb3  gcc/config/i386/i386-opts.h
  bc068488ad4d00d93e15004aec10c28f  gcc/config/i386/i386-passes.def
  ec6047eefecd3fcbd1f5f5e73eedfe2f  gcc/config/i386/i386-protos.h
! 1edf0ff3ce473135326678b2d23fd8d3  gcc/config/i386/i386.cc
  e45edc262f1ecd626dce96c4cf42c177  gcc/config/i386/i386.h
! 5d900883e73c0a6ad5e40fde6544533b  gcc/config/i386/i386.md
  7abb49886360a7038bbe29d74fa68b6f  gcc/config/i386/i386.opt
  916e372af07c88992a4dde741f963eac  gcc/config/i386/i386elf.h
  14e1802bbf5e0d6233d80d8f9fc83ed0  gcc/config/i386/ia32intrin.h
--- 3903,3911 ----
  af85d0ff6d4cd15b14460985c816bbb3  gcc/config/i386/i386-opts.h
  bc068488ad4d00d93e15004aec10c28f  gcc/config/i386/i386-passes.def
  ec6047eefecd3fcbd1f5f5e73eedfe2f  gcc/config/i386/i386-protos.h
! a7b8c6f1f22d4528f0b70d53a2cd8673  gcc/config/i386/i386.cc
  e45edc262f1ecd626dce96c4cf42c177  gcc/config/i386/i386.h
! 50c085de5bff2f31e14c488e9e916548  gcc/config/i386/i386.md
  7abb49886360a7038bbe29d74fa68b6f  gcc/config/i386/i386.opt
  916e372af07c88992a4dde741f963eac  gcc/config/i386/i386elf.h
  14e1802bbf5e0d6233d80d8f9fc83ed0  gcc/config/i386/ia32intrin.h
*************** d6906912055f25ce87b3f315021dd99b  gcc/co
*** 3963,3972 ****
  5dc568f106b96e0944f39b6c8f27c51d  gcc/config/i386/slm.md
  2729a11650973e195375af7bccb55ce7  gcc/config/i386/smmintrin.h
  daccd4e3cdd63f0dbda7ded81a1478e8  gcc/config/i386/sol2.h
! d3fed1c9fcd9238fb9b45e3d7d16e3b1  gcc/config/i386/sse.md
  10b2b2efc6fdb5368eb608587f67539d  gcc/config/i386/ssemath.h
  6bdc7b51876de6e87681dd2c97093efb  gcc/config/i386/stringop.def
! 63673be1e52dad91e6e09ab3fd23682e  gcc/config/i386/subst.md
  6b6e12c5305ed84ce236c77eead867ac  gcc/config/i386/sync.md
  95b4519ccfef2ae18ed93a2d7a1425f2  gcc/config/i386/sysv4.h
  7564e944008a7878b7028ed05d6c4100  gcc/config/i386/t-cygming
--- 3963,3972 ----
  5dc568f106b96e0944f39b6c8f27c51d  gcc/config/i386/slm.md
  2729a11650973e195375af7bccb55ce7  gcc/config/i386/smmintrin.h
  daccd4e3cdd63f0dbda7ded81a1478e8  gcc/config/i386/sol2.h
! ab86ff969229567f17a3db70ff7f4a0e  gcc/config/i386/sse.md
  10b2b2efc6fdb5368eb608587f67539d  gcc/config/i386/ssemath.h
  6bdc7b51876de6e87681dd2c97093efb  gcc/config/i386/stringop.def
! ba0d595ee17e8ccc41a8831de007adfa  gcc/config/i386/subst.md
  6b6e12c5305ed84ce236c77eead867ac  gcc/config/i386/sync.md
  95b4519ccfef2ae18ed93a2d7a1425f2  gcc/config/i386/sysv4.h
  7564e944008a7878b7028ed05d6c4100  gcc/config/i386/t-cygming
*************** af2bcd42f13e33ccdad4352e0681db30  gcc/co
*** 4443,4449 ****
  ebd0574bf5ea7ace79b2066a22377fc2  gcc/config/nvptx/nvptx-opts.h
  bde7aba55747f4c0cddc582357c9b400  gcc/config/nvptx/nvptx-protos.h
  bf2434d0636138653c724a48b710c2d4  gcc/config/nvptx/nvptx-sm.def
! 638d0b49e4aad1c3c3a3870f49cce61d  gcc/config/nvptx/nvptx.cc
  fb9643087230b89c5d11eb8c50e6dc7f  gcc/config/nvptx/nvptx.h
  23f266496c8fd8187d450f94bfc132d1  gcc/config/nvptx/nvptx.md
  d9b445a4b2e607c77f96d5a8ea11c4b2  gcc/config/nvptx/nvptx.opt
--- 4443,4449 ----
  ebd0574bf5ea7ace79b2066a22377fc2  gcc/config/nvptx/nvptx-opts.h
  bde7aba55747f4c0cddc582357c9b400  gcc/config/nvptx/nvptx-protos.h
  bf2434d0636138653c724a48b710c2d4  gcc/config/nvptx/nvptx-sm.def
! 1cb79c09092cb84b3641704c219ef91e  gcc/config/nvptx/nvptx.cc
  fb9643087230b89c5d11eb8c50e6dc7f  gcc/config/nvptx/nvptx.h
  23f266496c8fd8187d450f94bfc132d1  gcc/config/nvptx/nvptx.md
  d9b445a4b2e607c77f96d5a8ea11c4b2  gcc/config/nvptx/nvptx.opt
*************** ffda8f63c8242e1c9b8ca7d891c3106a  gcc/co
*** 4689,4695 ****
  91fffda8ae46844deb7a9db32b7d07ba  gcc/config/rs6000/rs6000-protos.h
  5f7d4f8db6bc1a1c6c4d685afb0436cf  gcc/config/rs6000/rs6000-string.cc
  e63a23cfbabbc08ab82c8dba906a13b9  gcc/config/rs6000/rs6000-tables.opt
! c8ded204502b94b0d8f659bc5969260b  gcc/config/rs6000/rs6000.cc
  32cf0c966bd20fdd06d18e644bb54283  gcc/config/rs6000/rs6000.h
  450844e2e40e7aa595fd77ae442279f4  gcc/config/rs6000/rs6000.md
  8700751be0214a4ca8ae23c73529d19f  gcc/config/rs6000/rs6000.opt
--- 4689,4695 ----
  91fffda8ae46844deb7a9db32b7d07ba  gcc/config/rs6000/rs6000-protos.h
  5f7d4f8db6bc1a1c6c4d685afb0436cf  gcc/config/rs6000/rs6000-string.cc
  e63a23cfbabbc08ab82c8dba906a13b9  gcc/config/rs6000/rs6000-tables.opt
! 8e8cea28f87cd4c4bbe6fa02664ce934  gcc/config/rs6000/rs6000.cc
  32cf0c966bd20fdd06d18e644bb54283  gcc/config/rs6000/rs6000.h
  450844e2e40e7aa595fd77ae442279f4  gcc/config/rs6000/rs6000.md
  8700751be0214a4ca8ae23c73529d19f  gcc/config/rs6000/rs6000.opt
*************** e0c7d30da142a08bd9975fbdb040f734  gcc/co
*** 4784,4790 ****
  334e22f43e6c48caed8d4619aab96d99  gcc/config/s390/s390-protos.h
  59769886ad47dabc2ef62a09e0c8c4e5  gcc/config/s390/s390.cc
  294445369544c0bc3cb50ebb7a62241f  gcc/config/s390/s390.h
! 48b59797f85df32ccc4e916104f01189  gcc/config/s390/s390.md
  675257e80950b443158a1f1a91b85fa1  gcc/config/s390/s390.opt
  e1e734cafc3999b9c4451398b3ff4e92  gcc/config/s390/s390intrin.h
  d2ef3b386594d6299790fa7d37320d79  gcc/config/s390/s390x.h
--- 4784,4790 ----
  334e22f43e6c48caed8d4619aab96d99  gcc/config/s390/s390-protos.h
  59769886ad47dabc2ef62a09e0c8c4e5  gcc/config/s390/s390.cc
  294445369544c0bc3cb50ebb7a62241f  gcc/config/s390/s390.h
! 3842a116216dbf00da008e63a0c9139f  gcc/config/s390/s390.md
  675257e80950b443158a1f1a91b85fa1  gcc/config/s390/s390.opt
  e1e734cafc3999b9c4451398b3ff4e92  gcc/config/s390/s390intrin.h
  d2ef3b386594d6299790fa7d37320d79  gcc/config/s390/s390x.h
*************** db7e9d820bb832167ac7f105d093fdda  gcc/co
*** 5061,5068 ****
  414aed735962abfc0a242138b2833d30  gcc/config/xtensa/xtensa.h
  f8577ed90789aeb2b1d1e68701b2a18b  gcc/config/xtensa/xtensa.md
  49b91f52a0ff696a3067d3288badf84f  gcc/config/xtensa/xtensa.opt
! f5dd44687a7725be30a01fa6fb661cb1  gcc/configure
! a9f1550dec52e693637c60ed8f546854  gcc/configure.ac
  2c3b5239194c0b4a2e4fb1effa7de1fe  gcc/context.cc
  f0af356bf719524dae46597a2b9376be  gcc/context.h
  9f79427f6fb6308f148ac1b824d74c87  gcc/convert.cc
--- 5061,5068 ----
  414aed735962abfc0a242138b2833d30  gcc/config/xtensa/xtensa.h
  f8577ed90789aeb2b1d1e68701b2a18b  gcc/config/xtensa/xtensa.md
  49b91f52a0ff696a3067d3288badf84f  gcc/config/xtensa/xtensa.opt
! e6124faef328b061e8c9486869e7c8a7  gcc/configure
! 9dbad30817ba63d9d11652efe43d669c  gcc/configure.ac
  2c3b5239194c0b4a2e4fb1effa7de1fe  gcc/context.cc
  f0af356bf719524dae46597a2b9376be  gcc/context.h
  9f79427f6fb6308f148ac1b824d74c87  gcc/convert.cc
*************** b81f031d36161f2b75151b5503458623  gcc/co
*** 5072,5078 ****
  5f947cfa4f11adffe84f558e88a17922  gcc/coroutine-passes.cc
  0fa89640cf054df390ce1a7cc7f2a797  gcc/coverage.cc
  b0252895005c33390b86f406799d9e70  gcc/coverage.h
! 1d1d6dbe6130a6e7b6be2554b1f0d39b  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5072,5078 ----
  5f947cfa4f11adffe84f558e88a17922  gcc/coroutine-passes.cc
  0fa89640cf054df390ce1a7cc7f2a797  gcc/coverage.cc
  b0252895005c33390b86f406799d9e70  gcc/coverage.h
! 235a29cd317e5435cde0f8dc430468a2  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp
*** 5110,5117 ****
  4af50d4f82b93440a2801cf7837dce2e  gcc/cp/cfns.h
  0d6cd9a708e60767c26f8266b56114ff  gcc/cp/class.cc
  19c35c5421d2b8d512ffa110701df758  gcc/cp/config-lang.in
! 238f0dfe46d8cf64588bdbf3f4646cfd  gcc/cp/constexpr.cc
! 77a979d32de8cb8e46d54a3ebe92ea42  gcc/cp/constraint.cc
  27cb7d2ba6312acadcfc0dfc15dbcd2b  gcc/cp/coroutines.cc
  7501a8946b544f82ced7912c0f8f957f  gcc/cp/cp-gimplify.cc
  59c2096cf662e2d5bf81f477c55c9d2d  gcc/cp/cp-lang.cc
--- 5110,5117 ----
  4af50d4f82b93440a2801cf7837dce2e  gcc/cp/cfns.h
  0d6cd9a708e60767c26f8266b56114ff  gcc/cp/class.cc
  19c35c5421d2b8d512ffa110701df758  gcc/cp/config-lang.in
! cdbe5d32255a400b963d536b1d69e117  gcc/cp/constexpr.cc
! 439c2d50df1ac75d97da9ecd731afaab  gcc/cp/constraint.cc
  27cb7d2ba6312acadcfc0dfc15dbcd2b  gcc/cp/coroutines.cc
  7501a8946b544f82ced7912c0f8f957f  gcc/cp/cp-gimplify.cc
  59c2096cf662e2d5bf81f477c55c9d2d  gcc/cp/cp-lang.cc
*************** af9e79c65b8109b071bfab436f53fd06  gcc/cp
*** 5124,5139 ****
  cf937b536f89656bbd216fda359c5f56  gcc/cp/cvt.cc
  2b73a9fc46b5816431c794ab7d308871  gcc/cp/cxx-pretty-print.cc
  fb305bef28206d87862d28cb7233a56b  gcc/cp/cxx-pretty-print.h
! e960a8e842a0bf98a49e42ea7d47e8f3  gcc/cp/decl.cc
  cffc01a2fb968bde8c15a0cf880e57f3  gcc/cp/decl.h
! a85051d5a44d327240b1f0b44cdee94d  gcc/cp/decl2.cc
  a5dba9831bf8a38a28a4b412c76ceef5  gcc/cp/dump.cc
  b05e7f9587bf188168b525f48c7479f4  gcc/cp/error.cc
  9882b133987e0ef98e9551a9762234f3  gcc/cp/except.cc
  8cebaad85dc0c01a9c1ceb500919c45c  gcc/cp/expr.cc
  1a3ebbf7c0f22d963d7ba4a245ff205c  gcc/cp/friend.cc
  0f6900a5092d59c380273a15cc1e6995  gcc/cp/g++spec.cc
! 180f96c767a8be30b0159ffb3308d628  gcc/cp/init.cc
  249c313a7d69e0ff37e383cdb01b0b03  gcc/cp/lambda.cc
  2d025243c67abcccf63845127a051ce4  gcc/cp/lang-specs.h
  7fae35cf7f4dae942a3e4ba08e3fc077  gcc/cp/lex.cc
--- 5124,5139 ----
  cf937b536f89656bbd216fda359c5f56  gcc/cp/cvt.cc
  2b73a9fc46b5816431c794ab7d308871  gcc/cp/cxx-pretty-print.cc
  fb305bef28206d87862d28cb7233a56b  gcc/cp/cxx-pretty-print.h
! c5163c0c7345435d35efd122a134995e  gcc/cp/decl.cc
  cffc01a2fb968bde8c15a0cf880e57f3  gcc/cp/decl.h
! eacca6c3a38e530127fba530aac0780f  gcc/cp/decl2.cc
  a5dba9831bf8a38a28a4b412c76ceef5  gcc/cp/dump.cc
  b05e7f9587bf188168b525f48c7479f4  gcc/cp/error.cc
  9882b133987e0ef98e9551a9762234f3  gcc/cp/except.cc
  8cebaad85dc0c01a9c1ceb500919c45c  gcc/cp/expr.cc
  1a3ebbf7c0f22d963d7ba4a245ff205c  gcc/cp/friend.cc
  0f6900a5092d59c380273a15cc1e6995  gcc/cp/g++spec.cc
! dcf23e46933f4d8234a3ad60c2baca6b  gcc/cp/init.cc
  249c313a7d69e0ff37e383cdb01b0b03  gcc/cp/lambda.cc
  2d025243c67abcccf63845127a051ce4  gcc/cp/lang-specs.h
  7fae35cf7f4dae942a3e4ba08e3fc077  gcc/cp/lex.cc
*************** b05e7f9587bf188168b525f48c7479f4  gcc/cp
*** 5142,5163 ****
  5324dfd367e7c8ebba7e3c511388ba71  gcc/cp/mapper-client.cc
  c08ce26e97ca92d6e36c71453aac5baf  gcc/cp/mapper-client.h
  5afaaf13a0191802d9adaa6cd1ff7b4b  gcc/cp/mapper-resolver.cc
! 0daac91a7d76dece74349caf1c32143a  gcc/cp/method.cc
  9b4fa8523bf6057cee15600a65221bb9  gcc/cp/module.cc
  d3726efa0f1082ae69f35e8ad09ca233  gcc/cp/name-lookup.cc
  eb7607457e31c0a54edf0539675b5b2e  gcc/cp/name-lookup.h
  a8c0211ed0a1501bf948aff39864fd1b  gcc/cp/operators.def
! a175d4e76fa35476b1f2d1cef21b9d1e  gcc/cp/optimize.cc
! ff4acf0b59bdbe7466bd6bf36ba64f57  gcc/cp/parser.cc
  dee781c4e5da6a9ed8a8ed1119c12dbb  gcc/cp/parser.h
! 09a4979c65ff6036f1e7a7d0b47f5a95  gcc/cp/pt.cc
  39ea1e495d971ae62d15c580b9b26531  gcc/cp/ptree.cc
  a69253bf5f41f60f5be44abcb3134ee0  gcc/cp/rtti.cc
  763aed8f1a637266774e6466b1b98345  gcc/cp/search.cc
! dd0c13e5e9eeead8942a845760f28344  gcc/cp/semantics.cc
! 96228ad6b38f3037301535261b3c6026  gcc/cp/tree.cc
  3ffb7b1546d92ce86c89a0d8324fa763  gcc/cp/type-utils.h
! c19a97b427acdeae28dd16dbf375c63e  gcc/cp/typeck.cc
  5833643279133cc5dbf13a9631077ce4  gcc/cp/typeck2.cc
  04b0f0bf0cbb8a2ebc3665e2acdd1be9  gcc/cp/vtable-class-hierarchy.cc
  2ed020c144695714d83ff76c8dc8551c  gcc/cppbuiltin.cc
--- 5142,5163 ----
  5324dfd367e7c8ebba7e3c511388ba71  gcc/cp/mapper-client.cc
  c08ce26e97ca92d6e36c71453aac5baf  gcc/cp/mapper-client.h
  5afaaf13a0191802d9adaa6cd1ff7b4b  gcc/cp/mapper-resolver.cc
! a3af8e9d6edf70880e519d02ee01a6dd  gcc/cp/method.cc
  9b4fa8523bf6057cee15600a65221bb9  gcc/cp/module.cc
  d3726efa0f1082ae69f35e8ad09ca233  gcc/cp/name-lookup.cc
  eb7607457e31c0a54edf0539675b5b2e  gcc/cp/name-lookup.h
  a8c0211ed0a1501bf948aff39864fd1b  gcc/cp/operators.def
! d940799ac1f7ea6bf3b0f6c9b172ee97  gcc/cp/optimize.cc
! ac087fd972ce85a0d0bf281183e87a5f  gcc/cp/parser.cc
  dee781c4e5da6a9ed8a8ed1119c12dbb  gcc/cp/parser.h
! aec4c4c5b751a43f7fc4066809b0ab7e  gcc/cp/pt.cc
  39ea1e495d971ae62d15c580b9b26531  gcc/cp/ptree.cc
  a69253bf5f41f60f5be44abcb3134ee0  gcc/cp/rtti.cc
  763aed8f1a637266774e6466b1b98345  gcc/cp/search.cc
! 66d1f1061ecd73d3cd36fc7fa1272b69  gcc/cp/semantics.cc
! 9b6bbdbb821569ceb50a5032790ae90b  gcc/cp/tree.cc
  3ffb7b1546d92ce86c89a0d8324fa763  gcc/cp/type-utils.h
! ebb6cb2dce0c5505ae0e3f6ba2ce6b58  gcc/cp/typeck.cc
  5833643279133cc5dbf13a9631077ce4  gcc/cp/typeck2.cc
  04b0f0bf0cbb8a2ebc3665e2acdd1be9  gcc/cp/vtable-class-hierarchy.cc
  2ed020c144695714d83ff76c8dc8551c  gcc/cppbuiltin.cc
*************** b6d6c874c2b61fc5ea973ad62359a416  gcc/cs
*** 5172,5178 ****
  d5ed22370e5dd622b0b12c32b21f04cd  gcc/ctfc.cc
  0a1449a42c84460895e02a7a3ee5eb09  gcc/ctfc.h
  c86420385a29dc1b103e1a4cca601af9  gcc/ctfout.cc
! b69ba6b22488900a3e289fc587eef3e3  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
--- 5172,5178 ----
  d5ed22370e5dd622b0b12c32b21f04cd  gcc/ctfc.cc
  0a1449a42c84460895e02a7a3ee5eb09  gcc/ctfc.h
  c86420385a29dc1b103e1a4cca601af9  gcc/ctfout.cc
! a4eb6ce824734af0a73ceb3f4a1f4794  gcc/d/ChangeLog
  86f687c485111eedca2eb048294f957e  gcc/d/ChangeLog-2006
  70ed1c47fd9b3f5dd95055642ed79265  gcc/d/ChangeLog-2007
  a7090ab2dd83aa4f44823c17566b83ef  gcc/d/ChangeLog-2008
*************** d46228dde1a38d9a1d640d737074c7c6  gcc/d/
*** 5189,5195 ****
  2bdf87680f3ebc496c728540c3e6d88a  gcc/d/ChangeLog-2019
  e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/ChangeLog-2020
  1978e6674dd960299d771fdb335a9df2  gcc/d/ChangeLog-2021
! 718e75aef088ebea5fb535a8b8f56fa1  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
  8bf5d890e781b56206924e00d9e49939  gcc/d/config-lang.in
  d08c623f247be5cfa5170417f26d5480  gcc/d/d-attribs.cc
--- 5189,5195 ----
  2bdf87680f3ebc496c728540c3e6d88a  gcc/d/ChangeLog-2019
  e432bfc5c605ae0b1beedf0492ad40d1  gcc/d/ChangeLog-2020
  1978e6674dd960299d771fdb335a9df2  gcc/d/ChangeLog-2021
! 248bb8ec05744249cf41bd4498ffba23  gcc/d/Make-lang.in
  426254b45d40584d0597c63f3fd1f889  gcc/d/README.gcc
  8bf5d890e781b56206924e00d9e49939  gcc/d/config-lang.in
  d08c623f247be5cfa5170417f26d5480  gcc/d/d-attribs.cc
*************** f06003c25ea278478f8d118f1aa63c83  gcc/do
*** 5455,5461 ****
  fb4b91ad27bb3454d9988d80aa141644  gcc/doc/cppinternals.texi
  e800c0bc2befa6987b1fc171b3fa6bc7  gcc/doc/cppopts.texi
  a6ec6f6984012460fa04c405c52a8edc  gcc/doc/cppwarnopts.texi
! 74abea84bd32c514b53ab581d787f8b4  gcc/doc/extend.texi
  f78fa1359032f84915fdfb60653ea30e  gcc/doc/fragments.texi
  e3001342aaa637f17a507b55b36479bd  gcc/doc/frontends.texi
  c6b0b2d1fe3f28a04931a2a794048df7  gcc/doc/gcc.texi
--- 5455,5461 ----
  fb4b91ad27bb3454d9988d80aa141644  gcc/doc/cppinternals.texi
  e800c0bc2befa6987b1fc171b3fa6bc7  gcc/doc/cppopts.texi
  a6ec6f6984012460fa04c405c52a8edc  gcc/doc/cppwarnopts.texi
! 608e3ec77aea51d307cf644dfa352cd0  gcc/doc/extend.texi
  f78fa1359032f84915fdfb60653ea30e  gcc/doc/fragments.texi
  e3001342aaa637f17a507b55b36479bd  gcc/doc/frontends.texi
  c6b0b2d1fe3f28a04931a2a794048df7  gcc/doc/gcc.texi
*************** c844952cfe2642f0dd0361d70ec9bffa  gcc/er
*** 5533,5544 ****
  fac4dc8e95eb5eae825a0db47ce1ab7b  gcc/escaped_string.h
  3b0f4c63c8cea8da78fc4646096cd806  gcc/et-forest.cc
  9199096b782143b97a1c0b49e6398c40  gcc/et-forest.h
! b81446cad469d50f18943e386f286fbd  gcc/except.cc
  f009c0b679814cf0230400579922b602  gcc/except.h
  d6bf493c0749d890bd5bee8a86e3f372  gcc/exec-tool.in
  fa7f9340e6c1ee56aa3bc2c04629d9cc  gcc/explow.cc
  4bb0068974444cdffe19b60784f8e189  gcc/explow.h
! e3381a45a8cb989d808afabc0a3143a8  gcc/expmed.cc
  ba8393b3e2b8742976d1fc0c4727108f  gcc/expmed.h
  7190e8eebaf1071d068473e5f7b38549  gcc/expr.cc
  063529794de14145f9a6e5822e051a83  gcc/expr.h
--- 5533,5544 ----
  fac4dc8e95eb5eae825a0db47ce1ab7b  gcc/escaped_string.h
  3b0f4c63c8cea8da78fc4646096cd806  gcc/et-forest.cc
  9199096b782143b97a1c0b49e6398c40  gcc/et-forest.h
! ec64e848c47d3afcc6d75f778200c46a  gcc/except.cc
  f009c0b679814cf0230400579922b602  gcc/except.h
  d6bf493c0749d890bd5bee8a86e3f372  gcc/exec-tool.in
  fa7f9340e6c1ee56aa3bc2c04629d9cc  gcc/explow.cc
  4bb0068974444cdffe19b60784f8e189  gcc/explow.h
! 3344170be10fd8f9b505d0106752cc58  gcc/expmed.cc
  ba8393b3e2b8742976d1fc0c4727108f  gcc/expmed.h
  7190e8eebaf1071d068473e5f7b38549  gcc/expr.cc
  063529794de14145f9a6e5822e051a83  gcc/expr.h
*************** acba3643fd3d7dbe62ff3b7f99130cb8  gcc/fo
*** 5557,5563 ****
  f1700f1cc85dfe93bddd7114e6202635  gcc/fold-const-call.h
  d73084f068b6ff11317f27835a24d078  gcc/fold-const.cc
  63f13230cb3584d77e9b8a26c6ac5fd8  gcc/fold-const.h
! d6203681e035d8be4bc6aeed440b8563  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5557,5563 ----
  f1700f1cc85dfe93bddd7114e6202635  gcc/fold-const-call.h
  d73084f068b6ff11317f27835a24d078  gcc/fold-const.cc
  63f13230cb3584d77e9b8a26c6ac5fd8  gcc/fold-const.h
! e61049443afec723f4473c3f4360c1ac  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** d58dc979add87c7e22ecf3fe8ea7d636  gcc/fo
*** 5646,5652 ****
  7468f5a70b780bf92036ea75d5312bd4  gcc/fortran/trans-const.h
  dbba248ad99588047fed13881a506bf3  gcc/fortran/trans-decl.cc
  8834e0694a268bd5a8ce4e286174ce7f  gcc/fortran/trans-expr.cc
! 408605a1145b1a8bb8b94b3ba47e9a54  gcc/fortran/trans-intrinsic.cc
  85141448817f23e9ee692c3b7b763c75  gcc/fortran/trans-io.cc
  59236c5b820b6ffc26470283bc0e6db6  gcc/fortran/trans-openmp.cc
  ee76646a8bbb271f793e1e8867f57d71  gcc/fortran/trans-stmt.cc
--- 5646,5652 ----
  7468f5a70b780bf92036ea75d5312bd4  gcc/fortran/trans-const.h
  dbba248ad99588047fed13881a506bf3  gcc/fortran/trans-decl.cc
  8834e0694a268bd5a8ce4e286174ce7f  gcc/fortran/trans-expr.cc
! 7a85628e74dac51f1bef12409c94e252  gcc/fortran/trans-intrinsic.cc
  85141448817f23e9ee692c3b7b763c75  gcc/fortran/trans-io.cc
  59236c5b820b6ffc26470283bc0e6db6  gcc/fortran/trans-openmp.cc
  ee76646a8bbb271f793e1e8867f57d71  gcc/fortran/trans-stmt.cc
*************** e407ce5e464ee5640a9730448c53532b  gcc/fo
*** 5661,5667 ****
  45bd02cc1348dbf322ee97df8ac53c43  gcc/function-abi.cc
  4c0c4b1c00c37358843ae3349346bdec  gcc/function-abi.h
  4e2f34bb1401e871b7cca9babb99ec3e  gcc/function-tests.cc
! 2a4309239adfb0f59d7062cddae8a372  gcc/function.cc
  691a265913d36a47e60accc3677bb50c  gcc/function.h
  191568f8ff996f25b093ee138a7a5590  gcc/fwprop.cc
  254a48c75187b7e47b94abf826e16c94  gcc/gcc-ar.cc
--- 5661,5667 ----
  45bd02cc1348dbf322ee97df8ac53c43  gcc/function-abi.cc
  4c0c4b1c00c37358843ae3349346bdec  gcc/function-abi.h
  4e2f34bb1401e871b7cca9babb99ec3e  gcc/function-tests.cc
! 16bfb9441d5f3d12a3fe19ac1d03a7e3  gcc/function.cc
  691a265913d36a47e60accc3677bb50c  gcc/function.h
  191568f8ff996f25b093ee138a7a5590  gcc/fwprop.cc
  254a48c75187b7e47b94abf826e16c94  gcc/gcc-ar.cc
*************** c21ee37cecaf1b25e3bd8de9fb19e968  gcc/gc
*** 5670,5676 ****
  a85c939fa43dfee6075872172327e4f3  gcc/gcc-rich-location.cc
  c6a1992de949bd6bd63861fbebe06618  gcc/gcc-rich-location.h
  5eba488d62cd83afcd74ebaddd3e2db9  gcc/gcc-symtab.h
! 526e56c0ee557a5e684f36ee8f95eec4  gcc/gcc.cc
  50339e09857ada5c5cbc9c2c74775d71  gcc/gcc.h
  907e96abb298d108295ecfe939301b54  gcc/gcov-counter.def
  098804cd843ca0a2ac068140d2023f15  gcc/gcov-dump.cc
--- 5670,5676 ----
  a85c939fa43dfee6075872172327e4f3  gcc/gcc-rich-location.cc
  c6a1992de949bd6bd63861fbebe06618  gcc/gcc-rich-location.h
  5eba488d62cd83afcd74ebaddd3e2db9  gcc/gcc-symtab.h
! c863f7783b234ba8a84abdce3d438418  gcc/gcc.cc
  50339e09857ada5c5cbc9c2c74775d71  gcc/gcc.h
  907e96abb298d108295ecfe939301b54  gcc/gcov-counter.def
  098804cd843ca0a2ac068140d2023f15  gcc/gcov-dump.cc
*************** dda76c5b5ec0948d9ce70a2bef27cfca  gcc/ge
*** 5689,5695 ****
  2432cbe939cbb7a5372cde88c946d50d  gcc/genattr-common.cc
  75da21cfde7e116835aec220cd9be1b9  gcc/genattr.cc
  819311f444f94a9139c5b08ef130794d  gcc/genattrtab.cc
! 0ba27d303bec1bd1072b35d1e4bf673d  gcc/genautomata.cc
  1b860d71137ce697637feddef156dce8  gcc/gencfn-macros.cc
  737436dcf51f8f9f75ab2e2f7e7f4fd1  gcc/gencheck.cc
  3004285788bb3ea898abf2a24a56996b  gcc/genchecksum.cc
--- 5689,5695 ----
  2432cbe939cbb7a5372cde88c946d50d  gcc/genattr-common.cc
  75da21cfde7e116835aec220cd9be1b9  gcc/genattr.cc
  819311f444f94a9139c5b08ef130794d  gcc/genattrtab.cc
! 16b19bf7c53e8373f6e3d857b313f059  gcc/genautomata.cc
  1b860d71137ce697637feddef156dce8  gcc/gencfn-macros.cc
  737436dcf51f8f9f75ab2e2f7e7f4fd1  gcc/gencheck.cc
  3004285788bb3ea898abf2a24a56996b  gcc/genchecksum.cc
*************** c09c9c82904f715ce24dbb5f5e7ae143  gcc/gi
*** 5736,5742 ****
  71288f9828f96bb6d528314ca5d455fd  gcc/gimple-builder.h
  f50e26d784233d2ffe55ee17bc3ac46a  gcc/gimple-expr.cc
  d1de4fb8ce13938f7c3dd22dd3afe622  gcc/gimple-expr.h
! 24e48b82778727622ebae55cb3ebae09  gcc/gimple-fold.cc
  759408e1e968762ac2845df7ae6efa73  gcc/gimple-fold.h
  8350312718333859d5f584a2792e3c00  gcc/gimple-harden-conditionals.cc
  5397f4236c244ea6e396da577b07cb75  gcc/gimple-if-to-switch.cc
--- 5736,5742 ----
  71288f9828f96bb6d528314ca5d455fd  gcc/gimple-builder.h
  f50e26d784233d2ffe55ee17bc3ac46a  gcc/gimple-expr.cc
  d1de4fb8ce13938f7c3dd22dd3afe622  gcc/gimple-expr.h
! 25a27a65de48e4e7a122c73966e97a75  gcc/gimple-fold.cc
  759408e1e968762ac2845df7ae6efa73  gcc/gimple-fold.h
  8350312718333859d5f584a2792e3c00  gcc/gimple-harden-conditionals.cc
  5397f4236c244ea6e396da577b07cb75  gcc/gimple-if-to-switch.cc
*************** a2e47746135af17dac3a1f31d5ec570b  gcc/gi
*** 5779,5787 ****
  6881154cb788d83ed5d3a6faa40e8491  gcc/gimple-ssa-nonnull-compare.cc
  8e1e93b40c3c71852038f4e15cc0ea0e  gcc/gimple-ssa-split-paths.cc
  4f7e23705d457e93b29edca5a1da0961  gcc/gimple-ssa-sprintf.cc
! 62346616dd003a655894e57f5b102985  gcc/gimple-ssa-store-merging.cc
! ca63b943de7942e5678ba99a1ddd3285  gcc/gimple-ssa-strength-reduction.cc
! 1ff75f3addf6ae85fc80b7096e5512cf  gcc/gimple-ssa-warn-access.cc
  7064ea947fe572efdcb48307a73cc457  gcc/gimple-ssa-warn-access.h
  760b69c7948cbd7e7ee6a848c204e287  gcc/gimple-ssa-warn-alloca.cc
  1bc2d755960e18e2591f149a5eb08cfc  gcc/gimple-ssa-warn-restrict.cc
--- 5779,5787 ----
  6881154cb788d83ed5d3a6faa40e8491  gcc/gimple-ssa-nonnull-compare.cc
  8e1e93b40c3c71852038f4e15cc0ea0e  gcc/gimple-ssa-split-paths.cc
  4f7e23705d457e93b29edca5a1da0961  gcc/gimple-ssa-sprintf.cc
! b5e28957b6ebdb400eedc1fc7ab56662  gcc/gimple-ssa-store-merging.cc
! dbd01759558a0a093579baedc1616efe  gcc/gimple-ssa-strength-reduction.cc
! 40f9a6cd1632a39ab9b31da7c74f121d  gcc/gimple-ssa-warn-access.cc
  7064ea947fe572efdcb48307a73cc457  gcc/gimple-ssa-warn-access.h
  760b69c7948cbd7e7ee6a848c204e287  gcc/gimple-ssa-warn-alloca.cc
  1bc2d755960e18e2591f149a5eb08cfc  gcc/gimple-ssa-warn-restrict.cc
*************** cedfeeeb6a89b08187da0a55778ff05c  gcc/gi
*** 5798,5804 ****
  b1f2597055332f7a009df2374360eee2  gcc/gimple.h
  1a79444af2bcf0c019b20c37cb346635  gcc/gimplify-me.cc
  489260dcd67a90caca7adf7b361f9078  gcc/gimplify-me.h
! 98f389d1036f8f326636c7afcfe3b5b4  gcc/gimplify.cc
  acbd4cf19da012507fa6f90cc988cc15  gcc/gimplify.h
  4b707ba8acc84c0c2c69cd7d11b0b878  gcc/ginclude/float.h
  5e92ed0886d68a4cce339044cf03cd57  gcc/ginclude/iso646.h
--- 5798,5804 ----
  b1f2597055332f7a009df2374360eee2  gcc/gimple.h
  1a79444af2bcf0c019b20c37cb346635  gcc/gimplify-me.cc
  489260dcd67a90caca7adf7b361f9078  gcc/gimplify-me.h
! 003f1a25a262592c94fdebaa6d746138  gcc/gimplify.cc
  acbd4cf19da012507fa6f90cc988cc15  gcc/gimplify.h
  4b707ba8acc84c0c2c69cd7d11b0b878  gcc/ginclude/float.h
  5e92ed0886d68a4cce339044cf03cd57  gcc/ginclude/iso646.h
*************** c902d1e07ec7e9d3fc10e9ad37aa9a67  gcc/ip
*** 5942,5948 ****
  e53488d9d3ac74d139bab421e0486e33  gcc/ipa-fnsummary.cc
  634795391b1718599123e8f6f5dd1068  gcc/ipa-fnsummary.h
  b34559e01a3cf2fa5b4a65c745283e25  gcc/ipa-free-lang-data.cc
! 1461ba766c8866ca428487c7aa48d5cd  gcc/ipa-icf-gimple.cc
  ac03bc194f37ee5eb93086c446e09d46  gcc/ipa-icf-gimple.h
  0ce567e80b74cab5db05bbd7c890c3b8  gcc/ipa-icf.cc
  160f6907201241c29aa0aba8c773fb7d  gcc/ipa-icf.h
--- 5942,5948 ----
  e53488d9d3ac74d139bab421e0486e33  gcc/ipa-fnsummary.cc
  634795391b1718599123e8f6f5dd1068  gcc/ipa-fnsummary.h
  b34559e01a3cf2fa5b4a65c745283e25  gcc/ipa-free-lang-data.cc
! cec97b36e5b622b3af7c95f2d53e3a73  gcc/ipa-icf-gimple.cc
  ac03bc194f37ee5eb93086c446e09d46  gcc/ipa-icf-gimple.h
  0ce567e80b74cab5db05bbd7c890c3b8  gcc/ipa-icf.cc
  160f6907201241c29aa0aba8c773fb7d  gcc/ipa-icf.h
*************** d4c66c0391e81354d287eec0bcf46762  gcc/li
*** 6085,6091 ****
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
  e341f9a991267d99f0bc9e1c4453d3ac  gcc/lists.cc
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
! 0a9c4c99ad1df21ceeeb816a2c7b541b  gcc/loop-doloop.cc
  e5932fb927bbb4bfb85cb5d33ffd6417  gcc/loop-init.cc
  6ddb38f2371c76647a7cbe757b023b34  gcc/loop-invariant.cc
  8e7bd8eadb7b7bdc1e578d13b7da86c2  gcc/loop-iv.cc
--- 6085,6091 ----
  83de5c6450456e215a5484083afcd32a  gcc/limity.h
  e341f9a991267d99f0bc9e1c4453d3ac  gcc/lists.cc
  30b8e3e407f46ad2cb39260ec4bab9f6  gcc/lock-and-run.sh
! 9ecc13cb883d6a5d9b032c59484f077d  gcc/loop-doloop.cc
  e5932fb927bbb4bfb85cb5d33ffd6417  gcc/loop-init.cc
  6ddb38f2371c76647a7cbe757b023b34  gcc/loop-invariant.cc
  8e7bd8eadb7b7bdc1e578d13b7da86c2  gcc/loop-iv.cc
*************** a8690b1b1211e5729fe7d4b48fa78daa  gcc/lr
*** 6103,6112 ****
  a12ca899bd59ccbeec416fc43977c608  gcc/lra-spills.cc
  8af016f653ef309d269a40b20c238258  gcc/lra.cc
  f490aaab2d136c3ac960b8a2268bbeae  gcc/lra.h
! e1627fa0450d2bf925dc226db5eea40f  gcc/lto-cgraph.cc
  5f9713f5327a766eda14c98080a2f793  gcc/lto-compress.cc
  dc7879f80a53a211ef0a2279b918b482  gcc/lto-compress.h
! abb79d7ba9534061b9c18bc473a07b94  gcc/lto-opts.cc
  76aa6318b1ff313a3ebae8c03a117449  gcc/lto-section-in.cc
  daebc1236d16034267b252a3005afafe  gcc/lto-section-names.h
  552822b6b924fec051ecb1eedb0d585e  gcc/lto-section-out.cc
--- 6103,6112 ----
  a12ca899bd59ccbeec416fc43977c608  gcc/lra-spills.cc
  8af016f653ef309d269a40b20c238258  gcc/lra.cc
  f490aaab2d136c3ac960b8a2268bbeae  gcc/lra.h
! 6a8705800de664c76eba7c18b3eb563c  gcc/lto-cgraph.cc
  5f9713f5327a766eda14c98080a2f793  gcc/lto-compress.cc
  dc7879f80a53a211ef0a2279b918b482  gcc/lto-compress.h
! 0ee6efb06e1ce3cefa32570d64f96871  gcc/lto-opts.cc
  76aa6318b1ff313a3ebae8c03a117449  gcc/lto-section-in.cc
  daebc1236d16034267b252a3005afafe  gcc/lto-section-names.h
  552822b6b924fec051ecb1eedb0d585e  gcc/lto-section-out.cc
*************** bd0e05064e12f50320714a3a859b59c8  gcc/op
*** 6204,6210 ****
  c0ba177165367a0975291f9920aadf51  gcc/optabs-query.h
  0e8bfc89a9c3d2e3abcf8600733f2fb0  gcc/optabs-tree.cc
  52ec5ad3f57345e13cb41d723e2a33af  gcc/optabs-tree.h
! 54e76ae6a0e002668ce32afc2bb50cda  gcc/optabs.cc
  3b5dde2042c9c3b420ce7becb5248f58  gcc/optabs.def
  234d417c73a1c9170dfe1eb986c28950  gcc/optabs.h
  75d4127222473ed096547c333b8da80c  gcc/optc-gen.awk
--- 6204,6210 ----
  c0ba177165367a0975291f9920aadf51  gcc/optabs-query.h
  0e8bfc89a9c3d2e3abcf8600733f2fb0  gcc/optabs-tree.cc
  52ec5ad3f57345e13cb41d723e2a33af  gcc/optabs-tree.h
! 8dad7275795756b5d4e75cb67b7bc2e5  gcc/optabs.cc
  3b5dde2042c9c3b420ce7becb5248f58  gcc/optabs.def
  234d417c73a1c9170dfe1eb986c28950  gcc/optabs.h
  75d4127222473ed096547c333b8da80c  gcc/optc-gen.awk
*************** b149c10ec9175a62b2cacecd1a122265  gcc/re
*** 6284,6290 ****
  395567685a6400596031764ffab205d9  gcc/read-rtl-function.cc
  d4585c5b545aa5cacf2e013b2ff344ba  gcc/read-rtl-function.h
  3c88d8d8b7ab7b0008173c12d284746e  gcc/read-rtl.cc
! 707e5482d6c4e9fa7260cdea542405d0  gcc/real.cc
  5e52056da5c57c516abcd8cdd3ec7daf  gcc/real.h
  7b4e904ee64a419d0981d9b23045cc05  gcc/realmpfr.cc
  03313b503aec1d8db4d8fde449f49d84  gcc/realmpfr.h
--- 6284,6290 ----
  395567685a6400596031764ffab205d9  gcc/read-rtl-function.cc
  d4585c5b545aa5cacf2e013b2ff344ba  gcc/read-rtl-function.h
  3c88d8d8b7ab7b0008173c12d284746e  gcc/read-rtl.cc
! 9b8596b088fb9ecd20aae99832c7e152  gcc/real.cc
  5e52056da5c57c516abcd8cdd3ec7daf  gcc/real.h
  7b4e904ee64a419d0981d9b23045cc05  gcc/realmpfr.cc
  03313b503aec1d8db4d8fde449f49d84  gcc/realmpfr.h
*************** bdb7861240a719686c5923e70bd8347a  gcc/ta
*** 6419,6425 ****
  6149228cab283a1f92d51b26eb37646e  gcc/targhooks.cc
  008304bca4d8ea66f0c9bc8749e23bb5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! c6051d7c1d29d1ab8ab2c6dde03bbb26  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 6419,6425 ----
  6149228cab283a1f92d51b26eb37646e  gcc/targhooks.cc
  008304bca4d8ea66f0c9bc8749e23bb5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 06bea2678ac07119d0553e31d1ceb84a  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** c7eebf2a6120dfecf1a6ae7de1f49694  gcc/te
*** 9284,9289 ****
--- 9284,9290 ----
  bf0b620625355f346eefd54a379f0ac2  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess2.c
  9435b893d35596d6e6c421a7d0ca6b4e  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess3.c
  c2f8af9a24cbf598244cbdf23a6eb007  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess4.c
+ af1ddc910423deb7037d0df021bc094d  gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c
  f65e675073fa6e887cf5c8b46811dbbd  gcc/testsuite/c-c++-common/Wstringop-overflow-2-novec.c
  72b026b6797ea3ac3a7342c55601477c  gcc/testsuite/c-c++-common/Wstringop-overflow-2.c
  ed599254a04855f3e360dc18fbdba9d9  gcc/testsuite/c-c++-common/Wstringop-overflow.c
*************** ef8ec3320ae234be32fcdfc5379eaca2  gcc/te
*** 10170,10175 ****
--- 10171,10177 ----
  0cff3c6576e6db18b71f25c5da8bcbb0  gcc/testsuite/c-c++-common/gomp/pr104968.c
  1164bc26f7382179d1bd6b607af1d336  gcc/testsuite/c-c++-common/gomp/pr106981.c
  8f995161beda01326e712ba172a760f8  gcc/testsuite/c-c++-common/gomp/pr107001.c
+ c83ce004951a9a0719e190f7457302c7  gcc/testsuite/c-c++-common/gomp/pr119000.c
  e16ef156ad193ef1f3cba60ad16e57ab  gcc/testsuite/c-c++-common/gomp/pr51360.c
  84c977571aeb43c0224137efe7f5b213  gcc/testsuite/c-c++-common/gomp/pr53580.c
  28bfd873981083756a16f70fdb0b86db  gcc/testsuite/c-c++-common/gomp/pr54017.c
*************** f64e9a0e7b5ee2dca69c8d247f6246ab  gcc/te
*** 10784,10794 ****
  6099fd0b163b9c570575cfa376ad44ae  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-8.c
  1521bd071912021d30375778ada20c27  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-9.c
  c0ced56aa092fbe05fcfb0400e4a7973  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow.h
! 80c6991dac30744cf52461dd3f956e72  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c
! dcfe45ba6f5d3cfc6a596ae589694b44  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c
! 895fbc9bc655600ce8926f0324c028bf  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
! ecf00277bf404ed30fb08d5a8347834e  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
! 02ccc099dac6a69400f154fddb7c755d  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c
  e6519a905d51bc4a47ceea85c886d98b  gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
  1152c43998c24654fd01c67b23e23932  gcc/testsuite/c-c++-common/torture/builtin-convertvector-2.c
  78be28e180d73a89ef820b89b8e47458  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-1.c
--- 10786,10797 ----
  6099fd0b163b9c570575cfa376ad44ae  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-8.c
  1521bd071912021d30375778ada20c27  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-9.c
  c0ced56aa092fbe05fcfb0400e4a7973  gcc/testsuite/c-c++-common/torture/builtin-arith-overflow.h
! 3cee92adaa1a38086edfab9c3d84f00a  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c
! 1865956f3fc939653de54faba3618b72  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c
! 31f715afb9a58cc96ce3fe60e4c8101d  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
! 1428b405a26a5320e9400f0d631ac3b9  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
! f1ab5d6173eb9710341597174f8f1538  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c
! 550bf6a95b93ecdb962dab3cc0becb47  gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c
  e6519a905d51bc4a47ceea85c886d98b  gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c
  1152c43998c24654fd01c67b23e23932  gcc/testsuite/c-c++-common/torture/builtin-convertvector-2.c
  78be28e180d73a89ef820b89b8e47458  gcc/testsuite/c-c++-common/torture/builtin-shufflevector-1.c
*************** fb777e6427f4a224508112af8340c3d4  gcc/te
*** 11577,11582 ****
--- 11580,11586 ----
  0bd40d9ed57b38d1bedec8f7fbb98d1c  gcc/testsuite/g++.dg/asan/large-func-test-1.C
  ca4a8065918a3119cb5474bacec801f2  gcc/testsuite/g++.dg/asan/pr102656.C
  b03be3a03970717959df65ccdcbebe88  gcc/testsuite/g++.dg/asan/pr104449.C
+ 350e8cfd78cd243b5ca66f3b0149e4b7  gcc/testsuite/g++.dg/asan/pr118763.C
  e472f2ce37f2b55b1358ec08717d9f08  gcc/testsuite/g++.dg/asan/pr55617.C
  74a04a20e12a8acd0fd7d05742cf8d63  gcc/testsuite/g++.dg/asan/pr62017.C
  505943436d80a41b5e95bf0b67db97cd  gcc/testsuite/g++.dg/asan/pr64937.C
*************** be8e4b63955ef6076e0e2cd57b4fd61c  gcc/te
*** 13017,13022 ****
--- 13021,13027 ----
  e0a86859c165bfaac8fd8efd9023935b  gcc/testsuite/g++.dg/cpp0x/constexpr-union6.C
  7229788425547bc1befff78305c473c8  gcc/testsuite/g++.dg/cpp0x/constexpr-union7.C
  5d95979f72aa52bb0abbd82d05bf5e53  gcc/testsuite/g++.dg/cpp0x/constexpr-union7a.C
+ 672d560c9bad4c9225e64d802d62bb03  gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C
  9c897128234fa6ab41edf384f11dd381  gcc/testsuite/g++.dg/cpp0x/constexpr-using.C
  7a9a83c41c3d2c5f82ac428442905b65  gcc/testsuite/g++.dg/cpp0x/constexpr-using2.C
  6dc93e335ab58c26289327a9c7e9d042  gcc/testsuite/g++.dg/cpp0x/constexpr-using3.C
*************** ec6bf8354ca1b8834959e856431d6ac4  gcc/te
*** 13035,13040 ****
--- 13040,13046 ----
  58e380f5c0bc16e86009e605e19acb07  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile.C
  5081c9b6e2b0e12bf7d6e127f365efe7  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile2.C
  30ced1e6b63c1eb7ae6b537c9e49bc1f  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile3.C
+ a219624071878a5955efe99a018a2b43  gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C
  7bca20d6ac21d6cb78ab16d5c52b7e64  gcc/testsuite/g++.dg/cpp0x/constexpr-wstring1.C
  b16fc42e77fa07ebcdb1053ea5d24120  gcc/testsuite/g++.dg/cpp0x/constexpr-wstring2.C
  70dc080523c40a07cec30261f6f7007a  gcc/testsuite/g++.dg/cpp0x/conv-tmpl1.C
*************** a174690fe306aaf345b02df91c3ddebe  gcc/te
*** 14277,14282 ****
--- 14283,14289 ----
  70ac2374ee7486817d2f1310406bcc69  gcc/testsuite/g++.dg/cpp0x/pr104668.C
  ab53f37eb7254188dd01a8c1e25841fd  gcc/testsuite/g++.dg/cpp0x/pr105256.C
  fa773bb98628f5c9f0fa9d8d8b29beda  gcc/testsuite/g++.dg/cpp0x/pr107065.C
+ c6b0d9f964bf85f5f703f5dfa5e809e9  gcc/testsuite/g++.dg/cpp0x/pr119123.C
  26dea799d49ce223a0c4130a3c955271  gcc/testsuite/g++.dg/cpp0x/pr31431-2.C
  4d1da29b669bf3178b3987abce4d58b1  gcc/testsuite/g++.dg/cpp0x/pr31431.C
  d65e06a3830e2b511cc25692b94615a1  gcc/testsuite/g++.dg/cpp0x/pr31432.C
*************** cf4d7a0934fa5897248e568b884df620  gcc/te
*** 14515,14520 ****
--- 14522,14528 ----
  b01c3079ace1bdd462b03d3af7906721  gcc/testsuite/g++.dg/cpp0x/pr93905.C
  114fa71f09fe7fd9b70ee4d41e776e26  gcc/testsuite/g++.dg/cpp0x/pr94616.C
  c60c0db646b29d21cd7d61d24670d63e  gcc/testsuite/g++.dg/cpp0x/pr96440.C
+ 7f57e13552a3dc10e25c07f282add219  gcc/testsuite/g++.dg/cpp0x/pr98533.C
  1f725aacb479fe72f5d994446fab5d54  gcc/testsuite/g++.dg/cpp0x/ptrmem-cst-arg1.C
  0564cc0225d38f734d46986570531094  gcc/testsuite/g++.dg/cpp0x/ptrmem-cst1.C
  6e8e648c26d9bf237cc152180e88c2c2  gcc/testsuite/g++.dg/cpp0x/range-for1.C
*************** be875f126134f7edf9c2ff78ec08400f  gcc/te
*** 15797,15802 ****
--- 15805,15811 ----
  c7ab12616c35e8ba0c0796618d522c42  gcc/testsuite/g++.dg/cpp1y/var-templ77.C
  65e2c5dc982b2101d716a561b1d08003  gcc/testsuite/g++.dg/cpp1y/var-templ78.C
  7490ba7f2bf9511118a48f52e8c4ceed  gcc/testsuite/g++.dg/cpp1y/var-templ8.C
+ 2555b4c1ccdec6b7fca5b625f06840d3  gcc/testsuite/g++.dg/cpp1y/var-templ87.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
  2e5f8fa912af0b2871356af6f1adbd06  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
  f82f70352e70742cc985b48be0774ebe  gcc/testsuite/g++.dg/cpp1y/vla10.C
*************** db3b073f0c7359db6e2ad4fbfa9c08d5  gcc/te
*** 15865,15870 ****
--- 15874,15880 ----
  871331a13941944f7010cfb1344eab6e  gcc/testsuite/g++.dg/cpp1z/class-deduction109.C
  517aaeb274419d156e09eb5a7d5b7077  gcc/testsuite/g++.dg/cpp1z/class-deduction11.C
  9f4ecb418c0bbb6f3b318882c20889a4  gcc/testsuite/g++.dg/cpp1z/class-deduction110.C
+ a57c191ff65947f62c8c80935a968d19  gcc/testsuite/g++.dg/cpp1z/class-deduction117.C
  fccf66f75d0bb293e6ce56753e50eeda  gcc/testsuite/g++.dg/cpp1z/class-deduction12.C
  8033f2dbb1dc793a3fea073353a0487a  gcc/testsuite/g++.dg/cpp1z/class-deduction13.C
  f51a81e3b0aa46f289c5ca9d3faaded6  gcc/testsuite/g++.dg/cpp1z/class-deduction14.C
*************** d309961f0255b13605cf111efa2b095a  gcc/te
*** 15975,15980 ****
--- 15985,15991 ----
  6a2eb0af9be5a3b73df8e66127a94fd9  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda3.C
  2746f29337da849f597ad6ce8bbb74c2  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C
  f40b7c3743735802b3e2fa6c768cf560  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C
+ ae7754ba50de7c7210949438f1a4a6bc  gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda6.C
  b70f4276933d24cd68ae2e047a954ece  gcc/testsuite/g++.dg/cpp1z/constexpr-if1.C
  1e52ede853069710bb8cc3b5b323de8c  gcc/testsuite/g++.dg/cpp1z/constexpr-if10.C
  6ad161b09218162d754ac9e397dad17c  gcc/testsuite/g++.dg/cpp1z/constexpr-if11.C
*************** ae3e1959f85f05c9ec509a6dbdbe24ca  gcc/te
*** 16283,16288 ****
--- 16294,16300 ----
  97b68e1efbd20ee3ef9eee20ccf717b4  gcc/testsuite/g++.dg/cpp1z/nontype3a.C
  6459f300d92f04eeb92c53237b82baac  gcc/testsuite/g++.dg/cpp1z/nontype4.C
  2d69a9b79c8f3fadb2bfb68b9d761c49  gcc/testsuite/g++.dg/cpp1z/nontype4a.C
+ 1a73a13a161c05eab6182bb64cba004b  gcc/testsuite/g++.dg/cpp1z/nontype7.C
  86d3c074d77c88bd7ef317faea9d2968  gcc/testsuite/g++.dg/cpp1z/pr115440.C
  e668ace19a2b0d8946e0e19fd8317af1  gcc/testsuite/g++.dg/cpp1z/pr78771.C
  bc5edc17d9b70d77a054dd4736a66223  gcc/testsuite/g++.dg/cpp1z/pr79143.C
*************** f917e8e53ce100d9b00585ebdb34ff7a  gcc/te
*** 17282,17287 ****
--- 17294,17301 ----
  98005d747053b3076aa53928776efb7e  gcc/testsuite/g++.dg/cpp2a/paren-init7.C
  ddb0c78842f6b4e3e4606849bc1a4a82  gcc/testsuite/g++.dg/cpp2a/paren-init8.C
  fc8ccbfe7f14dd4a41ff708c5a05b226  gcc/testsuite/g++.dg/cpp2a/paren-init9.C
+ 9d5c0df7ab0b6e3e5ab03bc8eb135452  gcc/testsuite/g++.dg/cpp2a/pr117317-1.C
+ 4b52a1949fed25dc03d5cfb83047e7c5  gcc/testsuite/g++.dg/cpp2a/pr117317-2.C
  7d1c1719a1c3e44cf69662819769f8a5  gcc/testsuite/g++.dg/cpp2a/pr88534.C
  3a4139bbe15eef2dce96cb020b2681f7  gcc/testsuite/g++.dg/cpp2a/pr88537.C
  b94ce4741edeca1190c4590e425522dc  gcc/testsuite/g++.dg/cpp2a/pr89913.C
*************** fa076f7aee99ba9138c0541bc50c2e01  gcc/te
*** 17942,17948 ****
  95a348b65d678b6ebd4ff12262eeb554  gcc/testsuite/g++.dg/eh/pr42859.C
  6b7a6fb9b5bb6227cd79629a94634556  gcc/testsuite/g++.dg/eh/pr43365.C
  6eb9d68250f630420d0fdb982047fe17  gcc/testsuite/g++.dg/eh/pr45569.C
! d38795dc5765c85251d1b51d2837fa65  gcc/testsuite/g++.dg/eh/pr84968.C
  9623b61344d258574a3ed60670199161  gcc/testsuite/g++.dg/eh/ref-temp1.C
  edd7f2bf186873e0f253e337b7c0baa7  gcc/testsuite/g++.dg/eh/ref-temp2.C
  a9ed8d0335c982c533cb9ab886ed3a49  gcc/testsuite/g++.dg/eh/registers1.C
--- 17956,17962 ----
  95a348b65d678b6ebd4ff12262eeb554  gcc/testsuite/g++.dg/eh/pr42859.C
  6b7a6fb9b5bb6227cd79629a94634556  gcc/testsuite/g++.dg/eh/pr43365.C
  6eb9d68250f630420d0fdb982047fe17  gcc/testsuite/g++.dg/eh/pr45569.C
! 9c5d2920df5e7cc1662956187cc0aabc  gcc/testsuite/g++.dg/eh/pr84968.C
  9623b61344d258574a3ed60670199161  gcc/testsuite/g++.dg/eh/ref-temp1.C
  edd7f2bf186873e0f253e337b7c0baa7  gcc/testsuite/g++.dg/eh/ref-temp2.C
  a9ed8d0335c982c533cb9ab886ed3a49  gcc/testsuite/g++.dg/eh/registers1.C
*************** c58cd83dba14fdd69d32822d58dce947  gcc/te
*** 18076,18081 ****
--- 18090,18096 ----
  d1d6d34f10781c55aeb5890ea6052f5e  gcc/testsuite/g++.dg/expr/pmf-1.C
  b1bfb08b8dd0886fd13d34d4e48087cc  gcc/testsuite/g++.dg/expr/pmf-2.C
  25d2470fc9b2a170d6429d0eb09ab6d3  gcc/testsuite/g++.dg/expr/pmf-3.C
+ a777585e4c5deccae4ecf9c2e334927f  gcc/testsuite/g++.dg/expr/pmf-4.C
  e0ba8ce6144da0b9ed7164d2baac70c5  gcc/testsuite/g++.dg/expr/pr19355-1.C
  60bb03281297f707f9874467907ac6cf  gcc/testsuite/g++.dg/expr/pr29066.C
  45c0fe859061b956d94f9743c51c2fa6  gcc/testsuite/g++.dg/expr/ptr-arith1.C
*************** ed7c739de707916f3c9f5cc4c86b846a  gcc/te
*** 18238,18243 ****
--- 18253,18259 ----
  436654db69995e2c5c9e51a240c1fb2b  gcc/testsuite/g++.dg/ext/attr-unavailable-1.C
  363318401f6c24d1fd4eb4b1352223b5  gcc/testsuite/g++.dg/ext/attr-unavailable-10.C
  dcdd1affde3b96d5073c02e9962a3e1f  gcc/testsuite/g++.dg/ext/attr-unavailable-11.C
+ b813499357caf8cdbe9a29e67e87622f  gcc/testsuite/g++.dg/ext/attr-unavailable-13.C
  edbfa498035679b0c1142cf98ca9e622  gcc/testsuite/g++.dg/ext/attr-unavailable-2.C
  4e90e81502c480379e69d6b0b0b238aa  gcc/testsuite/g++.dg/ext/attr-unavailable-3.C
  5403ddd4b93109633d19e176e484580f  gcc/testsuite/g++.dg/ext/attr-unavailable-4.C
*************** e6bc1a09cf3c9d838c7ad4575c3d8740  gcc/te
*** 18766,18771 ****
--- 18782,18788 ----
  4fcd7687415acab5a06f5081c00cf224  gcc/testsuite/g++.dg/ext/stmtexpr21.C
  4d09ca3f75571211a1af55640503553d  gcc/testsuite/g++.dg/ext/stmtexpr22.C
  08aa6b7926e8190151b8337923a5ece9  gcc/testsuite/g++.dg/ext/stmtexpr23.C
+ fb5464937383d03f7e56903a4aec5a8f  gcc/testsuite/g++.dg/ext/stmtexpr26.C
  15be25b1a07f94e4d65103bfb52d6406  gcc/testsuite/g++.dg/ext/stmtexpr3.C
  7f4e8ebedb382ebc1349d7067b034121  gcc/testsuite/g++.dg/ext/stmtexpr4.C
  a6cc01634e0bd707301c873f2d35f891  gcc/testsuite/g++.dg/ext/stmtexpr5.C
*************** e7a4920eaa905e671e74b6482c654721  gcc/te
*** 19640,19645 ****
--- 19657,19663 ----
  12f516d0ef7088644b46185bbd83ef4d  gcc/testsuite/g++.dg/init/array6.C
  c083b6ec43687658fab80f7d11038fb8  gcc/testsuite/g++.dg/init/array60.C
  cb77b5e3742bffa76c379088ce860b88  gcc/testsuite/g++.dg/init/array61.C
+ 6dacb8601d29390665707d5d3244c16d  gcc/testsuite/g++.dg/init/array66.C
  02cf876b0b0d2594118addc046b9112a  gcc/testsuite/g++.dg/init/array7.C
  4ab5bb9dc38b78d749ba584adefbdc33  gcc/testsuite/g++.dg/init/array8.C
  b1c2a3438d19ab4734ef026ce6aba7fa  gcc/testsuite/g++.dg/init/array9.C
*************** bad9496f071793031ea4ab93b911a483  gcc/te
*** 22007,22012 ****
--- 22025,22031 ----
  2613159e61afceaa9e7ace58beef53f4  gcc/testsuite/g++.dg/opt/pr108854.C
  fc956d5d39ddca9870d1a2fca7df287d  gcc/testsuite/g++.dg/opt/pr109434.C
  b8fef9a1bd09e90415f3e35f5466c85c  gcc/testsuite/g++.dg/opt/pr110515.C
+ 149c3b47d16cfa08669bf79341552440  gcc/testsuite/g++.dg/opt/pr119327.C
  2896f5b1a96dd9fabb1dbb65cb4c5921  gcc/testsuite/g++.dg/opt/pr13066-1.C
  4f87f86b9f018cae74888e97468b2fe0  gcc/testsuite/g++.dg/opt/pr14029.C
  8fb7e68e9e9b5eb02628e03f5333e645  gcc/testsuite/g++.dg/opt/pr14888.C
*************** d1ab3a2909d9d576c5dfa94f007a2714  gcc/te
*** 23841,23846 ****
--- 23860,23866 ----
  5428fd71694c60d17f4ec642a0d2f66b  gcc/testsuite/g++.dg/template/access40a.C
  70ca1a844bab441488d753b92bdb5b0a  gcc/testsuite/g++.dg/template/access41.C
  546a46c71775301a03f3deb4b60d4aad  gcc/testsuite/g++.dg/template/access41a.C
+ 7b80fa9125b48cb8cc6fddc40f053fa4  gcc/testsuite/g++.dg/template/access42.C
  043c53bbc7cad60a3c72bfa79987f011  gcc/testsuite/g++.dg/template/access5.C
  3f2e5ae210f767c1589637afbcf45353  gcc/testsuite/g++.dg/template/access6.C
  974ff59cea85bedc028eb1bc9e350cc5  gcc/testsuite/g++.dg/template/access7.C
*************** fa23934e49741783f674026ff5030aff  gcc/te
*** 25465,25470 ****
--- 25485,25491 ----
  695916482bd1d276cc3c727b90232254  gcc/testsuite/g++.dg/torture/pr109724.C
  4b7c75dc51b97d5dc81c7e936ff3b460  gcc/testsuite/g++.dg/torture/pr111019.C
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
+ 6c3c5585841ff28b7c4ab8a61978f689  gcc/testsuite/g++.dg/torture/pr113994.C
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  161154ed9f6193a2a7da119e068c3f3f  gcc/testsuite/g++.dg/torture/pr27218.C
  a84e9fff95df4801f8e582fbc33303b8  gcc/testsuite/g++.dg/torture/pr30252.C
*************** ebc4dd8d7b9c346d612ab748d0d8bda0  gcc/te
*** 26241,26246 ****
--- 26262,26269 ----
  80dcb1a17f65b63cbfe2e3509439563c  gcc/testsuite/g++.dg/ubsan/pr101210.C
  ad6c0b4132032f21f64bfdd4836d3313  gcc/testsuite/g++.dg/ubsan/pr105093.C
  59f2687e6719ef7d3d19b4de0e99a075  gcc/testsuite/g++.dg/ubsan/pr105729.C
+ 06fb5e3c91f4d1b4f58ee978dd2b4b30  gcc/testsuite/g++.dg/ubsan/pr116449.C
+ a9c7210a5fb28a26cd54ad5ce0872a53  gcc/testsuite/g++.dg/ubsan/pr117259.C
  a654df71119821a4303cc9fe0501191b  gcc/testsuite/g++.dg/ubsan/pr59250.C
  420a6623146bb014dc1310134356d81f  gcc/testsuite/g++.dg/ubsan/pr59306.C
  79755a51c3cbb97ff48bd411272f6b08  gcc/testsuite/g++.dg/ubsan/pr59331.C
*************** c935eb4f9165b002b3615d052e7ee8db  gcc/te
*** 27092,27098 ****
--- 27115,27123 ----
  d5e518a89029e53244731ceed8c64fc4  gcc/testsuite/g++.dg/warn/deprecated-16.C
  0fb7e93661517b2d46da504d60c18ce0  gcc/testsuite/g++.dg/warn/deprecated-17.C
  5ba17fcb74188f6bd8e6e540093b8cd8  gcc/testsuite/g++.dg/warn/deprecated-18.C
+ 85b34a6a77145e6e988a38ae6c2a48d2  gcc/testsuite/g++.dg/warn/deprecated-19.C
  26bafcbe2a9f3729e0b0e2ff8ccf5317  gcc/testsuite/g++.dg/warn/deprecated-2.C
+ c63993ca8df065564f0d4ffb32339577  gcc/testsuite/g++.dg/warn/deprecated-20.C
  482df2a6c06bdf9046c6729484298715  gcc/testsuite/g++.dg/warn/deprecated-3.C
  98c2c2dc0644115f45902f826dc56a04  gcc/testsuite/g++.dg/warn/deprecated-4.C
  9fb0087e50484de53d979d8e849be2eb  gcc/testsuite/g++.dg/warn/deprecated-5.C
*************** edc1a994e1246279f2c5c7c45650e061  gcc/te
*** 27191,27196 ****
--- 27216,27222 ----
  1ba5741dd0aa023aa23edc39041b235e  gcc/testsuite/g++.dg/warn/pr108365.C
  adea0a023eba0c3c51b6a4894014d35a  gcc/testsuite/g++.dg/warn/pr11159.C
  f257fca4d00c8c67aa2b9d6e43ee906f  gcc/testsuite/g++.dg/warn/pr11492.C
+ b095255e81269c7739d80713d78edfb0  gcc/testsuite/g++.dg/warn/pr117825.C
  5fab7f879534ef351718dc73d825b667  gcc/testsuite/g++.dg/warn/pr12242.C
  5ea14e490362652b825c770f9d00d814  gcc/testsuite/g++.dg/warn/pr13358-2.C
  5af7a1b2eded6ae8e6b38e3c1b5e15a6  gcc/testsuite/g++.dg/warn/pr13358-3.C
*************** ac37e529bda1269045c3681cc4b425dd  gcc/te
*** 30992,30997 ****
--- 31018,31024 ----
  1f98b1d1757ebed2e4df3c91f91846f5  gcc/testsuite/g++.target/s390/pr102024-4.C
  f0a679d402cd83e81a6efa4bbb02d02b  gcc/testsuite/g++.target/s390/pr102024-5.C
  f65e23ee2638d7bc7c063a2f41350d9c  gcc/testsuite/g++.target/s390/pr102024-6.C
+ 377180e93d364db46b93992e870cdab7  gcc/testsuite/g++.target/s390/pr119834.C
  63c9cacf807bdee09a1606a202373f30  gcc/testsuite/g++.target/s390/pr94704-1.C
  f536562eba9a9954ace3a616ac52f438  gcc/testsuite/g++.target/s390/pr94704-2.C
  673a3b45283bd1b872f1b198781a14a3  gcc/testsuite/g++.target/s390/pr94704-3.C
*************** eefdaed8e6e57c688553667e395d78d3  gcc/te
*** 34125,34131 ****
--- 34152,34163 ----
  255cd56658b86e1b37fc6003c864920b  gcc/testsuite/gcc.c-torture/execute/pr113787.c
  3f27c8320e9cf2d7c2d28cff11e038e0  gcc/testsuite/gcc.c-torture/execute/pr114207.c
  70ba48592053a7f5813dc5b2438d1c9d  gcc/testsuite/gcc.c-torture/execute/pr115033.c
+ c79311114bc2631215d25bfb45117788  gcc/testsuite/gcc.c-torture/execute/pr116799.c
+ d82dcc08e1babd7e06748195b06b0dc6  gcc/testsuite/gcc.c-torture/execute/pr117432.c
+ abc98cdd2ec724c17d58a00efc56816b  gcc/testsuite/gcc.c-torture/execute/pr118623.c
+ 5802f1a3b7f07033d3e5c9e6bc333779  gcc/testsuite/gcc.c-torture/execute/pr118915.c
  fd7185346c3b94c0a7f7afba7b6bc241  gcc/testsuite/gcc.c-torture/execute/pr119071.c
+ b7150a91a8e64c0a2f8d47a9f857fd6e  gcc/testsuite/gcc.c-torture/execute/pr119291.c
  7758cb727d75f4fc1c0e483d503de146  gcc/testsuite/gcc.c-torture/execute/pr15262-1.c
  58dc249612dbc918d7fc4010e94deb8d  gcc/testsuite/gcc.c-torture/execute/pr15262-2.c
  d9c36fc850771445c5e4b6ce6dae1a12  gcc/testsuite/gcc.c-torture/execute/pr15262.c
*************** fa23f58fca5e1980d38cd26b6e3e332a  gcc/te
*** 36293,36300 ****
--- 36325,36334 ----
  1a25dd9cb28d8417a3ce246587233c84  gcc/testsuite/gcc.dg/asan/pr106190.c
  c3b533151735c602f99cd3d2cb415cf8  gcc/testsuite/gcc.dg/asan/pr107317.c
  ea1638a3bd1b7f87abc2eda6d730213e  gcc/testsuite/gcc.dg/asan/pr110027.c
+ c712bebc72e1dc5a56ae1f93009d40b0  gcc/testsuite/gcc.dg/asan/pr110676.c
  335e527788f5fd39d280e244ac17b3ef  gcc/testsuite/gcc.dg/asan/pr114956.c
  7945c329a8682648ec766560d0d91934  gcc/testsuite/gcc.dg/asan/pr115172.c
+ c3e4c8b02647243ec96367bcfe4e9bc0  gcc/testsuite/gcc.dg/asan/pr119582.c
  a5e988481cd66b8acf6c610b847cb713  gcc/testsuite/gcc.dg/asan/pr56417.c
  0c13e4008bb665f05b030eb42e43183f  gcc/testsuite/gcc.dg/asan/pr63845.c
  9a45b4bebab3901180dbe2a44efcd070  gcc/testsuite/gcc.dg/asan/pr64170.c
*************** a0ac850750aaa6f8934dd8d86cad48b3  gcc/te
*** 38651,38662 ****
--- 38685,38698 ----
  9d75f75471d15ad9eab797c65fe24337  gcc/testsuite/gcc.dg/dfp/keywords-pedantic.c
  5f9dce48038ce1ba660b96e948792422  gcc/testsuite/gcc.dg/dfp/keywords-reserved.c
  440b3f562b43525babe2c96be973d1be  gcc/testsuite/gcc.dg/dfp/operator-bitwise.c
+ 20f50855676ea9189776efb27ee8f2a2  gcc/testsuite/gcc.dg/dfp/pr102674.c
  b6f9108cd4878577de83d43be75185ce  gcc/testsuite/gcc.dg/dfp/pr104510.c
  440b561ad1d9037d4559c7011d636b7a  gcc/testsuite/gcc.dg/dfp/pr104557.c
  74ff23770b319829b7487e85a1ed72f6  gcc/testsuite/gcc.dg/dfp/pr108068.c
  d8629eb8e0c765b5a7daa583cb8eedad  gcc/testsuite/gcc.dg/dfp/pr31344.c
  b59fd600db434af135f39c38e21e2d74  gcc/testsuite/gcc.dg/dfp/pr37435.c
  17353eaf91a4f3959fa168324f86f6f5  gcc/testsuite/gcc.dg/dfp/pr41049.c
+ 38fafce1a4984b228edcdb784386e374  gcc/testsuite/gcc.dg/dfp/pr43374.c
  8f20a249a1cf0ecc405e1799552e1d6f  gcc/testsuite/gcc.dg/dfp/pr48204.c
  8839751293dea7c31ee017e68d79c7a7  gcc/testsuite/gcc.dg/dfp/pr48928.c
  59389f9a6a0db946009dbbe47a66608f  gcc/testsuite/gcc.dg/dfp/pr52140.c
*************** e99866ca9e56b885a0004e2f573a6158  gcc/te
*** 41596,41601 ****
--- 41632,41638 ----
  e164a736918661d669864e3645da290c  gcc/testsuite/gcc.dg/pr11492.c
  e76a4663621c8d450d2c9d229d63e033  gcc/testsuite/gcc.dg/pr115092.c
  58460c6512df7401ec50751a71e2c5b5  gcc/testsuite/gcc.dg/pr115646.c
+ 8a0ca2cbf65dafe6cccb9a0465069fcc  gcc/testsuite/gcc.dg/pr116034.c
  7820d64b46e8082950940bc4a0bfba8c  gcc/testsuite/gcc.dg/pr116290.c
  298938472467086a22ec44a01fb0ee8f  gcc/testsuite/gcc.dg/pr116481.c
  3661cd7a3a7e0ed72337f96146acfa54  gcc/testsuite/gcc.dg/pr116850.c
*************** af316e7c425bfdeaadea8998cbd27110  gcc/te
*** 41603,41610 ****
--- 41640,41650 ----
  4de2a7a2ac95300f89928764d873895d  gcc/testsuite/gcc.dg/pr117104.c
  22c935f2bff095783388f4e05eabe99b  gcc/testsuite/gcc.dg/pr117254.c
  508b7efd3e428ac089a9b5def12ba01c  gcc/testsuite/gcc.dg/pr117398.c
+ 6693dade68e2cac14ef3b85ed17c9a95  gcc/testsuite/gcc.dg/pr117745.c
  3b83403729a3686d25552352bf0c4577  gcc/testsuite/gcc.dg/pr11864-1.c
  33c13391b7d0c5d156ce1488a8cece3f  gcc/testsuite/gcc.dg/pr119071.c
+ 23b8c99f9e2dfda91a95f1195ab38bfd  gcc/testsuite/gcc.dg/pr119183.c
+ 9444444b4f048eadd4b6a2d7592f5fca  gcc/testsuite/gcc.dg/pr120480.c
  bc5ddfbbc46f4e0cce1629d1b58d3090  gcc/testsuite/gcc.dg/pr12603.c
  72a2fca76cb69617ae36bab93c7ec0d7  gcc/testsuite/gcc.dg/pr12625-1.c
  6f0ef61e5a12db5f11da839b2988c5e1  gcc/testsuite/gcc.dg/pr13519-1.c
*************** dfb471a397851bdb52f7df883b650b86  gcc/te
*** 44434,44440 ****
  21ae8e4c97f9712921eba7fc818f95ac  gcc/testsuite/gcc.dg/torture/builtin-explog-1.c
  d5c9ca0ff5b0b34e1fa874eadc3d6c3c  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-c2x.c
  c52cf8304bc6fa5604bc97a203120619  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact.c
! f17d1f5035ab6459558b499a77e14ecc  gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
  b240a0ef7d00244042073b024cac7c9e  gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
  4ce025382a7da5160143d92f4b87df45  gcc/testsuite/gcc.dg/torture/builtin-isinf_sign-1.c
  87e32542dbc07d3d4d36b5c92fffba27  gcc/testsuite/gcc.dg/torture/builtin-ldexp-1.c
--- 44474,44480 ----
  21ae8e4c97f9712921eba7fc818f95ac  gcc/testsuite/gcc.dg/torture/builtin-explog-1.c
  d5c9ca0ff5b0b34e1fa874eadc3d6c3c  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact-c2x.c
  c52cf8304bc6fa5604bc97a203120619  gcc/testsuite/gcc.dg/torture/builtin-fp-int-inexact.c
! aed4b127d2ac5e4bf304bcc673996ebf  gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
  b240a0ef7d00244042073b024cac7c9e  gcc/testsuite/gcc.dg/torture/builtin-integral-1.c
  4ce025382a7da5160143d92f4b87df45  gcc/testsuite/gcc.dg/torture/builtin-isinf_sign-1.c
  87e32542dbc07d3d4d36b5c92fffba27  gcc/testsuite/gcc.dg/torture/builtin-ldexp-1.c
*************** eed87995921a41d6f215168315f20d67  gcc/te
*** 44737,44742 ****
--- 44777,44783 ----
  42c403cdb88958c3d40395d6ca302c82  gcc/testsuite/gcc.dg/torture/pr117243-2.c
  6ae50575ec63bfcc997168ba66e3cd75  gcc/testsuite/gcc.dg/torture/pr117417.c
  211f874eb690213e110852d5efe7da32  gcc/testsuite/gcc.dg/torture/pr117574-1.c
+ fbc66d37323062d4dfeea9f5f179a29e  gcc/testsuite/gcc.dg/torture/pr117811.c
  673535a31d0d70358a6475962b4d71c2  gcc/testsuite/gcc.dg/torture/pr118476-1.c
  d29f5dbd5ce72ebe101793547b043347  gcc/testsuite/gcc.dg/torture/pr118717.c
  4f00237a70e232a883a71b2c8d7c8f95  gcc/testsuite/gcc.dg/torture/pr118922-1.c
*************** b407509e91ada069c88bb25df10261f2  gcc/te
*** 65194,65199 ****
--- 65235,65241 ----
  89e5e49acc2dd5c296b6f32cc9af9e5e  gcc/testsuite/gcc.target/i386/bmi-blsr-2.c
  be3fee1889ad65677a041f24f858b1cb  gcc/testsuite/gcc.target/i386/bmi-blsr-2a.c
  4b8229596d6eeaa03a4011846a02cd4a  gcc/testsuite/gcc.target/i386/bmi-check.h
+ e7a531d7b228712b8efd31098ee9cdd4  gcc/testsuite/gcc.target/i386/bmi-pr116287.c
  837bc321452d830cdca00be675a80d02  gcc/testsuite/gcc.target/i386/bmi-tzcnt-1.c
  bddf7c2fb14fca97f8ff604d99aa87eb  gcc/testsuite/gcc.target/i386/bmi-tzcnt-1a.c
  d3a83e902d535bfb6c532e16d5b3622e  gcc/testsuite/gcc.target/i386/bmi-tzcnt-2.c
*************** eb6d296fc055f71af8d6286a76275c08  gcc/te
*** 65224,65229 ****
--- 65266,65272 ----
  c7ce604b365a1dabeac828385fadac82  gcc/testsuite/gcc.target/i386/bmi2-pext32-1a.c
  07f0339fdff4b3fe5bfd2ef2568cf1ff  gcc/testsuite/gcc.target/i386/bmi2-pext64-1.c
  80e1b157bf4698a4c063a051d260de86  gcc/testsuite/gcc.target/i386/bmi2-pext64-1a.c
+ 7bbc1a5c683010fceddd3ea5a04ee3a5  gcc/testsuite/gcc.target/i386/bmi2-pr116287.c
  b3c8283dbd8e5f9b716e300034584eb1  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1.c
  43e2ea585c6afa59c6fc24b1d5778b5f  gcc/testsuite/gcc.target/i386/bmi2-rorx32-1a.c
  715c6fdea5af863f17366b07b0976147  gcc/testsuite/gcc.target/i386/bmi2-rorx64-1.c
*************** b032673fbd5ea0fa71ec43f67e37cd44  gcc/te
*** 66430,66441 ****
--- 66473,66487 ----
  bd129be2e771c24c9a0830b8a42bbd83  gcc/testsuite/gcc.target/i386/pr117159.c
  13f48febf4f30f9fae29d44fb617cc94  gcc/testsuite/gcc.target/i386/pr117240_avx.c
  056042626d89fadd97a896dd5693a5ae  gcc/testsuite/gcc.target/i386/pr117240_avx512f.c
+ da692b8fe7fe8e3d33b45f3f919da356  gcc/testsuite/gcc.target/i386/pr117296.c
  917d3074e579c1fad9a86cf1657c1ab6  gcc/testsuite/gcc.target/i386/pr117318.c
  d9c36e68265950d44ce781ce1be85bf6  gcc/testsuite/gcc.target/i386/pr117357.c
  d354c62b8ff60efc0d5983bf81d1bfa4  gcc/testsuite/gcc.target/i386/pr117418-1.c
+ 60ce35a307c6c720d7d566058b4d7c52  gcc/testsuite/gcc.target/i386/pr117432.c
  e12ace984bb5ee071207675ca43c7e58  gcc/testsuite/gcc.target/i386/pr118739.c
  991b7f7f44e28179f98bb458fdb69ea6  gcc/testsuite/gcc.target/i386/pr11877-2.c
  e7f6a568e551d3786797d6f56294b949  gcc/testsuite/gcc.target/i386/pr11877.c
+ 61d1a6c7aba6d7071f54e24b6dc92da7  gcc/testsuite/gcc.target/i386/pr118776.c
  b03b1d817538a863277c823b5e4cdf75  gcc/testsuite/gcc.target/i386/pr12092-1.c
  f99f88a6e994ad6e55e065e41bc58f8f  gcc/testsuite/gcc.target/i386/pr12329.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
*************** bcf0d6d51d39f674c2672181211f8783  gcc/te
*** 68433,68438 ****
--- 68479,68485 ----
  011989a32280bb1aa821f00e7f492898  gcc/testsuite/gcc.target/i386/sse-orps-1.c
  9ac73bc009f43ea60db7fc10dec3ab01  gcc/testsuite/gcc.target/i386/sse-os-support.h
  dc6831587ee7762436a7ac070e187a5d  gcc/testsuite/gcc.target/i386/sse-pr101007.c
+ d575c93e3a64abc3f18f4916f1fcd689  gcc/testsuite/gcc.target/i386/sse-pr116738.c
  642da3797fdc5a430e7dffdf36d5a54d  gcc/testsuite/gcc.target/i386/sse-rcpps-1.c
  717722e6af4d66ee3202cb215f622945  gcc/testsuite/gcc.target/i386/sse-recip-vec.c
  3f9ef1b15bd7ed1556ef4a6fc75b7a66  gcc/testsuite/gcc.target/i386/sse-recip.c
*************** fc3a18821c52e48c29f54252053988ba  gcc/te
*** 69005,69010 ****
--- 69052,69058 ----
  84b12afcb316a8ec7dce5bea1db67912  gcc/testsuite/gcc.target/i386/tbm-1.c
  b292dd3bc21c285ba5f3f1bcac0a5139  gcc/testsuite/gcc.target/i386/tbm-2.c
  052ea02011f5031dc3a4171aed715a52  gcc/testsuite/gcc.target/i386/tbm-bextri-1.c
+ d463b6607b227bc8376b031954d58ffb  gcc/testsuite/gcc.target/i386/tbm-pr116287.c
  4edd7df3f7e7eae5b3e0d3be8a5068e4  gcc/testsuite/gcc.target/i386/testimm-1.c
  7188c4d254bb0c4fb66e39b2c8e51711  gcc/testsuite/gcc.target/i386/testimm-10.c
  ac027496b6114a9f7eb014a0c4cf998a  gcc/testsuite/gcc.target/i386/testimm-2.c
*************** a367beafff806aa88b45192d28091201  gcc/te
*** 83939,83944 ****
--- 83987,83996 ----
  6176c5192c44068787a0e803e38dacbd  gcc/testsuite/gfortran.dg/pr111880.f90
  d3d77a4c149cf5358eb97935171795fb  gcc/testsuite/gfortran.dg/pr114739.f90
  9d60e354f12f632752ec6e7da4915d39  gcc/testsuite/gfortran.dg/pr117763.f90
+ 8f53cbad5581d72a5d0420f900cee217  gcc/testsuite/gfortran.dg/pr120191_1.f90
+ 4787146fc7e8109511f0d22d056e2127  gcc/testsuite/gfortran.dg/pr120191_2.f90
+ 05457962d41eef6a41a3de889144d78a  gcc/testsuite/gfortran.dg/pr120191_3.f90
+ b1cb2c9a52574c2df5df49bd13ee7e5d  gcc/testsuite/gfortran.dg/pr120196.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  e9cbd51db4e16292fc5dd1fead2e5a49  gcc/testsuite/gfortran.dg/pr15140.f90
*************** a949c26e25237c08b9ccd6fe9b8b9bc5  gcc/tr
*** 92284,92290 ****
  2ff390cffec4ce4eef19e05125c9946f  gcc/tree-diagnostic.h
  2e70e020a97c25728029c911e1919869  gcc/tree-dump.cc
  25db3aa3376f8948cba551f5b4567cc1  gcc/tree-dump.h
! 8430fffa14b68eacf1bafde16d833508  gcc/tree-eh.cc
  e35c2d4712dafbb07acf21e1b9026b1f  gcc/tree-eh.h
  34e742d0ff51ce5aad7049bb9eb7e26e  gcc/tree-emutls.cc
  7c2944ef15a9a1f9fb4edc1838e43cd4  gcc/tree-hash-traits.h
--- 92336,92342 ----
  2ff390cffec4ce4eef19e05125c9946f  gcc/tree-diagnostic.h
  2e70e020a97c25728029c911e1919869  gcc/tree-dump.cc
  25db3aa3376f8948cba551f5b4567cc1  gcc/tree-dump.h
! 4fc09aef4aa51facfbd37f9900c841c1  gcc/tree-eh.cc
  e35c2d4712dafbb07acf21e1b9026b1f  gcc/tree-eh.h
  34e742d0ff51ce5aad7049bb9eb7e26e  gcc/tree-emutls.cc
  7c2944ef15a9a1f9fb4edc1838e43cd4  gcc/tree-hash-traits.h
*************** fa6f9132426613883a9a158014b2a7ea  gcc/tr
*** 92341,92347 ****
  b584536fc99eb576420b3ef5e3780c49  gcc/tree-ssa-loop-ch.cc
  7bb09dec4a6ae87dd19896ba77ac4b4b  gcc/tree-ssa-loop-im.cc
  595f63705e53fd8387b90a8ee3692ef5  gcc/tree-ssa-loop-ivcanon.cc
! d10bd502bf9032b64baae8e40e9af008  gcc/tree-ssa-loop-ivopts.cc
  3f30c52cd6fd7f965316dafa58373681  gcc/tree-ssa-loop-ivopts.h
  ef807a1da16d0fd13015b7232cea5f9f  gcc/tree-ssa-loop-manip.cc
  d8ad877acd553ebd0bd25b5694a3faff  gcc/tree-ssa-loop-manip.h
--- 92393,92399 ----
  b584536fc99eb576420b3ef5e3780c49  gcc/tree-ssa-loop-ch.cc
  7bb09dec4a6ae87dd19896ba77ac4b4b  gcc/tree-ssa-loop-im.cc
  595f63705e53fd8387b90a8ee3692ef5  gcc/tree-ssa-loop-ivcanon.cc
! 619f876cbbdc3e115b71de7162f9e2cd  gcc/tree-ssa-loop-ivopts.cc
  3f30c52cd6fd7f965316dafa58373681  gcc/tree-ssa-loop-ivopts.h
  ef807a1da16d0fd13015b7232cea5f9f  gcc/tree-ssa-loop-manip.cc
  d8ad877acd553ebd0bd25b5694a3faff  gcc/tree-ssa-loop-manip.h
*************** f0db024320e40ac1ac8d450e8be90f02  gcc/tr
*** 92361,92367 ****
  f9e799527e96fb43c96edcf03ebb6a85  gcc/tree-ssa-pre.cc
  3a55ddfc911130111194d8f209761e03  gcc/tree-ssa-propagate.cc
  7e14602488f8f1e7e754422dd9731b01  gcc/tree-ssa-propagate.h
! 6e8f74fdfb4c39b9b305ee8ade1dfa2a  gcc/tree-ssa-reassoc.cc
  a2d407f6fd4aa95d7eb7ad8a17b81af4  gcc/tree-ssa-reassoc.h
  ea7cd890e91cdb3b96a60e5dd10d422b  gcc/tree-ssa-sccvn.cc
  9b971767e8b1b24cc98c426f1f399ed8  gcc/tree-ssa-sccvn.h
--- 92413,92419 ----
  f9e799527e96fb43c96edcf03ebb6a85  gcc/tree-ssa-pre.cc
  3a55ddfc911130111194d8f209761e03  gcc/tree-ssa-propagate.cc
  7e14602488f8f1e7e754422dd9731b01  gcc/tree-ssa-propagate.h
! 30c8e120738cd1323f3346540e6c0152  gcc/tree-ssa-reassoc.cc
  a2d407f6fd4aa95d7eb7ad8a17b81af4  gcc/tree-ssa-reassoc.h
  ea7cd890e91cdb3b96a60e5dd10d422b  gcc/tree-ssa-sccvn.cc
  9b971767e8b1b24cc98c426f1f399ed8  gcc/tree-ssa-sccvn.h
*************** ea7cd890e91cdb3b96a60e5dd10d422b  gcc/tr
*** 92370,92376 ****
  7da4b07cc599f3942f40cce66b260851  gcc/tree-ssa-sink.cc
  181e1424785cbf0e1a240820e7712120  gcc/tree-ssa-strlen.cc
  c3601488e1adeaebe82eec4348f3568d  gcc/tree-ssa-strlen.h
! 162b5602b917c115869606301bf8da9f  gcc/tree-ssa-structalias.cc
  2f25bfc0dc9f8ec66fc417c5c22d0f92  gcc/tree-ssa-tail-merge.cc
  7599bc99d54acc459659d85b787faee8  gcc/tree-ssa-ter.cc
  08299e87c1517c92eb914373542d3cc8  gcc/tree-ssa-ter.h
--- 92422,92428 ----
  7da4b07cc599f3942f40cce66b260851  gcc/tree-ssa-sink.cc
  181e1424785cbf0e1a240820e7712120  gcc/tree-ssa-strlen.cc
  c3601488e1adeaebe82eec4348f3568d  gcc/tree-ssa-strlen.h
! d87e26b4a22b320de5d010a97bd1f841  gcc/tree-ssa-structalias.cc
  2f25bfc0dc9f8ec66fc417c5c22d0f92  gcc/tree-ssa-tail-merge.cc
  7599bc99d54acc459659d85b787faee8  gcc/tree-ssa-ter.cc
  08299e87c1517c92eb914373542d3cc8  gcc/tree-ssa-ter.h
*************** f74ec8bee7ed7504fbe5b21a035e2ec3  gcc/tr
*** 92381,92387 ****
  5cbd06b4671b9d3a386ae0b3b1899ff0  gcc/tree-ssa-threadupdate.h
  87d4c13c047088a0266b3ff765ee429e  gcc/tree-ssa-uncprop.cc
  7ed817cf5846d767d8b96f9e60bc058a  gcc/tree-ssa-uninit.cc
! e325a4a3353d342488995f82d5e0483b  gcc/tree-ssa.cc
  8c68b1470d74209ca93348eaff68f563  gcc/tree-ssa.h
  1e5a5a5e038804c8ae08600e168b502d  gcc/tree-ssanames.cc
  5f0afaa1eeaac0ca2f771408bdaf5c9d  gcc/tree-ssanames.h
--- 92433,92439 ----
  5cbd06b4671b9d3a386ae0b3b1899ff0  gcc/tree-ssa-threadupdate.h
  87d4c13c047088a0266b3ff765ee429e  gcc/tree-ssa-uncprop.cc
  7ed817cf5846d767d8b96f9e60bc058a  gcc/tree-ssa-uninit.cc
! cd37e9f69941cb1dd2e5fc55eee9da06  gcc/tree-ssa.cc
  8c68b1470d74209ca93348eaff68f563  gcc/tree-ssa.h
  1e5a5a5e038804c8ae08600e168b502d  gcc/tree-ssanames.cc
  5f0afaa1eeaac0ca2f771408bdaf5c9d  gcc/tree-ssanames.h
*************** c2e7775bf7fd48f0f6b753bb6888f305  gcc/tr
*** 92408,92414 ****
  5a1d9b1a4fd93a1dc9773d46eaa80403  gcc/tree-vectorizer.h
  89443f1b171fee24a2d36f7d1af2b315  gcc/tree-vrp.cc
  9cb72e4782bdb3fb2fb9a04498598bf1  gcc/tree-vrp.h
! 894f26dfce9d0188302e02f92fa3164d  gcc/tree.cc
  45808a76997a44962fa135c3a7de1ff8  gcc/tree.def
  637a29beea44508096255de7a58c6860  gcc/tree.h
  789a781bb4a16a840a4d12b33e5e41aa  gcc/treestruct.def
--- 92460,92466 ----
  5a1d9b1a4fd93a1dc9773d46eaa80403  gcc/tree-vectorizer.h
  89443f1b171fee24a2d36f7d1af2b315  gcc/tree-vrp.cc
  9cb72e4782bdb3fb2fb9a04498598bf1  gcc/tree-vrp.h
! b659624dfa422b088fce720daa435eea  gcc/tree.cc
  45808a76997a44962fa135c3a7de1ff8  gcc/tree.def
  637a29beea44508096255de7a58c6860  gcc/tree.h
  789a781bb4a16a840a4d12b33e5e41aa  gcc/treestruct.def
*************** c23e0d9f34d809996e9151c8608f703f  libada
*** 92573,92579 ****
  c851e0f50ad5e334f1cdf3b8c0bae3e2  libada/configure
  7eed03bb14fc3b93e0ca88cd5bdac93d  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! b8879210d6f82e559202de7fd69b8a8e  libatomic/ChangeLog
  21f5e5567f586aa064e67dac9e843ed4  libatomic/Makefile.am
  8f480fdd121c7e44c048fec76c598b1f  libatomic/Makefile.in
  04a8eb275561484cf0d6f8c459a38177  libatomic/acinclude.m4
--- 92625,92631 ----
  c851e0f50ad5e334f1cdf3b8c0bae3e2  libada/configure
  7eed03bb14fc3b93e0ca88cd5bdac93d  libada/configure.ac
  46d3fe6da7a771cc2d5420c4137a6861  libatomic/.gitignore
! a7a8902c4c7ca35d5a581b94bc53b742  libatomic/ChangeLog
  21f5e5567f586aa064e67dac9e843ed4  libatomic/Makefile.am
  8f480fdd121c7e44c048fec76c598b1f  libatomic/Makefile.in
  04a8eb275561484cf0d6f8c459a38177  libatomic/acinclude.m4
*************** d00903d83ee36612295da93aa67615f8  libato
*** 92590,92600 ****
  ef4e81861bd67443d83d7191338a1ca9  libatomic/config/linux/arm/load_n.c
  d27e0c8119c16d2f8df89f1d92f8244c  libatomic/config/linux/arm/store_n.c
  cf49fce1f1deab0447bcc10681e0a5bf  libatomic/config/mingw/host-config.h
! f74a97c64676d9c70c8fa18bf098663a  libatomic/config/mingw/lock.c
  d625c1b7d1832a18fe30ffa767a439c6  libatomic/config/nvptx/host-config.h
  14d98705c3c9646ace69bf0ece39df86  libatomic/config/nvptx/lock.c
  872ed5850c2201837008ffaf58c8f5d6  libatomic/config/posix/host-config.h
! f55b04d5b2ae08487d085c85b72d8bf7  libatomic/config/posix/lock.c
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
  2685c416d9d43704346760a27582ebcc  libatomic/config/rtems/host-config.h
  ad2d20b998e3fcbbd3e3a20240b92690  libatomic/config/rtems/lock.c
--- 92642,92652 ----
  ef4e81861bd67443d83d7191338a1ca9  libatomic/config/linux/arm/load_n.c
  d27e0c8119c16d2f8df89f1d92f8244c  libatomic/config/linux/arm/store_n.c
  cf49fce1f1deab0447bcc10681e0a5bf  libatomic/config/mingw/host-config.h
! e96d0cb322b9be904f9f62abb74aa55a  libatomic/config/mingw/lock.c
  d625c1b7d1832a18fe30ffa767a439c6  libatomic/config/nvptx/host-config.h
  14d98705c3c9646ace69bf0ece39df86  libatomic/config/nvptx/lock.c
  872ed5850c2201837008ffaf58c8f5d6  libatomic/config/posix/host-config.h
! c00361e736472ad9b026031e1e1401df  libatomic/config/posix/lock.c
  d04f86e742ddfedb71fb4a3d0ceede39  libatomic/config/powerpc/host-config.h
  2685c416d9d43704346760a27582ebcc  libatomic/config/rtems/host-config.h
  ad2d20b998e3fcbbd3e3a20240b92690  libatomic/config/rtems/lock.c
*************** f25d8ab44bd78e25e4101be2782fdc8a  libgcc
*** 94783,94789 ****
  86516254f518009cebca3f82cd990254  libgcc/vtv_end_preinit.c
  351c41e966ff8e80444fb57c161e7957  libgcc/vtv_start.c
  0ae6a250e17c98a856aae28baba71d88  libgcc/vtv_start_preinit.c
! c16cf9b4a0680ac6e9e0d8d891a0e3f7  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
--- 94835,94841 ----
  86516254f518009cebca3f82cd990254  libgcc/vtv_end_preinit.c
  351c41e966ff8e80444fb57c161e7957  libgcc/vtv_start.c
  0ae6a250e17c98a856aae28baba71d88  libgcc/vtv_start_preinit.c
! 9779ba248228594dc8989e7a111d3230  libgfortran/ChangeLog
  9aca36338382e5b4b730e7779170b24d  libgfortran/ChangeLog-2002
  80d3edc880c2da0b7a2beec2e2c4f774  libgfortran/ChangeLog-2003
  9f0239429993a5e64ed793eb6c55a5c1  libgfortran/ChangeLog-2004
*************** b889e2825973f08b6ce755cd4325d33a  libgfo
*** 95114,95121 ****
  c3a569c7bca558f1eaa8116a2c98ba1a  libgfortran/generated/findloc1_r8.c
  8f879c65798a0336c40196462b16ae36  libgfortran/generated/findloc1_s1.c
  ccb6f93fc94866ab2d1c206317631078  libgfortran/generated/findloc1_s4.c
! ee3ff4a793ca326fa5729c3c0a117527  libgfortran/generated/findloc2_s1.c
! 84d8665af288e783c8f6d2a28c0865e3  libgfortran/generated/findloc2_s4.c
  b175d994534b268fee0f8a58a53ea6d5  libgfortran/generated/iall_i1.c
  40f3aa381214bffe8007abde8c591817  libgfortran/generated/iall_i16.c
  4d424ffb433f699dfad7890811529bd9  libgfortran/generated/iall_i2.c
--- 95166,95173 ----
  c3a569c7bca558f1eaa8116a2c98ba1a  libgfortran/generated/findloc1_r8.c
  8f879c65798a0336c40196462b16ae36  libgfortran/generated/findloc1_s1.c
  ccb6f93fc94866ab2d1c206317631078  libgfortran/generated/findloc1_s4.c
! 491ff06964b7120acee9f47180ee8c87  libgfortran/generated/findloc2_s1.c
! 1bd7904dd66defdcce7b1e3afcbd82f8  libgfortran/generated/findloc2_s4.c
  b175d994534b268fee0f8a58a53ea6d5  libgfortran/generated/iall_i1.c
  40f3aa381214bffe8007abde8c591817  libgfortran/generated/iall_i16.c
  4d424ffb433f699dfad7890811529bd9  libgfortran/generated/iall_i2.c
*************** ff581d5a57e9fa1aba38583558957a13  libgfo
*** 95240,95247 ****
  b270ef642dc1f3a0b365bfd88b075a32  libgfortran/generated/maxloc1_16_r17.c
  6265af287e28c1924adb51ca1a95872f  libgfortran/generated/maxloc1_16_r4.c
  07da8412027513e6a42f8832b18907d7  libgfortran/generated/maxloc1_16_r8.c
! fc20a4eb8271fb80cd56cf5135c6b90b  libgfortran/generated/maxloc1_16_s1.c
! 7b16163b674874273332e9a89749b1cb  libgfortran/generated/maxloc1_16_s4.c
  880dcb1b9a42d205dacb0dd0bf916e12  libgfortran/generated/maxloc1_4_i1.c
  e05d25f0074be2012161b02ccc8fdc57  libgfortran/generated/maxloc1_4_i16.c
  4057de0edf4f1c508882b9def5056fbd  libgfortran/generated/maxloc1_4_i2.c
--- 95292,95299 ----
  b270ef642dc1f3a0b365bfd88b075a32  libgfortran/generated/maxloc1_16_r17.c
  6265af287e28c1924adb51ca1a95872f  libgfortran/generated/maxloc1_16_r4.c
  07da8412027513e6a42f8832b18907d7  libgfortran/generated/maxloc1_16_r8.c
! b9fb776c5815cbddd7f5391e2b1ea958  libgfortran/generated/maxloc1_16_s1.c
! 0c22cdb4549a91b0536ab71f1b162f8f  libgfortran/generated/maxloc1_16_s4.c
  880dcb1b9a42d205dacb0dd0bf916e12  libgfortran/generated/maxloc1_4_i1.c
  e05d25f0074be2012161b02ccc8fdc57  libgfortran/generated/maxloc1_4_i16.c
  4057de0edf4f1c508882b9def5056fbd  libgfortran/generated/maxloc1_4_i2.c
*************** a46971f93d3aa3a073579f79c6a68a14  libgfo
*** 95252,95259 ****
  59a3d7d1239e8bc4a12dd3f60d8ea1ea  libgfortran/generated/maxloc1_4_r17.c
  189f9d11a8aad07c835dcde01a03fe08  libgfortran/generated/maxloc1_4_r4.c
  f1f5bbf41ca3a0f12d75e08096fdbc2b  libgfortran/generated/maxloc1_4_r8.c
! 61556fa37040fe69291366631a401e92  libgfortran/generated/maxloc1_4_s1.c
! a4f267f117332845dd99c309c9f6a479  libgfortran/generated/maxloc1_4_s4.c
  928fbaf793f3d91e88f173c56940fde2  libgfortran/generated/maxloc1_8_i1.c
  f66bb625d9676e71a9b09043aabb65c9  libgfortran/generated/maxloc1_8_i16.c
  8e3a433837cf4dbe042b890668881823  libgfortran/generated/maxloc1_8_i2.c
--- 95304,95311 ----
  59a3d7d1239e8bc4a12dd3f60d8ea1ea  libgfortran/generated/maxloc1_4_r17.c
  189f9d11a8aad07c835dcde01a03fe08  libgfortran/generated/maxloc1_4_r4.c
  f1f5bbf41ca3a0f12d75e08096fdbc2b  libgfortran/generated/maxloc1_4_r8.c
! 0b5bde2f952c6ef45ae921c445da00ea  libgfortran/generated/maxloc1_4_s1.c
! 95d11ec77372cd26598c55d98cb11b4a  libgfortran/generated/maxloc1_4_s4.c
  928fbaf793f3d91e88f173c56940fde2  libgfortran/generated/maxloc1_8_i1.c
  f66bb625d9676e71a9b09043aabb65c9  libgfortran/generated/maxloc1_8_i16.c
  8e3a433837cf4dbe042b890668881823  libgfortran/generated/maxloc1_8_i2.c
*************** f66bb625d9676e71a9b09043aabb65c9  libgfo
*** 95264,95277 ****
  9c76e2248512c1e8753c8a62276f103e  libgfortran/generated/maxloc1_8_r17.c
  044a833c2095793536e8bbf5479b7836  libgfortran/generated/maxloc1_8_r4.c
  edba4f971fc680d16b1649a81c56a80f  libgfortran/generated/maxloc1_8_r8.c
! f3f0d61f79898773c50703bafe5af2de  libgfortran/generated/maxloc1_8_s1.c
! 240863dac6a589cecfe75a6784736a3c  libgfortran/generated/maxloc1_8_s4.c
! f5ddaa0d3c8d53f6f13e04405e994ecf  libgfortran/generated/maxloc2_16_s1.c
! 5e25dc3d8f28373dc2f64e4c0ec65c6a  libgfortran/generated/maxloc2_16_s4.c
! faf98c771f31dd6173a482b02cd412de  libgfortran/generated/maxloc2_4_s1.c
! c2ef85345d4e3d41e27a0f8b1f5e3052  libgfortran/generated/maxloc2_4_s4.c
! 377c0ca39a55561510c489dded3e32b4  libgfortran/generated/maxloc2_8_s1.c
! 1e59175eb6ae804b5c7b27bc8794d6cf  libgfortran/generated/maxloc2_8_s4.c
  bbab3934a3bd9ad75df531fa64b48e35  libgfortran/generated/maxval0_s1.c
  3db68e9dd88046335b899e2fd42854a2  libgfortran/generated/maxval0_s4.c
  8dc7a135da85fff6661edaa8212f3ac4  libgfortran/generated/maxval1_s1.c
--- 95316,95329 ----
  9c76e2248512c1e8753c8a62276f103e  libgfortran/generated/maxloc1_8_r17.c
  044a833c2095793536e8bbf5479b7836  libgfortran/generated/maxloc1_8_r4.c
  edba4f971fc680d16b1649a81c56a80f  libgfortran/generated/maxloc1_8_r8.c
! 7318c61e3cd3b306b20a71c36ad6a38d  libgfortran/generated/maxloc1_8_s1.c
! 8233d59527f94ba305e19995776c3a91  libgfortran/generated/maxloc1_8_s4.c
! e45c14494ff020d4d0fbec75cc4a2d50  libgfortran/generated/maxloc2_16_s1.c
! b3627ba10e2c7864ff033b1377f6b5eb  libgfortran/generated/maxloc2_16_s4.c
! 903d3eb1fb1c3bfda5ed69a400816261  libgfortran/generated/maxloc2_4_s1.c
! c537750101969e57dcdc324fdd64d242  libgfortran/generated/maxloc2_4_s4.c
! 196eecfe637444230ffc3008a08a0b15  libgfortran/generated/maxloc2_8_s1.c
! b2df52af264077b72e238c50127fe3dc  libgfortran/generated/maxloc2_8_s4.c
  bbab3934a3bd9ad75df531fa64b48e35  libgfortran/generated/maxval0_s1.c
  3db68e9dd88046335b899e2fd42854a2  libgfortran/generated/maxval0_s4.c
  8dc7a135da85fff6661edaa8212f3ac4  libgfortran/generated/maxval1_s1.c
*************** b22201c1c02184e430f6cc63cdea7930  libgfo
*** 95332,95339 ****
  b998f4524053840b1511dd46b980460b  libgfortran/generated/minloc1_16_r17.c
  cfc3900e4407c1a6dbeb59457ccf9b26  libgfortran/generated/minloc1_16_r4.c
  6fff87ff4ad484aaafb7a0b03820ae9a  libgfortran/generated/minloc1_16_r8.c
! f1507c403904a3006e396976c1f548e9  libgfortran/generated/minloc1_16_s1.c
! 1cc537e0737594bdacc0ebc026fd728f  libgfortran/generated/minloc1_16_s4.c
  af95a0741472502ccdf4b14eca650731  libgfortran/generated/minloc1_4_i1.c
  581599880a5e18018df7096a48139382  libgfortran/generated/minloc1_4_i16.c
  95c95c6f9e0fe402ed18e86957c67122  libgfortran/generated/minloc1_4_i2.c
--- 95384,95391 ----
  b998f4524053840b1511dd46b980460b  libgfortran/generated/minloc1_16_r17.c
  cfc3900e4407c1a6dbeb59457ccf9b26  libgfortran/generated/minloc1_16_r4.c
  6fff87ff4ad484aaafb7a0b03820ae9a  libgfortran/generated/minloc1_16_r8.c
! eb8489a7ff574c2d28d8adbdb70538af  libgfortran/generated/minloc1_16_s1.c
! 4d911e6ba7f983f939767065b028a082  libgfortran/generated/minloc1_16_s4.c
  af95a0741472502ccdf4b14eca650731  libgfortran/generated/minloc1_4_i1.c
  581599880a5e18018df7096a48139382  libgfortran/generated/minloc1_4_i16.c
  95c95c6f9e0fe402ed18e86957c67122  libgfortran/generated/minloc1_4_i2.c
*************** dfb3426d440965537fa04f7aa01e98b5  libgfo
*** 95344,95351 ****
  2a1c2a9ed28efbb8fcfbfb029dca760e  libgfortran/generated/minloc1_4_r17.c
  b270a875debcdd163bb085b62880aca5  libgfortran/generated/minloc1_4_r4.c
  54e1d4b9176df78523ad908d887f59f4  libgfortran/generated/minloc1_4_r8.c
! b2663ccaff98ff0d7fe2281ca0b7dd87  libgfortran/generated/minloc1_4_s1.c
! 6de7e34163906ce22ccba2157c5b45fb  libgfortran/generated/minloc1_4_s4.c
  f03d419e3b14b99669f176bb5489e0ba  libgfortran/generated/minloc1_8_i1.c
  2df54b1d5e6abf03ba6a9057b787adee  libgfortran/generated/minloc1_8_i16.c
  57a1ebef875d7297f203230dc6a362f3  libgfortran/generated/minloc1_8_i2.c
--- 95396,95403 ----
  2a1c2a9ed28efbb8fcfbfb029dca760e  libgfortran/generated/minloc1_4_r17.c
  b270a875debcdd163bb085b62880aca5  libgfortran/generated/minloc1_4_r4.c
  54e1d4b9176df78523ad908d887f59f4  libgfortran/generated/minloc1_4_r8.c
! d5b1e2c3ba404ebfa4e1b58ac517d952  libgfortran/generated/minloc1_4_s1.c
! 752deec7cb556002f8feb26eb25a4fe9  libgfortran/generated/minloc1_4_s4.c
  f03d419e3b14b99669f176bb5489e0ba  libgfortran/generated/minloc1_8_i1.c
  2df54b1d5e6abf03ba6a9057b787adee  libgfortran/generated/minloc1_8_i16.c
  57a1ebef875d7297f203230dc6a362f3  libgfortran/generated/minloc1_8_i2.c
*************** e0f3b9d1e4595628fc767088c18ff678  libgfo
*** 95356,95369 ****
  1022bde09145492293a0f6d85691bed4  libgfortran/generated/minloc1_8_r17.c
  097a1720c8ad5611e8007d8c2fe4f5f4  libgfortran/generated/minloc1_8_r4.c
  724c3577ebbb6981ff52d5107070850c  libgfortran/generated/minloc1_8_r8.c
! 19d066969b1767551df155353497444e  libgfortran/generated/minloc1_8_s1.c
! 95f11ef80cbb94767365e5eb16000d0a  libgfortran/generated/minloc1_8_s4.c
! ec8e5eb3cbb1ec2e0f866b0cf98ca60d  libgfortran/generated/minloc2_16_s1.c
! c4262c4fb85df43e1da1d7d593b9f937  libgfortran/generated/minloc2_16_s4.c
! d35502f79efb0ca7a8c0c962aa8110b1  libgfortran/generated/minloc2_4_s1.c
! 9aa255208a799aea0104b31543f3abc6  libgfortran/generated/minloc2_4_s4.c
! 8e0e1599fd3613b25c96be39c402ebac  libgfortran/generated/minloc2_8_s1.c
! 718e7e26fd3b1bc3578daaae7b2cc6b6  libgfortran/generated/minloc2_8_s4.c
  bc1cd858c461d4b934ceaf97ce60113e  libgfortran/generated/minval0_s1.c
  42bc79a21c2cc68116584f2e3fd38e55  libgfortran/generated/minval0_s4.c
  cbe49b64dd6a5c52f3d4f1ec0e38727c  libgfortran/generated/minval1_s1.c
--- 95408,95421 ----
  1022bde09145492293a0f6d85691bed4  libgfortran/generated/minloc1_8_r17.c
  097a1720c8ad5611e8007d8c2fe4f5f4  libgfortran/generated/minloc1_8_r4.c
  724c3577ebbb6981ff52d5107070850c  libgfortran/generated/minloc1_8_r8.c
! d8d58d81028928f075cb6a9a81bcb235  libgfortran/generated/minloc1_8_s1.c
! 39c9ff7ed5d831c7db44cfbfb89598b5  libgfortran/generated/minloc1_8_s4.c
! ef55a37fc4530c4f1e5784d02ae2b129  libgfortran/generated/minloc2_16_s1.c
! cbffcfa57c0350a61388f1066f06aa2f  libgfortran/generated/minloc2_16_s4.c
! 64c23e3ad2653d149948859d1d3d06d0  libgfortran/generated/minloc2_4_s1.c
! 4493cc2d6ad89df96be17f569b916f67  libgfortran/generated/minloc2_4_s4.c
! e19475a153981945528078050aec7012  libgfortran/generated/minloc2_8_s1.c
! e81e09ad0c544edb0c1dad295032f9ee  libgfortran/generated/minloc2_8_s4.c
  bc1cd858c461d4b934ceaf97ce60113e  libgfortran/generated/minval0_s1.c
  42bc79a21c2cc68116584f2e3fd38e55  libgfortran/generated/minval0_s4.c
  cbe49b64dd6a5c52f3d4f1ec0e38727c  libgfortran/generated/minval1_s1.c
*************** c9d3acabcb2a3d7e0b3b1d593f94970e  libgfo
*** 95636,95647 ****
  6168aaeac8454fc4554b6c3cd3b2544a  libgfortran/m4/iany.m4
  dc31c3dc230a3473d5aec5fc55dcee49  libgfortran/m4/ifindloc0.m4
  f68d50561c3fad876e6e9c1cd90cbd74  libgfortran/m4/ifindloc1.m4
! 2d09599f11ac5a7c824cafe2082ab158  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
  d41d8cd98f00b204e9800998ecf8427e  libgfortran/m4/ifunc.m4
! 89b98ba2db8ff2252ed184a6c20b8f31  libgfortran/m4/ifunction-s.m4
  1603b9dcffb8d8436da0598e622783a9  libgfortran/m4/ifunction-s2.m4
  3cbecd5d114cf344efea0d4754437c7a  libgfortran/m4/ifunction.m4
  86a682dafdbffea255a15ff37710c93a  libgfortran/m4/ifunction_logical.m4
--- 95688,95699 ----
  6168aaeac8454fc4554b6c3cd3b2544a  libgfortran/m4/iany.m4
  dc31c3dc230a3473d5aec5fc55dcee49  libgfortran/m4/ifindloc0.m4
  f68d50561c3fad876e6e9c1cd90cbd74  libgfortran/m4/ifindloc1.m4
! 7e6310567df61c2044f93fc3ef8a45bd  libgfortran/m4/ifindloc2.m4
  143daeeed4d4e1baa17753b51ddd88be  libgfortran/m4/iforeach-s.m4
  ef77f0d18ce645146e5155d85730a2dc  libgfortran/m4/iforeach-s2.m4
  8bbbce69fc532a405b1b88c79c2ef47b  libgfortran/m4/iforeach.m4
  d41d8cd98f00b204e9800998ecf8427e  libgfortran/m4/ifunc.m4
! 315f45e021310f13fe6461d79608ac6d  libgfortran/m4/ifunction-s.m4
  1603b9dcffb8d8436da0598e622783a9  libgfortran/m4/ifunction-s2.m4
  3cbecd5d114cf344efea0d4754437c7a  libgfortran/m4/ifunction.m4
  86a682dafdbffea255a15ff37710c93a  libgfortran/m4/ifunction_logical.m4
*************** e4a84727dfdbf2df5cdea47355d79d5b  libgfo
*** 95657,95663 ****
  dfcc08f7c2feba73f8a326b85141632a  libgfortran/m4/maxloc0s.m4
  6a16013e23ae0dd3816d6d43574e0699  libgfortran/m4/maxloc1.m4
  d0fa96ff91abe776e8e3c69178e2cbc5  libgfortran/m4/maxloc1s.m4
! 26edbaa33a08f4ee52adbe41516a4234  libgfortran/m4/maxloc2s.m4
  8bd4079ef43eb701caae9c44b03b5326  libgfortran/m4/maxval.m4
  d436fa250176f0da93aa9856fc6fa7f6  libgfortran/m4/maxval0s.m4
  d2b5ef55b012352c861701270720c8fd  libgfortran/m4/maxval1s.m4
--- 95709,95715 ----
  dfcc08f7c2feba73f8a326b85141632a  libgfortran/m4/maxloc0s.m4
  6a16013e23ae0dd3816d6d43574e0699  libgfortran/m4/maxloc1.m4
  d0fa96ff91abe776e8e3c69178e2cbc5  libgfortran/m4/maxloc1s.m4
! 39cc751c1b07f43721b9c9213b50d5b6  libgfortran/m4/maxloc2s.m4
  8bd4079ef43eb701caae9c44b03b5326  libgfortran/m4/maxval.m4
  d436fa250176f0da93aa9856fc6fa7f6  libgfortran/m4/maxval0s.m4
  d2b5ef55b012352c861701270720c8fd  libgfortran/m4/maxval1s.m4
*************** c1ddf3b84bb52049490b00026554146c  libgfo
*** 95665,95671 ****
  624f4ef8021ae8611de415ffc98aef57  libgfortran/m4/minloc0s.m4
  f429963a5772147d9a21c5e5b5a0b6b4  libgfortran/m4/minloc1.m4
  d2d1889874d22bf60328946074435d56  libgfortran/m4/minloc1s.m4
! 65975b2b3a5877f643008af268f821d3  libgfortran/m4/minloc2s.m4
  352bcdfe8ebe3b30c46d6a94ec99ee8c  libgfortran/m4/minval.m4
  34c3cfc84bcf7148f1f51aa62eaf2997  libgfortran/m4/minval0s.m4
  8a3e03bd89763c569abccf7fc8322a18  libgfortran/m4/minval1s.m4
--- 95717,95723 ----
  624f4ef8021ae8611de415ffc98aef57  libgfortran/m4/minloc0s.m4
  f429963a5772147d9a21c5e5b5a0b6b4  libgfortran/m4/minloc1.m4
  d2d1889874d22bf60328946074435d56  libgfortran/m4/minloc1s.m4
! c1853e459b494a950eac8ad2074068e1  libgfortran/m4/minloc2s.m4
  352bcdfe8ebe3b30c46d6a94ec99ee8c  libgfortran/m4/minval.m4
  34c3cfc84bcf7148f1f51aa62eaf2997  libgfortran/m4/minval0s.m4
  8a3e03bd89763c569abccf7fc8322a18  libgfortran/m4/minval1s.m4
*************** e8a3245c095430c8ef2413afe2ee4c48  libgom
*** 103319,103325 ****
  6093e9d697987434cc9d843eba99b2f5  libgomp/work.c
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! bb8cf2c731de0ee49d5fbd98c147c468  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  73876271d63c0a1714fd605cb5898efa  libiberty/Makefile.in
  c68dbf7834af4281ebd84caa3fd54680  libiberty/README
--- 103371,103377 ----
  6093e9d697987434cc9d843eba99b2f5  libgomp/work.c
  99c2e5e712b990ee07be10f53e41f3fb  libiberty/.gitignore
  a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
! bf9c4a746d9e2cc6f93fd2d94cad0e26  libiberty/ChangeLog
  347c31392973de6a4872d540c1718dc1  libiberty/ChangeLog.jit
  73876271d63c0a1714fd605cb5898efa  libiberty/Makefile.in
  c68dbf7834af4281ebd84caa3fd54680  libiberty/README
*************** ed24fd55759858859e8feb2a33bdc7c7  libibe
*** 103427,103433 ****
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
  11cc73d71970e5461632e45ff27a3e5e  libiberty/simple-object-coff.c
  3d357f010f0064e322ba47b4a0f19ccd  libiberty/simple-object-common.h
! a2473ab822d5d4c9e6b8deec974adf92  libiberty/simple-object-elf.c
  08f858c0c13698d2ed88970324c062b3  libiberty/simple-object-mach-o.c
  6d35a3a532f8174e879592ff4f5fa2e7  libiberty/simple-object-xcoff.c
  e383eb44fa28c6bed26aac5759bdf336  libiberty/simple-object.c
--- 103479,103485 ----
  284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
  11cc73d71970e5461632e45ff27a3e5e  libiberty/simple-object-coff.c
  3d357f010f0064e322ba47b4a0f19ccd  libiberty/simple-object-common.h
! 8932c678a724938775d47c7e64fcade1  libiberty/simple-object-elf.c
  08f858c0c13698d2ed88970324c062b3  libiberty/simple-object-mach-o.c
  6d35a3a532f8174e879592ff4f5fa2e7  libiberty/simple-object-xcoff.c
  e383eb44fa28c6bed26aac5759bdf336  libiberty/simple-object.c
*************** d3ca33295a3a7d8dce98defab11dd626  libpho
*** 104577,104583 ****
  0a20e31851bfeb7af5c833abe63b3ba1  libphobos/testsuite/libphobos.unittest/unittest.exp
  bf9a9859c3d5e0581c756501aefba7b9  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 22232001f6c99303e8d9eff8388ca7bf  libquadmath/ChangeLog
  4696eddf264dd090e144b4849b0a6d91  libquadmath/Makefile.am
  644a78a01d94abe28b364eaa21142d82  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
--- 104629,104635 ----
  0a20e31851bfeb7af5c833abe63b3ba1  libphobos/testsuite/libphobos.unittest/unittest.exp
  bf9a9859c3d5e0581c756501aefba7b9  libphobos/testsuite/testsuite_flags.in
  a916467b91076e631dd8edb7424769c7  libquadmath/COPYING.LIB
! 04b8325204262ac0a395ef7ffc001ef6  libquadmath/ChangeLog
  4696eddf264dd090e144b4849b0a6d91  libquadmath/Makefile.am
  644a78a01d94abe28b364eaa21142d82  libquadmath/Makefile.in
  d9afbc1f1e04c7e461265ff9323cc6f4  libquadmath/acinclude.m4
*************** afdc9f496616fa82df7f0fe745c94715  libqua
*** 104624,104630 ****
  a79c69584ad8588015499b21237806e0  libquadmath/math/erfq.c
  33862b23bd6abcc57d8827fdc4186def  libquadmath/math/exp2q.c
  1548eb0dd3f9e6732da4a7fe975e29b8  libquadmath/math/expm1q.c
! e5817a6317e56b7de35ef78dd3f9aedc  libquadmath/math/expq.c
  0aeade4d60bd21701f9e751a4cea9acc  libquadmath/math/expq_table.h
  64ad2fc9b59a6759c6b929e0ac39ab85  libquadmath/math/fabsq.c
  b70fca866938cc819de3e4006b0c4b63  libquadmath/math/fdimq.c
--- 104676,104682 ----
  a79c69584ad8588015499b21237806e0  libquadmath/math/erfq.c
  33862b23bd6abcc57d8827fdc4186def  libquadmath/math/exp2q.c
  1548eb0dd3f9e6732da4a7fe975e29b8  libquadmath/math/expm1q.c
! cc79ca17cc585ecf1d9971ad99e91bad  libquadmath/math/expq.c
  0aeade4d60bd21701f9e751a4cea9acc  libquadmath/math/expq_table.h
  64ad2fc9b59a6759c6b929e0ac39ab85  libquadmath/math/fabsq.c
  b70fca866938cc819de3e4006b0c4b63  libquadmath/math/fdimq.c
*************** b7cf7ac9dd30a51c9de8919a232874a4  libssp
*** 105216,105222 ****
  b81de192dda77932887ae66cf31cdd9e  libssp/strncpy-chk.c
  5c71217c6b2a9d406fbc27d0fc6e8042  libssp/vsnprintf-chk.c
  caf814994c08b81abae4688b582bcaf4  libssp/vsprintf-chk.c
! 5df11101d1d838bdc40963fc3cdfe934  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 105268,105274 ----
  b81de192dda77932887ae66cf31cdd9e  libssp/strncpy-chk.c
  5c71217c6b2a9d406fbc27d0fc6e8042  libssp/vsnprintf-chk.c
  caf814994c08b81abae4688b582bcaf4  libssp/vsprintf-chk.c
! 70714e3a329c6628059bb4a7dbe4363b  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
diff -Nrcpad gcc-12-20250611/gcc/ChangeLog gcc-12-20250618/gcc/ChangeLog
*** gcc-12-20250611/gcc/ChangeLog	Wed Jun 11 22:32:22 2025
--- gcc-12-20250618/gcc/ChangeLog	Wed Jun 18 22:32:12 2025
***************
*** 1,3 ****
--- 1,335 ----
+ 2025-06-17  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2025-03-25  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR middle-end/117811
+ 	* optabs.cc (expand_binop_directly): Remove LAST as an argument,
+ 	instead record the last insn on entry.  Only delete insns if
+ 	we need to restart and restart by calling ourself, not expand_binop.
+ 	(expand_binop): Update callers to expand_binop_directly.  If it
+ 	fails to expand the operation, delete back to LAST.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/119834
+ 	* config/s390/s390.md (define_split after *cpymem_short): Use
+ 	(clobber (match_scratch N)) instead of (clobber (scratch)).  Use
+ 	(match_dup 4) and operands[4] instead of (match_dup 3) and operands[3]
+ 	in the last of those.
+ 	(define_split after *clrmem_short): Use (clobber (match_scratch N))
+ 	instead of (clobber (scratch)).
+ 	(define_split after *cmpmem_short): Likewise.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/118623
+ 	* config/i386/i386.md (*bt<mode>): Represent bt as
+ 	compare:CCC of const0_rtx and zero_extract rather than
+ 	zero_extract and const0_rtx.
+ 	(*jcc_bt<mode>): Likewise.  Use LTU and GEU as flags test
+ 	instead of EQ and NE.
+ 	(*jcc_bt<mode>_1): Likewise.
+ 	(*jcc_bt<mode>_mask): Likewise.
+ 	(Help combine recognize bt followed by cmov splitter): Likewise.
+ 	(*bt<mode>_setcqi): Likewise.
+ 	(*bt<mode>_setncqi): Likewise.
+ 	(*bt<mode>_setnc<mode>): Likewise.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/113994
+ 	PR rtl-optimization/116799
+ 	* loop-doloop.cc: Include targhooks.h.
+ 	(doloop_optimize): Also punt on intersection of modified
+ 	with df_get_live_in (desc->out_edge->dest).
+ 	(doloop_optimize_loops): Call df_analyze.  Use
+ 	LI_ONLY_INNERMOST or LI_FROM_INNERMOST instead of 0 as
+ 	second loops_list argument.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/110676
+ 	* gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
+ 	reset maxlen to sizetype maximum.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/119327
+ 	* config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore also
+ 	OPTION_MASK_SAVE_TOC_INDIRECT differences.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/119785
+ 	* expmed.cc (init_expmed): Always pass QImode rather than mode to
+ 	set_src_cost passed to set_zero_cost.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR driver/119727
+ 	* configure.ac (HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE): New check.
+ 	* gcc.cc: Include sys/personality.h if
+ 	HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined.
+ 	(try_generate_repro): Call
+ 	personality (personality (0xffffffffU) | ADDR_NO_RANDOMIZE)
+ 	if HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined.
+ 	* config.in: Regenerate.
+ 	* configure: Regenerate.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR driver/119727
+ 	* gcc.cc (files_equal_p): Rewritten using fopen/fgets/fclose instead
+ 	of open/fstat/read/close.  At the start of lines, ignore lowercase
+ 	hexadecimal addresses followed by space.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-04  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR lto/119625
+ 	* lto-opts.cc (lto_write_options): If neither flag_pic nor
+ 	flag_pie are set, check first for flag_pie and only later
+ 	for flag_pic rather than the other way around, use a temporary
+ 	variable.  If flag_cf_protection is not set, don't append anything
+ 	if flag_cf_protection is none of CF_{NONE,FULL,BRANCH,RETURN} and
+ 	use a temporary variable.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/119291
+ 	* combine.cc (try_combine): For splitting of PARALLEL with
+ 	2 independent SETs into i2 and i3 sets check reg_used_between_p
+ 	of the SET_DESTs rather than just modified_between_p.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-03-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* gimplify.cc (warn_switch_unreachable_and_auto_init_r): Add missing
+ 	space in the middle of diagnostics.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-03-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/119183
+ 	* tree.cc (skip_simple_arithmetic): If first operand of binary
+ 	expr is TREE_CONSTANT or TREE_READONLY with no side-effects, call
+ 	tree_invariant_p on that operand first instead of on the second.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/118915
+ 	* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): For
+ 	highj == NULL_TREE use TYPE_MAX_VALUE (TREE_TYPE (lowj)) rather
+ 	than TYPE_MAX_VALUE (type).
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/118776
+ 	* config/i386/sse.md (<code><mode>3_mask): Use VI1248_AVX512VLBW
+ 	iterator rather than VI48_AVX512VL.
+ 	(<mask_codefor><code><mode>3<mask_name>): Rename to ...
+ 	(*avx512bw_<code><mode>3<mask_name>): ... this.  Use
+ 	nonimmediate_operand rather than register_operand predicate and %v
+ 	rather than v constraint for operand 1 and adjust condition to reject
+ 	MEMs in both operand 1 and 2.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/117432
+ 	* ipa-icf-gimple.cc (func_checker::compare_asm_inputs_outputs):
+ 	Also return_false if operands have incompatible types.
+ 	(func_checker::compare_gimple_call): Check fntype1 vs. fntype2
+ 	compatibility for all non-internal calls and assume fntype1 and
+ 	fntype2 are non-NULL for those.  For calls to non-prototyped
+ 	calls or for stdarg_p functions after the last named argument (if any)
+ 	check type compatibility of call arguments.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114877
+ 	* builtins.cc (fold_builtin_frexp): Handle rvc_nan and rvc_inf cases
+ 	like rvc_zero, return passed in arg and set *exp = 0.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-14  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/118024
+ 	* gimple-ssa-warn-access.cc (matching_alloc_calls_p): Walk malloc
+ 	attributes of alloc_decl and dealloc_decl in separate loops rather
+ 	than in lock-step.  Use common_deallocs.contains rather than
+ 	common_deallocs.add in the second loop.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117642
+ 	* doc/extend.texi: Remove documentation of warning for unimplemented
+ 	__sync_* operations, such warning has never been implemented.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/102674
+ 	* builtins.cc (fold_builtin_fpclassify): Use real_from_string3 rather
+ 	than real_from_string.  Use "1E%d" format string rather than "0x1p%d"
+ 	for decimal float minimum.  Formatting fixes.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/43374
+ 	* real.cc (get_max_float): Handle decimal float.
+ 	* builtins.cc (fold_builtin_interclass_mathfn): Use
+ 	real_from_string3 rather than real_from_string.  Use
+ 	"1E%d" format string rather than "0x1p%d" for decimal
+ 	float minimum.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117439
+ 	* gimple-ssa-store-merging.cc (encode_tree_to_bitpos): For
+ 	empty_ctor_p use !sub_byte_op_p even if bitlen doesn't have an
+ 	integral mode.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117296
+ 	* function.cc (assign_parms): Call do_pending_stack_adjust.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/117249
+ 	* tree-ssa-structalias.cc (insert_vi_for_tree): Move put calls out of
+ 	gcc_assert.
+ 	* lto-cgraph.cc (lto_symtab_encoder_delete_node): Likewise.
+ 	* gimple-ssa-strength-reduction.cc (get_alternative_base,
+ 	add_cand_for_stmt): Likewise.
+ 	* tree-eh.cc (add_stmt_to_eh_lp_fn): Likewise.
+ 	* except.cc (duplicate_eh_regions_1): Likewise.
+ 	* tree-ssa-reassoc.cc (insert_operand_rank): Likewise.
+ 	* config/nvptx/nvptx.cc (nvptx_expand_call): Use == rather than = in
+ 	gcc_assert.
+ 	* genautomata.cc (output_default_latencies): Move j++ side-effect
+ 	outside of gcc_assert.
+ 	* tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address): Use
+ 	== rather than = in gcc_assert.
+ 	* cgraph.cc (symbol_table::create_edge): Move ++edges_max_uid
+ 	side-effect outside of gcc_assert.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-20  Uros Bizjak  <ubizjak@gmail.com>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116738
+ 	* config/i386/subst.md (mask_scalar_operand_arg34,
+ 	mask_scalar_expand_op3, round_saeonly_scalar_mask_arg3): New
+ 	subst attributes.
+ 	* config/i386/sse.md
+ 	(<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+ 	Change from define_insn to define_expand, rename the old define_insn
+ 	to ...
+ 	(*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+ 	... this.
+ 	(<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
+ 	New define_insn.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-08-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116287
+ 	* config/i386/i386.cc (ix86_fold_builtin) <case IX86_BUILTIN_BEXTR32>:
+ 	When folding into zero without checking whether first argument is
+ 	constant, use omit_one_operand.
+ 	(ix86_fold_builtin) <case IX86_BUILTIN_BZHI32>: Likewise.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-07-23  Jakub Jelinek  <jakub@redhat.com>
+ 		    Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116034
+ 	* tree-ssa.cc (maybe_rewrite_mem_ref_base): Only use IMAGPART_EXPR
+ 	if MEM_REF offset is equal to element type size.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/115527
+ 	* gimple-fold.cc (clear_padding_flush): Introduce endsize
+ 	variable and use it instead of wordsize when comparing it against
+ 	nonzero_last.
+ 	(clear_padding_type): Increment off by sz.
+ 
  2025-06-10  Martin Jambor  <mjambor@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-12-20250611/gcc/DATESTAMP gcc-12-20250618/gcc/DATESTAMP
*** gcc-12-20250611/gcc/DATESTAMP	Wed Jun 11 22:32:22 2025
--- gcc-12-20250618/gcc/DATESTAMP	Wed Jun 18 22:32:12 2025
***************
*** 1 ****
! 20250611
--- 1 ----
! 20250618
diff -Nrcpad gcc-12-20250611/gcc/builtins.cc gcc-12-20250618/gcc/builtins.cc
*** gcc-12-20250611/gcc/builtins.cc	Wed Jun 11 22:32:22 2025
--- gcc-12-20250618/gcc/builtins.cc	Wed Jun 18 22:32:15 2025
*************** fold_builtin_frexp (location_t loc, tree
*** 8632,8645 ****
        switch (value->cl)
        {
        case rvc_zero:
  	/* For +-0, return (*exp = 0, +-0).  */
  	exp = integer_zero_node;
  	frac = arg0;
  	break;
-       case rvc_nan:
-       case rvc_inf:
- 	/* For +-NaN or +-Inf, *exp is unspecified, return arg0.  */
- 	return omit_one_operand_loc (loc, rettype, arg0, arg1);
        case rvc_normal:
  	{
  	  /* Since the frexp function always expects base 2, and in
--- 8632,8647 ----
        switch (value->cl)
        {
        case rvc_zero:
+       case rvc_nan:
+       case rvc_inf:
  	/* For +-0, return (*exp = 0, +-0).  */
+ 	/* For +-NaN or +-Inf, *exp is unspecified, but something should
+ 	   be stored there so that it isn't read from uninitialized object.
+ 	   As glibc and newlib store *exp = 0 for +-Inf/NaN, storing
+ 	   0 here as well is easiest.  */
  	exp = integer_zero_node;
  	frac = arg0;
  	break;
        case rvc_normal:
  	{
  	  /* Since the frexp function always expects base 2, and in
*************** fold_builtin_interclass_mathfn (location
*** 8762,8768 ****
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string (&r, buf);
  	result = build_call_expr (isgr_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
--- 8764,8770 ----
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string3 (&r, buf, mode);
  	result = build_call_expr (isgr_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
*************** fold_builtin_interclass_mathfn (location
*** 8786,8792 ****
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string (&r, buf);
  	result = build_call_expr (isle_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
--- 8788,8794 ----
  	    arg = fold_build1_loc (loc, NOP_EXPR, type, arg);
  	  }
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string3 (&r, buf, mode);
  	result = build_call_expr (isle_fn, 2,
  				  fold_build1_loc (loc, ABS_EXPR, type, arg),
  				  build_real (type, r));
*************** fold_builtin_interclass_mathfn (location
*** 8825,8833 ****
  	arg = fold_build1_loc (loc, ABS_EXPR, type, arg);
  
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string (&rmax, buf);
! 	sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
! 	real_from_string (&rmin, buf);
  	max_exp = build_real (type, rmax);
  	min_exp = build_real (type, rmin);
  
--- 8827,8838 ----
  	arg = fold_build1_loc (loc, ABS_EXPR, type, arg);
  
  	get_max_float (REAL_MODE_FORMAT (mode), buf, sizeof (buf), false);
! 	real_from_string3 (&rmax, buf, mode);
! 	if (DECIMAL_FLOAT_MODE_P (mode))
! 	  sprintf (buf, "1E%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
! 	else
! 	  sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (orig_mode)->emin - 1);
! 	real_from_string3 (&rmin, buf, orig_mode);
  	max_exp = build_real (type, rmax);
  	min_exp = build_real (type, rmin);
  
*************** fold_builtin_fpclassify (location_t loc,
*** 9005,9033 ****
  	     (x == 0 ? FP_ZERO : FP_SUBNORMAL))).  */
  
    tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 		     build_real (type, dconst0));
    res = fold_build3_loc (loc, COND_EXPR, integer_type_node,
! 		     tmp, fp_zero, fp_subnormal);
  
!   sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (mode)->emin - 1);
!   real_from_string (&r, buf);
    tmp = fold_build2_loc (loc, GE_EXPR, integer_type_node,
! 		     arg, build_real (type, r));
!   res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp, fp_normal, res);
  
    if (tree_expr_maybe_infinite_p (arg))
      {
        real_inf (&r);
        tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 			 build_real (type, r));
        res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			 fp_infinite, res);
      }
  
    if (tree_expr_maybe_nan_p (arg))
      {
        tmp = fold_build2_loc (loc, ORDERED_EXPR, integer_type_node, arg, arg);
!       res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp, res, fp_nan);
      }
  
    return res;
--- 9010,9043 ----
  	     (x == 0 ? FP_ZERO : FP_SUBNORMAL))).  */
  
    tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 			 build_real (type, dconst0));
    res = fold_build3_loc (loc, COND_EXPR, integer_type_node,
! 			 tmp, fp_zero, fp_subnormal);
  
!   if (DECIMAL_FLOAT_MODE_P (mode))
!     sprintf (buf, "1E%d", REAL_MODE_FORMAT (mode)->emin - 1);
!   else
!     sprintf (buf, "0x1p%d", REAL_MODE_FORMAT (mode)->emin - 1);
!   real_from_string3 (&r, buf, mode);
    tmp = fold_build2_loc (loc, GE_EXPR, integer_type_node,
! 			 arg, build_real (type, r));
!   res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			 fp_normal, res);
  
    if (tree_expr_maybe_infinite_p (arg))
      {
        real_inf (&r);
        tmp = fold_build2_loc (loc, EQ_EXPR, integer_type_node, arg,
! 			     build_real (type, r));
        res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			     fp_infinite, res);
      }
  
    if (tree_expr_maybe_nan_p (arg))
      {
        tmp = fold_build2_loc (loc, ORDERED_EXPR, integer_type_node, arg, arg);
!       res = fold_build3_loc (loc, COND_EXPR, integer_type_node, tmp,
! 			     res, fp_nan);
      }
  
    return res;
diff -Nrcpad gcc-12-20250611/gcc/c/ChangeLog gcc-12-20250618/gcc/c/ChangeLog
*** gcc-12-20250611/gcc/c/ChangeLog	Wed Jun 11 22:32:22 2025
--- gcc-12-20250618/gcc/c/ChangeLog	Wed Jun 18 22:32:15 2025
***************
*** 1,3 ****
--- 1,32 ----
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/119582
+ 	* c-typeck.cc (pointer_diff, build_binary_op): Call c_fully_fold on
+ 	__sanitizer_ptr_sub or __sanitizer_ptr_cmp arguments.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/119000
+ 	* c-parser.cc (c_parser_omp_atomic): For omp write call
+ 	default_function_array_read_conversion on the rhs expression.
+ 	Merge the two adjacent if (code == NOP_EXPR) blocks.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117745
+ 	* c-parser.cc (c_parser_sizeof_expression): If type_name is NULL,
+ 	just expr.set_error () and goto sizeof_expr instead of doing error
+ 	recovery manually.
+ 
  2024-06-20  Release Manager
  
  	* GCC 12.4.0 released.
diff -Nrcpad gcc-12-20250611/gcc/c/c-parser.cc gcc-12-20250618/gcc/c/c-parser.cc
*** gcc-12-20250611/gcc/c/c-parser.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/c/c-parser.cc	Wed Jun 18 22:32:15 2025
*************** c_parser_sizeof_expression (c_parser *pa
*** 8311,8323 ****
        finish = parser->tokens_buf[0].location;
        if (type_name == NULL)
  	{
! 	  struct c_expr ret;
! 	  c_inhibit_evaluation_warnings--;
! 	  in_sizeof--;
! 	  ret.set_error ();
! 	  ret.original_code = ERROR_MARK;
! 	  ret.original_type = NULL;
! 	  return ret;
  	}
        if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
  	{
--- 8311,8321 ----
        finish = parser->tokens_buf[0].location;
        if (type_name == NULL)
  	{
! 	  /* Let c_expr_sizeof_expr call pop_maybe_used and fill in c_expr
! 	     for parsing error; the parsing of the expression could have
! 	     called record_maybe_used_decl.  */
! 	  expr.set_error ();
! 	  goto sizeof_expr;
  	}
        if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
  	{
*************** c_parser_omp_atomic (location_t loc, c_p
*** 18322,18330 ****
  	goto saw_error;
        if (code == NOP_EXPR)
  	{
! 	  lhs = c_parser_expression (parser).value;
! 	  lhs = c_fully_fold (lhs, false, NULL);
! 	  if (lhs == error_mark_node)
  	    goto saw_error;
  	}
        else
--- 18320,18335 ----
  	goto saw_error;
        if (code == NOP_EXPR)
  	{
! 	  eloc = c_parser_peek_token (parser)->location;
! 	  expr = c_parser_expression (parser);
! 	  expr = default_function_array_read_conversion (eloc, expr);
! 	  /* atomic write is represented by OMP_ATOMIC with NOP_EXPR
! 	     opcode.  */
! 	  code = OMP_ATOMIC;
! 	  lhs = v;
! 	  v = NULL_TREE;
! 	  rhs = c_fully_fold (expr.value, false, NULL);
! 	  if (rhs == error_mark_node)
  	    goto saw_error;
  	}
        else
*************** c_parser_omp_atomic (location_t loc, c_p
*** 18337,18351 ****
  	  if (non_lvalue_p)
  	    lhs = non_lvalue (lhs);
  	}
-       if (code == NOP_EXPR)
- 	{
- 	  /* atomic write is represented by OMP_ATOMIC with NOP_EXPR
- 	     opcode.  */
- 	  code = OMP_ATOMIC;
- 	  rhs = lhs;
- 	  lhs = v;
- 	  v = NULL_TREE;
- 	}
        goto done;
      case OMP_ATOMIC_CAPTURE_NEW:
        if (c_parser_next_token_is (parser, CPP_OPEN_BRACE))
--- 18342,18347 ----
diff -Nrcpad gcc-12-20250611/gcc/c/c-typeck.cc gcc-12-20250618/gcc/c/c-typeck.cc
*** gcc-12-20250611/gcc/c/c-typeck.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/c/c-typeck.cc	Wed Jun 18 22:32:15 2025
*************** pointer_diff (location_t loc, tree op0,
*** 4021,4028 ****
    if (current_function_decl != NULL_TREE
        && sanitize_flags_p (SANITIZE_POINTER_SUBTRACT))
      {
!       op0 = save_expr (op0);
!       op1 = save_expr (op1);
  
        tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_SUBTRACT);
        *instrument_expr = build_call_expr_loc (loc, tt, 2, op0, op1);
--- 4021,4028 ----
    if (current_function_decl != NULL_TREE
        && sanitize_flags_p (SANITIZE_POINTER_SUBTRACT))
      {
!       op0 = save_expr (c_fully_fold (op0, false, NULL));
!       op1 = save_expr (c_fully_fold (op1, false, NULL));
  
        tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_SUBTRACT);
        *instrument_expr = build_call_expr_loc (loc, tt, 2, op0, op1);
*************** build_binary_op (location_t location, en
*** 12533,12540 ****
  	  && current_function_decl != NULL_TREE
  	  && sanitize_flags_p (SANITIZE_POINTER_COMPARE))
  	{
! 	  op0 = save_expr (op0);
! 	  op1 = save_expr (op1);
  
  	  tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_COMPARE);
  	  instrument_expr = build_call_expr_loc (location, tt, 2, op0, op1);
--- 12533,12540 ----
  	  && current_function_decl != NULL_TREE
  	  && sanitize_flags_p (SANITIZE_POINTER_COMPARE))
  	{
! 	  op0 = save_expr (c_fully_fold (op0, false, NULL));
! 	  op1 = save_expr (c_fully_fold (op1, false, NULL));
  
  	  tree tt = builtin_decl_explicit (BUILT_IN_ASAN_POINTER_COMPARE);
  	  instrument_expr = build_call_expr_loc (location, tt, 2, op0, op1);
diff -Nrcpad gcc-12-20250611/gcc/c-family/ChangeLog gcc-12-20250618/gcc/c-family/ChangeLog
*** gcc-12-20250611/gcc/c-family/ChangeLog	Wed Jun 11 22:32:22 2025
--- gcc-12-20250618/gcc/c-family/ChangeLog	Wed Jun 18 22:32:15 2025
***************
*** 1,3 ****
--- 1,22 ----
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/43374
+ 	* c-cppbuiltin.cc (builtin_define_decimal_float_constants): Use
+ 	get_max_float.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117230
+ 	* c-warn.cc (sizeof_pointer_memaccess_warning): Only compare
+ 	TYPE_PRECISION of TREE_TYPE (type) to precision of char if
+ 	TREE_TYPE (type) is integral type.
+ 
  2024-06-20  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-12-20250611/gcc/c-family/c-cppbuiltin.cc gcc-12-20250618/gcc/c-family/c-cppbuiltin.cc
*** gcc-12-20250611/gcc/c-family/c-cppbuiltin.cc	Wed Jun 11 22:32:22 2025
--- gcc-12-20250618/gcc/c-family/c-cppbuiltin.cc	Wed Jun 18 22:32:15 2025
*************** builtin_define_decimal_float_constants (
*** 361,377 ****
  
    /* Compute the maximum representable value.  */
    sprintf (name, "__%s_MAX__", name_prefix);
!   p = buf;
!   for (digits = fmt->p; digits; digits--)
!     {
!       *p++ = '9';
!       if (digits == fmt->p)
! 	*p++ = '.';
!     }
!   *p = 0;
!   /* fmt->p plus 1, to account for the decimal point and fmt->emax
!      minus 1 because the digits are nines, not 1.0.  */
!   sprintf (&buf[fmt->p + 1], "E%d%s", fmt->emax - 1, suffix);
    builtin_define_with_value (name, buf, 0);
  
    /* Compute epsilon (the difference between 1 and least value greater
--- 361,368 ----
  
    /* Compute the maximum representable value.  */
    sprintf (name, "__%s_MAX__", name_prefix);
!   get_max_float (fmt, buf, sizeof (buf) - strlen (suffix), false);
!   strcat (buf, suffix);
    builtin_define_with_value (name, buf, 0);
  
    /* Compute epsilon (the difference between 1 and least value greater
diff -Nrcpad gcc-12-20250611/gcc/c-family/c-warn.cc gcc-12-20250618/gcc/c-family/c-warn.cc
*** gcc-12-20250611/gcc/c-family/c-warn.cc	Wed Jun 11 22:32:22 2025
--- gcc-12-20250618/gcc/c-family/c-warn.cc	Wed Jun 18 22:32:15 2025
*************** sizeof_pointer_memaccess_warning (locati
*** 943,950 ****
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the destination; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((TYPE_PRECISION (TREE_TYPE (type))
! 		    == TYPE_PRECISION (char_type_node))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
--- 943,951 ----
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the destination; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
! 		    && (TYPE_PRECISION (TREE_TYPE (type))
! 			== TYPE_PRECISION (char_type_node)))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
*************** sizeof_pointer_memaccess_warning (locati
*** 983,990 ****
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the source; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((TYPE_PRECISION (TREE_TYPE (type))
! 		    == TYPE_PRECISION (char_type_node))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
--- 984,992 ----
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the source; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
! 		    && (TYPE_PRECISION (TREE_TYPE (type))
! 			== TYPE_PRECISION (char_type_node)))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
*************** sizeof_pointer_memaccess_warning (locati
*** 1023,1030 ****
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the first source; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((TYPE_PRECISION (TREE_TYPE (type))
! 		    == TYPE_PRECISION (char_type_node))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
--- 1025,1033 ----
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the first source; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
! 		    && (TYPE_PRECISION (TREE_TYPE (type))
! 			== TYPE_PRECISION (char_type_node)))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
*************** sizeof_pointer_memaccess_warning (locati
*** 1063,1070 ****
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the second source; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((TYPE_PRECISION (TREE_TYPE (type))
! 		    == TYPE_PRECISION (char_type_node))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
--- 1066,1074 ----
  			"argument to %<sizeof%> in %qD call is the same "
  			"expression as the second source; did you mean to "
  			"remove the addressof?", callee);
! 	  else if ((INTEGRAL_TYPE_P (TREE_TYPE (type))
! 		    && (TYPE_PRECISION (TREE_TYPE (type))
! 			== TYPE_PRECISION (char_type_node)))
  		   || strop)
  	    warning_at (loc, OPT_Wsizeof_pointer_memaccess,
  			"argument to %<sizeof%> in %qD call is the same "
diff -Nrcpad gcc-12-20250611/gcc/cgraph.cc gcc-12-20250618/gcc/cgraph.cc
*** gcc-12-20250611/gcc/cgraph.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cgraph.cc	Wed Jun 18 22:32:15 2025
*************** symbol_table::create_edge (cgraph_node *
*** 892,898 ****
    edge->m_summary_id = -1;
    edges_count++;
  
!   gcc_assert (++edges_max_uid != 0);
    edge->m_uid = edges_max_uid;
    edge->aux = NULL;
    edge->caller = caller;
--- 892,899 ----
    edge->m_summary_id = -1;
    edges_count++;
  
!   ++edges_max_uid;
!   gcc_assert (edges_max_uid != 0);
    edge->m_uid = edges_max_uid;
    edge->aux = NULL;
    edge->caller = caller;
diff -Nrcpad gcc-12-20250611/gcc/combine.cc gcc-12-20250618/gcc/combine.cc
*** gcc-12-20250611/gcc/combine.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/combine.cc	Wed Jun 18 22:32:15 2025
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 3987,4004 ****
        rtx set1 = XVECEXP (newpat, 0, 1);
  
        /* Normally, it doesn't matter which of the two is done first, but
! 	 one which uses any regs/memory set in between i2 and i3 can't
! 	 be first.  The PARALLEL might also have been pre-existing in i3,
! 	 so we need to make sure that we won't wrongly hoist a SET to i2
! 	 that would conflict with a death note present in there, or would
! 	 have its dest modified between i2 and i3.  */
        if (!modified_between_p (SET_SRC (set1), i2, i3)
  	  && !(REG_P (SET_DEST (set1))
  	       && find_reg_note (i2, REG_DEAD, SET_DEST (set1)))
  	  && !(GET_CODE (SET_DEST (set1)) == SUBREG
  	       && find_reg_note (i2, REG_DEAD,
  				 SUBREG_REG (SET_DEST (set1))))
! 	  && !modified_between_p (SET_DEST (set1), i2, i3)
  	  /* If I3 is a jump, ensure that set0 is a jump so that
  	     we do not create invalid RTL.  */
  	  && (!JUMP_P (i3) || SET_DEST (set0) == pc_rtx)
--- 3987,4005 ----
        rtx set1 = XVECEXP (newpat, 0, 1);
  
        /* Normally, it doesn't matter which of the two is done first, but
! 	 one which uses any regs/memory set or used in between i2 and i3
! 	 can't be first.  The PARALLEL might also have been pre-existing
! 	 in i3, so we need to make sure that we won't wrongly hoist a SET
! 	 to i2 that would conflict with a death note present in there, or
! 	 would have its dest modified or used between i2 and i3.  */
        if (!modified_between_p (SET_SRC (set1), i2, i3)
  	  && !(REG_P (SET_DEST (set1))
  	       && find_reg_note (i2, REG_DEAD, SET_DEST (set1)))
  	  && !(GET_CODE (SET_DEST (set1)) == SUBREG
  	       && find_reg_note (i2, REG_DEAD,
  				 SUBREG_REG (SET_DEST (set1))))
! 	  && SET_DEST (set1) != pc_rtx
! 	  && !reg_used_between_p (SET_DEST (set1), i2, i3)
  	  /* If I3 is a jump, ensure that set0 is a jump so that
  	     we do not create invalid RTL.  */
  	  && (!JUMP_P (i3) || SET_DEST (set0) == pc_rtx)
*************** try_combine (rtx_insn *i3, rtx_insn *i2,
*** 4013,4019 ****
  	       && !(GET_CODE (SET_DEST (set0)) == SUBREG
  		    && find_reg_note (i2, REG_DEAD,
  				      SUBREG_REG (SET_DEST (set0))))
! 	       && !modified_between_p (SET_DEST (set0), i2, i3)
  	       /* If I3 is a jump, ensure that set1 is a jump so that
  		  we do not create invalid RTL.  */
  	       && (!JUMP_P (i3) || SET_DEST (set1) == pc_rtx)
--- 4014,4021 ----
  	       && !(GET_CODE (SET_DEST (set0)) == SUBREG
  		    && find_reg_note (i2, REG_DEAD,
  				      SUBREG_REG (SET_DEST (set0))))
! 	       && SET_DEST (set0) != pc_rtx
! 	       && !reg_used_between_p (SET_DEST (set0), i2, i3)
  	       /* If I3 is a jump, ensure that set1 is a jump so that
  		  we do not create invalid RTL.  */
  	       && (!JUMP_P (i3) || SET_DEST (set1) == pc_rtx)
diff -Nrcpad gcc-12-20250611/gcc/config/i386/i386.cc gcc-12-20250618/gcc/config/i386/i386.cc
*** gcc-12-20250611/gcc/config/i386/i386.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/config/i386/i386.cc	Wed Jun 18 22:32:15 2025
*************** ix86_fold_builtin (tree fndecl, int n_ar
*** 17937,17945 ****
  	      unsigned int prec = TYPE_PRECISION (TREE_TYPE (args[0]));
  	      unsigned int start = tree_to_uhwi (args[1]);
  	      unsigned int len = (start & 0xff00) >> 8;
  	      start &= 0xff;
  	      if (start >= prec || len == 0)
! 		res = 0;
  	      else if (!tree_fits_uhwi_p (args[0]))
  		break;
  	      else
--- 17937,17947 ----
  	      unsigned int prec = TYPE_PRECISION (TREE_TYPE (args[0]));
  	      unsigned int start = tree_to_uhwi (args[1]);
  	      unsigned int len = (start & 0xff00) >> 8;
+ 	      tree lhs_type = TREE_TYPE (TREE_TYPE (fndecl));
  	      start &= 0xff;
  	      if (start >= prec || len == 0)
! 		return omit_one_operand (lhs_type, build_zero_cst (lhs_type),
! 					 args[0]);
  	      else if (!tree_fits_uhwi_p (args[0]))
  		break;
  	      else
*************** ix86_fold_builtin (tree fndecl, int n_ar
*** 17948,17954 ****
  		len = prec;
  	      if (len < HOST_BITS_PER_WIDE_INT)
  		res &= (HOST_WIDE_INT_1U << len) - 1;
! 	      return build_int_cstu (TREE_TYPE (TREE_TYPE (fndecl)), res);
  	    }
  	  break;
  
--- 17950,17956 ----
  		len = prec;
  	      if (len < HOST_BITS_PER_WIDE_INT)
  		res &= (HOST_WIDE_INT_1U << len) - 1;
! 	      return build_int_cstu (lhs_type, res);
  	    }
  	  break;
  
*************** ix86_fold_builtin (tree fndecl, int n_ar
*** 17958,17972 ****
  	  if (tree_fits_uhwi_p (args[1]))
  	    {
  	      unsigned int idx = tree_to_uhwi (args[1]) & 0xff;
  	      if (idx >= TYPE_PRECISION (TREE_TYPE (args[0])))
  		return args[0];
  	      if (idx == 0)
! 		return build_int_cst (TREE_TYPE (TREE_TYPE (fndecl)), 0);
  	      if (!tree_fits_uhwi_p (args[0]))
  		break;
  	      unsigned HOST_WIDE_INT res = tree_to_uhwi (args[0]);
  	      res &= ~(HOST_WIDE_INT_M1U << idx);
! 	      return build_int_cstu (TREE_TYPE (TREE_TYPE (fndecl)), res);
  	    }
  	  break;
  
--- 17960,17976 ----
  	  if (tree_fits_uhwi_p (args[1]))
  	    {
  	      unsigned int idx = tree_to_uhwi (args[1]) & 0xff;
+ 	      tree lhs_type = TREE_TYPE (TREE_TYPE (fndecl));
  	      if (idx >= TYPE_PRECISION (TREE_TYPE (args[0])))
  		return args[0];
  	      if (idx == 0)
! 		return omit_one_operand (lhs_type, build_zero_cst (lhs_type),
! 					 args[0]);
  	      if (!tree_fits_uhwi_p (args[0]))
  		break;
  	      unsigned HOST_WIDE_INT res = tree_to_uhwi (args[0]);
  	      res &= ~(HOST_WIDE_INT_M1U << idx);
! 	      return build_int_cstu (lhs_type, res);
  	    }
  	  break;
  
diff -Nrcpad gcc-12-20250611/gcc/config/i386/i386.md gcc-12-20250618/gcc/config/i386/i386.md
*** gcc-12-20250611/gcc/config/i386/i386.md	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/config/i386/i386.md	Wed Jun 18 22:32:15 2025
***************
*** 14067,14077 ****
  (define_insn "*bt<mode>"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
  	  (zero_extract:SWI48
  	    (match_operand:SWI48 0 "nonimmediate_operand" "r,m")
  	    (const_int 1)
! 	    (match_operand:SI 1 "nonmemory_operand" "r<S>,<S>"))
! 	  (const_int 0)))]
    ""
  {
    switch (get_attr_mode (insn))
--- 14067,14077 ----
  (define_insn "*bt<mode>"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
+ 	  (const_int 0)
  	  (zero_extract:SWI48
  	    (match_operand:SWI48 0 "nonimmediate_operand" "r,m")
  	    (const_int 1)
! 	    (match_operand:SI 1 "nonmemory_operand" "r<S>,<S>"))))]
    ""
  {
    switch (get_attr_mode (insn))
***************
*** 14117,14134 ****
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
  	  (zero_extract:SWI48
  	    (match_dup 1)
  	    (const_int 1)
! 	    (match_dup 2))
! 	  (const_int 0)))
     (set (pc)
  	(if_then_else (match_op_dup 0 [(reg:CCC FLAGS_REG) (const_int 0)])
  		      (label_ref (match_dup 3))
  		      (pc)))]
  {
    operands[0] = shallow_copy_rtx (operands[0]);
!   PUT_CODE (operands[0], reverse_condition (GET_CODE (operands[0])));
  })
  
  (define_insn_and_split "*jcc_bt<mode>_1"
--- 14117,14134 ----
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
+ 	  (const_int 0)
  	  (zero_extract:SWI48
  	    (match_dup 1)
  	    (const_int 1)
! 	    (match_dup 2))))
     (set (pc)
  	(if_then_else (match_op_dup 0 [(reg:CCC FLAGS_REG) (const_int 0)])
  		      (label_ref (match_dup 3))
  		      (pc)))]
  {
    operands[0] = shallow_copy_rtx (operands[0]);
!   PUT_CODE (operands[0], GET_CODE (operands[0]) == NE ? LTU : GEU);
  })
  
  (define_insn_and_split "*jcc_bt<mode>_1"
***************
*** 14149,14159 ****
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
  	  (zero_extract:SWI48
  	    (match_dup 1)
  	    (const_int 1)
! 	    (match_dup 2))
! 	  (const_int 0)))
     (set (pc)
  	(if_then_else (match_op_dup 0 [(reg:CCC FLAGS_REG) (const_int 0)])
  		      (label_ref (match_dup 3))
--- 14149,14159 ----
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
+ 	  (const_int 0)
  	  (zero_extract:SWI48
  	    (match_dup 1)
  	    (const_int 1)
! 	    (match_dup 2))))
     (set (pc)
  	(if_then_else (match_op_dup 0 [(reg:CCC FLAGS_REG) (const_int 0)])
  		      (label_ref (match_dup 3))
***************
*** 14161,14167 ****
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
    operands[0] = shallow_copy_rtx (operands[0]);
!   PUT_CODE (operands[0], reverse_condition (GET_CODE (operands[0])));
  })
  
  ;; Avoid useless masking of bit offset operand.
--- 14161,14167 ----
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
    operands[0] = shallow_copy_rtx (operands[0]);
!   PUT_CODE (operands[0], GET_CODE (operands[0]) == NE ? LTU : GEU);
  })
  
  ;; Avoid useless masking of bit offset operand.
***************
*** 14186,14203 ****
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
  	  (zero_extract:SWI48
  	    (match_dup 1)
  	    (const_int 1)
! 	    (match_dup 2))
! 	  (const_int 0)))
     (set (pc)
  	(if_then_else (match_op_dup 0 [(reg:CCC FLAGS_REG) (const_int 0)])
  		      (label_ref (match_dup 4))
  		      (pc)))]
  {
    operands[0] = shallow_copy_rtx (operands[0]);
!   PUT_CODE (operands[0], reverse_condition (GET_CODE (operands[0])));
  })
  
  ;; Help combine recognize bt followed by cmov
--- 14186,14203 ----
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
+ 	  (const_int 0)
  	  (zero_extract:SWI48
  	    (match_dup 1)
  	    (const_int 1)
! 	    (match_dup 2))))
     (set (pc)
  	(if_then_else (match_op_dup 0 [(reg:CCC FLAGS_REG) (const_int 0)])
  		      (label_ref (match_dup 4))
  		      (pc)))]
  {
    operands[0] = shallow_copy_rtx (operands[0]);
!   PUT_CODE (operands[0], GET_CODE (operands[0]) == NE ? LTU : GEU);
  })
  
  ;; Help combine recognize bt followed by cmov
***************
*** 14217,14226 ****
     && ix86_pre_reload_split ()"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
! 	 (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))
! 	 (const_int 0)))
     (set (match_dup 0)
! 	(if_then_else:SWI248 (eq (reg:CCC FLAGS_REG) (const_int 0))
  			     (match_dup 3)
  			     (match_dup 4)))]
  {
--- 14217,14226 ----
     && ix86_pre_reload_split ()"
    [(set (reg:CCC FLAGS_REG)
  	(compare:CCC
! 	 (const_int 0)
! 	 (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))))
     (set (match_dup 0)
! 	(if_then_else:SWI248 (ltu (reg:CCC FLAGS_REG) (const_int 0))
  			     (match_dup 3)
  			     (match_dup 4)))]
  {
***************
*** 14242,14251 ****
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
          (compare:CCC
!          (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))
!          (const_int 0)))
     (set (match_dup 0)
!         (eq:QI (reg:CCC FLAGS_REG) (const_int 0)))]
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
  })
--- 14242,14251 ----
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
          (compare:CCC
! 	 (const_int 0)
! 	 (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))))
     (set (match_dup 0)
!         (ltu:QI (reg:CCC FLAGS_REG) (const_int 0)))]
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
  })
***************
*** 14265,14274 ****
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
          (compare:CCC
!          (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))
!          (const_int 0)))
     (set (match_dup 0)
!         (ne:QI (reg:CCC FLAGS_REG) (const_int 0)))]
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
  })
--- 14265,14274 ----
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
          (compare:CCC
! 	 (const_int 0)
! 	 (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))))
     (set (match_dup 0)
!         (geu:QI (reg:CCC FLAGS_REG) (const_int 0)))]
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
  })
***************
*** 14286,14295 ****
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
          (compare:CCC
!          (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))
!          (const_int 0)))
     (set (match_dup 3)
!         (ne:QI (reg:CCC FLAGS_REG) (const_int 0)))
     (set (match_dup 0) (zero_extend:SWI48 (match_dup 3)))]
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
--- 14286,14295 ----
    "&& 1"
    [(set (reg:CCC FLAGS_REG)
          (compare:CCC
! 	 (const_int 0)
! 	 (zero_extract:SWI48 (match_dup 1) (const_int 1) (match_dup 2))))
     (set (match_dup 3)
! 	(geu:QI (reg:CCC FLAGS_REG) (const_int 0)))
     (set (match_dup 0) (zero_extend:SWI48 (match_dup 3)))]
  {
    operands[2] = lowpart_subreg (SImode, operands[2], QImode);
diff -Nrcpad gcc-12-20250611/gcc/config/i386/sse.md gcc-12-20250618/gcc/config/i386/sse.md
*** gcc-12-20250611/gcc/config/i386/sse.md	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/config/i386/sse.md	Wed Jun 18 22:32:15 2025
***************
*** 2866,2872 ****
  	   (const_string "*")))
     (set_attr "mode" "<ssescalarmode>")])
  
! (define_insn "<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
    [(set (match_operand:VFH_128 0 "register_operand" "=x,v")
  	(vec_merge:VFH_128
  	  (smaxmin:VFH_128
--- 2866,2892 ----
  	   (const_string "*")))
     (set_attr "mode" "<ssescalarmode>")])
  
! (define_expand "<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
!   [(set (match_operand:VFH_128 0 "register_operand")
! 	(vec_merge:VFH_128
! 	  (smaxmin:VFH_128
! 	    (match_operand:VFH_128 1 "register_operand")
! 	    (match_operand:VFH_128 2 "nonimmediate_operand"))
! 	 (match_dup 1)
! 	 (const_int 1)))]
!   "TARGET_SSE"
! {
!   if (!flag_finite_math_only || flag_signed_zeros)
!     {
!       emit_insn (gen_<sse>_ieee_vm<maxmin_float><mode>3<mask_scalar_name><round_saeonly_scalar_name>
! 		 (operands[0], operands[1], operands[2]
! 		  <mask_scalar_operand_arg34>
! 		  <round_saeonly_scalar_mask_arg3>));
!       DONE;
!     }
! })
! 
! (define_insn "*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
    [(set (match_operand:VFH_128 0 "register_operand" "=x,v")
  	(vec_merge:VFH_128
  	  (smaxmin:VFH_128
***************
*** 2884,2889 ****
--- 2904,2928 ----
     (set_attr "prefix" "<round_saeonly_scalar_prefix>")
     (set_attr "mode" "<ssescalarmode>")])
  
+ (define_insn "<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>"
+   [(set (match_operand:VFH_128 0 "register_operand" "=x,v")
+ 	(vec_merge:VFH_128
+ 	  (unspec:VFH_128
+ 	    [(match_operand:VFH_128 1 "register_operand" "0,v")
+ 	     (match_operand:VFH_128 2 "nonimmediate_operand" "xm,<round_saeonly_scalar_constraint>")]
+ 	    IEEE_MAXMIN)
+ 	 (match_dup 1)
+ 	 (const_int 1)))]
+   "TARGET_SSE"
+   "@
+    <ieee_maxmin><ssescalarmodesuffix>\t{%2, %0|%0, %<iptr>2}
+    v<ieee_maxmin><ssescalarmodesuffix>\t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, %<iptr>2<round_saeonly_scalar_mask_op3>}"
+   [(set_attr "isa" "noavx,avx")
+    (set_attr "type" "sse")
+    (set_attr "btver2_sse_attr" "maxmin")
+    (set_attr "prefix" "<round_saeonly_scalar_prefix>")
+    (set_attr "mode" "<ssescalarmode>")])
+ 
  (define_mode_attr addsub_cst [(V4DF "5") (V2DF "1")
                                (V4SF "5") (V8SF "85")])
  
***************
*** 15885,15896 ****
  })
  
  (define_expand "<code><mode>3_mask"
!   [(set (match_operand:VI48_AVX512VL 0 "register_operand")
! 	(vec_merge:VI48_AVX512VL
! 	  (maxmin:VI48_AVX512VL
! 	    (match_operand:VI48_AVX512VL 1 "nonimmediate_operand")
! 	    (match_operand:VI48_AVX512VL 2 "nonimmediate_operand"))
! 	  (match_operand:VI48_AVX512VL 3 "nonimm_or_0_operand")
  	  (match_operand:<avx512fmaskmode> 4 "register_operand")))]
    "TARGET_AVX512F"
    "ix86_fixup_binary_operands_no_copy (<CODE>, <MODE>mode, operands);")
--- 15924,15935 ----
  })
  
  (define_expand "<code><mode>3_mask"
!   [(set (match_operand:VI1248_AVX512VLBW 0 "register_operand")
! 	(vec_merge:VI1248_AVX512VLBW
! 	  (maxmin:VI1248_AVX512VLBW
! 	    (match_operand:VI1248_AVX512VLBW 1 "nonimmediate_operand")
! 	    (match_operand:VI1248_AVX512VLBW 2 "nonimmediate_operand"))
! 	  (match_operand:VI1248_AVX512VLBW 3 "nonimm_or_0_operand")
  	  (match_operand:<avx512fmaskmode> 4 "register_operand")))]
    "TARGET_AVX512F"
    "ix86_fixup_binary_operands_no_copy (<CODE>, <MODE>mode, operands);")
***************
*** 15907,15918 ****
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "<sseinsnmode>")])
  
! (define_insn "<mask_codefor><code><mode>3<mask_name>"
    [(set (match_operand:VI12_AVX512VL 0 "register_operand" "=v")
          (maxmin:VI12_AVX512VL
!           (match_operand:VI12_AVX512VL 1 "register_operand" "v")
            (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")))]
!   "TARGET_AVX512BW"
    "vp<maxmin_int><ssemodesuffix>\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
    [(set_attr "type" "sseiadd")
     (set_attr "prefix" "evex")
--- 15946,15957 ----
     (set_attr "prefix" "maybe_evex")
     (set_attr "mode" "<sseinsnmode>")])
  
! (define_insn "*avx512bw_<code><mode>3<mask_name>"
    [(set (match_operand:VI12_AVX512VL 0 "register_operand" "=v")
          (maxmin:VI12_AVX512VL
!           (match_operand:VI12_AVX512VL 1 "nonimmediate_operand" "%v")
            (match_operand:VI12_AVX512VL 2 "nonimmediate_operand" "vm")))]
!   "TARGET_AVX512BW && !(MEM_P (operands[1]) && MEM_P (operands[2]))"
    "vp<maxmin_int><ssemodesuffix>\t{%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %2}"
    [(set_attr "type" "sseiadd")
     (set_attr "prefix" "evex")
diff -Nrcpad gcc-12-20250611/gcc/config/i386/subst.md gcc-12-20250618/gcc/config/i386/subst.md
*** gcc-12-20250611/gcc/config/i386/subst.md	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/config/i386/subst.md	Wed Jun 18 22:32:15 2025
***************
*** 344,349 ****
--- 344,351 ----
  (define_subst_attr "mask_scalarcz_operand4" "mask_scalarcz" "" "%{%5%}%N4")
  (define_subst_attr "mask_scalar4_dest_false_dep_for_glc_cond" "mask_scalar" "1" "operands[4] == CONST0_RTX(<MODE>mode)")
  (define_subst_attr "mask_scalarc_dest_false_dep_for_glc_cond" "mask_scalarc" "1" "operands[3] == CONST0_RTX(V8HFmode)")
+ (define_subst_attr "mask_scalar_operand_arg34" "mask_scalar" "" ", operands[3], operands[4]")
+ (define_subst_attr "mask_scalar_expand_op3" "mask_scalar" "3" "5")
  
  (define_subst "mask_scalar"
    [(set (match_operand:SUBST_V 0)
***************
*** 451,456 ****
--- 453,459 ----
  (define_subst_attr "round_saeonly_scalar_constraint" "round_saeonly_scalar" "vm" "v")
  (define_subst_attr "round_saeonly_scalar_prefix" "round_saeonly_scalar" "vex" "evex")
  (define_subst_attr "round_saeonly_scalar_nimm_predicate" "round_saeonly_scalar" "nonimmediate_operand" "register_operand")
+ (define_subst_attr "round_saeonly_scalar_mask_arg3" "round_saeonly_scalar" "" ", operands[<mask_scalar_expand_op3>]")
  
  (define_subst "round_saeonly_scalar"
    [(set (match_operand:SUBST_V 0)
diff -Nrcpad gcc-12-20250611/gcc/config/nvptx/nvptx.cc gcc-12-20250618/gcc/config/nvptx/nvptx.cc
*** gcc-12-20250611/gcc/config/nvptx/nvptx.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/config/nvptx/nvptx.cc	Wed Jun 18 22:32:16 2025
*************** nvptx_expand_call (rtx retval, rtx addre
*** 1890,1896 ****
    if (varargs)
      XVECEXP (pat, 0, vec_pos++) = gen_rtx_USE (VOIDmode, varargs);
  
!   gcc_assert (vec_pos = XVECLEN (pat, 0));
  
    nvptx_emit_forking (parallel, true);
    emit_call_insn (pat);
--- 1890,1896 ----
    if (varargs)
      XVECEXP (pat, 0, vec_pos++) = gen_rtx_USE (VOIDmode, varargs);
  
!   gcc_assert (vec_pos == XVECLEN (pat, 0));
  
    nvptx_emit_forking (parallel, true);
    emit_call_insn (pat);
diff -Nrcpad gcc-12-20250611/gcc/config/rs6000/rs6000.cc gcc-12-20250618/gcc/config/rs6000/rs6000.cc
*** gcc-12-20250611/gcc/config/rs6000/rs6000.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/config/rs6000/rs6000.cc	Wed Jun 18 22:32:16 2025
*************** rs6000_can_inline_p (tree caller, tree c
*** 25326,25335 ****
  	}
      }
  
!   /* Ignore -mpower8-fusion and -mpower10-fusion options for inlining
!      purposes.  */
!   callee_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION);
!   explicit_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION);
  
    /* The callee's options must be a subset of the caller's options, i.e.
       a vsx function may inline an altivec function, but a no-vsx function
--- 25326,25338 ----
  	}
      }
  
!   /* Ignore -mpower8-fusion, -mpower10-fusion and -msave-toc-indirect options
!      for inlining purposes.  */
!   HOST_WIDE_INT ignored_isas = (OPTION_MASK_P8_FUSION
! 				| OPTION_MASK_P10_FUSION
! 				| OPTION_MASK_SAVE_TOC_INDIRECT);
!   callee_isa &= ~ignored_isas;
!   explicit_isa &= ~ignored_isas;
  
    /* The callee's options must be a subset of the caller's options, i.e.
       a vsx function may inline an altivec function, but a no-vsx function
diff -Nrcpad gcc-12-20250611/gcc/config/s390/s390.md gcc-12-20250618/gcc/config/s390/s390.md
*** gcc-12-20250611/gcc/config/s390/s390.md	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/config/s390/s390.md	Wed Jun 18 22:32:16 2025
***************
*** 3382,3388 ****
          (match_operand:BLK 1 "memory_operand" ""))
     (use (match_operand 2 "const_int_operand" ""))
     (use (match_operand 3 "immediate_operand" ""))
!    (clobber (scratch))]
    "reload_completed"
    [(parallel
      [(set (match_dup 0) (match_dup 1))
--- 3382,3388 ----
          (match_operand:BLK 1 "memory_operand" ""))
     (use (match_operand 2 "const_int_operand" ""))
     (use (match_operand 3 "immediate_operand" ""))
!    (clobber (match_scratch 4))]
    "reload_completed"
    [(parallel
      [(set (match_dup 0) (match_dup 1))
***************
*** 3394,3400 ****
          (match_operand:BLK 1 "memory_operand" ""))
     (use (match_operand 2 "register_operand" ""))
     (use (match_operand 3 "memory_operand" ""))
!    (clobber (scratch))]
    "reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (match_dup 3)
--- 3394,3400 ----
          (match_operand:BLK 1 "memory_operand" ""))
     (use (match_operand 2 "register_operand" ""))
     (use (match_operand 3 "memory_operand" ""))
!    (clobber (match_scratch 4))]
    "reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (match_dup 3)
***************
*** 3408,3421 ****
          (match_operand:BLK 1 "memory_operand" ""))
     (use (match_operand 2 "register_operand" ""))
     (use (const:BLK (unspec:BLK [(const_int 0)] UNSPEC_INSN)))
!    (clobber (scratch))]
    "TARGET_Z10 && reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (const_int 0)
!               (label_ref (match_dup 3))] UNSPEC_EXECUTE)
       (set (match_dup 0) (match_dup 1))
       (use (const_int 1))])]
!   "operands[3] = gen_label_rtx ();")
  
  (define_split
    [(set (match_operand:BLK 0 "memory_operand" "")
--- 3408,3421 ----
          (match_operand:BLK 1 "memory_operand" ""))
     (use (match_operand 2 "register_operand" ""))
     (use (const:BLK (unspec:BLK [(const_int 0)] UNSPEC_INSN)))
!    (clobber (match_scratch 3))]
    "TARGET_Z10 && reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (const_int 0)
! 	      (label_ref (match_dup 4))] UNSPEC_EXECUTE)
       (set (match_dup 0) (match_dup 1))
       (use (const_int 1))])]
!   "operands[4] = gen_label_rtx ();")
  
  (define_split
    [(set (match_operand:BLK 0 "memory_operand" "")
***************
*** 3596,3602 ****
          (const_int 0))
     (use (match_operand 1 "const_int_operand" ""))
     (use (match_operand 2 "immediate_operand" ""))
!    (clobber (scratch))
     (clobber (reg:CC CC_REGNUM))]
    "reload_completed"
    [(parallel
--- 3596,3602 ----
          (const_int 0))
     (use (match_operand 1 "const_int_operand" ""))
     (use (match_operand 2 "immediate_operand" ""))
!    (clobber (match_scratch 3))
     (clobber (reg:CC CC_REGNUM))]
    "reload_completed"
    [(parallel
***************
*** 3610,3616 ****
          (const_int 0))
     (use (match_operand 1 "register_operand" ""))
     (use (match_operand 2 "memory_operand" ""))
!    (clobber (scratch))
     (clobber (reg:CC CC_REGNUM))]
    "reload_completed"
    [(parallel
--- 3610,3616 ----
          (const_int 0))
     (use (match_operand 1 "register_operand" ""))
     (use (match_operand 2 "memory_operand" ""))
!    (clobber (match_scratch 3))
     (clobber (reg:CC CC_REGNUM))]
    "reload_completed"
    [(parallel
***************
*** 3626,3632 ****
          (const_int 0))
     (use (match_operand 1 "register_operand" ""))
     (use (const:BLK (unspec:BLK [(const_int 0)] UNSPEC_INSN)))
!    (clobber (scratch))
     (clobber (reg:CC CC_REGNUM))]
    "TARGET_Z10 && reload_completed"
    [(parallel
--- 3626,3632 ----
          (const_int 0))
     (use (match_operand 1 "register_operand" ""))
     (use (const:BLK (unspec:BLK [(const_int 0)] UNSPEC_INSN)))
!    (clobber (match_scratch 2))
     (clobber (reg:CC CC_REGNUM))]
    "TARGET_Z10 && reload_completed"
    [(parallel
***************
*** 3791,3797 ****
                       (match_operand:BLK 1 "memory_operand" "")))
     (use (match_operand 2 "const_int_operand" ""))
     (use (match_operand 3 "immediate_operand" ""))
!    (clobber (scratch))]
    "reload_completed"
    [(parallel
      [(set (reg:CCU CC_REGNUM) (compare:CCU (match_dup 0) (match_dup 1)))
--- 3791,3797 ----
                       (match_operand:BLK 1 "memory_operand" "")))
     (use (match_operand 2 "const_int_operand" ""))
     (use (match_operand 3 "immediate_operand" ""))
!    (clobber (match_scratch 4))]
    "reload_completed"
    [(parallel
      [(set (reg:CCU CC_REGNUM) (compare:CCU (match_dup 0) (match_dup 1)))
***************
*** 3804,3810 ****
                       (match_operand:BLK 1 "memory_operand" "")))
     (use (match_operand 2 "register_operand" ""))
     (use (match_operand 3 "memory_operand" ""))
!    (clobber (scratch))]
    "reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (match_dup 3)
--- 3804,3810 ----
                       (match_operand:BLK 1 "memory_operand" "")))
     (use (match_operand 2 "register_operand" ""))
     (use (match_operand 3 "memory_operand" ""))
!    (clobber (match_scratch 4))]
    "reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (match_dup 3)
***************
*** 3819,3825 ****
                       (match_operand:BLK 1 "memory_operand" "")))
     (use (match_operand 2 "register_operand" ""))
     (use (const:BLK (unspec:BLK [(const_int 0)] UNSPEC_INSN)))
!    (clobber (scratch))]
    "TARGET_Z10 && reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (const_int 0)
--- 3819,3825 ----
                       (match_operand:BLK 1 "memory_operand" "")))
     (use (match_operand 2 "register_operand" ""))
     (use (const:BLK (unspec:BLK [(const_int 0)] UNSPEC_INSN)))
!    (clobber (match_scratch 3))]
    "TARGET_Z10 && reload_completed"
    [(parallel
      [(unspec [(match_dup 2) (const_int 0)
diff -Nrcpad gcc-12-20250611/gcc/config.in gcc-12-20250618/gcc/config.in
*** gcc-12-20250611/gcc/config.in	Wed Jun 11 22:33:19 2025
--- gcc-12-20250618/gcc/config.in	Wed Jun 18 22:33:26 2025
***************
*** 635,642 ****
  #endif
  
  
! /* Define if your Mac OS X assembler supports the -mmacos-version-min option.
!    */
  #ifndef USED_FOR_TARGET
  #undef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
  #endif
--- 635,641 ----
  #endif
  
  
! /* Define if your macOS assembler supports the -mmacos-version-min option. */
  #ifndef USED_FOR_TARGET
  #undef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
  #endif
***************
*** 2232,2237 ****
--- 2231,2243 ----
  #endif
  
  
+ /* Define if personality and ADDR_NO_RANDOMIZE are declared in
+    sys/personality.h. */
+ #ifndef USED_FOR_TARGET
+ #undef HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE
+ #endif
+ 
+ 
  /* Define which stat syscall is able to handle 64bit indodes. */
  #ifndef USED_FOR_TARGET
  #undef HOST_STAT_FOR_64BIT_INODES
diff -Nrcpad gcc-12-20250611/gcc/configure gcc-12-20250618/gcc/configure
*** gcc-12-20250611/gcc/configure	Wed Jun 11 22:33:19 2025
--- gcc-12-20250618/gcc/configure	Wed Jun 18 22:33:26 2025
*************** $as_echo "#define HOST_HAS_O_CLOEXEC 1"
*** 12478,12483 ****
--- 12478,12520 ----
  
  fi
  
+ # Check if personality and ADDR_NO_RANDOMIZE are declared
+ # in sys/personality.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for personality ADDR_NO_RANDOMIZE" >&5
+ $as_echo_n "checking for personality ADDR_NO_RANDOMIZE... " >&6; }
+ if ${ac_cv_personality_addr_no_randomize+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+ 
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h.  */
+ 
+ #include <sys/personality.h>
+ int
+ main ()
+ {
+ 
+ personality (personality (0xffffffffU) | ADDR_NO_RANDOMIZE);
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_cxx_try_compile "$LINENO"; then :
+   ac_cv_personality_addr_no_randomize=yes
+ else
+   ac_cv_personality_addr_no_randomize=no
+ fi
+ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_personality_addr_no_randomize" >&5
+ $as_echo "$ac_cv_personality_addr_no_randomize" >&6; }
+ if test $ac_cv_personality_addr_no_randomize = yes; then
+ 
+ $as_echo "#define HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE 1" >>confdefs.h
+ 
+ fi
+ 
+ 
  # C++ Modules would like some networking features to provide the mapping
  # server.  You can still use modules without them though.
  # The following network-related checks could probably do with some
*************** else
*** 19691,19697 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 19694 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 19728,19734 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 19731 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 19797,19803 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 19800 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 19834,19840 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 19837 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
diff -Nrcpad gcc-12-20250611/gcc/configure.ac gcc-12-20250618/gcc/configure.ac
*** gcc-12-20250611/gcc/configure.ac	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/configure.ac	Wed Jun 18 22:32:16 2025
*************** if test $ac_cv_o_cloexec = yes; then
*** 1729,1734 ****
--- 1729,1750 ----
    [Define if O_CLOEXEC supported by fcntl.])
  fi
  
+ # Check if personality and ADDR_NO_RANDOMIZE are declared
+ # in sys/personality.h
+ AC_CACHE_CHECK(for personality ADDR_NO_RANDOMIZE,
+ 	       ac_cv_personality_addr_no_randomize, [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <sys/personality.h>]], [[
+ personality (personality (0xffffffffU) | ADDR_NO_RANDOMIZE);]])],
+ [ac_cv_personality_addr_no_randomize=yes],
+ [ac_cv_personality_addr_no_randomize=no])])
+ if test $ac_cv_personality_addr_no_randomize = yes; then
+   AC_DEFINE(HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE, 1,
+   [Define if personality and ADDR_NO_RANDOMIZE are declared in
+ sys/personality.h.])
+ fi
+ 
+ 
  # C++ Modules would like some networking features to provide the mapping
  # server.  You can still use modules without them though.
  # The following network-related checks could probably do with some
diff -Nrcpad gcc-12-20250611/gcc/cp/ChangeLog gcc-12-20250618/gcc/cp/ChangeLog
*** gcc-12-20250611/gcc/cp/ChangeLog	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/ChangeLog	Wed Jun 18 22:32:16 2025
***************
*** 1,3 ****
--- 1,147 ----
+ 2025-06-17  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/116418
+ 	* tree.cc (strip_typedefs_expr) <case STATEMENT_LIST>: Replace
+ 	this error path with ...
+ 	<case STMT_EXPR>: ... this, returning the original tree.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-02-28  Jakub Jelinek  <jakub@redhat.com>
+ 		    Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/113976
+ 	* decl.cc (grokdeclarator): Don't call cp_apply_type_quals_to_decl
+ 	on DECL_TEMPLATE_INSTANTIATED VAR_DECLs.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116636
+ 	* method.cc: Include decl.h.
+ 	(use_thunk): Temporarily change deprecated_state to
+ 	UNAVAILABLE_DEPRECATED_SUPPRESS.
+ 
+ 2025-06-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-05  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/116606
+ 	* decl2.cc (mark_vtable_entries): Temporarily override deprecated_state to
+ 	UNAVAILABLE_DEPRECATED_SUPPRESS.  Remove a warning_sentinel.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/98533
+ 	PR c++/119123
+ 	* parser.cc (cp_parser_class_specifier): Update TYPE_FIELDS of
+ 	variant types in case cp_parser_late_parsing_default_args etc. change
+ 	TYPE_FIELDS on the main variant.  Add switch_to_class lambda and
+ 	use it to simplify repeated class switching code.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/118763
+ 	* init.cc (build_new_1): Don't set CLEANUP_EH_ONLY.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/118661
+ 	* constexpr.cc (potential_constant_expression_1): Don't diagnose
+ 	lvalue-to-rvalue conversion of volatile lvalue if it has NULLPTR_TYPE.
+ 	* decl2.cc (decl_maybe_constant_var_p): Return true for constexpr
+ 	decls with NULLPTR_TYPE even if they are volatile.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117827
+ 	* init.cc (build_new_1): Pass address of a make_tree_vector ()
+ 	initialized gc tree vector to build_vec_init and append
+ 	build_disable_temp_cleanup to init_expr from it.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/118509
+ 	* typeck.cc (get_member_function_from_ptrfunc): Wrap force_target_expr
+ 	with save_expr.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117825
+ 	* typeck.cc (cp_build_function_call_vec): Don't call
+ 	check_function_arguments if complain doesn't have tf_warning bit set.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116108
+ 	* decl.cc (grokdeclarator): Pass TYYPE_MAIN_VARIANT (type)
+ 	rather than type to same_type_p when checking if the non-static
+ 	data member doesn't have current class type.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117317
+ 	* semantics.cc (emit_associated_thunks): Do nothing for
+ 	!DECL_INTERFACE_KNOWN && DECL_DEFER_OUTPUT fns.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117259
+ 	* typeck.cc (get_member_function_from_ptrfunc): Use force_target_expr
+ 	rather than save_expr for instance_ptr and function.  Don't call it
+ 	for TREE_CONSTANT.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116678
+ 	* optimize.cc: Include decl.h.
+ 	(maybe_thunk_body): Temporarily change deprecated_state to
+ 	UNAVAILABLE_DEPRECATED_SUPPRESS.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116449
+ 	* typeck.cc (get_member_function_from_ptrfunc): Use save_expr
+ 	on instance_ptr and function even if it doesn't have side-effects,
+ 	as long as it isn't a decl.
+ 
  2025-06-02  Jason Merrill  <jason@redhat.com>
  
  	PR c++/120123
diff -Nrcpad gcc-12-20250611/gcc/cp/constexpr.cc gcc-12-20250618/gcc/cp/constexpr.cc
*** gcc-12-20250611/gcc/cp/constexpr.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/constexpr.cc	Wed Jun 18 22:32:16 2025
*************** potential_constant_expression_1 (tree t,
*** 8603,8609 ****
         available, so we don't bother with switch tracking.  */
      return true;
  
!   if (TREE_THIS_VOLATILE (t) && want_rval)
      {
        if (flags & tf_error)
  	error_at (loc, "lvalue-to-rvalue conversion of a volatile lvalue "
--- 8603,8610 ----
         available, so we don't bother with switch tracking.  */
      return true;
  
!   if (TREE_THIS_VOLATILE (t) && want_rval
!       && !NULLPTR_TYPE_P (TREE_TYPE (t)))
      {
        if (flags & tf_error)
  	error_at (loc, "lvalue-to-rvalue conversion of a volatile lvalue "
diff -Nrcpad gcc-12-20250611/gcc/cp/constraint.cc gcc-12-20250618/gcc/cp/constraint.cc
*** gcc-12-20250611/gcc/cp/constraint.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/constraint.cc	Wed Jun 18 22:32:16 2025
*************** tsubst_requires_expr (tree t, tree args,
*** 2268,2273 ****
--- 2268,2274 ----
  	 checked out of order, so instead just remember the template
  	 arguments and wait until we can substitute them all at once.  */
        t = copy_node (t);
+       REQUIRES_EXPR_EXTRA_ARGS (t) = NULL_TREE;
        REQUIRES_EXPR_EXTRA_ARGS (t) = build_extra_args (t, args, info.complain);
        return t;
      }
diff -Nrcpad gcc-12-20250611/gcc/cp/decl.cc gcc-12-20250618/gcc/cp/decl.cc
*** gcc-12-20250611/gcc/cp/decl.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/decl.cc	Wed Jun 18 22:32:16 2025
*************** grokdeclarator (const cp_declarator *dec
*** 14130,14136 ****
  	  }
  	else if (!staticp
  		 && ((current_class_type
! 		      && same_type_p (type, current_class_type))
  		     || (!dependent_type_p (type)
  			 && !COMPLETE_TYPE_P (complete_type (type))
  			 && (!complete_or_array_type_p (type)
--- 14130,14137 ----
  	  }
  	else if (!staticp
  		 && ((current_class_type
! 		      && same_type_p (TYPE_MAIN_VARIANT (type),
! 				      current_class_type))
  		     || (!dependent_type_p (type)
  			 && !COMPLETE_TYPE_P (complete_type (type))
  			 && (!complete_or_array_type_p (type)
*************** grokdeclarator (const cp_declarator *dec
*** 14604,14610 ****
      /* Record constancy and volatility on the DECL itself .  There's
         no need to do this when processing a template; we'll do this
         for the instantiated declaration based on the type of DECL.  */
!     if (!processing_template_decl)
        cp_apply_type_quals_to_decl (type_quals, decl);
  
      return decl;
--- 14605,14616 ----
      /* Record constancy and volatility on the DECL itself .  There's
         no need to do this when processing a template; we'll do this
         for the instantiated declaration based on the type of DECL.  */
!     if (!processing_template_decl
! 	/* Don't do it for instantiated variable templates either,
! 	   cp_apply_type_quals_to_decl should have been called on it
! 	   already and might have been overridden in cp_finish_decl
! 	   if initializer needs runtime initialization.  */
! 	&& (!VAR_P (decl) || !DECL_TEMPLATE_INSTANTIATED (decl)))
        cp_apply_type_quals_to_decl (type_quals, decl);
  
      return decl;
diff -Nrcpad gcc-12-20250611/gcc/cp/decl2.cc gcc-12-20250618/gcc/cp/decl2.cc
*** gcc-12-20250611/gcc/cp/decl2.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/decl2.cc	Wed Jun 18 22:32:16 2025
*************** static void
*** 2058,2064 ****
  mark_vtable_entries (tree decl, vec<tree> &consteval_vtables)
  {
    /* It's OK for the vtable to refer to deprecated virtual functions.  */
!   warning_sentinel w(warn_deprecated_decl);
  
    bool consteval_seen = false;
  
--- 2058,2065 ----
  mark_vtable_entries (tree decl, vec<tree> &consteval_vtables)
  {
    /* It's OK for the vtable to refer to deprecated virtual functions.  */
!   auto du = make_temp_override (deprecated_state,
! 				UNAVAILABLE_DEPRECATED_SUPPRESS);
  
    bool consteval_seen = false;
  
*************** decl_maybe_constant_var_p (tree decl)
*** 4677,4683 ****
    tree type = TREE_TYPE (decl);
    if (!VAR_P (decl))
      return false;
!   if (DECL_DECLARED_CONSTEXPR_P (decl) && !TREE_THIS_VOLATILE (decl))
      return true;
    if (DECL_HAS_VALUE_EXPR_P (decl))
      /* A proxy isn't constant.  */
--- 4678,4685 ----
    tree type = TREE_TYPE (decl);
    if (!VAR_P (decl))
      return false;
!   if (DECL_DECLARED_CONSTEXPR_P (decl)
!       && (!TREE_THIS_VOLATILE (decl) || NULLPTR_TYPE_P (type)))
      return true;
    if (DECL_HAS_VALUE_EXPR_P (decl))
      /* A proxy isn't constant.  */
diff -Nrcpad gcc-12-20250611/gcc/cp/init.cc gcc-12-20250618/gcc/cp/init.cc
*** gcc-12-20250611/gcc/cp/init.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/init.cc	Wed Jun 18 22:32:16 2025
*************** build_new_1 (vec<tree, va_gc> **placemen
*** 3664,3669 ****
--- 3664,3674 ----
                  error ("parenthesized initializer in array new");
  	      return error_mark_node;
              }
+ 
+ 	  /* Collect flags for disabling subobject cleanups once the complete
+ 	     object is fully constructed.  */
+ 	  vec<tree, va_gc> *flags = make_tree_vector ();
+ 
  	  init_expr
  	    = build_vec_init (data_addr,
  			      cp_build_binary_op (input_location,
*************** build_new_1 (vec<tree, va_gc> **placemen
*** 3673,3679 ****
  			      vecinit,
  			      explicit_value_init_p,
  			      /*from_array=*/0,
!                               complain);
  	}
        else
  	{
--- 3678,3705 ----
  			      vecinit,
  			      explicit_value_init_p,
  			      /*from_array=*/0,
! 			      complain,
! 			      &flags);
! 
! 	  for (tree f : flags)
! 	    {
! 	      /* See maybe_push_temp_cleanup.  */
! 	      tree d = f;
! 	      tree i = boolean_false_node;
! 	      if (TREE_CODE (f) == TREE_LIST)
! 		{
! 		  /* To disable a build_vec_init cleanup, set
! 		     iterator = maxindex.  */
! 		  d = TREE_PURPOSE (f);
! 		  i = TREE_VALUE (f);
! 		  ggc_free (f);
! 		}
! 	      tree cl = build2 (MODIFY_EXPR, TREE_TYPE (d), d, i);
! 	      cl = convert_to_void (cl, ICV_STATEMENT, complain);
! 	      init_expr = build2 (COMPOUND_EXPR, void_type_node,
! 				  init_expr, cl);
! 	    }
! 	  release_tree_vector (flags);
  	}
        else
  	{
*************** build_new_1 (vec<tree, va_gc> **placemen
*** 3782,3788 ****
  	  tree end, sentry, begin;
  
  	  begin = get_target_expr (boolean_true_node);
- 	  CLEANUP_EH_ONLY (begin) = 1;
  
  	  sentry = TARGET_EXPR_SLOT (begin);
  
--- 3808,3813 ----
diff -Nrcpad gcc-12-20250611/gcc/cp/method.cc gcc-12-20250618/gcc/cp/method.cc
*** gcc-12-20250611/gcc/cp/method.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/method.cc	Wed Jun 18 22:32:16 2025
*************** along with GCC; see the file COPYING3.
*** 26,31 ****
--- 26,32 ----
  #include "coretypes.h"
  #include "target.h"
  #include "cp-tree.h"
+ #include "decl.h"
  #include "stringpool.h"
  #include "cgraph.h"
  #include "varasm.h"
*************** use_thunk (tree thunk_fndecl, bool emit_
*** 283,288 ****
--- 284,294 ----
    /* Thunks are always addressable; they only appear in vtables.  */
    TREE_ADDRESSABLE (thunk_fndecl) = 1;
  
+   /* Don't diagnose deprecated or unavailable functions just because they
+      have thunks emitted for them.  */
+   auto du = make_temp_override (deprecated_state,
+                                 UNAVAILABLE_DEPRECATED_SUPPRESS);
+ 
    /* Figure out what function is being thunked to.  It's referenced in
       this translation unit.  */
    TREE_ADDRESSABLE (function) = 1;
diff -Nrcpad gcc-12-20250611/gcc/cp/optimize.cc gcc-12-20250618/gcc/cp/optimize.cc
*** gcc-12-20250611/gcc/cp/optimize.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/optimize.cc	Wed Jun 18 22:32:16 2025
*************** along with GCC; see the file COPYING3.
*** 23,28 ****
--- 23,29 ----
  #include "coretypes.h"
  #include "target.h"
  #include "cp-tree.h"
+ #include "decl.h"
  #include "stringpool.h"
  #include "cgraph.h"
  #include "debug.h"
*************** maybe_thunk_body (tree fn, bool force)
*** 295,300 ****
--- 296,306 ----
    if (ctor_omit_inherited_parms (fns[0]))
      return 0;
  
+   /* Don't diagnose deprecated or unavailable cdtors just because they
+      have thunks emitted for them.  */
+   auto du = make_temp_override (deprecated_state,
+ 				UNAVAILABLE_DEPRECATED_SUPPRESS);
+ 
    DECL_ABSTRACT_P (fn) = false;
    if (!DECL_WEAK (fn))
      {
diff -Nrcpad gcc-12-20250611/gcc/cp/parser.cc gcc-12-20250618/gcc/cp/parser.cc
*** gcc-12-20250611/gcc/cp/parser.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/parser.cc	Wed Jun 18 22:32:16 2025
*************** cp_parser_class_specifier_1 (cp_parser*
*** 26050,26055 ****
--- 26050,26056 ----
      {
        tree decl;
        tree class_type = NULL_TREE;
+       tree class_type_fields = NULL_TREE;
        tree pushed_scope = NULL_TREE;
        unsigned ix;
        cp_default_arg_entry *e;
*************** cp_parser_class_specifier_1 (cp_parser*
*** 26063,26068 ****
--- 26064,26096 ----
  	  vec_safe_truncate (unparsed_funs_with_definitions, 0);
  	}
  
+       auto switch_to_class = [&] (tree t)
+ 	{
+ 	  if (class_type != t)
+ 	    {
+ 	      /* cp_parser_late_parsing_default_args etc. could have changed
+ 		 TYPE_FIELDS (class_type), propagate that to all variants.  */
+ 	      if (class_type
+ 		  && RECORD_OR_UNION_TYPE_P (class_type)
+ 		  && TYPE_FIELDS (class_type) != class_type_fields)
+ 		for (tree variant = TYPE_NEXT_VARIANT (class_type);
+ 		     variant; variant = TYPE_NEXT_VARIANT (variant))
+ 		  TYPE_FIELDS (variant) = TYPE_FIELDS (class_type);
+ 	      if (pushed_scope)
+ 		pop_scope (pushed_scope);
+ 	      class_type = t;
+ 	      class_type_fields = NULL_TREE;
+ 	      if (t)
+ 		{
+ 		  if (RECORD_OR_UNION_TYPE_P (class_type))
+ 		    class_type_fields = TYPE_FIELDS (class_type);
+ 		  pushed_scope = push_scope (class_type);
+ 		}
+ 	      else
+ 		pushed_scope = NULL_TREE;
+ 	    }
+ 	};
+ 
        /* In a first pass, parse default arguments to the functions.
  	 Then, in a second pass, parse the bodies of the functions.
  	 This two-phased approach handles cases like:
*************** cp_parser_class_specifier_1 (cp_parser*
*** 26078,26090 ****
  	  decl = e->decl;
  	  /* If there are default arguments that have not yet been processed,
  	     take care of them now.  */
! 	  if (class_type != e->class_type)
! 	    {
! 	      if (pushed_scope)
! 		pop_scope (pushed_scope);
! 	      class_type = e->class_type;
! 	      pushed_scope = push_scope (class_type);
! 	    }
  	  /* Make sure that any template parameters are in scope.  */
  	  maybe_begin_member_template_processing (decl);
  	  /* Parse the default argument expressions.  */
--- 26106,26112 ----
  	  decl = e->decl;
  	  /* If there are default arguments that have not yet been processed,
  	     take care of them now.  */
! 	  switch_to_class (e->class_type);
  	  /* Make sure that any template parameters are in scope.  */
  	  maybe_begin_member_template_processing (decl);
  	  /* Parse the default argument expressions.  */
*************** cp_parser_class_specifier_1 (cp_parser*
*** 26100,26112 ****
        FOR_EACH_VEC_SAFE_ELT (unparsed_noexcepts, ix, decl)
  	{
  	  tree ctx = DECL_CONTEXT (decl);
! 	  if (class_type != ctx)
! 	    {
! 	      if (pushed_scope)
! 		pop_scope (pushed_scope);
! 	      class_type = ctx;
! 	      pushed_scope = push_scope (class_type);
! 	    }
  
  	  tree def_parse = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (decl));
  	  def_parse = TREE_PURPOSE (def_parse);
--- 26122,26128 ----
        FOR_EACH_VEC_SAFE_ELT (unparsed_noexcepts, ix, decl)
  	{
  	  tree ctx = DECL_CONTEXT (decl);
! 	  switch_to_class (ctx);
  
  	  tree def_parse = TYPE_RAISES_EXCEPTIONS (TREE_TYPE (decl));
  	  def_parse = TREE_PURPOSE (def_parse);
*************** cp_parser_class_specifier_1 (cp_parser*
*** 26161,26181 ****
        /* Now parse any NSDMIs.  */
        FOR_EACH_VEC_SAFE_ELT (unparsed_nsdmis, ix, decl)
  	{
! 	  if (class_type != DECL_CONTEXT (decl))
! 	    {
! 	      if (pushed_scope)
! 		pop_scope (pushed_scope);
! 	      class_type = DECL_CONTEXT (decl);
! 	      pushed_scope = push_scope (class_type);
! 	    }
  	  inject_this_parameter (class_type, TYPE_UNQUALIFIED);
  	  cp_parser_late_parsing_nsdmi (parser, decl);
  	}
        vec_safe_truncate (unparsed_nsdmis, 0);
        current_class_ptr = NULL_TREE;
        current_class_ref = NULL_TREE;
!       if (pushed_scope)
! 	pop_scope (pushed_scope);
  
        /* Now parse the body of the functions.  */
        if (flag_openmp)
--- 26177,26190 ----
        /* Now parse any NSDMIs.  */
        FOR_EACH_VEC_SAFE_ELT (unparsed_nsdmis, ix, decl)
  	{
! 	  switch_to_class (DECL_CONTEXT (decl));
  	  inject_this_parameter (class_type, TYPE_UNQUALIFIED);
  	  cp_parser_late_parsing_nsdmi (parser, decl);
  	}
        vec_safe_truncate (unparsed_nsdmis, 0);
        current_class_ptr = NULL_TREE;
        current_class_ref = NULL_TREE;
!       switch_to_class (NULL_TREE);
  
        /* Now parse the body of the functions.  */
        if (flag_openmp)
diff -Nrcpad gcc-12-20250611/gcc/cp/pt.cc gcc-12-20250618/gcc/cp/pt.cc
*** gcc-12-20250611/gcc/cp/pt.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/pt.cc	Wed Jun 18 22:32:16 2025
*************** has_extra_args_mechanism_p (const_tree t
*** 3896,3901 ****
--- 3896,3919 ----
  	      && IF_STMT_CONSTEXPR_P (t))); /* IF_STMT_EXTRA_ARGS  */
  }
  
+ /* Return *_EXTRA_ARGS of the given supported tree T.  */
+ 
+ static tree&
+ tree_extra_args (tree t)
+ {
+   gcc_checking_assert (has_extra_args_mechanism_p (t));
+ 
+   if (PACK_EXPANSION_P (t))
+     return PACK_EXPANSION_EXTRA_ARGS (t);
+   else if (TREE_CODE (t) == REQUIRES_EXPR)
+     return REQUIRES_EXPR_EXTRA_ARGS (t);
+   else if (TREE_CODE (t) == IF_STMT
+ 	   && IF_STMT_CONSTEXPR_P (t))
+     return IF_STMT_EXTRA_ARGS (t);
+ 
+   gcc_unreachable ();
+ }
+ 
  /* Structure used to track the progress of find_parameter_packs_r.  */
  struct find_parameter_pack_data
  {
*************** extract_locals_r (tree *tp, int *walk_su
*** 13051,13056 ****
--- 13069,13084 ----
      /* Remember local typedefs (85214).  */
      tp = &TYPE_NAME (*tp);
  
+   if (has_extra_args_mechanism_p (*tp))
+     /* Assert *_EXTRA_ARGS is empty, because we don't want to walk it and
+        potentially see a previously captured local in an evaluated context
+        that's really only used in an unevaluated context (PR114303).  This
+        means callers of build_extra_args need to clear *_EXTRA_ARGS of the
+        outermost tree.  Nested *_EXTRA_ARGS should naturally be empty since
+        the outermost (extra-args) tree will intercept any substitution before
+        a nested tree can.  */
+     gcc_checking_assert (tree_extra_args (*tp) == NULL_TREE);
+ 
    if (TREE_CODE (*tp) == DECL_EXPR)
      {
        tree decl = DECL_EXPR_DECL (*tp);
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 18911,18920 ****
  	     of the constexpr if is still dependent.  Don't substitute into the
  	     branches now, just remember the template arguments.  */
  	  do_poplevel (IF_SCOPE (stmt));
  	  IF_COND (stmt) = IF_COND (t);
  	  THEN_CLAUSE (stmt) = THEN_CLAUSE (t);
  	  ELSE_CLAUSE (stmt) = ELSE_CLAUSE (t);
! 	  IF_STMT_EXTRA_ARGS (stmt) = build_extra_args (t, args, complain);
  	  add_stmt (stmt);
  	  break;
  	}
--- 18939,18949 ----
  	     of the constexpr if is still dependent.  Don't substitute into the
  	     branches now, just remember the template arguments.  */
  	  do_poplevel (IF_SCOPE (stmt));
+ 	  IF_SCOPE (stmt) = NULL_TREE;
  	  IF_COND (stmt) = IF_COND (t);
  	  THEN_CLAUSE (stmt) = THEN_CLAUSE (t);
  	  ELSE_CLAUSE (stmt) = ELSE_CLAUSE (t);
! 	  IF_STMT_EXTRA_ARGS (stmt) = build_extra_args (stmt, args, complain);
  	  add_stmt (stmt);
  	  break;
  	}
*************** type_dependent_expression_p (tree expres
*** 28108,28116 ****
  
        if (TREE_CODE (expression) == TEMPLATE_ID_EXPR)
  	{
! 	  if (any_dependent_template_arguments_p
! 	      (TREE_OPERAND (expression, 1)))
  	    return true;
  	  expression = TREE_OPERAND (expression, 0);
  	  if (identifier_p (expression))
  	    return true;
--- 28137,28151 ----
  
        if (TREE_CODE (expression) == TEMPLATE_ID_EXPR)
  	{
! 	  tree args = TREE_OPERAND (expression, 1);
! 	  if (any_dependent_template_arguments_p (args))
  	    return true;
+ 	  /* Arguments of a function template-id aren't necessarily coerced
+ 	     yet so we must conservatively assume that the address (and not
+ 	     just value) of the argument matters as per [temp.dep.temp]/3.  */
+ 	  for (int i = 0; i < TREE_VEC_LENGTH (args); i++)
+ 	    if (has_value_dependent_address (TREE_VEC_ELT (args, i)))
+ 	      return true;
  	  expression = TREE_OPERAND (expression, 0);
  	  if (identifier_p (expression))
  	    return true;
diff -Nrcpad gcc-12-20250611/gcc/cp/semantics.cc gcc-12-20250618/gcc/cp/semantics.cc
*** gcc-12-20250611/gcc/cp/semantics.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/semantics.cc	Wed Jun 18 22:32:16 2025
*************** check_accessibility_of_qualified_id (tre
*** 2286,2294 ****
  	 OBJECT_TYPE.  */
        && CLASS_TYPE_P (object_type)
        && DERIVED_FROM_P (scope, object_type))
!     /* If we are processing a `->' or `.' expression, use the type of the
!        left-hand side.  */
!     qualifying_type = object_type;
    else if (nested_name_specifier)
      {
        /* If the reference is to a non-static member of the
--- 2286,2299 ----
  	 OBJECT_TYPE.  */
        && CLASS_TYPE_P (object_type)
        && DERIVED_FROM_P (scope, object_type))
!     {
!       /* If we are processing a `->' or `.' expression, use the type of the
! 	 left-hand side.  */
!       if (tree open = currently_open_class (object_type))
! 	qualifying_type = open;
!       else
! 	qualifying_type = object_type;
!     }
    else if (nested_name_specifier)
      {
        /* If the reference is to a non-static member of the
*************** emit_associated_thunks (tree fn)
*** 4702,4708 ****
       enabling you to output all the thunks with the function itself.  */
    if (DECL_VIRTUAL_P (fn)
        /* Do not emit thunks for extern template instantiations.  */
!       && ! DECL_REALLY_EXTERN (fn))
      {
        tree thunk;
  
--- 4707,4716 ----
       enabling you to output all the thunks with the function itself.  */
    if (DECL_VIRTUAL_P (fn)
        /* Do not emit thunks for extern template instantiations.  */
!       && ! DECL_REALLY_EXTERN (fn)
!       /* Do not emit thunks for tentative decls, those will be processed
! 	 again at_eof if really needed.  */
!       && (DECL_INTERFACE_KNOWN (fn) || !DECL_DEFER_OUTPUT (fn)))
      {
        tree thunk;
  
diff -Nrcpad gcc-12-20250611/gcc/cp/tree.cc gcc-12-20250618/gcc/cp/tree.cc
*** gcc-12-20250611/gcc/cp/tree.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/tree.cc	Wed Jun 18 22:32:16 2025
*************** strip_typedefs_expr (tree t, bool *remov
*** 2011,2022 ****
        }
  
      case LAMBDA_EXPR:
        return t;
  
-     case STATEMENT_LIST:
-       error ("statement-expression in a constant expression");
-       return error_mark_node;
- 
      default:
        break;
      }
--- 2011,2019 ----
        }
  
      case LAMBDA_EXPR:
+     case STMT_EXPR:
        return t;
  
      default:
        break;
      }
diff -Nrcpad gcc-12-20250611/gcc/cp/typeck.cc gcc-12-20250618/gcc/cp/typeck.cc
*** gcc-12-20250611/gcc/cp/typeck.cc	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/cp/typeck.cc	Wed Jun 18 22:32:16 2025
*************** get_member_function_from_ptrfunc (tree *
*** 4022,4032 ****
        if (!nonvirtual && is_dummy_object (instance_ptr))
  	nonvirtual = true;
  
!       if (TREE_SIDE_EFFECTS (instance_ptr))
! 	instance_ptr = instance_save_expr = save_expr (instance_ptr);
  
!       if (TREE_SIDE_EFFECTS (function))
! 	function = save_expr (function);
  
        /* Start by extracting all the information from the PMF itself.  */
        e3 = pfn_from_ptrmemfunc (function);
--- 4022,4049 ----
        if (!nonvirtual && is_dummy_object (instance_ptr))
  	nonvirtual = true;
  
!       /* Use force_target_expr even when instance_ptr doesn't have
! 	 side-effects, unless it is a simple decl or constant, so
! 	 that we don't ubsan instrument the expression multiple times.
! 	 Don't use save_expr, as save_expr can avoid building a SAVE_EXPR
! 	 and building a SAVE_EXPR manually can be optimized away during
! 	 cp_fold.  See PR116449 and PR117259.  */
!       if (TREE_SIDE_EFFECTS (instance_ptr)
! 	  || (!nonvirtual
! 	      && !DECL_P (instance_ptr)
! 	      && !TREE_CONSTANT (instance_ptr)))
! 	instance_ptr = instance_save_expr
! 	  = save_expr (force_target_expr (TREE_TYPE (instance_ptr),
! 					  instance_ptr, complain));
  
!       /* See above comment.  */
!       if (TREE_SIDE_EFFECTS (function)
! 	  || (!nonvirtual
! 	      && !DECL_P (function)
! 	      && !TREE_CONSTANT (function)))
! 	function
! 	  = save_expr (force_target_expr (TREE_TYPE (function), function,
! 					  complain));
  
        /* Start by extracting all the information from the PMF itself.  */
        e3 = pfn_from_ptrmemfunc (function);
*************** cp_build_function_call_vec (tree functio
*** 4299,4306 ****
  
    /* Check for errors in format strings and inappropriately
       null parameters.  */
!   bool warned_p = check_function_arguments (input_location, fndecl, fntype,
! 					    nargs, argarray, NULL);
  
    ret = build_cxx_call (function, nargs, argarray, complain, orig_fndecl);
  
--- 4316,4325 ----
  
    /* Check for errors in format strings and inappropriately
       null parameters.  */
!   bool warned_p
!     = ((complain & tf_warning)
!        && check_function_arguments (input_location, fndecl, fntype,
! 				    nargs, argarray, NULL));
  
    ret = build_cxx_call (function, nargs, argarray, complain, orig_fndecl);
  
diff -Nrcpad gcc-12-20250611/gcc/d/ChangeLog gcc-12-20250618/gcc/d/ChangeLog
*** gcc-12-20250611/gcc/d/ChangeLog	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/d/ChangeLog	Wed Jun 18 22:32:16 2025
***************
*** 1,3 ****
--- 1,13 ----
+ 2025-06-13  Arsen Arsenović  <arsen@aarsen.me>
+ 
+ 	Backported from master:
+ 	2025-01-29  Arsen Arsenović  <arsen@aarsen.me>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR d/118477
+ 	* Make-lang.in (DCOMPILE, DPOSTCOMPILE): Use $(basename $(@F))
+ 	instead of $(*F).
+ 
  2025-04-20  Iain Buclaw  <ibuclaw@gdcproject.org>
  
  	Backported from master:
diff -Nrcpad gcc-12-20250611/gcc/d/Make-lang.in gcc-12-20250618/gcc/d/Make-lang.in
*** gcc-12-20250611/gcc/d/Make-lang.in	Wed Jun 11 22:32:23 2025
--- gcc-12-20250618/gcc/d/Make-lang.in	Wed Jun 18 22:32:16 2025
*************** ALL_DFLAGS = $(DFLAGS-$@) $(GDCFLAGS) -f
*** 61,68 ****
  	$(PICFLAG) $(ALIASING_FLAGS) $(COVERAGE_FLAGS) $(WARN_DFLAGS)
  
  DCOMPILE.base = $(GDC) $(NO_PIE_CFLAGS) -c $(ALL_DFLAGS) -o $@
! DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo
! DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po
  DLINKER = $(GDC) $(NO_PIE_FLAG) -lstdc++
  
  # Like LINKER, but use a mutex for serializing front end links.
--- 61,68 ----
  	$(PICFLAG) $(ALIASING_FLAGS) $(COVERAGE_FLAGS) $(WARN_DFLAGS)
  
  DCOMPILE.base = $(GDC) $(NO_PIE_CFLAGS) -c $(ALL_DFLAGS) -o $@
! DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(basename $(@F)).TPo
! DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(basename $(@F)).TPo $(@D)/$(DEPDIR)/$(basename $(@F)).Po
  DLINKER = $(GDC) $(NO_PIE_FLAG) -lstdc++
  
  # Like LINKER, but use a mutex for serializing front end links.
diff -Nrcpad gcc-12-20250611/gcc/doc/extend.texi gcc-12-20250618/gcc/doc/extend.texi
*** gcc-12-20250611/gcc/doc/extend.texi	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/doc/extend.texi	Wed Jun 18 22:32:16 2025
*************** builtins (@pxref{__atomic Builtins}).  T
*** 12216,12231 ****
  code which should use the @samp{__atomic} builtins instead.
  
  Not all operations are supported by all target processors.  If a particular
! operation cannot be implemented on the target processor, a warning is
! generated and a call to an external function is generated.  The external
! function carries the same name as the built-in version,
! with an additional suffix
  @samp{_@var{n}} where @var{n} is the size of the data type.
  
- @c ??? Should we have a mechanism to suppress this warning?  This is almost
- @c useful for implementing the operation under the control of an external
- @c mutex.
- 
  In most cases, these built-in functions are considered a @dfn{full barrier}.
  That is,
  no memory operand is moved across the operation, either forward or
--- 12216,12226 ----
  code which should use the @samp{__atomic} builtins instead.
  
  Not all operations are supported by all target processors.  If a particular
! operation cannot be implemented on the target processor, a call to an
! external function is generated.  The external function carries the same name
! as the built-in version, with an additional suffix
  @samp{_@var{n}} where @var{n} is the size of the data type.
  
  In most cases, these built-in functions are considered a @dfn{full barrier}.
  That is,
  no memory operand is moved across the operation, either forward or
diff -Nrcpad gcc-12-20250611/gcc/except.cc gcc-12-20250618/gcc/except.cc
*** gcc-12-20250611/gcc/except.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/except.cc	Wed Jun 18 22:32:16 2025
*************** duplicate_eh_regions_1 (struct duplicate
*** 541,547 ****
    eh_region new_r;
  
    new_r = gen_eh_region (old_r->type, outer);
!   gcc_assert (!data->eh_map->put (old_r, new_r));
  
    switch (old_r->type)
      {
--- 541,548 ----
    eh_region new_r;
  
    new_r = gen_eh_region (old_r->type, outer);
!   bool existed = data->eh_map->put (old_r, new_r);
!   gcc_assert (!existed);
  
    switch (old_r->type)
      {
*************** duplicate_eh_regions_1 (struct duplicate
*** 586,592 ****
  	continue;
  
        new_lp = gen_eh_landing_pad (new_r);
!       gcc_assert (!data->eh_map->put (old_lp, new_lp));
  
        new_lp->post_landing_pad
  	= data->label_map (old_lp->post_landing_pad, data->label_map_data);
--- 587,594 ----
  	continue;
  
        new_lp = gen_eh_landing_pad (new_r);
!       bool existed = data->eh_map->put (old_lp, new_lp);
!       gcc_assert (!existed);
  
        new_lp->post_landing_pad
  	= data->label_map (old_lp->post_landing_pad, data->label_map_data);
diff -Nrcpad gcc-12-20250611/gcc/expmed.cc gcc-12-20250618/gcc/expmed.cc
*** gcc-12-20250611/gcc/expmed.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/expmed.cc	Wed Jun 18 22:32:16 2025
*************** init_expmed (void)
*** 284,290 ****
    for (speed = 0; speed < 2; speed++)
      {
        crtl->maybe_hot_insn_p = speed;
!       set_zero_cost (speed, set_src_cost (const0_rtx, mode, speed));
  
        for (mode = MIN_MODE_INT; mode <= MAX_MODE_INT;
  	   mode = (machine_mode)(mode + 1))
--- 284,290 ----
    for (speed = 0; speed < 2; speed++)
      {
        crtl->maybe_hot_insn_p = speed;
!       set_zero_cost (speed, set_src_cost (const0_rtx, QImode, speed));
  
        for (mode = MIN_MODE_INT; mode <= MAX_MODE_INT;
  	   mode = (machine_mode)(mode + 1))
diff -Nrcpad gcc-12-20250611/gcc/fortran/ChangeLog gcc-12-20250618/gcc/fortran/ChangeLog
*** gcc-12-20250611/gcc/fortran/ChangeLog	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/fortran/ChangeLog	Wed Jun 18 22:32:18 2025
***************
*** 1,3 ****
--- 1,18 ----
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 		    Daniil Kochergin  <daniil2472s@gmail.com>
+ 		    Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR fortran/120191
+ 	* trans-intrinsic.cc (strip_kind_from_actual): Remove.
+ 	(gfc_conv_intrinsic_minmaxloc): Don't call strip_kind_from_actual.
+ 	Free and clear kind_arg->expr if non-NULL.  Set back_arg->name to
+ 	"%VAL" instead of a loop looking for last argument.  Remove actual
+ 	variable, use array_arg instead.  Free and clear dim_arg->expr if
+ 	non-NULL for BT_CHARACTER cases instead of using a loop.
+ 
  2025-04-22  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-12-20250611/gcc/fortran/trans-intrinsic.cc gcc-12-20250618/gcc/fortran/trans-intrinsic.cc
*** gcc-12-20250611/gcc/fortran/trans-intrinsic.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/fortran/trans-intrinsic.cc	Wed Jun 18 22:32:18 2025
*************** gfc_conv_intrinsic_dot_product (gfc_se *
*** 5201,5222 ****
  }
  
  
- /* Remove unneeded kind= argument from actual argument list when the
-    result conversion is dealt with in a different place.  */
- 
- static void
- strip_kind_from_actual (gfc_actual_arglist * actual)
- {
-   for (gfc_actual_arglist *a = actual; a; a = a->next)
-     {
-       if (a && a->name && strcmp (a->name, "kind") == 0)
- 	{
- 	  gfc_free_expr (a->expr);
- 	  a->expr = NULL;
- 	}
-     }
- }
- 
  /* Emit code for minloc or maxloc intrinsic.  There are many different cases
     we need to handle.  For performance reasons we sometimes create two
     loops instead of one, where the second one is much simpler.
--- 5201,5206 ----
*************** gfc_conv_intrinsic_minmaxloc (gfc_se * s
*** 5314,5320 ****
    tree lab1, lab2;
    tree b_if, b_else;
    gfc_loopinfo loop;
!   gfc_actual_arglist *actual;
    gfc_ss *arrayss;
    gfc_ss *maskss;
    gfc_se arrayse;
--- 5298,5305 ----
    tree lab1, lab2;
    tree b_if, b_else;
    gfc_loopinfo loop;
!   gfc_actual_arglist *array_arg, *dim_arg, *mask_arg, *kind_arg;
!   gfc_actual_arglist *back_arg;
    gfc_ss *arrayss;
    gfc_ss *maskss;
    gfc_se arrayse;
*************** gfc_conv_intrinsic_minmaxloc (gfc_se * s
*** 5327,5366 ****
    int n;
    bool optional_mask;
  
!   actual = expr->value.function.actual;
  
!   /* The last argument, BACK, is passed by value. Ensure that
!      by setting its name to %VAL. */
!   for (gfc_actual_arglist *a = actual; a; a = a->next)
      {
!       if (a->next == NULL)
! 	a->name = "%VAL";
      }
  
    if (se->ss)
      {
        gfc_conv_intrinsic_funcall (se, expr);
        return;
      }
  
!   arrayexpr = actual->expr;
  
!   /* Special case for character maxloc.  Remove unneeded actual
!      arguments, then call a library function.  */
  
    if (arrayexpr->ts.type == BT_CHARACTER)
      {
!       gfc_actual_arglist *a;
!       a = actual;
!       strip_kind_from_actual (a);
!       while (a)
  	{
! 	  if (a->name && strcmp (a->name, "dim") == 0)
! 	    {
! 	      gfc_free_expr (a->expr);
! 	      a->expr = NULL;
! 	    }
! 	  a = a->next;
  	}
        gfc_conv_intrinsic_funcall (se, expr);
        return;
--- 5312,5350 ----
    int n;
    bool optional_mask;
  
!   array_arg = expr->value.function.actual;
!   dim_arg = array_arg->next;
!   mask_arg = dim_arg->next;
!   kind_arg = mask_arg->next;
!   back_arg = kind_arg->next;
  
!   /* Remove kind.  */
!   if (kind_arg->expr)
      {
!       gfc_free_expr (kind_arg->expr);
!       kind_arg->expr = NULL;
      }
  
+   /* Pass BACK argument by value.  */
+   back_arg->name = "%VAL";
+ 
    if (se->ss)
      {
        gfc_conv_intrinsic_funcall (se, expr);
        return;
      }
  
!   arrayexpr = array_arg->expr;
  
!   /* Special case for character maxloc.  Remove unneeded "dim" actual
!      argument, then call a library function.  */
  
    if (arrayexpr->ts.type == BT_CHARACTER)
      {
!       if (dim_arg->expr)
  	{
! 	  gfc_free_expr (dim_arg->expr);
! 	  dim_arg->expr = NULL;
  	}
        gfc_conv_intrinsic_funcall (se, expr);
        return;
*************** gfc_conv_intrinsic_minmaxloc (gfc_se * s
*** 5375,5387 ****
    arrayss = gfc_walk_expr (arrayexpr);
    gcc_assert (arrayss != gfc_ss_terminator);
  
!   actual = actual->next->next;
!   gcc_assert (actual);
!   maskexpr = actual->expr;
    optional_mask = maskexpr && maskexpr->expr_type == EXPR_VARIABLE
      && maskexpr->symtree->n.sym->attr.dummy
      && maskexpr->symtree->n.sym->attr.optional;
!   backexpr = actual->next->next->expr;
    nonempty = NULL;
    if (maskexpr && maskexpr->rank != 0)
      {
--- 5359,5369 ----
    arrayss = gfc_walk_expr (arrayexpr);
    gcc_assert (arrayss != gfc_ss_terminator);
  
!   maskexpr = mask_arg->expr;
    optional_mask = maskexpr && maskexpr->expr_type == EXPR_VARIABLE
      && maskexpr->symtree->n.sym->attr.dummy
      && maskexpr->symtree->n.sym->attr.optional;
!   backexpr = back_arg->expr;
    nonempty = NULL;
    if (maskexpr && maskexpr->rank != 0)
      {
diff -Nrcpad gcc-12-20250611/gcc/function.cc gcc-12-20250618/gcc/function.cc
*** gcc-12-20250611/gcc/function.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/function.cc	Wed Jun 18 22:32:19 2025
*************** assign_parms (tree fndecl)
*** 3724,3729 ****
--- 3724,3731 ----
       now that all parameters have been copied out of hard registers.  */
    emit_insn (all.first_conversion_insn);
  
+   do_pending_stack_adjust ();
+ 
    /* Estimate reload stack alignment from scalar return mode.  */
    if (SUPPORTS_STACK_ALIGNMENT)
      {
diff -Nrcpad gcc-12-20250611/gcc/gcc.cc gcc-12-20250618/gcc/gcc.cc
*** gcc-12-20250611/gcc/gcc.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/gcc.cc	Wed Jun 18 22:32:19 2025
*************** compilation is specified by a string cal
*** 30,35 ****
--- 30,38 ----
  #define INCLUDE_STRING
  #include "config.h"
  #include "system.h"
+ #ifdef HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE
+ #include <sys/personality.h>
+ #endif
  #include "coretypes.h"
  #include "multilib.h" /* before tm.h */
  #include "tm.h"
*************** print_configuration (FILE *file)
*** 7591,7645 ****
  
  #define RETRY_ICE_ATTEMPTS 3
  
! /* Returns true if FILE1 and FILE2 contain equivalent data, 0 otherwise.  */
  
  static bool
  files_equal_p (char *file1, char *file2)
  {
!   struct stat st1, st2;
!   off_t n, len;
!   int fd1, fd2;
!   const int bufsize = 8192;
!   char *buf = XNEWVEC (char, bufsize);
! 
!   fd1 = open (file1, O_RDONLY);
!   fd2 = open (file2, O_RDONLY);
! 
!   if (fd1 < 0 || fd2 < 0)
!     goto error;
! 
!   if (fstat (fd1, &st1) < 0 || fstat (fd2, &st2) < 0)
!     goto error;
! 
!   if (st1.st_size != st2.st_size)
!     goto error;
  
!   for (n = st1.st_size; n; n -= len)
      {
!       len = n;
!       if ((int) len > bufsize / 2)
! 	len = bufsize / 2;
! 
!       if (read (fd1, buf, len) != (int) len
! 	  || read (fd2, buf + bufsize / 2, len) != (int) len)
  	{
! 	  goto error;
  	}
! 
!       if (memcmp (buf, buf + bufsize / 2, len) != 0)
  	goto error;
      }
  
!   free (buf);
!   close (fd1);
!   close (fd2);
! 
    return 1;
  
  error:
!   free (buf);
!   close (fd1);
!   close (fd2);
    return 0;
  }
  
--- 7594,7651 ----
  
  #define RETRY_ICE_ATTEMPTS 3
  
! /* Returns true if FILE1 and FILE2 contain equivalent data, 0 otherwise.
!    If lines start with 0x followed by 1-16 lowercase hexadecimal digits
!    followed by a space, ignore anything before that space.  These are
!    typically function addresses from libbacktrace and those can differ
!    due to ASLR.  */
  
  static bool
  files_equal_p (char *file1, char *file2)
  {
!   FILE *f1 = fopen (file1, "rb");
!   FILE *f2 = fopen (file2, "rb");
!   char line1[256], line2[256];
  
!   bool line_start = true;
!   while (fgets (line1, sizeof (line1), f1))
      {
!       if (!fgets (line2, sizeof (line2), f2))
! 	goto error;
!       char *p1 = line1, *p2 = line2;
!       if (line_start
! 	  && line1[0] == '0'
! 	  && line1[1] == 'x'
! 	  && line2[0] == '0'
! 	  && line2[1] == 'x')
  	{
! 	  int i, j;
! 	  for (i = 0; i < 16; ++i)
! 	    if (!ISXDIGIT (line1[2 + i]) || ISUPPER (line1[2 + i]))
! 	      break;
! 	  for (j = 0; j < 16; ++j)
! 	    if (!ISXDIGIT (line2[2 + j]) || ISUPPER (line2[2 + j]))
! 	      break;
! 	  if (i && line1[2 + i] == ' ' && j && line2[2 + j] == ' ')
! 	    {
! 	      p1 = line1 + i + 3;
! 	      p2 = line2 + j + 3;
! 	    }
  	}
!       if (strcmp (p1, p2) != 0)
  	goto error;
+       line_start = strchr (line1, '\n') != NULL;
      }
+   if (fgets (line2, sizeof (line2), f2))
+     goto error;
  
!   fclose (f1);
!   fclose (f2);
    return 1;
  
  error:
!   fclose (f1);
!   fclose (f2);
    return 0;
  }
  
*************** try_generate_repro (const char **argv)
*** 7847,7852 ****
--- 7853,7862 ----
    else
      new_argv[out_arg] = "-o-";
  
+ #ifdef HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE
+   personality (personality (0xffffffffU) | ADDR_NO_RANDOMIZE);
+ #endif
+ 
    int status;
    for (attempt = 0; attempt < RETRY_ICE_ATTEMPTS; ++attempt)
      {
diff -Nrcpad gcc-12-20250611/gcc/genautomata.cc gcc-12-20250618/gcc/genautomata.cc
*** gcc-12-20250611/gcc/genautomata.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/genautomata.cc	Wed Jun 18 22:32:19 2025
*************** output_default_latencies (void)
*** 8351,8357 ****
  	if ((col = (col+1) % 8) == 0)
  	  fputs ("\n     ", output_file);
  	decl = description->decls[i];
! 	gcc_assert (j++ == DECL_INSN_RESERV (decl)->insn_num);
  	fprintf (output_file, "% 4d,",
  		 DECL_INSN_RESERV (decl)->default_latency);
        }
--- 8351,8358 ----
  	if ((col = (col+1) % 8) == 0)
  	  fputs ("\n     ", output_file);
  	decl = description->decls[i];
! 	gcc_assert (j == DECL_INSN_RESERV (decl)->insn_num);
! 	++j;
  	fprintf (output_file, "% 4d,",
  		 DECL_INSN_RESERV (decl)->default_latency);
        }
diff -Nrcpad gcc-12-20250611/gcc/gimple-fold.cc gcc-12-20250618/gcc/gimple-fold.cc
*** gcc-12-20250611/gcc/gimple-fold.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/gimple-fold.cc	Wed Jun 18 22:32:19 2025
*************** gimple_fold_builtin_strlen (gimple_stmt_
*** 4022,4027 ****
--- 4022,4032 ----
        maxlen = wi::to_wide (max_object_size (), prec) - 2;
      }
  
+   /* For -fsanitize=address, don't optimize the upper bound of the
+      length to be able to diagnose UB on non-zero terminated arrays.  */
+   if (sanitize_flags_p (SANITIZE_ADDRESS))
+     maxlen = wi::max_value (TYPE_PRECISION (sizetype), UNSIGNED);
+ 
    if (minlen == maxlen)
      {
        /* Fold the strlen call to a constant.  */
*************** clear_padding_flush (clear_padding_struc
*** 4237,4243 ****
  	  i -= wordsize;
  	  continue;
  	}
!       for (size_t j = i; j < i + wordsize && j < end; j++)
  	{
  	  if (buf->buf[j])
  	    {
--- 4242,4249 ----
  	  i -= wordsize;
  	  continue;
  	}
!       size_t endsize = end - i > wordsize ? wordsize : end - i;
!       for (size_t j = i; j < i + endsize; j++)
  	{
  	  if (buf->buf[j])
  	    {
*************** clear_padding_flush (clear_padding_struc
*** 4266,4277 ****
        if (padding_bytes)
  	{
  	  if (nonzero_first == 0
! 	      && nonzero_last == wordsize
  	      && all_ones)
  	    {
  	      /* All bits are padding and we had some padding
  		 before too.  Just extend it.  */
! 	      padding_bytes += wordsize;
  	      continue;
  	    }
  	  if (all_ones && nonzero_first == 0)
--- 4272,4283 ----
        if (padding_bytes)
  	{
  	  if (nonzero_first == 0
! 	      && nonzero_last == endsize
  	      && all_ones)
  	    {
  	      /* All bits are padding and we had some padding
  		 before too.  Just extend it.  */
! 	      padding_bytes += endsize;
  	      continue;
  	    }
  	  if (all_ones && nonzero_first == 0)
*************** clear_padding_flush (clear_padding_struc
*** 4311,4317 ****
        if (nonzero_first == wordsize)
  	/* All bits in a word are 0, there are no padding bits.  */
  	continue;
!       if (all_ones && nonzero_last == wordsize)
  	{
  	  /* All bits between nonzero_first and end of word are padding
  	     bits, start counting padding_bytes.  */
--- 4317,4323 ----
        if (nonzero_first == wordsize)
  	/* All bits in a word are 0, there are no padding bits.  */
  	continue;
!       if (all_ones && nonzero_last == endsize)
  	{
  	  /* All bits between nonzero_first and end of word are padding
  	     bits, start counting padding_bytes.  */
*************** clear_padding_flush (clear_padding_struc
*** 4353,4359 ****
  		  j = k;
  		}
  	    }
! 	  if (nonzero_last == wordsize)
  	    padding_bytes = nonzero_last - zero_last;
  	  continue;
  	}
--- 4359,4365 ----
  		  j = k;
  		}
  	    }
! 	  if (nonzero_last == endsize)
  	    padding_bytes = nonzero_last - zero_last;
  	  continue;
  	}
*************** clear_padding_type (clear_padding_struct
*** 4804,4809 ****
--- 4810,4816 ----
  	  buf->off = 0;
  	  buf->size = 0;
  	  clear_padding_emit_loop (buf, elttype, end, for_auto_init);
+ 	  off += sz;
  	  buf->base = base;
  	  buf->sz = prev_sz;
  	  buf->align = prev_align;
diff -Nrcpad gcc-12-20250611/gcc/gimple-ssa-store-merging.cc gcc-12-20250618/gcc/gimple-ssa-store-merging.cc
*** gcc-12-20250611/gcc/gimple-ssa-store-merging.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/gimple-ssa-store-merging.cc	Wed Jun 18 22:32:19 2025
*************** encode_tree_to_bitpos (tree expr, unsign
*** 1849,1862 ****
  		       unsigned int total_bytes)
  {
    unsigned int first_byte = bitpos / BITS_PER_UNIT;
-   bool sub_byte_op_p = ((bitlen % BITS_PER_UNIT)
- 			|| (bitpos % BITS_PER_UNIT)
- 			|| !int_mode_for_size (bitlen, 0).exists ());
    bool empty_ctor_p
      = (TREE_CODE (expr) == CONSTRUCTOR
         && CONSTRUCTOR_NELTS (expr) == 0
         && TYPE_SIZE_UNIT (TREE_TYPE (expr))
! 		       && tree_fits_uhwi_p (TYPE_SIZE_UNIT (TREE_TYPE (expr))));
  
    if (!sub_byte_op_p)
      {
--- 1849,1863 ----
  		       unsigned int total_bytes)
  {
    unsigned int first_byte = bitpos / BITS_PER_UNIT;
    bool empty_ctor_p
      = (TREE_CODE (expr) == CONSTRUCTOR
         && CONSTRUCTOR_NELTS (expr) == 0
         && TYPE_SIZE_UNIT (TREE_TYPE (expr))
!        && tree_fits_uhwi_p (TYPE_SIZE_UNIT (TREE_TYPE (expr))));
!   bool sub_byte_op_p = ((bitlen % BITS_PER_UNIT)
! 			|| (bitpos % BITS_PER_UNIT)
! 			|| (!int_mode_for_size (bitlen, 0).exists ()
! 			    && !empty_ctor_p));
  
    if (!sub_byte_op_p)
      {
diff -Nrcpad gcc-12-20250611/gcc/gimple-ssa-strength-reduction.cc gcc-12-20250618/gcc/gimple-ssa-strength-reduction.cc
*** gcc-12-20250611/gcc/gimple-ssa-strength-reduction.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/gimple-ssa-strength-reduction.cc	Wed Jun 18 22:32:19 2025
*************** get_alternative_base (tree base)
*** 473,479 ****
        aff.offset = 0;
        expr = aff_combination_to_tree (&aff);
  
!       gcc_assert (!alt_base_map->put (base, base == expr ? NULL : expr));
  
        return expr == base ? NULL : expr;
      }
--- 473,480 ----
        aff.offset = 0;
        expr = aff_combination_to_tree (&aff);
  
!       bool existed = alt_base_map->put (base, base == expr ? NULL : expr);
!       gcc_assert (!existed);
  
        return expr == base ? NULL : expr;
      }
*************** base_cand_from_table (tree base_in)
*** 791,797 ****
  static void
  add_cand_for_stmt (gimple *gs, slsr_cand_t c)
  {
!   gcc_assert (!stmt_cand_map->put (gs, c));
  }
  
  /* Given PHI which contains a phi statement, determine whether it
--- 792,799 ----
  static void
  add_cand_for_stmt (gimple *gs, slsr_cand_t c)
  {
!   bool existed = stmt_cand_map->put (gs, c);
!   gcc_assert (!existed);
  }
  
  /* Given PHI which contains a phi statement, determine whether it
diff -Nrcpad gcc-12-20250611/gcc/gimple-ssa-warn-access.cc gcc-12-20250618/gcc/gimple-ssa-warn-access.cc
*** gcc-12-20250611/gcc/gimple-ssa-warn-access.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/gimple-ssa-warn-access.cc	Wed Jun 18 22:32:19 2025
*************** matching_alloc_calls_p (tree alloc_decl,
*** 1908,1959 ****
       headers.
       With AMATS set to the Allocator's Malloc ATtributes,
       and  RMATS set to Reallocator's Malloc ATtributes...  */
!   for (tree amats = DECL_ATTRIBUTES (alloc_decl),
! 	 rmats = DECL_ATTRIBUTES (dealloc_decl);
!        (amats = lookup_attribute ("malloc", amats))
! 	 || (rmats = lookup_attribute ("malloc", rmats));
!        amats = amats ? TREE_CHAIN (amats) : NULL_TREE,
! 	 rmats = rmats ? TREE_CHAIN (rmats) : NULL_TREE)
!     {
!       if (tree args = amats ? TREE_VALUE (amats) : NULL_TREE)
! 	if (tree adealloc = TREE_VALUE (args))
! 	  {
! 	    if (DECL_P (adealloc)
! 		&& fndecl_built_in_p (adealloc, BUILT_IN_NORMAL))
! 	      {
! 		built_in_function fncode = DECL_FUNCTION_CODE (adealloc);
! 		if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
! 		  {
! 		    if (realloc_kind == alloc_kind_t::builtin)
! 		      return true;
! 		    alloc_dealloc_kind = alloc_kind_t::builtin;
! 		  }
! 		continue;
! 	      }
! 
! 	    common_deallocs.add (adealloc);
! 	  }
  
!       if (tree args = rmats ? TREE_VALUE (rmats) : NULL_TREE)
! 	if (tree ddealloc = TREE_VALUE (args))
! 	  {
! 	    if (DECL_P (ddealloc)
! 		&& fndecl_built_in_p (ddealloc, BUILT_IN_NORMAL))
! 	      {
! 		built_in_function fncode = DECL_FUNCTION_CODE (ddealloc);
! 		if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
! 		  {
! 		    if (alloc_dealloc_kind == alloc_kind_t::builtin)
! 		      return true;
! 		    realloc_dealloc_kind = alloc_kind_t::builtin;
! 		  }
! 		continue;
! 	      }
  
! 	    if (common_deallocs.add (ddealloc))
! 	      return true;
! 	  }
!     }
  
    /* Succeed only if ALLOC_DECL and the reallocator DEALLOC_DECL share
       a built-in deallocator.  */
--- 1908,1956 ----
       headers.
       With AMATS set to the Allocator's Malloc ATtributes,
       and  RMATS set to Reallocator's Malloc ATtributes...  */
!   for (tree amats = DECL_ATTRIBUTES (alloc_decl);
!        (amats = lookup_attribute ("malloc", amats));
!        amats = amats ? TREE_CHAIN (amats) : NULL_TREE)
!     if (tree args = amats ? TREE_VALUE (amats) : NULL_TREE)
!       if (tree adealloc = TREE_VALUE (args))
! 	{
! 	  if (DECL_P (adealloc)
! 	      && fndecl_built_in_p (adealloc, BUILT_IN_NORMAL))
! 	    {
! 	      built_in_function fncode = DECL_FUNCTION_CODE (adealloc);
! 	      if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
! 		{
! 		  if (realloc_kind == alloc_kind_t::builtin)
! 		    return true;
! 		  alloc_dealloc_kind = alloc_kind_t::builtin;
! 		}
! 	      continue;
! 	    }
  
! 	  common_deallocs.add (adealloc);
! 	}
!   for (tree rmats = DECL_ATTRIBUTES (dealloc_decl);
!        (rmats = lookup_attribute ("malloc", rmats));
!        rmats = rmats ? TREE_CHAIN (rmats) : NULL_TREE)
!     if (tree args = rmats ? TREE_VALUE (rmats) : NULL_TREE)
!       if (tree ddealloc = TREE_VALUE (args))
! 	{
! 	  if (DECL_P (ddealloc)
! 	      && fndecl_built_in_p (ddealloc, BUILT_IN_NORMAL))
! 	    {
! 	      built_in_function fncode = DECL_FUNCTION_CODE (ddealloc);
! 	      if (fncode == BUILT_IN_FREE || fncode == BUILT_IN_REALLOC)
! 		{
! 		  if (alloc_dealloc_kind == alloc_kind_t::builtin)
! 		    return true;
! 		  realloc_dealloc_kind = alloc_kind_t::builtin;
! 		}
! 	      continue;
! 	    }
  
! 	  if (common_deallocs.contains (ddealloc))
! 	    return true;
! 	}
  
    /* Succeed only if ALLOC_DECL and the reallocator DEALLOC_DECL share
       a built-in deallocator.  */
diff -Nrcpad gcc-12-20250611/gcc/gimplify.cc gcc-12-20250618/gcc/gimplify.cc
*** gcc-12-20250611/gcc/gimplify.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/gimplify.cc	Wed Jun 18 22:32:19 2025
*************** warn_switch_unreachable_and_auto_init_r
*** 2129,2135 ****
  	  const char *var_name_str = TREE_STRING_POINTER (var_name);
  
  	  warning_at (gimple_location (stmt), OPT_Wtrivial_auto_var_init,
! 		      "%qs cannot be initialized with"
  		      "%<-ftrivial-auto-var_init%>",
  		      var_name_str);
  	  break;
--- 2129,2135 ----
  	  const char *var_name_str = TREE_STRING_POINTER (var_name);
  
  	  warning_at (gimple_location (stmt), OPT_Wtrivial_auto_var_init,
! 		      "%qs cannot be initialized with "
  		      "%<-ftrivial-auto-var_init%>",
  		      var_name_str);
  	  break;
diff -Nrcpad gcc-12-20250611/gcc/ipa-icf-gimple.cc gcc-12-20250618/gcc/ipa-icf-gimple.cc
*** gcc-12-20250611/gcc/ipa-icf-gimple.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/ipa-icf-gimple.cc	Wed Jun 18 22:32:19 2025
*************** func_checker::compare_asm_inputs_outputs
*** 421,427 ****
  	return false;
  
        if (!compare_operand (TREE_VALUE (t1), TREE_VALUE (t2),
! 			    get_operand_access_type (map, t1)))
  	return return_false ();
  
        tree p1 = TREE_PURPOSE (t1);
--- 421,429 ----
  	return false;
  
        if (!compare_operand (TREE_VALUE (t1), TREE_VALUE (t2),
! 			    get_operand_access_type (map, t1))
! 	  || !types_compatible_p (TREE_TYPE (TREE_VALUE (t1)),
! 				  TREE_TYPE (TREE_VALUE (t2))))
  	return return_false ();
  
        tree p1 = TREE_PURPOSE (t1);
*************** func_checker::compare_gimple_call (gcall
*** 667,692 ****
        || gimple_call_alloca_for_var_p (s1) != gimple_call_alloca_for_var_p (s2))
      return false;
  
!   if (gimple_call_internal_p (s1)
!       && gimple_call_internal_fn (s1) != gimple_call_internal_fn (s2))
!     return false;
! 
!   tree fntype1 = gimple_call_fntype (s1);
!   tree fntype2 = gimple_call_fntype (s2);
! 
!   /* For direct calls we verify that types are compatible so if we matched
!      callees, callers must match, too.  For indirect calls however verify
!      function type.  */
!   if (!gimple_call_fndecl (s1))
      {
!       if ((fntype1 && !fntype2)
! 	  || (!fntype1 && fntype2)
! 	  || (fntype1 && !types_compatible_p (fntype1, fntype2)))
! 	return return_false_with_msg ("call function types are not compatible");
      }
  
!   if (fntype1 && fntype2 && comp_type_attributes (fntype1, fntype2) != 1)
!     return return_false_with_msg ("different fntype attributes");
  
    tree chain1 = gimple_call_chain (s1);
    tree chain2 = gimple_call_chain (s2);
--- 669,705 ----
        || gimple_call_alloca_for_var_p (s1) != gimple_call_alloca_for_var_p (s2))
      return false;
  
!   unsigned check_arg_types_from = 0;
!   if (gimple_call_internal_p (s1))
      {
!       if (gimple_call_internal_fn (s1) != gimple_call_internal_fn (s2))
! 	return false;
      }
+   else
+     {
+       tree fntype1 = gimple_call_fntype (s1);
+       tree fntype2 = gimple_call_fntype (s2);
+       if (!types_compatible_p (fntype1, fntype2))
+ 	return return_false_with_msg ("call function types are not compatible");
  
!       if (comp_type_attributes (fntype1, fntype2) != 1)
! 	return return_false_with_msg ("different fntype attributes");
! 
!       check_arg_types_from = gimple_call_num_args (s1);
!       if (!prototype_p (fntype1) || !prototype_p (fntype2))
! 	check_arg_types_from = 0;
!       else if (stdarg_p (fntype1))
! 	{
! 	  check_arg_types_from = list_length (TYPE_ARG_TYPES (fntype1));
! 	  if (stdarg_p (fntype2))
! 	    {
! 	      unsigned n = list_length (TYPE_ARG_TYPES (fntype2));
! 	      check_arg_types_from = MIN (check_arg_types_from, n);
! 	    }
! 	}
!       else if (stdarg_p (fntype2))
! 	check_arg_types_from = list_length (TYPE_ARG_TYPES (fntype2));
!     }
  
    tree chain1 = gimple_call_chain (s1);
    tree chain2 = gimple_call_chain (s2);
*************** func_checker::compare_gimple_call (gcall
*** 704,709 ****
--- 717,726 ----
  
        if (!compare_operand (t1, t2, get_operand_access_type (&map, t1)))
  	return return_false_with_msg ("GIMPLE call operands are different");
+       if (i >= check_arg_types_from
+ 	  && !types_compatible_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+ 	return return_false_with_msg ("GIMPLE call operand types are "
+ 				      "different");
      }
  
    /* Return value checking.  */
diff -Nrcpad gcc-12-20250611/gcc/loop-doloop.cc gcc-12-20250618/gcc/loop-doloop.cc
*** gcc-12-20250611/gcc/loop-doloop.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/loop-doloop.cc	Wed Jun 18 22:32:19 2025
*************** along with GCC; see the file COPYING3.
*** 36,41 ****
--- 36,42 ----
  #include "loop-unroll.h"
  #include "regs.h"
  #include "df.h"
+ #include "targhooks.h"
  
  /* This module is used to modify loops with a determinable number of
     iterations to use special low-overhead looping instructions.
*************** doloop_optimize (class loop *loop)
*** 770,775 ****
--- 771,788 ----
  
      basic_block loop_end = desc->out_edge->src;
      bool fail = bitmap_intersect_p (df_get_live_out (loop_end), modified);
+     /* iv_analysis_loop_init calls df_analyze_loop, which computes just
+        partial df for blocks of the loop only.  The above will catch if
+        any of the modified registers are use inside of the loop body, but
+        it will most likely not have accurate info on registers used
+        at the destination of the out_edge.  We call df_analyze on the
+        whole function at the start of the pass though and iterate only
+        on innermost loops or from innermost loops, so
+        live in on desc->out_edge->dest should be still unmodified from
+        the initial df_analyze.  */
+     if (!fail)
+       fail = bitmap_intersect_p (df_get_live_in (desc->out_edge->dest),
+ 				 modified);
      BITMAP_FREE (modified);
  
      if (fail)
*************** doloop_optimize_loops (void)
*** 795,801 ****
        df_live_set_all_dirty ();
      }
  
!   for (auto loop : loops_list (cfun, 0))
      doloop_optimize (loop);
  
    if (optimize == 1)
--- 808,819 ----
        df_live_set_all_dirty ();
      }
  
!   df_analyze ();
! 
!   for (auto loop : loops_list (cfun,
! 			       targetm.can_use_doloop_p
! 			       == can_use_doloop_if_innermost
! 			       ? LI_ONLY_INNERMOST : LI_FROM_INNERMOST))
      doloop_optimize (loop);
  
    if (optimize == 1)
diff -Nrcpad gcc-12-20250611/gcc/lto-cgraph.cc gcc-12-20250618/gcc/lto-cgraph.cc
*** gcc-12-20250611/gcc/lto-cgraph.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/lto-cgraph.cc	Wed Jun 18 22:32:19 2025
*************** lto_symtab_encoder_delete_node (lto_symt
*** 153,159 ****
    last_node = encoder->nodes.pop ();
    if (last_node.node != node)
      {
!       gcc_assert (encoder->map->put (last_node.node, index + 1));
  
        /* Move the last element to the original spot of NODE.  */
        encoder->nodes[index] = last_node;
--- 153,160 ----
    last_node = encoder->nodes.pop ();
    if (last_node.node != node)
      {
!       bool existed = encoder->map->put (last_node.node, index + 1);
!       gcc_assert (existed);
  
        /* Move the last element to the original spot of NODE.  */
        encoder->nodes[index] = last_node;
diff -Nrcpad gcc-12-20250611/gcc/lto-opts.cc gcc-12-20250618/gcc/lto-opts.cc
*** gcc-12-20250611/gcc/lto-opts.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/lto-opts.cc	Wed Jun 18 22:32:19 2025
*************** lto_write_options (void)
*** 82,112 ****
       subject of merging in lto-wrapper.  */
    if (!OPTION_SET_P (flag_pic) && !OPTION_SET_P (flag_pie))
      {
!        append_to_collect_gcc_options (&temporary_obstack, &first_p,
! 				      global_options.x_flag_pic == 2
! 				      ? "-fPIC"
! 				      : global_options.x_flag_pic == 1
! 				      ? "-fpic"
! 				      : global_options.x_flag_pie == 2
! 				      ? "-fPIE"
! 				      : global_options.x_flag_pie == 1
! 				      ? "-fpie"
! 				      : "-fno-pie");
      }
  
    if (!OPTION_SET_P (flag_cf_protection))
      {
!       append_to_collect_gcc_options (
! 	&temporary_obstack, &first_p,
! 	global_options.x_flag_cf_protection == CF_NONE
! 	? "-fcf-protection=none"
! 	: global_options.x_flag_cf_protection == CF_FULL
! 	? "-fcf-protection=full"
! 	: global_options.x_flag_cf_protection == CF_BRANCH
! 	? "-fcf-protection=branch"
! 	: global_options.x_flag_cf_protection == CF_RETURN
! 	? "-fcf-protection=return"
! 	: "");
      }
  
    /* If debug info is enabled append -g.  */
--- 82,113 ----
       subject of merging in lto-wrapper.  */
    if (!OPTION_SET_P (flag_pic) && !OPTION_SET_P (flag_pie))
      {
!       const char *pic = "-fno-pie";
!       if (global_options.x_flag_pie == 2)
! 	pic = "-fPIE";
!       else if (global_options.x_flag_pie == 1)
! 	pic = "-fpie";
!       else if (global_options.x_flag_pic == 2)
! 	pic = "-fPIC";
!       else if (global_options.x_flag_pic == 1)
! 	pic = "-fpic";
!       append_to_collect_gcc_options (&temporary_obstack, &first_p, pic);
      }
  
    if (!OPTION_SET_P (flag_cf_protection))
      {
!       const char *cf_protection = NULL;
!       switch (global_options.x_flag_cf_protection)
! 	{
! 	case CF_NONE: cf_protection = "-fcf-protection=none"; break;
! 	case CF_FULL: cf_protection = "-fcf-protection=full"; break;
! 	case CF_BRANCH: cf_protection = "-fcf-protection=branch"; break;
! 	case CF_RETURN: cf_protection = "-fcf-protection=return"; break;
! 	default: break;
! 	}
!       if (cf_protection)
! 	append_to_collect_gcc_options (&temporary_obstack, &first_p,
! 				       cf_protection);
      }
  
    /* If debug info is enabled append -g.  */
diff -Nrcpad gcc-12-20250611/gcc/optabs.cc gcc-12-20250618/gcc/optabs.cc
*** gcc-12-20250611/gcc/optabs.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/optabs.cc	Wed Jun 18 22:32:19 2025
*************** avoid_expensive_constant (machine_mode m
*** 1353,1360 ****
  static rtx
  expand_binop_directly (enum insn_code icode, machine_mode mode, optab binoptab,
  		       rtx op0, rtx op1,
! 		       rtx target, int unsignedp, enum optab_methods methods,
! 		       rtx_insn *last)
  {
    machine_mode xmode0 = insn_data[(int) icode].operand[1].mode;
    machine_mode xmode1 = insn_data[(int) icode].operand[2].mode;
--- 1353,1359 ----
  static rtx
  expand_binop_directly (enum insn_code icode, machine_mode mode, optab binoptab,
  		       rtx op0, rtx op1,
! 		       rtx target, int unsignedp, enum optab_methods methods)
  {
    machine_mode xmode0 = insn_data[(int) icode].operand[1].mode;
    machine_mode xmode1 = insn_data[(int) icode].operand[2].mode;
*************** expand_binop_directly (enum insn_code ic
*** 1364,1369 ****
--- 1363,1369 ----
    rtx_insn *pat;
    rtx xop0 = op0, xop1 = op1;
    bool canonicalize_op1 = false;
+   rtx_insn *last = get_last_insn ();
  
    /* If it is a commutative operator and the modes would match
       if we would swap the operands, we can save the conversions.  */
*************** expand_binop_directly (enum insn_code ic
*** 1428,1437 ****
        tmp_mode = insn_data[(int) icode].operand[0].mode;
        if (VECTOR_MODE_P (mode)
  	  && maybe_ne (GET_MODE_NUNITS (tmp_mode), 2 * GET_MODE_NUNITS (mode)))
! 	{
! 	  delete_insns_since (last);
! 	  return NULL_RTX;
! 	}
      }
    else
      tmp_mode = mode;
--- 1428,1434 ----
        tmp_mode = insn_data[(int) icode].operand[0].mode;
        if (VECTOR_MODE_P (mode)
  	  && maybe_ne (GET_MODE_NUNITS (tmp_mode), 2 * GET_MODE_NUNITS (mode)))
! 	return NULL_RTX;
      }
    else
      tmp_mode = mode;
*************** expand_binop_directly (enum insn_code ic
*** 1451,1464 ****
  			       ops[1].value, ops[2].value, mode0))
  	{
  	  delete_insns_since (last);
! 	  return expand_binop (mode, binoptab, op0, op1, NULL_RTX,
! 			       unsignedp, methods);
  	}
  
        emit_insn (pat);
        return ops[0].value;
      }
!   delete_insns_since (last);
    return NULL_RTX;
  }
  
--- 1448,1461 ----
  			       ops[1].value, ops[2].value, mode0))
  	{
  	  delete_insns_since (last);
! 	  return expand_binop_directly (icode, mode, binoptab, op0, op1,
! 					NULL_RTX, unsignedp, methods);
  	}
  
        emit_insn (pat);
        return ops[0].value;
      }
! 
    return NULL_RTX;
  }
  
*************** expand_binop (machine_mode mode, optab b
*** 1527,1535 ****
        if (icode != CODE_FOR_nothing)
  	{
  	  temp = expand_binop_directly (icode, mode, binoptab, op0, op1,
! 					target, unsignedp, methods, last);
  	  if (temp)
  	    return temp;
  	}
      }
  
--- 1524,1533 ----
        if (icode != CODE_FOR_nothing)
  	{
  	  temp = expand_binop_directly (icode, mode, binoptab, op0, op1,
! 					target, unsignedp, methods);
  	  if (temp)
  	    return temp;
+ 	  delete_insns_since (last);
  	}
      }
  
*************** expand_binop (machine_mode mode, optab b
*** 1555,1563 ****
  			       NULL_RTX, unsignedp, OPTAB_DIRECT);
  
        temp = expand_binop_directly (icode, int_mode, otheroptab, op0, newop1,
! 				    target, unsignedp, methods, last);
        if (temp)
  	return temp;
      }
  
    /* If this is a multiply, see if we can do a widening operation that
--- 1553,1562 ----
  			       NULL_RTX, unsignedp, OPTAB_DIRECT);
  
        temp = expand_binop_directly (icode, int_mode, otheroptab, op0, newop1,
! 				    target, unsignedp, methods);
        if (temp)
  	return temp;
+       delete_insns_since (last);
      }
  
    /* If this is a multiply, see if we can do a widening operation that
*************** expand_binop (machine_mode mode, optab b
*** 1621,1629 ****
  	  if (vop1)
  	    {
  	      temp = expand_binop_directly (icode, mode, otheroptab, op0, vop1,
! 					    target, unsignedp, methods, last);
  	      if (temp)
  		return temp;
  	    }
  	}
      }
--- 1620,1629 ----
  	  if (vop1)
  	    {
  	      temp = expand_binop_directly (icode, mode, otheroptab, op0, vop1,
! 					    target, unsignedp, methods);
  	      if (temp)
  		return temp;
+ 	      delete_insns_since (last);
  	    }
  	}
      }
diff -Nrcpad gcc-12-20250611/gcc/real.cc gcc-12-20250618/gcc/real.cc
*** gcc-12-20250611/gcc/real.cc	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/real.cc	Wed Jun 18 22:32:20 2025
*************** void
*** 5390,5395 ****
--- 5390,5411 ----
  get_max_float (const struct real_format *fmt, char *buf, size_t len,
  	       bool norm_max)
  {
+   if (fmt->b == 10)
+     {
+       char *p = buf;
+       for (int i = fmt->p; i; i--)
+ 	{
+ 	  *p++ = '9';
+ 	  if (i == fmt->p)
+ 	    *p++ = '.';
+ 	}
+       /* fmt->p plus 1, to account for the decimal point and fmt->emax
+ 	 minus 1 because the digits are nines, not 1.0.  */
+       sprintf (buf + fmt->p + 1, "E%d", fmt->emax - 1);
+       gcc_assert (strlen (buf) < len);
+       return;
+     }
+ 
    int i, n;
    char *p;
    bool is_ibm_extended = fmt->pnan < fmt->p;
diff -Nrcpad gcc-12-20250611/gcc/testsuite/ChangeLog gcc-12-20250618/gcc/testsuite/ChangeLog
*** gcc-12-20250611/gcc/testsuite/ChangeLog	Wed Jun 11 22:32:24 2025
--- gcc-12-20250618/gcc/testsuite/ChangeLog	Wed Jun 18 22:32:20 2025
***************
*** 1,3 ****
--- 1,400 ----
+ 2025-06-17  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/116418
+ 	* g++.dg/eh/pr84968.C: No longer expect an ahead of time diagnostic
+ 	for the statement-expresssion.  Instantiate the template and expect
+ 	an incomplete type error instead.
+ 	* g++.dg/ext/stmtexpr26.C: New test.
+ 
+ 2025-06-17  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2025-06-12  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR middle-end/117811
+ 	PR testsuite/52641
+ 	* gcc.dg/torture/pr117811.c: Fix for int < 32 bit.
+ 
+ 2025-06-17  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2025-03-25  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR middle-end/117811
+ 	* gcc.dg/torture/pr117811.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/120480
+ 	* gcc.dg/pr120480.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/119834
+ 	* g++.target/s390/pr119834.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-02-28  Jakub Jelinek  <jakub@redhat.com>
+ 		    Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/113976
+ 	* g++.dg/cpp1y/var-templ87.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/118623
+ 	* gcc.c-torture/execute/pr118623.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/113994
+ 	PR rtl-optimization/116799
+ 	* gcc.c-torture/execute/pr116799.c: New test.
+ 	* g++.dg/torture/pr113994.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-12  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116636
+ 	* g++.dg/warn/deprecated-19.C: New test.
+ 
+ 2025-06-13  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-05  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/116606
+ 	* g++.dg/ext/attr-unavailable-13.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-02-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR sanitizer/110676
+ 	* gcc.dg/asan/pr110676.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libfortran/120196
+ 	* gfortran.dg/pr120196.f90: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/120191
+ 	* gfortran.dg/pr120191_3.f90: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/120191
+ 	* gfortran.dg/pr120191_2.f90: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 		    Daniil Kochergin  <daniil2472s@gmail.com>
+ 		    Tobias Burnus  <tburnus@baylibre.com>
+ 
+ 	PR fortran/120191
+ 	* gfortran.dg/pr120191_1.f90: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/119327
+ 	* g++.dg/opt/pr119327.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/119582
+ 	* gcc.dg/asan/pr119582.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-01  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/119291
+ 	* gcc.c-torture/execute/pr119291.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-03-11  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/119183
+ 	* gcc.dg/pr119183.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-03-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/98533
+ 	PR c++/119123
+ 	* g++.dg/cpp0x/pr98533.C: New test.
+ 	* g++.dg/cpp0x/pr119123.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/119000
+ 	* c-c++-common/gomp/pr119000.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/118915
+ 	* gcc.c-torture/execute/pr118915.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/118776
+ 	* gcc.target/i386/pr118776.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/118763
+ 	* g++.dg/asan/pr118763.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/118661
+ 	* g++.dg/cpp0x/constexpr-volatile4.C: New test.
+ 	* g++.dg/cpp0x/constexpr-union9.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-31  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR ipa/117432
+ 	* gcc.c-torture/execute/pr117432.c: New test.
+ 	* gcc.target/i386/pr117432.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-25  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117827
+ 	* g++.dg/init/array66.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/114877
+ 	* gcc.dg/torture/builtin-frexp-1.c: Add -Wmaybe-uninitialized as
+ 	dg-additional-options.
+ 	(bar): New function.
+ 	(TESTIT_FREXP2): Rework the macro so that it doesn't test whether
+ 	nothing has been stored to what the second argument points to, but
+ 	instead that something has been stored there, whatever it is.
+ 	(main): Temporarily don't enable the nan tests for -O0.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/118509
+ 	* g++.dg/expr/pmf-4.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-01-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117825
+ 	* g++.dg/warn/pr117825.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-12-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116108
+ 	* g++.dg/cpp1z/class-deduction117.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117745
+ 	* gcc.dg/pr117745.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/102674
+ 	* gcc.dg/dfp/pr102674.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/43374
+ 	* gcc.dg/dfp/pr43374.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117317
+ 	* g++.dg/cpp2a/pr117317-1.C: New test.
+ 	* g++.dg/cpp2a/pr117317-2.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/117296
+ 	* gcc.target/i386/pr117296.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/117259
+ 	* g++.dg/ubsan/pr117259.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c/117230
+ 	* c-c++-common/Wsizeof-pointer-memaccess5.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-20  Uros Bizjak  <ubizjak@gmail.com>
+ 		    Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116738
+ 	* gcc.target/i386/sse-pr116738.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116678
+ 	* g++.dg/warn/deprecated-20.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-07-18  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* c-c++-common/torture/builtin-clear-padding-3.c (main): Compare
+ 	s2.b.a against -1 rather than (char) -1.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/116449
+ 	* g++.dg/ubsan/pr116449.C: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-08-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/116287
+ 	* gcc.target/i386/bmi-pr116287.c: New test.
+ 	* gcc.target/i386/bmi2-pr116287.c: New test.
+ 	* gcc.target/i386/tbm-pr116287.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-07-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/116034
+ 	PR testsuite/116061
+ 	* gcc.dg/pr116034.c (g): Change type from int to unsigned short.
+ 	(foo): Guard memmove call on __SIZEOF_SHORT__ == 2.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-07-23  Jakub Jelinek  <jakub@redhat.com>
+ 		    Andrew Pinski  <quic_apinski@quicinc.com>
+ 
+ 	PR tree-optimization/116034
+ 	* gcc.dg/pr116034.c: New test.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-07-17  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/115527
+ 	* c-c++-common/torture/builtin-clear-padding-1.c: Add dg-do run
+ 	directive.
+ 	* c-c++-common/torture/builtin-clear-padding-2.c: Likewise.
+ 	* c-c++-common/torture/builtin-clear-padding-3.c: Likewise.
+ 	* c-c++-common/torture/builtin-clear-padding-4.c: Likewise.
+ 	* c-c++-common/torture/builtin-clear-padding-5.c: Likewise.
+ 	* c-c++-common/torture/builtin-clear-padding-6.c: New test.
+ 
  2025-06-10  Martin Jambor  <mjambor@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c gcc-12-20250618/gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/c-c++-common/Wsizeof-pointer-memaccess5.c	Wed Jun 18 22:32:21 2025
***************
*** 0 ****
--- 1,29 ----
+ /* PR c/117230 */
+ /* { dg-do compile } */
+ /* { dg-options "-Wsizeof-pointer-memaccess" } */
+ 
+ typedef int V __attribute__((vector_size (sizeof (int))));
+ 
+ void
+ foo (V *a, char *b)
+ {
+   __builtin_memcpy (b, a, sizeof (a));		/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcpy\[^\n\r]*' call is the same expression as the source; did you mean to dereference it\\\?" } */
+ }
+ 
+ void
+ bar (V *a, char *b)
+ {
+   __builtin_memcpy (a, b, sizeof (a));		/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcpy\[^\n\r]*' call is the same expression as the destination; did you mean to dereference it\\\?" } */
+ }
+ 
+ int
+ baz (V *a, char *b)
+ {
+   return __builtin_memcmp (a, b, sizeof (a));	/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcmp\[^\n\r]*' call is the same expression as the first source; did you mean to dereference it\\\?" } */
+ }
+ 
+ int
+ qux (V *a, char *b)
+ {
+   return __builtin_memcmp (b, a, sizeof (a));	/* { dg-warning "argument to 'sizeof' in '\[^\n\r]*__builtin_memcmp\[^\n\r]*' call is the same expression as the second source; did you mean to dereference it\\\?" } */
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/gomp/pr119000.c gcc-12-20250618/gcc/testsuite/c-c++-common/gomp/pr119000.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/gomp/pr119000.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/c-c++-common/gomp/pr119000.c	Wed Jun 18 22:32:21 2025
***************
*** 0 ****
--- 1,16 ----
+ /* PR c/119000 */
+ /* { dg-do compile } */
+ /* { dg-options "-fopenmp -Wunused-but-set-variable" } */
+ 
+ int
+ foo (void)
+ {
+   int a = 1, b, c = 1, v;	/* { dg-warning "variable 'b' set but not used" } */
+   #pragma omp atomic write
+   v = a;
+   #pragma omp atomic read
+   b = v;
+   #pragma omp atomic update
+   v += c;
+   return v;
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c	Wed Jun 11 22:32:26 2025
--- gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c	Wed Jun 18 22:32:21 2025
***************
*** 1,4 ****
--- 1,5 ----
  /* PR libstdc++/88101 */
+ /* { dg-do run } */
  
  int i1, i2;
  long double l1, l2;
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c	Wed Jun 11 22:32:26 2025
--- gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c	Wed Jun 18 22:32:21 2025
***************
*** 1,4 ****
--- 1,5 ----
  /* PR libstdc++/88101 */
+ /* { dg-do run } */
  
  typedef int T __attribute__((aligned (16384)));
  struct S { char a; short b; long double c; T d; T e; long long f; };
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c	Wed Jun 11 22:32:26 2025
--- gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c	Wed Jun 18 22:32:21 2025
***************
*** 1,4 ****
--- 1,5 ----
  /* PR libstdc++/88101 */
+ /* { dg-do run } */
  
  union V { char a; signed char b; unsigned char c; };
  struct T { char a; int b; union V c; };
*************** main ()
*** 33,39 ****
    foo (&s1, 0);
    foo (&s2, 0);
    __builtin_clear_padding (&s2);
!   if (s2.b.a != (char) -1)
      __builtin_abort ();
    __builtin_clear_padding (&s2.b.a);
    __builtin_memset (&s2.b.a + 1, 0, sizeof (union U) - sizeof (s2.b.a));
--- 34,40 ----
    foo (&s1, 0);
    foo (&s2, 0);
    __builtin_clear_padding (&s2);
!   if (s2.b.a != -1)
      __builtin_abort ();
    __builtin_clear_padding (&s2.b.a);
    __builtin_memset (&s2.b.a + 1, 0, sizeof (union U) - sizeof (s2.b.a));
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c	Wed Jun 11 22:32:26 2025
--- gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c	Wed Jun 18 22:32:21 2025
***************
*** 1,6 ****
- /* { dg-require-effective-target alloca } */
- 
  /* PR libstdc++/88101 */
  
  struct S { char a; short b; char c; };
  
--- 1,6 ----
  /* PR libstdc++/88101 */
+ /* { dg-do run } */
+ /* { dg-require-effective-target alloca } */
  
  struct S { char a; short b; char c; };
  
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c	Wed Jun 11 22:32:26 2025
--- gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c	Wed Jun 18 22:32:21 2025
***************
*** 1,4 ****
--- 1,5 ----
  /* PR libstdc++/88101 */
+ /* { dg-do run } */
  
  struct S { char a; short b; char c; } s1[24], s2[24];
  struct T { char a; long long b; char c; struct S d[3]; long long e; char f; } t1, t2;
diff -Nrcpad gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c
*** gcc-12-20250611/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c	Wed Jun 18 22:32:21 2025
***************
*** 0 ****
--- 1,28 ----
+ /* PR middle-end/115527 */
+ /* { dg-do run } */
+ 
+ struct T { struct S { double a; signed char b; long c; } d[3]; int e; } t1, t2;
+ 
+ __attribute__((noipa)) void
+ foo (struct T *t)
+ {
+   for (int i = 0; i < 3; ++i)
+     {
+       t->d[i].a = 1. + 3 * i;
+       t->d[i].b = 2 + 3 * i;
+       t->d[i].c = 3 + 3 * i;
+     }
+   t->e = 10;
+ }
+ 
+ int
+ main ()
+ {
+   __builtin_memset (&t2, -1, sizeof (t2));
+   foo (&t1);
+   foo (&t2);
+   __builtin_clear_padding (&t2);
+   if (__builtin_memcmp (&t1, &t2, sizeof (t1)))
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/asan/pr118763.C gcc-12-20250618/gcc/testsuite/g++.dg/asan/pr118763.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/asan/pr118763.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/asan/pr118763.C	Wed Jun 18 22:32:21 2025
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/118763
+ // { dg-do run }
+ 
+ int *
+ foo (bool x)
+ {
+   return new int (({ if (x) return nullptr; 1; }));
+ }
+ 
+ int
+ main ()
+ {
+   delete foo (true);
+   delete foo (false);
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/constexpr-union9.C	Wed Jun 18 22:32:21 2025
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/118661
+ // { dg-do compile { target c++11 } }
+ 
+ using nullptr_t = decltype (nullptr);
+ union U { int i; nullptr_t n; };
+ constexpr U u = { 42 };
+ static_assert (u.n == nullptr, "");
+ 
+ #if __cplusplus >= 201402L
+ constexpr nullptr_t
+ foo ()
+ {
+   union U { int i; nullptr_t n; } u = { 42 };
+   return u.n;
+ }
+ #endif
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/constexpr-volatile4.C	Wed Jun 18 22:32:21 2025
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/118661
+ // { dg-do compile { target c++11 } }
+ 
+ using nullptr_t = decltype (nullptr);
+ constexpr volatile nullptr_t a = {};
+ constexpr nullptr_t b = a;
+ 
+ constexpr nullptr_t
+ foo ()
+ {
+ #if __cplusplus >= 201402L
+   volatile nullptr_t c = {};
+   return c;
+ #else
+   return nullptr;
+ #endif
+ }
+ 
+ static_assert (b == nullptr, "");
+ static_assert (foo () == nullptr, "");
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/pr119123.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/pr119123.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/pr119123.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/pr119123.C	Wed Jun 18 22:32:23 2025
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/119123
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-O2 -g" }
+ 
+ struct S {
+   template <typename> void foo (int = [] {}) const;
+ };
+ struct T {
+   static void bar (const S &);
+ };
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/pr98533.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/pr98533.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp0x/pr98533.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp0x/pr98533.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,25 ----
+ // PR c++/98533
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-g" }
+ 
+ class IR;
+ struct Pass {
+   explicit Pass(IR *ir) : ir_(ir) {}
+   virtual ~Pass() = default;
+   IR *ir_ {nullptr};
+ };
+ struct PassManager {
+   template <typename T> void RunPass() { T pass(ir_); }
+   IR *ir_ {nullptr};
+ };
+ struct IR final {
+   template <typename T> void RunPass() { pass_manager_.RunPass<T>(); }
+   PassManager pass_manager_;
+ };
+ struct ThePass : Pass {
+   explicit ThePass(IR *ir) : Pass(ir) {}
+   ThePass(const ThePass &) = delete;
+   template <typename Func = bool (*)(void *)> void Bar(void *inst, Func func = [](void *) {});
+ };
+ 
+ void foo(IR *ir) { ir->RunPass<ThePass>(); }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp1y/var-templ87.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp1y/var-templ87.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp1y/var-templ87.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp1y/var-templ87.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,43 ----
+ // PR c++/113976
+ // { dg-do run { target c++14 } }
+ 
+ int
+ foo ()
+ {
+   return 42;
+ }
+ 
+ template <int N>
+ const int a = foo ();
+ const int *b = &a <0>;
+ template <int N>
+ const int c = foo ();
+ template const int c <0>;
+ template <int N>
+ const int d = foo ();
+ const int *e = &d <0>;
+ template const int d <0>;
+ template <int N>
+ const int f = foo ();
+ template const int f <0>;
+ const int *g = &f <0>;
+ struct S { int a, b; };
+ template <int N>
+ const S h = { 42, foo () };
+ const S *i = &h <0>;
+ template <int N>
+ const S j =  { 42, foo () };
+ template const S j <0>;
+ template <int N>
+ const S k =  { 42, foo () };
+ const S *l = &k <0>;
+ template const S k <0>;
+ template <int N>
+ const S m =  { 42, foo () };
+ template const S m <0>;
+ const S *n = &m <0>;
+ 
+ int
+ main ()
+ {
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp1z/class-deduction117.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp1z/class-deduction117.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp1z/class-deduction117.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp1z/class-deduction117.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/116108
+ // { dg-do compile { target c++11 } }
+ template <class T>
+ struct S { const S s = 1; };	// { dg-error "field 's' has incomplete type 'const S<T>'" }
+ S t{2};				// { dg-error "invalid use of template-name 'S' without an argument list" "" { target c++14_down } }
+ // { dg-error "class template argument deduction failed" "" { target c++17 } .-1 }
+ // { dg-error "no matching function for call to 'S\\\(int\\\)'" "" { target c++17 } .-2 }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda6.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda6.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda6.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda6.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/114303
+ // { dg-do compile { target c++17 } }
+ 
+ struct A { static constexpr bool value = true; };
+ 
+ int main() {
+   [](auto x1) {
+     return [&](auto) {
+       return [&](auto x3) {
+         if constexpr (decltype(x3)::value) {
+           static_assert(decltype(x1)::value);
+         }
+       }(A{});
+     }(0);
+   }(A{});
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp1z/nontype7.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp1z/nontype7.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp1z/nontype7.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp1z/nontype7.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/117792
+ // { dg-do compile { target c++17 } }
+ 
+ template<const int& N, class T>
+ void f(T) { }
+ 
+ template<int N, class T>
+ void f(...) = delete;
+ 
+ template<const int& N> int v;
+ 
+ template<const int& N> struct A { };
+ 
+ template<class T>
+ void g() {
+   static constexpr int local_static = 0;
+   auto x = v<local_static>; // OK
+   A<local_static> y; // OK
+   f<local_static>(0); // ICE
+ }
+ 
+ template void g<int>();
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp2a/pr117317-1.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/117317
+ // { dg-do compile { target c++20 } }
+ 
+ struct C {
+   constexpr bool operator== (const C &b) const { return foo (); }
+   constexpr virtual bool foo () const = 0;
+ };
+ class A : public C {};
+ class B : public C {};
+ template <int>
+ struct D : A, B
+ {
+   constexpr bool operator== (const D &) const = default;
+   constexpr bool foo () const override { return true; }
+ };
+ struct E : D<1> {};
+ constexpr E e;
+ constexpr E f;
+ static_assert (e == f, "");
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/cpp2a/pr117317-2.C gcc-12-20250618/gcc/testsuite/g++.dg/cpp2a/pr117317-2.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/cpp2a/pr117317-2.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/cpp2a/pr117317-2.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/117317
+ // { dg-do compile { target c++20 } }
+ 
+ struct C {
+   constexpr virtual bool foo () const = 0;
+ };
+ struct A : public C {};
+ struct B : public C {};
+ template <int>
+ struct D : A, B
+ {
+   constexpr bool foo () const override { return true; }
+ };
+ constexpr D<0> d;
+ static_assert (d.foo (), "");
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/eh/pr84968.C gcc-12-20250618/gcc/testsuite/g++.dg/eh/pr84968.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/eh/pr84968.C	Wed Jun 11 22:32:27 2025
--- gcc-12-20250618/gcc/testsuite/g++.dg/eh/pr84968.C	Wed Jun 18 22:32:24 2025
*************** struct S {
*** 9,15 ****
    void a()
      try {
      } catch (int ()
! 	     noexcept (({ union b a; true; }))) // { dg-error "constant" }
    {
    }
  };
--- 9,17 ----
    void a()
      try {
      } catch (int ()
! 	     noexcept (({ union b a; true; }))) // { dg-error "'b a' has incomplete type" }
    {
    }
  };
+ 
+ template void S::a<int>(); // { dg-message "required from here" }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/expr/pmf-4.C gcc-12-20250618/gcc/testsuite/g++.dg/expr/pmf-4.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/expr/pmf-4.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/expr/pmf-4.C	Wed Jun 18 22:32:24 2025
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/118509
+ // { dg-do run }
+ // { dg-options "-Wall -O2" }
+ 
+ struct A { void foo () { a = 1; } int a; A () : a (0) {} };
+ struct B : virtual A {};
+ typedef void (A::*C) ();
+ 
+ __attribute__((noipa)) void
+ foo (C x, B *y)
+ {
+   (y->*x) ();
+ }
+ 
+ int
+ main ()
+ {
+   B b;
+   foo (&A::foo, &b);
+   if (b.a != 1)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/ext/attr-unavailable-13.C gcc-12-20250618/gcc/testsuite/g++.dg/ext/attr-unavailable-13.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/ext/attr-unavailable-13.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/ext/attr-unavailable-13.C	Wed Jun 18 22:32:25 2025
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/116606
+ // { dg-do compile }
+ 
+ struct C {
+     __attribute__((unavailable)) virtual void f() {}
+ };
+ 
+ C c;
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/ext/stmtexpr26.C gcc-12-20250618/gcc/testsuite/g++.dg/ext/stmtexpr26.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/ext/stmtexpr26.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/ext/stmtexpr26.C	Wed Jun 18 22:32:25 2025
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/116418
+ // { dg-do compile { target c++14 } }
+ // { dg-options "" }
+ 
+ void foo ();
+ template <typename>
+ void bar ()
+ {
+   decltype(auto) v = ({ foo (); 3; });
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/init/array66.C gcc-12-20250618/gcc/testsuite/g++.dg/init/array66.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/init/array66.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/init/array66.C	Wed Jun 18 22:32:25 2025
***************
*** 0 ****
--- 1,33 ----
+ // PR c++/117827
+ // { dg-do run { target c++11 } }
+ 
+ struct C {
+   int c;
+   static int d, e;
+   C () : c (0) { ++d; }
+   C (const C &) = delete;
+   C &operator= (const C &) = delete;
+   ~C () { ++e; }
+ };
+ int C::d, C::e;
+ 
+ C *
+ foo (C *p)
+ {
+   delete[] p;
+   throw 1;
+ }
+ 
+ int
+ main ()
+ {
+   try
+     {
+       foo (new C[1] {});
+     }
+   catch (...)
+     {
+     }
+   if (C::d != C::e)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/opt/pr119327.C gcc-12-20250618/gcc/testsuite/g++.dg/opt/pr119327.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/opt/pr119327.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/opt/pr119327.C	Wed Jun 18 22:32:25 2025
***************
*** 0 ****
--- 1,16 ----
+ // PR target/119327
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Os" }
+ 
+ #pragma GCC optimize "fp-contract=off"
+ 
+ template <class T>
+ void
+ foo (T f)
+ {
+   f ();
+ }
+ 
+ struct S {
+   S () { [] {}; foo ([] __attribute__((always_inline)) {}); }
+ } s;
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/template/access42.C gcc-12-20250618/gcc/testsuite/g++.dg/template/access42.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/template/access42.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/template/access42.C	Wed Jun 18 22:32:26 2025
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/116320
+ // { dg-do compile { target c++11 } }
+ 
+ template<class T> struct C;
+ template<class T> using C_ptr = C<T>*;
+ 
+ struct B { int m; using B_typedef = B; };
+ 
+ template<class T>
+ struct C : B {
+   void f(C_ptr<T> c) {
+     c->B::m;
+     c->B_typedef::m;
+   }
+ };
+ 
+ template struct C<int>;
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/torture/pr113994.C gcc-12-20250618/gcc/testsuite/g++.dg/torture/pr113994.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/torture/pr113994.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/torture/pr113994.C	Wed Jun 18 22:32:26 2025
***************
*** 0 ****
--- 1,31 ----
+ // PR rtl-optimization/113994
+ // { dg-do run }
+ 
+ #include <string>
+ 
+ void
+ foo (const std::string &x, size_t &y, std::string &z)
+ {
+   size_t w = x.find (']');
+   if (w >= x.size ())
+     return;
+   else if (w == 1)
+     y = std::string::npos;
+   while (++w < x.size () && x[w] == u'.')
+     ;
+   z = x.substr (w);
+ }
+ 
+ __attribute__((noipa)) void
+ bar ()
+ {
+ }
+ 
+ int
+ main ()
+ {
+   size_t y = 0;
+   std::string z;
+   foo ("[0]", y, z);
+   bar ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/ubsan/pr116449.C gcc-12-20250618/gcc/testsuite/g++.dg/ubsan/pr116449.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/ubsan/pr116449.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/ubsan/pr116449.C	Wed Jun 18 22:32:27 2025
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/116449
+ // { dg-do compile }
+ // { dg-options "-O2 -Wall -fsanitize=undefined" }
+ 
+ struct C { void foo (int); void bar (); int c[16]; };
+ typedef void (C::*P) ();
+ struct D { P d; };
+ static D e[1] = { { &C::bar } };
+ 
+ void
+ C::foo (int x)
+ {
+   (this->*e[c[x]].d) ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/ubsan/pr117259.C gcc-12-20250618/gcc/testsuite/g++.dg/ubsan/pr117259.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/ubsan/pr117259.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/ubsan/pr117259.C	Wed Jun 18 22:32:27 2025
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/117259
+ // { dg-do compile }
+ // { dg-options "-Wuninitialized -fsanitize=undefined" }
+ 
+ struct A { void foo () {} };
+ struct B { void (A::*b) (); B (void (A::*x) ()) : b(x) {}; };
+ const B c[1] = { &A::foo };
+ 
+ void
+ foo (A *x, int y)
+ {
+   (x->*c[y].b) ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/warn/deprecated-19.C gcc-12-20250618/gcc/testsuite/g++.dg/warn/deprecated-19.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/warn/deprecated-19.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/warn/deprecated-19.C	Wed Jun 18 22:32:27 2025
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/116636
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-pedantic -Wdeprecated" }
+ 
+ struct A {
+   virtual int foo () = 0;
+ };
+ struct B : virtual A {
+   [[deprecated]] int foo () { return 0; }	// { dg-message "declared here" }
+ };
+ struct C : virtual A {
+   [[gnu::unavailable]] int foo () { return 0; }	// { dg-message "declared here" }
+ };
+ 
+ void
+ bar ()
+ {
+   B b;
+   b.foo ();					// { dg-warning "'virtual int B::foo\\\(\\\)' is deprecated" }
+   C c;
+   c.foo ();					// { dg-error "'virtual int C::foo\\\(\\\)' is unavailable" }
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/warn/deprecated-20.C gcc-12-20250618/gcc/testsuite/g++.dg/warn/deprecated-20.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/warn/deprecated-20.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/warn/deprecated-20.C	Wed Jun 18 22:32:27 2025
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/116678
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-Os -pedantic" }
+ 
+ struct S
+ {
+   [[deprecated]] S () { s = 1; }	// { dg-bogus "'S::S\\\(\\\)' is deprecated" }
+   S (int x) { s = x; }
+   ~S () {}
+   int s;
+ };
+ 
+ int
+ main ()
+ {
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.dg/warn/pr117825.C gcc-12-20250618/gcc/testsuite/g++.dg/warn/pr117825.C
*** gcc-12-20250611/gcc/testsuite/g++.dg/warn/pr117825.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.dg/warn/pr117825.C	Wed Jun 18 22:32:27 2025
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/117825
+ // { dg-do compile { target c++17 } }
+ // { dg-options "-Wformat -Wformat-security" }
+ 
+ __attribute__((format (printf, 1, 2)))
+ int fails (const char *, ...) { return 0; }
+ 
+ template <auto func, typename... Args>
+ auto wrap (Args... args) -> decltype (func (args...))
+ {
+   return func (args...);	// { dg-warning "format not a string literal and no format arguments" }
+ }
+ 
+ int
+ main ()
+ {
+   wrap<fails> ("Test!");
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/g++.target/s390/pr119834.C gcc-12-20250618/gcc/testsuite/g++.target/s390/pr119834.C
*** gcc-12-20250611/gcc/testsuite/g++.target/s390/pr119834.C	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/g++.target/s390/pr119834.C	Wed Jun 18 22:32:29 2025
***************
*** 0 ****
--- 1,76 ----
+ // PR target/119834
+ // { dg-do compile { target c++11 } }
+ // { dg-options "-O2 -march=z900" }
+ 
+ int *a;
+ struct A;
+ struct B {
+   A begin ();
+   A end ();
+   operator bool * ();
+   void operator++ ();
+ };
+ template <typename T>
+ auto operator| (int, T x) -> decltype (x (0));
+ struct A : B { bool a; };
+ struct C { A operator () (int); };
+ enum D {} d;
+ int e;
+ void foo ();
+ struct E {
+   template <typename T>
+   T *garply ()
+   {
+     if (d)
+       return 0;
+     if (e)
+       foo ();
+     return reinterpret_cast<T *> (f);
+   }
+   template <typename>
+   void bar (long x, bool)
+   {
+     if (&g - f)
+       __builtin_memset (a, 0, x);
+     f += x;
+   }
+   template <typename T>
+   T *baz (T *x, long y, bool z = true)
+   {
+     if (d)
+       return nullptr;
+     bar<T> ((char *)x + y - f, z);
+     return x;
+   }
+   template <typename T>
+   void qux (T x) { baz (x, x->j); }
+   char *f, g;
+ } *h;
+ struct F {
+   template <typename T>
+   int corge (T x) { x.freddy (this); return 0; }
+   template <typename T>
+   int boo (T x) { corge (x); return 0; }
+ } i;
+ template <typename T>
+ struct G {
+   template <typename U> friend T operator+ (U, G);
+   template <typename U>
+   void waldo (F *x, G y, U z) { x->boo (z + y); }
+   template <typename... Ts>
+   void plugh (E *y, Ts... z) { T *x = y->garply<T> (); x->thud (y, z...); }
+ };
+ template <typename T> using H = G<T>;
+ struct I {
+   static constexpr unsigned j = 2;
+   void thud (E *x, A y) { x->qux (this); for (auto g : y) ; }
+ };
+ H<I> k;
+ struct J {
+   void freddy (F *) { C a; auto b = 0 | a; k.plugh (h, b); }
+ };
+ H<J> l;
+ struct K {
+   void freddy () { l.waldo (&i, l, this); }
+ };
+ void grault () { K m; m.freddy (); }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr116799.c gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr116799.c
*** gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr116799.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr116799.c	Wed Jun 18 22:32:30 2025
***************
*** 0 ****
--- 1,41 ----
+ /* PR rtl-optimization/116799 */
+ 
+ const char *l;
+ 
+ __attribute__((noipa)) void
+ foo (const char *x, const char *y, int z)
+ {
+   if (x != l + 1 || y != x || z)
+     __builtin_abort ();
+ }
+ 
+ __attribute__((noipa)) void
+ bar (const char *x, char *v)
+ {
+   const char *w = x + __builtin_strlen (x);
+ 
+   while (x[0] == '*' && x < w - 1)
+     x++;
+ 
+   const char *y = w - 1;
+   int z = 1;
+   if (y >= x)
+     {
+       while (y - x > 0 && *y == '*')
+ 	y--;
+       z = 0;
+     }
+   int i = 0;
+   if (z)
+     v[i++] = 'a';
+   v[i] = 'b';
+   foo (x, y, z);
+ }
+ 
+ int
+ main ()
+ {
+   char v[2] = { 0 };
+   l = "**";
+   bar (l, v);
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr117432.c gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr117432.c
*** gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr117432.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr117432.c	Wed Jun 18 22:32:30 2025
***************
*** 0 ****
--- 1,41 ----
+ /* PR ipa/117432 */
+ /* { dg-additional-options "-std=gnu2x" } */
+ 
+ #include <stdarg.h>
+ 
+ long long r;
+ 
+ __attribute__((noipa)) void
+ baz (int tag, ...)
+ {
+   va_list ap;
+   va_start (ap, tag);
+   if (!r)
+     r = va_arg (ap, long long);
+   else
+     r = va_arg (ap, int);
+   va_end (ap);
+ }
+ 
+ void
+ foo (void)
+ {
+   baz (1, -1, 0);
+ }
+ 
+ void
+ bar (void)
+ {
+   baz (1, -1LL, 0);
+ }
+ 
+ int
+ main ()
+ {
+   bar ();
+   if (r != -1LL)
+     __builtin_abort ();
+   foo ();
+   if (r != -1)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr118623.c gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr118623.c
*** gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr118623.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr118623.c	Wed Jun 18 22:32:30 2025
***************
*** 0 ****
--- 1,23 ----
+ /* PR target/118623 */
+ 
+ static int
+ foo (int x, int y)
+ {
+   int a = 1 << x;
+   if (y & a)
+     return 0;
+   return 5;
+ }
+ 
+ __attribute__((noipa)) void
+ bar (int x)
+ {
+   if (((foo (x - 50, x) + x + x) & 1) == 0)
+     __builtin_abort ();
+ }
+ 
+ int
+ main ()
+ {
+   bar (63);
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr118915.c gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr118915.c
*** gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr118915.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr118915.c	Wed Jun 18 22:32:30 2025
***************
*** 0 ****
--- 1,22 ----
+ /* PR tree-optimization/118915 */
+ 
+ int a;
+ 
+ int
+ foo (int c, int d, int e, int f)
+ {
+   if (!d || !e)
+     return -22;
+   if (c > 16)
+     return -22;
+   if (!f)
+     return -22;
+   return 2;
+ }
+ 
+ int
+ main ()
+ {
+   if (foo (a + 21, a + 6, a + 34, a + 26) != -22)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr119291.c gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr119291.c
*** gcc-12-20250611/gcc/testsuite/gcc.c-torture/execute/pr119291.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.c-torture/execute/pr119291.c	Wed Jun 18 22:32:30 2025
***************
*** 0 ****
--- 1,33 ----
+ /* PR rtl-optimization/119291 */
+ 
+ int a;
+ long c;
+ 
+ __attribute__((noipa)) void
+ foo (int x)
+ {
+   if (x != 0)
+     __builtin_abort ();
+   a = 42;
+ }
+ 
+ int
+ main ()
+ {
+   int e = 1;
+ lab:
+   if (a < 2)
+     {
+       int b = e;
+       _Bool d = a != 0;
+       _Bool f = b != 0;
+       unsigned long g = -(d & f);
+       unsigned long h = c & g;
+       unsigned long i = ~c;
+       e = -(i & h);
+       c = e != 0;
+       a = ~e + b;
+       foo (e);
+       goto lab;
+     }
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/asan/pr110676.c gcc-12-20250618/gcc/testsuite/gcc.dg/asan/pr110676.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/asan/pr110676.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/asan/pr110676.c	Wed Jun 18 22:32:31 2025
***************
*** 0 ****
--- 1,14 ----
+ /* PR sanitizer/110676 */
+ /* { dg-do run } */
+ /* { dg-skip-if "" { *-*-* } { "*" } { "-O0" } } */
+ /* { dg-shouldfail "asan" } */
+ 
+ int
+ main ()
+ {
+   char s[1] = "A";
+   return __builtin_strlen (s);
+ }
+ 
+ /* { dg-output "ERROR: AddressSanitizer: stack-buffer-overflow on address.*(\n|\r\n|\r)" } */
+ /* { dg-output "READ of size.*" } */
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/asan/pr119582.c gcc-12-20250618/gcc/testsuite/gcc.dg/asan/pr119582.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/asan/pr119582.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/asan/pr119582.c	Wed Jun 18 22:32:31 2025
***************
*** 0 ****
--- 1,23 ----
+ /* PR c/119582 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fsanitize=address,pointer-subtract,pointer-compare" } */
+ 
+ const char v;
+ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ char a;
+ const ptrdiff_t p = &a + 1 - &a;
+ const int q = (&a + 1) != &a;
+ 
+ ptrdiff_t
+ foo (void)
+ {
+   char b;
+   return &b + (v != '\n') - &b;
+ }
+ 
+ int
+ bar (void)
+ {
+   char b;
+   return (&b + (v != '\n')) != &b;
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/dfp/pr102674.c gcc-12-20250618/gcc/testsuite/gcc.dg/dfp/pr102674.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/dfp/pr102674.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/dfp/pr102674.c	Wed Jun 18 22:32:38 2025
***************
*** 0 ****
--- 1,65 ----
+ /* PR middle-end/102674 */
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ #define FP_NAN 0
+ #define FP_INFINITE 1
+ #define FP_ZERO 2
+ #define FP_SUBNORMAL 3
+ #define FP_NORMAL 4
+ 
+ __attribute__((noipa)) int
+ foo (_Decimal32 x)
+ {
+   return __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL,
+ 			       FP_SUBNORMAL, FP_ZERO, x);
+ }
+ 
+ __attribute__((noipa)) int
+ bar (_Decimal64 x)
+ {
+   return __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL,
+ 			       FP_SUBNORMAL, FP_ZERO, x);
+ }
+ 
+ __attribute__((noipa)) int
+ baz (_Decimal128 x)
+ {
+   return __builtin_fpclassify (FP_NAN, FP_INFINITE, FP_NORMAL,
+ 			       FP_SUBNORMAL, FP_ZERO, x);
+ }
+ 
+ int
+ main ()
+ {
+   if (foo (__builtin_infd32 ()) != FP_INFINITE
+       || foo (-__builtin_infd32 ()) != FP_INFINITE
+       || foo (__builtin_nand32 ("")) != FP_NAN
+       || foo (9.999999E96DF) != FP_NORMAL
+       || foo (-1E-95DF) != FP_NORMAL
+       || foo (0.999999E-95DF) != FP_SUBNORMAL
+       || foo (-0.000001E-95DF) != FP_SUBNORMAL
+       || foo (0.000DF) != FP_ZERO
+       || foo (-0.00000DF) != FP_ZERO)
+     __builtin_abort ();
+   if (bar (__builtin_infd64 ()) != FP_INFINITE
+       || bar (-__builtin_infd64 ()) != FP_INFINITE
+       || bar (__builtin_nand64 ("")) != FP_NAN
+       || bar (9.999999999999999E384DD) != FP_NORMAL
+       || bar (-1E-383DD) != FP_NORMAL
+       || bar (0.999999999999999E-383DD) != FP_SUBNORMAL
+       || bar (-0.000000000000001E-383DD) != FP_SUBNORMAL
+       || bar (0.000DD) != FP_ZERO
+       || bar (-0.0000000000DD) != FP_ZERO)
+     __builtin_abort ();
+   if (baz (__builtin_infd128 ()) != FP_INFINITE
+       || baz (-__builtin_infd128 ()) != FP_INFINITE
+       || baz (__builtin_nand128 ("")) != FP_NAN
+       || baz (9.999999999999999999999999999999999E6144DL) != FP_NORMAL
+       || baz (-1E-6143DL) != FP_NORMAL
+       || baz (0.999999999999999999999999999999999E-6143DL) != FP_SUBNORMAL
+       || baz (-0.000000000000000000000000000000001E-6143DL) != FP_SUBNORMAL
+       || baz (0.000DL) != FP_ZERO
+       || baz (-0.0000000000000000000000DL) != FP_ZERO)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/dfp/pr43374.c gcc-12-20250618/gcc/testsuite/gcc.dg/dfp/pr43374.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/dfp/pr43374.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/dfp/pr43374.c	Wed Jun 18 22:32:38 2025
***************
*** 0 ****
--- 1,56 ----
+ /* PR middle-end/43374 */
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ __attribute__((noipa)) int
+ foo (_Decimal32 x)
+ {
+   return __builtin_isinf (x);
+ }
+ 
+ __attribute__((noipa)) int
+ bar (_Decimal64 x)
+ {
+   return __builtin_isfinite (x);
+ }
+ 
+ __attribute__((noipa)) int
+ baz (_Decimal128 x)
+ {
+   return __builtin_isnormal (x);
+ }
+ 
+ int
+ main ()
+ {
+   if (!foo (__builtin_infd32 ())
+       || !foo (-__builtin_infd32 ())
+       || foo (__builtin_nand32 (""))
+       || foo (9.999999E96DF)
+       || foo (-1E-95DF)
+       || foo (0.999999E-95DF)
+       || foo (-0.000001E-95DF)
+       || foo (0.000DF)
+       || foo (-0.00000DF))
+     __builtin_abort ();
+   if (bar (__builtin_infd64 ())
+       || bar (-__builtin_infd64 ())
+       || bar (__builtin_nand64 (""))
+       || !bar (9.999999999999999E384DD)
+       || !bar (-1E-383DD)
+       || !bar (0.999999999999999E-383DD)
+       || !bar (-0.000000000000001E-383DD)
+       || !bar (0.000DD)
+       || !bar (-0.0000000000DD))
+     __builtin_abort ();
+   if (baz (__builtin_infd128 ())
+       || baz (-__builtin_infd128 ())
+       || baz (__builtin_nand128 (""))
+       || !baz (9.999999999999999999999999999999999E6144DL)
+       || !baz (-1E-6143DL)
+       || baz (0.999999999999999999999999999999999E-6143DL)
+       || baz (-0.000000000000000000000000000000001E-6143DL)
+       || baz (0.000DL)
+       || baz (-0.0000000000000000000000DL))
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/pr116034.c gcc-12-20250618/gcc/testsuite/gcc.dg/pr116034.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/pr116034.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/pr116034.c	Wed Jun 18 22:32:42 2025
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/116034 */
+ /* { dg-do run } */
+ /* { dg-options "-O1 -fno-strict-aliasing" } */
+ 
+ unsigned short int g;
+ 
+ static inline int
+ foo (_Complex unsigned short c)
+ {
+   if (__SIZEOF_SHORT__ == 2)
+     __builtin_memmove (&g, 1 + (char *) &c, 2);
+   return g;
+ }
+ 
+ int
+ main ()
+ {
+   if (__SIZEOF_SHORT__ == 2
+       && __CHAR_BIT__ == 8
+       && (foo (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ ? 0x100 : 1)
+ 	  != (__BYTE_ORDER__ != __ORDER_BIG_ENDIAN__ ? 1 : 0x100)))
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/pr117745.c gcc-12-20250618/gcc/testsuite/gcc.dg/pr117745.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/pr117745.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/pr117745.c	Wed Jun 18 22:32:42 2025
***************
*** 0 ****
--- 1,8 ----
+ /* PR c/117745 */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ static int foo (void);
+ void bar (void) { sizeof (int [0 ? foo () : 1); }	/* { dg-error "expected" } */
+ static int baz (void);
+ void qux (void) { sizeof (sizeof (int[baz ()])); }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/pr119183.c gcc-12-20250618/gcc/testsuite/gcc.dg/pr119183.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/pr119183.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/pr119183.c	Wed Jun 18 22:32:42 2025
***************
*** 0 ****
--- 1,12 ----
+ /* PR c/119183 */
+ /* { dg-do compile } */
+ 
+ int foo (void);
+ #define A(x) (1.0f * (1.0f * (1.0f * (1.0f * (1.0f * (1.0f * (1.0f * (1.0f * (x)))))))))
+ 
+ float
+ bar (float r)
+ {
+   r += A (A (A (A (A (A (A (A (foo ()))))))));
+   return r;
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/pr120480.c gcc-12-20250618/gcc/testsuite/gcc.dg/pr120480.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/pr120480.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/pr120480.c	Wed Jun 18 22:32:42 2025
***************
*** 0 ****
--- 1,11 ----
+ /* PR target/120480 */
+ /* { dg-do compile } */
+ /* { dg-options "-O0" } */
+ 
+ struct S { int a, b, c; } s;
+ 
+ void
+ foo (void)
+ {
+   struct S t = s;
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c gcc-12-20250618/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c	Wed Jun 11 22:32:32 2025
--- gcc-12-20250618/gcc/testsuite/gcc.dg/torture/builtin-frexp-1.c	Wed Jun 18 22:32:42 2025
***************
*** 11,16 ****
--- 11,17 ----
     floating point formats need -funsafe-math-optimizations.  */
  /* { dg-require-effective-target inf } */
  /* { dg-options "-funsafe-math-optimizations" { target powerpc*-*-* } } */
+ /* { dg-additional-options "-Wmaybe-uninitialized" } */
  
  extern void link_error(int);
  
*************** extern void link_error(int);
*** 52,73 ****
      link_error(__LINE__); \
    } while (0)
  
  /* Test that FUNCRES(frexp(NEG FUNCARG(ARGARG),&i)) is false.  Check
!    the sign as well.  Ensure side-effects are evaluated in i.  */
  #define TESTIT_FREXP2(NEG,FUNCARG,ARGARG,FUNCRES) do { \
!   int i=5; \
    if (!__builtin_##FUNCRES##f(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),&i)) \
!       || CKSGN_F(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG##f(ARGARG)) \
!       || CKEXP(i,6)) \
      link_error(__LINE__); \
    if (!__builtin_##FUNCRES(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),&i)) \
!       || CKSGN(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG(ARGARG)) \
!       || CKEXP(i,7)) \
      link_error(__LINE__); \
    if (!__builtin_##FUNCRES##l(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),&i)) \
!       || CKSGN_L(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),(i++,&i)), NEG __builtin_##FUNCARG##l(ARGARG)) \
!       || CKEXP(i,8)) \
      link_error(__LINE__); \
    } while (0)
  
  void __attribute__ ((__noinline__))
--- 53,88 ----
      link_error(__LINE__); \
    } while (0)
  
+ int __attribute__ ((__noipa__))
+ bar (int x)
+ {
+   (void) x;
+   return 42;
+ } 
+ 
  /* Test that FUNCRES(frexp(NEG FUNCARG(ARGARG),&i)) is false.  Check
!    the sign as well.  Ensure side-effects are evaluated in the second
!    frexp argument.  */
  #define TESTIT_FREXP2(NEG,FUNCARG,ARGARG,FUNCRES) do { \
!   int i, j = 5; \
    if (!__builtin_##FUNCRES##f(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),&i)) \
!       || CKSGN_F(__builtin_frexpf(NEG __builtin_##FUNCARG##f(ARGARG),(j++,&i)), NEG __builtin_##FUNCARG##f(ARGARG)) \
!       || CKEXP(j,6)) \
      link_error(__LINE__); \
+   if (CKEXP(bar(i),42)) \
+     __builtin_abort(); \
    if (!__builtin_##FUNCRES(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),&i)) \
!       || CKSGN(__builtin_frexp(NEG __builtin_##FUNCARG(ARGARG),(j++,&i)), NEG __builtin_##FUNCARG(ARGARG)) \
!       || CKEXP(j,7)) \
      link_error(__LINE__); \
+   if (CKEXP(bar(i),42)) \
+     __builtin_abort(); \
    if (!__builtin_##FUNCRES##l(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),&i)) \
!       || CKSGN_L(__builtin_frexpl(NEG __builtin_##FUNCARG##l(ARGARG),(j++,&i)), NEG __builtin_##FUNCARG##l(ARGARG)) \
!       || CKEXP(j,8)) \
      link_error(__LINE__); \
+   if (CKEXP(bar(i),42)) \
+     __builtin_abort(); \
    } while (0)
  
  void __attribute__ ((__noinline__))
*************** foo(void)
*** 111,118 ****
--- 126,135 ----
       Exponent is left unspecified, but we test for side-effects.  */
    TESTIT_FREXP2 ( ,inf, , isinf);
    TESTIT_FREXP2 (- ,inf, , isinf);
+ #ifdef __OPTIMIZE__
    TESTIT_FREXP2 ( ,nan, "", isnan);
    TESTIT_FREXP2 (- ,nan, "", isnan);
+ #endif
  }
  
  int main()
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.dg/torture/pr117811.c gcc-12-20250618/gcc/testsuite/gcc.dg/torture/pr117811.c
*** gcc-12-20250611/gcc/testsuite/gcc.dg/torture/pr117811.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.dg/torture/pr117811.c	Wed Jun 18 22:32:42 2025
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do run } */
+ 
+ #include <string.h>
+ 
+ typedef int v4 __attribute__((vector_size (4 * sizeof (int))));
+ 
+ void __attribute__((noclone,noinline)) do_shift (v4 *vec, int shift)
+ {
+   v4 t = *vec;
+ 
+   if (shift > 0)
+   {
+     t = t >> shift;
+   }
+ 
+   *vec = t;
+ }
+ 
+ int main ()
+ {
+ #if __SIZEOF_INT__ >= 4
+   v4 vec =  {0x1000000, 0x2000, 0x300, 0x40};
+   v4 vec2 = {0x100000,  0x200,  0x30,  0x4};
+ #else
+   v4 vec =  {0x4000, 0x2000, 0x300, 0x40};
+   v4 vec2 = {0x400,  0x200,  0x30,  0x4};
+ #endif
+   do_shift (&vec, 4);
+   if (memcmp (&vec, &vec2, sizeof (v4)) != 0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.target/i386/bmi-pr116287.c gcc-12-20250618/gcc/testsuite/gcc.target/i386/bmi-pr116287.c
*** gcc-12-20250611/gcc/testsuite/gcc.target/i386/bmi-pr116287.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.target/i386/bmi-pr116287.c	Wed Jun 18 22:32:46 2025
***************
*** 0 ****
--- 1,28 ----
+ /* PR target/116287 */
+ /* { dg-do run { target bmi } } */
+ /* { dg-options "-O2 -mbmi" } */
+ 
+ #include <x86intrin.h>
+ 
+ #include "bmi-check.h"
+ 
+ static void
+ bmi_test ()
+ {
+   unsigned int a = 0;
+   if (__builtin_ia32_bextr_u32 (a++, 0) != 0)
+     abort ();
+   if (__builtin_ia32_bextr_u32 (a++, 0x120) != 0)
+     abort ();
+   if (a != 2)
+     abort ();
+ #ifdef __x86_64__
+   unsigned long long b = 0;
+   if (__builtin_ia32_bextr_u64 (b++, 0) != 0)
+     abort ();
+   if (__builtin_ia32_bextr_u64 (b++, 0x140) != 0)
+     abort ();
+   if (b != 2)
+     abort ();
+ #endif
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.target/i386/bmi2-pr116287.c gcc-12-20250618/gcc/testsuite/gcc.target/i386/bmi2-pr116287.c
*** gcc-12-20250611/gcc/testsuite/gcc.target/i386/bmi2-pr116287.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.target/i386/bmi2-pr116287.c	Wed Jun 18 22:32:46 2025
***************
*** 0 ****
--- 1,24 ----
+ /* PR target/116287 */
+ /* { dg-do run { target bmi2 } } */
+ /* { dg-options "-O2 -mbmi2" } */
+ 
+ #include <x86intrin.h>
+ 
+ #include "bmi2-check.h"
+ 
+ static void
+ bmi2_test ()
+ {
+   unsigned int a = 0;
+   if (__builtin_ia32_bzhi_si (a++, 0) != 0)
+     abort ();
+   if (a != 1)
+     abort ();
+ #ifdef __x86_64__
+   unsigned long long b = 0;
+   if (__builtin_ia32_bzhi_di (b++, 0) != 0)
+     abort ();
+   if (b != 1)
+     abort ();
+ #endif
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.target/i386/pr117296.c gcc-12-20250618/gcc/testsuite/gcc.target/i386/pr117296.c
*** gcc-12-20250611/gcc/testsuite/gcc.target/i386/pr117296.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.target/i386/pr117296.c	Wed Jun 18 22:32:46 2025
***************
*** 0 ****
--- 1,12 ----
+ /* PR target/117296 */
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ /* { dg-additional-options "-mtune=k6 -mstringop-strategy=libcall -ffloat-store" { target ia32 } } */
+ 
+ int x;
+ 
+ void
+ foo (_Complex double c)
+ {
+  lab:;
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.target/i386/pr117432.c gcc-12-20250618/gcc/testsuite/gcc.target/i386/pr117432.c
*** gcc-12-20250611/gcc/testsuite/gcc.target/i386/pr117432.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.target/i386/pr117432.c	Wed Jun 18 22:32:46 2025
***************
*** 0 ****
--- 1,17 ----
+ /* PR ipa/117432 */
+ /* { dg-do compile { target lp64 } } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler "# myinsn %rax" } } */
+ /* { dg-final { scan-assembler "# myinsn %eax" } } */
+ 
+ void
+ foo (void)
+ {
+   asm volatile ("# myinsn %0" : : "r" (-42L));
+ }
+ 
+ void
+ bar (void)
+ {
+   asm volatile ("# myinsn %0" : : "r" (-42));
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.target/i386/pr118776.c gcc-12-20250618/gcc/testsuite/gcc.target/i386/pr118776.c
*** gcc-12-20250611/gcc/testsuite/gcc.target/i386/pr118776.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.target/i386/pr118776.c	Wed Jun 18 22:32:46 2025
***************
*** 0 ****
--- 1,23 ----
+ /* PR target/118776 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mavx512bw -mavx512vl" } */
+ 
+ void bar (unsigned char *);
+ 
+ void
+ foo (unsigned char *x)
+ {
+   unsigned char b[32];
+   bar (b);
+   for (int i = 0; i < 32; i++)
+     {
+       unsigned char c = 8;
+       if (i > 3)
+ 	{
+ 	  unsigned char d = b[i];
+ 	  d = 1 > d ? 1 : d;
+ 	  c = d;
+ 	}
+       x[i] = c;
+     }
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.target/i386/sse-pr116738.c gcc-12-20250618/gcc/testsuite/gcc.target/i386/sse-pr116738.c
*** gcc-12-20250611/gcc/testsuite/gcc.target/i386/sse-pr116738.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.target/i386/sse-pr116738.c	Wed Jun 18 22:32:46 2025
***************
*** 0 ****
--- 1,28 ----
+ /* PR target/116738 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -msse" } */
+ /* { dg-require-effective-target sse } */
+ 
+ #include "sse-check.h"
+ 
+ static inline float
+ clamp (float f)
+ {
+   __m128 v = _mm_set_ss (f);
+   __m128 zero = _mm_setzero_ps ();
+   __m128 greatest = _mm_set_ss (__FLT_MAX__);
+   v = _mm_min_ss (v, greatest);
+   v = _mm_max_ss (v, zero);
+   return _mm_cvtss_f32 (v);
+ }
+ 
+ static void
+ sse_test (void)
+ {
+   float f = clamp (-0.0f);
+   if (f != 0.0f || __builtin_signbitf (f))
+     abort ();
+   f = clamp (__builtin_nanf (""));
+   if (__builtin_isnanf (f) || f != __FLT_MAX__)
+     abort ();
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gcc.target/i386/tbm-pr116287.c gcc-12-20250618/gcc/testsuite/gcc.target/i386/tbm-pr116287.c
*** gcc-12-20250611/gcc/testsuite/gcc.target/i386/tbm-pr116287.c	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gcc.target/i386/tbm-pr116287.c	Wed Jun 18 22:32:46 2025
***************
*** 0 ****
--- 1,29 ----
+ /* PR target/116287 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mtbm -fdump-tree-optimized" } */
+ /* { dg-final { scan-tree-dump-not "link_error \\\(\\\);" "optimized" } } */
+ 
+ #include <x86intrin.h>
+ 
+ extern void link_error (void);
+ 
+ void
+ tbm_test ()
+ {
+   unsigned int a = 0;
+   if (__builtin_ia32_bextri_u32 (a++, 0) != 0)
+     link_error ();
+   if (__builtin_ia32_bextri_u32 (a++, 0x120) != 0)
+     link_error ();
+   if (a != 2)
+     link_error ();
+ #ifdef __x86_64__
+   unsigned long long b = 0;
+   if (__builtin_ia32_bextr_u64 (b++, 0) != 0)
+     link_error ();
+   if (__builtin_ia32_bextr_u64 (b++, 0x140) != 0)
+     link_error ();
+   if (b != 2)
+     link_error ();
+ #endif
+ }
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120191_1.f90 gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120191_1.f90
*** gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120191_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120191_1.f90	Wed Jun 18 22:32:50 2025
***************
*** 0 ****
--- 1,614 ----
+ ! PR fortran/120191
+ ! { dg-do run }
+ 
+   integer(kind=1) :: a1(10, 10, 10), b1(10)
+   integer(kind=2) :: a2(10, 10, 10), b2(10)
+   integer(kind=4) :: a4(10, 10, 10), b4(10)
+   integer(kind=8) :: a8(10, 10, 10), b8(10)
+   real(kind=4) :: r4(10, 10, 10), s4(10)
+   real(kind=8) :: r8(10, 10, 10), s8(10)
+   logical :: l1(10, 10, 10), l2(10), l3
+   l1 = .true.
+   l2 = .true.
+   l3 = .true.
+   a1 = 0
+   if (any (maxloc (a1) .ne. 1)) stop 1
+   if (any (maxloc (a1, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (a1, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (a1, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (a1, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (a1, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (maxloc (a1, 1) .ne. 1)) stop 7
+   if (any (maxloc (a1, 1, back=.false.) .ne. 1)) stop 8
+   if (any (maxloc (a1, 1, back=.true.) .ne. 10)) stop 9
+   if (any (maxloc (a1, 1, kind=1) .ne. 1)) stop 10
+   if (any (maxloc (a1, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (maxloc (a1, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (maxloc (a1, 1, l1) .ne. 1)) stop 13
+   if (any (maxloc (a1, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (maxloc (a1, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (maxloc (a1, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (maxloc (a1, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (maxloc (a1, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (maxloc (a1, 1, l3) .ne. 1)) stop 19
+   if (any (maxloc (a1, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (maxloc (a1, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (maxloc (a1, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (maxloc (a1, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (maxloc (a1, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b1 = 0
+   if (any (maxloc (b1) .ne. 1)) stop 1
+   if (any (maxloc (b1, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (b1, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (b1, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (b1, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (b1, kind=8, back=.true.) .ne. 10)) stop 6
+   if (maxloc (b1, 1) .ne. 1) stop 7
+   if (maxloc (b1, 1, back=.false.) .ne. 1) stop 8
+   if (maxloc (b1, 1, back=.true.) .ne. 10) stop 9
+   if (maxloc (b1, 1, kind=1) .ne. 1) stop 10
+   if (maxloc (b1, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (maxloc (b1, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (maxloc (b1, 1, l2) .ne. 1) stop 13
+   if (maxloc (b1, 1, l2, back=.false.) .ne. 1) stop 14
+   if (maxloc (b1, 1, l2, back=.true.) .ne. 10) stop 15
+   if (maxloc (b1, 1, l2, kind=8) .ne. 1) stop 16
+   if (maxloc (b1, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (maxloc (b1, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (maxloc (b1, 1, l3) .ne. 1) stop 19
+   if (maxloc (b1, 1, l3, back=.false.) .ne. 1) stop 20
+   if (maxloc (b1, 1, l3, back=.true.) .ne. 10) stop 21
+   if (maxloc (b1, 1, l3, kind=8) .ne. 1) stop 22
+   if (maxloc (b1, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (maxloc (b1, 1, l3, 2, .true.) .ne. 10) stop 24
+   a2 = 0
+   if (any (maxloc (a2) .ne. 1)) stop 1
+   if (any (maxloc (a2, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (a2, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (a2, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (a2, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (a2, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (maxloc (a2, 1) .ne. 1)) stop 7
+   if (any (maxloc (a2, 1, back=.false.) .ne. 1)) stop 8
+   if (any (maxloc (a2, 1, back=.true.) .ne. 10)) stop 9
+   if (any (maxloc (a2, 1, kind=1) .ne. 1)) stop 10
+   if (any (maxloc (a2, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (maxloc (a2, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (maxloc (a2, 1, l1) .ne. 1)) stop 13
+   if (any (maxloc (a2, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (maxloc (a2, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (maxloc (a2, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (maxloc (a2, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (maxloc (a2, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (maxloc (a2, 1, l3) .ne. 1)) stop 19
+   if (any (maxloc (a2, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (maxloc (a2, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (maxloc (a2, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (maxloc (a2, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (maxloc (a2, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b2 = 0
+   if (any (maxloc (b2) .ne. 1)) stop 1
+   if (any (maxloc (b2, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (b2, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (b2, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (b2, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (b2, kind=8, back=.true.) .ne. 10)) stop 6
+   if (maxloc (b2, 1) .ne. 1) stop 7
+   if (maxloc (b2, 1, back=.false.) .ne. 1) stop 8
+   if (maxloc (b2, 1, back=.true.) .ne. 10) stop 9
+   if (maxloc (b2, 1, kind=1) .ne. 1) stop 10
+   if (maxloc (b2, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (maxloc (b2, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (maxloc (b2, 1, l2) .ne. 1) stop 13
+   if (maxloc (b2, 1, l2, back=.false.) .ne. 1) stop 14
+   if (maxloc (b2, 1, l2, back=.true.) .ne. 10) stop 15
+   if (maxloc (b2, 1, l2, kind=8) .ne. 1) stop 16
+   if (maxloc (b2, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (maxloc (b2, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (maxloc (b2, 1, l3) .ne. 1) stop 19
+   if (maxloc (b2, 1, l3, back=.false.) .ne. 1) stop 20
+   if (maxloc (b2, 1, l3, back=.true.) .ne. 10) stop 21
+   if (maxloc (b2, 1, l3, kind=8) .ne. 1) stop 22
+   if (maxloc (b2, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (maxloc (b2, 1, l3, 2, .true.) .ne. 10) stop 24
+   a4 = 0
+   if (any (maxloc (a4) .ne. 1)) stop 1
+   if (any (maxloc (a4, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (a4, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (a4, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (a4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (a4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (maxloc (a4, 1) .ne. 1)) stop 7
+   if (any (maxloc (a4, 1, back=.false.) .ne. 1)) stop 8
+   if (any (maxloc (a4, 1, back=.true.) .ne. 10)) stop 9
+   if (any (maxloc (a4, 1, kind=1) .ne. 1)) stop 10
+   if (any (maxloc (a4, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (maxloc (a4, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (maxloc (a4, 1, l1) .ne. 1)) stop 13
+   if (any (maxloc (a4, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (maxloc (a4, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (maxloc (a4, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (maxloc (a4, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (maxloc (a4, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (maxloc (a4, 1, l3) .ne. 1)) stop 19
+   if (any (maxloc (a4, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (maxloc (a4, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (maxloc (a4, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (maxloc (a4, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (maxloc (a4, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b4 = 0
+   if (any (maxloc (b4) .ne. 1)) stop 1
+   if (any (maxloc (b4, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (b4, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (b4, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (b4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (b4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (maxloc (b4, 1) .ne. 1) stop 7
+   if (maxloc (b4, 1, back=.false.) .ne. 1) stop 8
+   if (maxloc (b4, 1, back=.true.) .ne. 10) stop 9
+   if (maxloc (b4, 1, kind=1) .ne. 1) stop 10
+   if (maxloc (b4, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (maxloc (b4, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (maxloc (b4, 1, l2) .ne. 1) stop 13
+   if (maxloc (b4, 1, l2, back=.false.) .ne. 1) stop 14
+   if (maxloc (b4, 1, l2, back=.true.) .ne. 10) stop 15
+   if (maxloc (b4, 1, l2, kind=8) .ne. 1) stop 16
+   if (maxloc (b4, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (maxloc (b4, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (maxloc (b4, 1, l3) .ne. 1) stop 19
+   if (maxloc (b4, 1, l3, back=.false.) .ne. 1) stop 20
+   if (maxloc (b4, 1, l3, back=.true.) .ne. 10) stop 21
+   if (maxloc (b4, 1, l3, kind=8) .ne. 1) stop 22
+   if (maxloc (b4, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (maxloc (b4, 1, l3, 2, .true.) .ne. 10) stop 24
+   a8 = 0
+   if (any (maxloc (a8) .ne. 1)) stop 1
+   if (any (maxloc (a8, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (a8, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (a8, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (a8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (a8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (maxloc (a8, 1) .ne. 1)) stop 7
+   if (any (maxloc (a8, 1, back=.false.) .ne. 1)) stop 8
+   if (any (maxloc (a8, 1, back=.true.) .ne. 10)) stop 9
+   if (any (maxloc (a8, 1, kind=1) .ne. 1)) stop 10
+   if (any (maxloc (a8, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (maxloc (a8, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (maxloc (a8, 1, l1) .ne. 1)) stop 13
+   if (any (maxloc (a8, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (maxloc (a8, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (maxloc (a8, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (maxloc (a8, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (maxloc (a8, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (maxloc (a8, 1, l3) .ne. 1)) stop 19
+   if (any (maxloc (a8, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (maxloc (a8, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (maxloc (a8, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (maxloc (a8, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (maxloc (a8, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b8 = 0
+   if (any (maxloc (b8) .ne. 1)) stop 1
+   if (any (maxloc (b8, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (b8, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (b8, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (b8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (b8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (maxloc (b8, 1) .ne. 1) stop 7
+   if (maxloc (b8, 1, back=.false.) .ne. 1) stop 8
+   if (maxloc (b8, 1, back=.true.) .ne. 10) stop 9
+   if (maxloc (b8, 1, kind=1) .ne. 1) stop 10
+   if (maxloc (b8, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (maxloc (b8, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (maxloc (b8, 1, l2) .ne. 1) stop 13
+   if (maxloc (b8, 1, l2, back=.false.) .ne. 1) stop 14
+   if (maxloc (b8, 1, l2, back=.true.) .ne. 10) stop 15
+   if (maxloc (b8, 1, l2, kind=8) .ne. 1) stop 16
+   if (maxloc (b8, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (maxloc (b8, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (maxloc (b8, 1, l3) .ne. 1) stop 19
+   if (maxloc (b8, 1, l3, back=.false.) .ne. 1) stop 20
+   if (maxloc (b8, 1, l3, back=.true.) .ne. 10) stop 21
+   if (maxloc (b8, 1, l3, kind=8) .ne. 1) stop 22
+   if (maxloc (b8, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (maxloc (b8, 1, l3, 2, .true.) .ne. 10) stop 24
+   r4 = 0.0
+   if (any (maxloc (r4) .ne. 1)) stop 1
+   if (any (maxloc (r4, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (r4, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (r4, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (r4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (r4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (maxloc (r4, 1) .ne. 1)) stop 7
+   if (any (maxloc (r4, 1, back=.false.) .ne. 1)) stop 8
+   if (any (maxloc (r4, 1, back=.true.) .ne. 10)) stop 9
+   if (any (maxloc (r4, 1, kind=1) .ne. 1)) stop 10
+   if (any (maxloc (r4, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (maxloc (r4, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (maxloc (r4, 1, l1) .ne. 1)) stop 13
+   if (any (maxloc (r4, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (maxloc (r4, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (maxloc (r4, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (maxloc (r4, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (maxloc (r4, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (maxloc (r4, 1, l3) .ne. 1)) stop 19
+   if (any (maxloc (r4, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (maxloc (r4, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (maxloc (r4, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (maxloc (r4, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (maxloc (r4, 1, l3, 2, .true.) .ne. 10)) stop 24
+   s4 = 0.0
+   if (any (maxloc (s4) .ne. 1)) stop 1
+   if (any (maxloc (s4, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (s4, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (s4, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (s4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (s4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (maxloc (s4, 1) .ne. 1) stop 7
+   if (maxloc (s4, 1, back=.false.) .ne. 1) stop 8
+   if (maxloc (s4, 1, back=.true.) .ne. 10) stop 9
+   if (maxloc (s4, 1, kind=1) .ne. 1) stop 10
+   if (maxloc (s4, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (maxloc (s4, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (maxloc (s4, 1, l2) .ne. 1) stop 13
+   if (maxloc (s4, 1, l2, back=.false.) .ne. 1) stop 14
+   if (maxloc (s4, 1, l2, back=.true.) .ne. 10) stop 15
+   if (maxloc (s4, 1, l2, kind=8) .ne. 1) stop 16
+   if (maxloc (s4, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (maxloc (s4, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (maxloc (s4, 1, l3) .ne. 1) stop 19
+   if (maxloc (s4, 1, l3, back=.false.) .ne. 1) stop 20
+   if (maxloc (s4, 1, l3, back=.true.) .ne. 10) stop 21
+   if (maxloc (s4, 1, l3, kind=8) .ne. 1) stop 22
+   if (maxloc (s4, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (maxloc (s4, 1, l3, 2, .true.) .ne. 10) stop 24
+   r8 = 0.0
+   if (any (maxloc (r8) .ne. 1)) stop 1
+   if (any (maxloc (r8, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (r8, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (r8, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (r8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (r8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (maxloc (r8, 1) .ne. 1)) stop 7
+   if (any (maxloc (r8, 1, back=.false.) .ne. 1)) stop 8
+   if (any (maxloc (r8, 1, back=.true.) .ne. 10)) stop 9
+   if (any (maxloc (r8, 1, kind=1) .ne. 1)) stop 10
+   if (any (maxloc (r8, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (maxloc (r8, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (maxloc (r8, 1, l1) .ne. 1)) stop 13
+   if (any (maxloc (r8, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (maxloc (r8, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (maxloc (r8, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (maxloc (r8, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (maxloc (r8, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (maxloc (r8, 1, l3) .ne. 1)) stop 19
+   if (any (maxloc (r8, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (maxloc (r8, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (maxloc (r8, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (maxloc (r8, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (maxloc (r8, 1, l3, 2, .true.) .ne. 10)) stop 24
+   s8 = 0.0
+   if (any (maxloc (s8) .ne. 1)) stop 1
+   if (any (maxloc (s8, back=.false.) .ne. 1)) stop 2
+   if (any (maxloc (s8, back=.true.) .ne. 10)) stop 3
+   if (any (maxloc (s8, kind=2) .ne. 1)) stop 4
+   if (any (maxloc (s8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (maxloc (s8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (maxloc (s8, 1) .ne. 1) stop 7
+   if (maxloc (s8, 1, back=.false.) .ne. 1) stop 8
+   if (maxloc (s8, 1, back=.true.) .ne. 10) stop 9
+   if (maxloc (s8, 1, kind=1) .ne. 1) stop 10
+   if (maxloc (s8, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (maxloc (s8, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (maxloc (s8, 1, l2) .ne. 1) stop 13
+   if (maxloc (s8, 1, l2, back=.false.) .ne. 1) stop 14
+   if (maxloc (s8, 1, l2, back=.true.) .ne. 10) stop 15
+   if (maxloc (s8, 1, l2, kind=8) .ne. 1) stop 16
+   if (maxloc (s8, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (maxloc (s8, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (maxloc (s8, 1, l3) .ne. 1) stop 19
+   if (maxloc (s8, 1, l3, back=.false.) .ne. 1) stop 20
+   if (maxloc (s8, 1, l3, back=.true.) .ne. 10) stop 21
+   if (maxloc (s8, 1, l3, kind=8) .ne. 1) stop 22
+   if (maxloc (s8, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (maxloc (s8, 1, l3, 2, .true.) .ne. 10) stop 24
+   a1 = 0
+   if (any (minloc (a1) .ne. 1)) stop 1
+   if (any (minloc (a1, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (a1, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (a1, kind=2) .ne. 1)) stop 4
+   if (any (minloc (a1, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (a1, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (minloc (a1, 1) .ne. 1)) stop 7
+   if (any (minloc (a1, 1, back=.false.) .ne. 1)) stop 8
+   if (any (minloc (a1, 1, back=.true.) .ne. 10)) stop 9
+   if (any (minloc (a1, 1, kind=1) .ne. 1)) stop 10
+   if (any (minloc (a1, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (minloc (a1, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (minloc (a1, 1, l1) .ne. 1)) stop 13
+   if (any (minloc (a1, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (minloc (a1, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (minloc (a1, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (minloc (a1, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (minloc (a1, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (minloc (a1, 1, l3) .ne. 1)) stop 19
+   if (any (minloc (a1, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (minloc (a1, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (minloc (a1, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (minloc (a1, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (minloc (a1, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b1 = 0
+   if (any (minloc (b1) .ne. 1)) stop 1
+   if (any (minloc (b1, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (b1, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (b1, kind=2) .ne. 1)) stop 4
+   if (any (minloc (b1, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (b1, kind=8, back=.true.) .ne. 10)) stop 6
+   if (minloc (b1, 1) .ne. 1) stop 7
+   if (minloc (b1, 1, back=.false.) .ne. 1) stop 8
+   if (minloc (b1, 1, back=.true.) .ne. 10) stop 9
+   if (minloc (b1, 1, kind=1) .ne. 1) stop 10
+   if (minloc (b1, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (minloc (b1, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (minloc (b1, 1, l2) .ne. 1) stop 13
+   if (minloc (b1, 1, l2, back=.false.) .ne. 1) stop 14
+   if (minloc (b1, 1, l2, back=.true.) .ne. 10) stop 15
+   if (minloc (b1, 1, l2, kind=8) .ne. 1) stop 16
+   if (minloc (b1, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (minloc (b1, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (minloc (b1, 1, l3) .ne. 1) stop 19
+   if (minloc (b1, 1, l3, back=.false.) .ne. 1) stop 20
+   if (minloc (b1, 1, l3, back=.true.) .ne. 10) stop 21
+   if (minloc (b1, 1, l3, kind=8) .ne. 1) stop 22
+   if (minloc (b1, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (minloc (b1, 1, l3, 2, .true.) .ne. 10) stop 24
+   a2 = 0
+   if (any (minloc (a2) .ne. 1)) stop 1
+   if (any (minloc (a2, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (a2, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (a2, kind=2) .ne. 1)) stop 4
+   if (any (minloc (a2, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (a2, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (minloc (a2, 1) .ne. 1)) stop 7
+   if (any (minloc (a2, 1, back=.false.) .ne. 1)) stop 8
+   if (any (minloc (a2, 1, back=.true.) .ne. 10)) stop 9
+   if (any (minloc (a2, 1, kind=1) .ne. 1)) stop 10
+   if (any (minloc (a2, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (minloc (a2, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (minloc (a2, 1, l1) .ne. 1)) stop 13
+   if (any (minloc (a2, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (minloc (a2, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (minloc (a2, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (minloc (a2, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (minloc (a2, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (minloc (a2, 1, l3) .ne. 1)) stop 19
+   if (any (minloc (a2, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (minloc (a2, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (minloc (a2, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (minloc (a2, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (minloc (a2, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b2 = 0
+   if (any (minloc (b2) .ne. 1)) stop 1
+   if (any (minloc (b2, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (b2, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (b2, kind=2) .ne. 1)) stop 4
+   if (any (minloc (b2, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (b2, kind=8, back=.true.) .ne. 10)) stop 6
+   if (minloc (b2, 1) .ne. 1) stop 7
+   if (minloc (b2, 1, back=.false.) .ne. 1) stop 8
+   if (minloc (b2, 1, back=.true.) .ne. 10) stop 9
+   if (minloc (b2, 1, kind=1) .ne. 1) stop 10
+   if (minloc (b2, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (minloc (b2, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (minloc (b2, 1, l2) .ne. 1) stop 13
+   if (minloc (b2, 1, l2, back=.false.) .ne. 1) stop 14
+   if (minloc (b2, 1, l2, back=.true.) .ne. 10) stop 15
+   if (minloc (b2, 1, l2, kind=8) .ne. 1) stop 16
+   if (minloc (b2, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (minloc (b2, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (minloc (b2, 1, l3) .ne. 1) stop 19
+   if (minloc (b2, 1, l3, back=.false.) .ne. 1) stop 20
+   if (minloc (b2, 1, l3, back=.true.) .ne. 10) stop 21
+   if (minloc (b2, 1, l3, kind=8) .ne. 1) stop 22
+   if (minloc (b2, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (minloc (b2, 1, l3, 2, .true.) .ne. 10) stop 24
+   a4 = 0
+   if (any (minloc (a4) .ne. 1)) stop 1
+   if (any (minloc (a4, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (a4, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (a4, kind=2) .ne. 1)) stop 4
+   if (any (minloc (a4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (a4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (minloc (a4, 1) .ne. 1)) stop 7
+   if (any (minloc (a4, 1, back=.false.) .ne. 1)) stop 8
+   if (any (minloc (a4, 1, back=.true.) .ne. 10)) stop 9
+   if (any (minloc (a4, 1, kind=1) .ne. 1)) stop 10
+   if (any (minloc (a4, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (minloc (a4, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (minloc (a4, 1, l1) .ne. 1)) stop 13
+   if (any (minloc (a4, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (minloc (a4, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (minloc (a4, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (minloc (a4, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (minloc (a4, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (minloc (a4, 1, l3) .ne. 1)) stop 19
+   if (any (minloc (a4, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (minloc (a4, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (minloc (a4, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (minloc (a4, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (minloc (a4, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b4 = 0
+   if (any (minloc (b4) .ne. 1)) stop 1
+   if (any (minloc (b4, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (b4, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (b4, kind=2) .ne. 1)) stop 4
+   if (any (minloc (b4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (b4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (minloc (b4, 1) .ne. 1) stop 7
+   if (minloc (b4, 1, back=.false.) .ne. 1) stop 8
+   if (minloc (b4, 1, back=.true.) .ne. 10) stop 9
+   if (minloc (b4, 1, kind=1) .ne. 1) stop 10
+   if (minloc (b4, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (minloc (b4, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (minloc (b4, 1, l2) .ne. 1) stop 13
+   if (minloc (b4, 1, l2, back=.false.) .ne. 1) stop 14
+   if (minloc (b4, 1, l2, back=.true.) .ne. 10) stop 15
+   if (minloc (b4, 1, l2, kind=8) .ne. 1) stop 16
+   if (minloc (b4, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (minloc (b4, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (minloc (b4, 1, l3) .ne. 1) stop 19
+   if (minloc (b4, 1, l3, back=.false.) .ne. 1) stop 20
+   if (minloc (b4, 1, l3, back=.true.) .ne. 10) stop 21
+   if (minloc (b4, 1, l3, kind=8) .ne. 1) stop 22
+   if (minloc (b4, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (minloc (b4, 1, l3, 2, .true.) .ne. 10) stop 24
+   a8 = 0
+   if (any (minloc (a8) .ne. 1)) stop 1
+   if (any (minloc (a8, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (a8, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (a8, kind=2) .ne. 1)) stop 4
+   if (any (minloc (a8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (a8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (minloc (a8, 1) .ne. 1)) stop 7
+   if (any (minloc (a8, 1, back=.false.) .ne. 1)) stop 8
+   if (any (minloc (a8, 1, back=.true.) .ne. 10)) stop 9
+   if (any (minloc (a8, 1, kind=1) .ne. 1)) stop 10
+   if (any (minloc (a8, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (minloc (a8, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (minloc (a8, 1, l1) .ne. 1)) stop 13
+   if (any (minloc (a8, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (minloc (a8, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (minloc (a8, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (minloc (a8, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (minloc (a8, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (minloc (a8, 1, l3) .ne. 1)) stop 19
+   if (any (minloc (a8, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (minloc (a8, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (minloc (a8, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (minloc (a8, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (minloc (a8, 1, l3, 2, .true.) .ne. 10)) stop 24
+   b8 = 0
+   if (any (minloc (b8) .ne. 1)) stop 1
+   if (any (minloc (b8, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (b8, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (b8, kind=2) .ne. 1)) stop 4
+   if (any (minloc (b8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (b8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (minloc (b8, 1) .ne. 1) stop 7
+   if (minloc (b8, 1, back=.false.) .ne. 1) stop 8
+   if (minloc (b8, 1, back=.true.) .ne. 10) stop 9
+   if (minloc (b8, 1, kind=1) .ne. 1) stop 10
+   if (minloc (b8, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (minloc (b8, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (minloc (b8, 1, l2) .ne. 1) stop 13
+   if (minloc (b8, 1, l2, back=.false.) .ne. 1) stop 14
+   if (minloc (b8, 1, l2, back=.true.) .ne. 10) stop 15
+   if (minloc (b8, 1, l2, kind=8) .ne. 1) stop 16
+   if (minloc (b8, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (minloc (b8, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (minloc (b8, 1, l3) .ne. 1) stop 19
+   if (minloc (b8, 1, l3, back=.false.) .ne. 1) stop 20
+   if (minloc (b8, 1, l3, back=.true.) .ne. 10) stop 21
+   if (minloc (b8, 1, l3, kind=8) .ne. 1) stop 22
+   if (minloc (b8, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (minloc (b8, 1, l3, 2, .true.) .ne. 10) stop 24
+   r4 = 0.0
+   if (any (minloc (r4) .ne. 1)) stop 1
+   if (any (minloc (r4, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (r4, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (r4, kind=2) .ne. 1)) stop 4
+   if (any (minloc (r4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (r4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (minloc (r4, 1) .ne. 1)) stop 7
+   if (any (minloc (r4, 1, back=.false.) .ne. 1)) stop 8
+   if (any (minloc (r4, 1, back=.true.) .ne. 10)) stop 9
+   if (any (minloc (r4, 1, kind=1) .ne. 1)) stop 10
+   if (any (minloc (r4, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (minloc (r4, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (minloc (r4, 1, l1) .ne. 1)) stop 13
+   if (any (minloc (r4, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (minloc (r4, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (minloc (r4, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (minloc (r4, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (minloc (r4, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (minloc (r4, 1, l3) .ne. 1)) stop 19
+   if (any (minloc (r4, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (minloc (r4, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (minloc (r4, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (minloc (r4, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (minloc (r4, 1, l3, 2, .true.) .ne. 10)) stop 24
+   s4 = 0.0
+   if (any (minloc (s4) .ne. 1)) stop 1
+   if (any (minloc (s4, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (s4, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (s4, kind=2) .ne. 1)) stop 4
+   if (any (minloc (s4, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (s4, kind=8, back=.true.) .ne. 10)) stop 6
+   if (minloc (s4, 1) .ne. 1) stop 7
+   if (minloc (s4, 1, back=.false.) .ne. 1) stop 8
+   if (minloc (s4, 1, back=.true.) .ne. 10) stop 9
+   if (minloc (s4, 1, kind=1) .ne. 1) stop 10
+   if (minloc (s4, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (minloc (s4, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (minloc (s4, 1, l2) .ne. 1) stop 13
+   if (minloc (s4, 1, l2, back=.false.) .ne. 1) stop 14
+   if (minloc (s4, 1, l2, back=.true.) .ne. 10) stop 15
+   if (minloc (s4, 1, l2, kind=8) .ne. 1) stop 16
+   if (minloc (s4, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (minloc (s4, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (minloc (s4, 1, l3) .ne. 1) stop 19
+   if (minloc (s4, 1, l3, back=.false.) .ne. 1) stop 20
+   if (minloc (s4, 1, l3, back=.true.) .ne. 10) stop 21
+   if (minloc (s4, 1, l3, kind=8) .ne. 1) stop 22
+   if (minloc (s4, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (minloc (s4, 1, l3, 2, .true.) .ne. 10) stop 24
+   r8 = 0.0
+   if (any (minloc (r8) .ne. 1)) stop 1
+   if (any (minloc (r8, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (r8, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (r8, kind=2) .ne. 1)) stop 4
+   if (any (minloc (r8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (r8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (any (minloc (r8, 1) .ne. 1)) stop 7
+   if (any (minloc (r8, 1, back=.false.) .ne. 1)) stop 8
+   if (any (minloc (r8, 1, back=.true.) .ne. 10)) stop 9
+   if (any (minloc (r8, 1, kind=1) .ne. 1)) stop 10
+   if (any (minloc (r8, 1, kind=2, back=.false.) .ne. 1)) stop 11
+   if (any (minloc (r8, 1, kind=4, back=.true.) .ne. 10)) stop 12
+   if (any (minloc (r8, 1, l1) .ne. 1)) stop 13
+   if (any (minloc (r8, 1, l1, back=.false.) .ne. 1)) stop 14
+   if (any (minloc (r8, 1, l1, back=.true.) .ne. 10)) stop 15
+   if (any (minloc (r8, 1, l1, kind=8) .ne. 1)) stop 16
+   if (any (minloc (r8, 1, l1, 4, .false.) .ne. 1)) stop 17
+   if (any (minloc (r8, 1, l1, 2, .true.) .ne. 10)) stop 18
+   if (any (minloc (r8, 1, l3) .ne. 1)) stop 19
+   if (any (minloc (r8, 1, l3, back=.false.) .ne. 1)) stop 20
+   if (any (minloc (r8, 1, l3, back=.true.) .ne. 10)) stop 21
+   if (any (minloc (r8, 1, l3, kind=8) .ne. 1)) stop 22
+   if (any (minloc (r8, 1, l3, 4, .false.) .ne. 1)) stop 23
+   if (any (minloc (r8, 1, l3, 2, .true.) .ne. 10)) stop 24
+   s8 = 0.0
+   if (any (minloc (s8) .ne. 1)) stop 1
+   if (any (minloc (s8, back=.false.) .ne. 1)) stop 2
+   if (any (minloc (s8, back=.true.) .ne. 10)) stop 3
+   if (any (minloc (s8, kind=2) .ne. 1)) stop 4
+   if (any (minloc (s8, kind=4, back=.false.) .ne. 1)) stop 5
+   if (any (minloc (s8, kind=8, back=.true.) .ne. 10)) stop 6
+   if (minloc (s8, 1) .ne. 1) stop 7
+   if (minloc (s8, 1, back=.false.) .ne. 1) stop 8
+   if (minloc (s8, 1, back=.true.) .ne. 10) stop 9
+   if (minloc (s8, 1, kind=1) .ne. 1) stop 10
+   if (minloc (s8, 1, kind=2, back=.false.) .ne. 1) stop 11
+   if (minloc (s8, 1, kind=4, back=.true.) .ne. 10) stop 12
+   if (minloc (s8, 1, l2) .ne. 1) stop 13
+   if (minloc (s8, 1, l2, back=.false.) .ne. 1) stop 14
+   if (minloc (s8, 1, l2, back=.true.) .ne. 10) stop 15
+   if (minloc (s8, 1, l2, kind=8) .ne. 1) stop 16
+   if (minloc (s8, 1, l2, 4, .false.) .ne. 1) stop 17
+   if (minloc (s8, 1, l2, 2, .true.) .ne. 10) stop 18
+   if (minloc (s8, 1, l3) .ne. 1) stop 19
+   if (minloc (s8, 1, l3, back=.false.) .ne. 1) stop 20
+   if (minloc (s8, 1, l3, back=.true.) .ne. 10) stop 21
+   if (minloc (s8, 1, l3, kind=8) .ne. 1) stop 22
+   if (minloc (s8, 1, l3, 4, .false.) .ne. 1) stop 23
+   if (minloc (s8, 1, l3, 2, .true.) .ne. 10) stop 24
+ end
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120191_2.f90 gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120191_2.f90
*** gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120191_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120191_2.f90	Wed Jun 18 22:32:50 2025
***************
*** 0 ****
--- 1,84 ----
+ ! PR fortran/120191
+ ! { dg-do run }
+ 
+   character(kind=1, len=2) :: a(4, 4, 4), b(4)
+   logical :: l(4, 4, 4), m, n(4)
+   a = 'aa'
+   b = 'aa'
+   l = .true.
+   m = .true.
+   n = .true.
+   if (any (maxloc (a) .ne. 1)) stop 1
+   if (any (maxloc (a, dim=1) .ne. 1)) stop 2
+   if (any (maxloc (a, 1) .ne. 1)) stop 3
+   if (any (maxloc (a, dim=1, mask=l, kind=4, back=.false.) .ne. 1)) stop 4
+   if (any (maxloc (a, 1, l, 4, .false.) .ne. 1)) stop 5
+   if (any (maxloc (a, dim=1, mask=m, kind=4, back=.false.) .ne. 1)) stop 6
+   if (any (maxloc (a, 1, m, 4, .false.) .ne. 1)) stop 7
+   if (any (maxloc (a, dim=1, mask=l, kind=4, back=.true.) .ne. 4)) stop 8
+   if (any (maxloc (a, 1, l, 4, .true.) .ne. 4)) stop 9
+   if (any (maxloc (a, dim=1, mask=m, kind=4, back=.true.) .ne. 4)) stop 10
+   if (any (maxloc (a, 1, m, 4, .true.) .ne. 4)) stop 11
+   if (any (maxloc (b) .ne. 1)) stop 12
+   if (maxloc (b, dim=1) .ne. 1) stop 13
+   if (maxloc (b, 1) .ne. 1) stop 14
+   if (maxloc (b, dim=1, mask=n, kind=4, back=.false.) .ne. 1) stop 15
+   if (maxloc (b, 1, n, 4, .false.) .ne. 1) stop 16
+   if (maxloc (b, dim=1, mask=m, kind=4, back=.false.) .ne. 1) stop 17
+   if (maxloc (b, 1, m, 4, .false.) .ne. 1) stop 18
+   if (maxloc (b, dim=1, mask=n, kind=4, back=.true.) .ne. 4) stop 19
+   if (maxloc (b, 1, n, 4, .true.) .ne. 4) stop 20
+   if (maxloc (b, dim=1, mask=m, kind=4, back=.true.) .ne. 4) stop 21
+   if (maxloc (b, 1, m, 4, .true.) .ne. 4) stop 22
+   l = .false.
+   m = .false.
+   n = .false.
+   if (any (maxloc (a, dim=1, mask=l, kind=4, back=.false.) .ne. 0)) stop 23
+   if (any (maxloc (a, 1, l, 4, .false.) .ne. 0)) stop 24
+   if (maxloc (b, dim=1, mask=n, kind=4, back=.false.) .ne. 0) stop 25
+   if (maxloc (b, 1, n, 4, .false.) .ne. 0) stop 26
+   if (maxloc (b, dim=1, mask=m, kind=4, back=.false.) .ne. 0) stop 27
+   if (maxloc (b, 1, m, 4, .false.) .ne. 0) stop 28
+   if (maxloc (b, dim=1, mask=n, kind=4, back=.true.) .ne. 0) stop 29
+   if (maxloc (b, 1, n, 4, .true.) .ne. 0) stop 30
+   if (maxloc (b, dim=1, mask=m, kind=4, back=.true.) .ne. 0) stop 31
+   if (maxloc (b, 1, m, 4, .true.) .ne. 0) stop 32
+   l = .true.
+   m = .true.
+   n = .true.
+   if (any (minloc (a) .ne. 1)) stop 1
+   if (any (minloc (a, dim=1) .ne. 1)) stop 2
+   if (any (minloc (a, 1) .ne. 1)) stop 3
+   if (any (minloc (a, dim=1, mask=l, kind=4, back=.false.) .ne. 1)) stop 4
+   if (any (minloc (a, 1, l, 4, .false.) .ne. 1)) stop 5
+   if (any (minloc (a, dim=1, mask=m, kind=4, back=.false.) .ne. 1)) stop 6
+   if (any (minloc (a, 1, m, 4, .false.) .ne. 1)) stop 7
+   if (any (minloc (a, dim=1, mask=l, kind=4, back=.true.) .ne. 4)) stop 8
+   if (any (minloc (a, 1, l, 4, .true.) .ne. 4)) stop 9
+   if (any (minloc (a, dim=1, mask=m, kind=4, back=.true.) .ne. 4)) stop 10
+   if (any (minloc (a, 1, m, 4, .true.) .ne. 4)) stop 11
+   if (any (minloc (b) .ne. 1)) stop 12
+   if (minloc (b, dim=1) .ne. 1) stop 13
+   if (minloc (b, 1) .ne. 1) stop 14
+   if (minloc (b, dim=1, mask=n, kind=4, back=.false.) .ne. 1) stop 15
+   if (minloc (b, 1, n, 4, .false.) .ne. 1) stop 16
+   if (minloc (b, dim=1, mask=m, kind=4, back=.false.) .ne. 1) stop 17
+   if (minloc (b, 1, m, 4, .false.) .ne. 1) stop 18
+   if (minloc (b, dim=1, mask=n, kind=4, back=.true.) .ne. 4) stop 19
+   if (minloc (b, 1, n, 4, .true.) .ne. 4) stop 20
+   if (minloc (b, dim=1, mask=m, kind=4, back=.true.) .ne. 4) stop 21
+   if (minloc (b, 1, m, 4, .true.) .ne. 4) stop 22
+   l = .false.
+   m = .false.
+   n = .false.
+   if (any (minloc (a, dim=1, mask=l, kind=4, back=.false.) .ne. 0)) stop 23
+   if (any (minloc (a, 1, l, 4, .false.) .ne. 0)) stop 24
+   if (minloc (b, dim=1, mask=n, kind=4, back=.false.) .ne. 0) stop 25
+   if (minloc (b, 1, n, 4, .false.) .ne. 0) stop 26
+   if (minloc (b, dim=1, mask=m, kind=4, back=.false.) .ne. 0) stop 27
+   if (minloc (b, 1, m, 4, .false.) .ne. 0) stop 28
+   if (minloc (b, dim=1, mask=n, kind=4, back=.true.) .ne. 0) stop 29
+   if (minloc (b, 1, n, 4, .true.) .ne. 0) stop 30
+   if (minloc (b, dim=1, mask=m, kind=4, back=.true.) .ne. 0) stop 31
+   if (minloc (b, 1, m, 4, .true.) .ne. 0) stop 32
+ end
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120191_3.f90 gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120191_3.f90
*** gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120191_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120191_3.f90	Wed Jun 18 22:32:50 2025
***************
*** 0 ****
--- 1,23 ----
+ ! PR fortran/120191
+ ! { dg-do run }
+ 
+   character(kind=1, len=2) :: a(4, 4, 4), b(4)
+   logical :: l(4, 4, 4), m, n(4)
+   a = 'aa'
+   b = 'aa'
+   l = .false.
+   m = .false.
+   n = .false.
+   if (any (maxloc (a, dim=1, mask=m, kind=4, back=.false.) .ne. 0)) stop 1
+   if (any (maxloc (a, 1, m, 4, .false.) .ne. 0)) stop 2
+   if (any (maxloc (a, dim=1, mask=l, kind=4, back=.true.) .ne. 0)) stop 3
+   if (any (maxloc (a, 1, l, 4, .true.) .ne. 0)) stop 4
+   if (any (maxloc (a, dim=1, mask=m, kind=4, back=.true.) .ne. 0)) stop 5
+   if (any (maxloc (a, 1, m, 4, .true.) .ne. 0)) stop 6
+   if (any (minloc (a, dim=1, mask=m, kind=4, back=.false.) .ne. 0)) stop 7
+   if (any (minloc (a, 1, m, 4, .false.) .ne. 0)) stop 8
+   if (any (minloc (a, dim=1, mask=l, kind=4, back=.true.) .ne. 0)) stop 9
+   if (any (minloc (a, 1, l, 4, .true.) .ne. 0)) stop 10
+   if (any (minloc (a, dim=1, mask=m, kind=4, back=.true.) .ne. 0)) stop 11
+   if (any (minloc (a, 1, m, 4, .true.) .ne. 0)) stop 12
+ end
diff -Nrcpad gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120196.f90 gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120196.f90
*** gcc-12-20250611/gcc/testsuite/gfortran.dg/pr120196.f90	Thu Jan  1 00:00:00 1970
--- gcc-12-20250618/gcc/testsuite/gfortran.dg/pr120196.f90	Wed Jun 18 22:32:50 2025
***************
*** 0 ****
--- 1,26 ----
+ ! PR libfortran/120196
+ ! { dg-do run }
+ 
+ program pr120196
+   character(len=:, kind=1), allocatable :: a(:), s
+   character(len=:, kind=4), allocatable :: b(:), t
+   logical, allocatable :: l(:)
+   logical :: m
+   allocate (character(len=16, kind=1) :: a(10), s)
+   allocate (l(10))
+   a(:) = ""
+   s = "*"
+   l = .true.
+   m = .true.
+   if (findloc (a, s, dim=1, back=.true.) .ne. 0) stop 1
+   if (findloc (a, s, mask=l, dim=1, back=.true.) .ne. 0) stop 2
+   if (findloc (a, s, mask=m, dim=1, back=.true.) .ne. 0) stop 3
+   deallocate (a, s)
+   allocate (character(len=16, kind=4) :: b(10), t)
+   b(:) = ""
+   t = "*"
+   if (findloc (b, t, dim=1, back=.true.) .ne. 0) stop 4
+   if (findloc (b, t, mask=l, dim=1, back=.true.) .ne. 0) stop 5
+   if (findloc (b, t, mask=m, dim=1, back=.true.) .ne. 0) stop 6
+   deallocate (b, t, l)
+ end program pr120196
diff -Nrcpad gcc-12-20250611/gcc/tree-eh.cc gcc-12-20250618/gcc/tree-eh.cc
*** gcc-12-20250611/gcc/tree-eh.cc	Wed Jun 11 22:32:44 2025
--- gcc-12-20250618/gcc/tree-eh.cc	Wed Jun 18 22:33:00 2025
*************** add_stmt_to_eh_lp_fn (struct function *i
*** 76,82 ****
    if (!get_eh_throw_stmt_table (ifun))
      set_eh_throw_stmt_table (ifun, hash_map<gimple *, int>::create_ggc (31));
  
!   gcc_assert (!get_eh_throw_stmt_table (ifun)->put (t, num));
  }
  
  /* Add statement T in the current function (cfun) to EH landing pad NUM.  */
--- 76,83 ----
    if (!get_eh_throw_stmt_table (ifun))
      set_eh_throw_stmt_table (ifun, hash_map<gimple *, int>::create_ggc (31));
  
!   bool existed = get_eh_throw_stmt_table (ifun)->put (t, num);
!   gcc_assert (!existed);
  }
  
  /* Add statement T in the current function (cfun) to EH landing pad NUM.  */
diff -Nrcpad gcc-12-20250611/gcc/tree-ssa-loop-ivopts.cc gcc-12-20250618/gcc/tree-ssa-loop-ivopts.cc
*** gcc-12-20250611/gcc/tree-ssa-loop-ivopts.cc	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/gcc/tree-ssa-loop-ivopts.cc	Wed Jun 18 22:33:00 2025
*************** get_alias_ptr_type_for_ptr_address (iv_u
*** 7557,7563 ****
      case IFN_LEN_LOAD:
      case IFN_LEN_STORE:
        /* The second argument contains the correct alias type.  */
!       gcc_assert (use->op_p = gimple_call_arg_ptr (call, 0));
        return TREE_TYPE (gimple_call_arg (call, 1));
  
      default:
--- 7557,7563 ----
      case IFN_LEN_LOAD:
      case IFN_LEN_STORE:
        /* The second argument contains the correct alias type.  */
!       gcc_assert (use->op_p == gimple_call_arg_ptr (call, 0));
        return TREE_TYPE (gimple_call_arg (call, 1));
  
      default:
diff -Nrcpad gcc-12-20250611/gcc/tree-ssa-reassoc.cc gcc-12-20250618/gcc/tree-ssa-reassoc.cc
*** gcc-12-20250611/gcc/tree-ssa-reassoc.cc	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/gcc/tree-ssa-reassoc.cc	Wed Jun 18 22:33:00 2025
*************** static inline void
*** 403,409 ****
  insert_operand_rank (tree e, int64_t rank)
  {
    gcc_assert (rank > 0);
!   gcc_assert (!operand_rank->put (e, rank));
  }
  
  /* Given an expression E, return the rank of the expression.  */
--- 403,410 ----
  insert_operand_rank (tree e, int64_t rank)
  {
    gcc_assert (rank > 0);
!   bool existed = operand_rank->put (e, rank);
!   gcc_assert (!existed);
  }
  
  /* Given an expression E, return the rank of the expression.  */
*************** optimize_range_tests_to_bit_test (enum t
*** 3347,3353 ****
  	    continue;
  	  highj = ranges[j].high;
  	  if (highj == NULL_TREE)
! 	    highj = TYPE_MAX_VALUE (type);
  	  wide_int mask2;
  	  exp2 = extract_bit_test_mask (ranges[j].exp, prec, lowi, lowj,
  					highj, &mask2, NULL);
--- 3348,3354 ----
  	    continue;
  	  highj = ranges[j].high;
  	  if (highj == NULL_TREE)
! 	    highj = TYPE_MAX_VALUE (TREE_TYPE (lowj));
  	  wide_int mask2;
  	  exp2 = extract_bit_test_mask (ranges[j].exp, prec, lowi, lowj,
  					highj, &mask2, NULL);
diff -Nrcpad gcc-12-20250611/gcc/tree-ssa-structalias.cc gcc-12-20250618/gcc/tree-ssa-structalias.cc
*** gcc-12-20250611/gcc/tree-ssa-structalias.cc	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/gcc/tree-ssa-structalias.cc	Wed Jun 18 22:33:00 2025
*************** static void
*** 2882,2888 ****
  insert_vi_for_tree (tree t, varinfo_t vi)
  {
    gcc_assert (vi);
!   gcc_assert (!vi_for_tree->put (t, vi));
  }
  
  /* Find the variable info for tree T in VI_FOR_TREE.  If T does not
--- 2882,2889 ----
  insert_vi_for_tree (tree t, varinfo_t vi)
  {
    gcc_assert (vi);
!   bool existed = vi_for_tree->put (t, vi);
!   gcc_assert (!existed);
  }
  
  /* Find the variable info for tree T in VI_FOR_TREE.  If T does not
diff -Nrcpad gcc-12-20250611/gcc/tree-ssa.cc gcc-12-20250618/gcc/tree-ssa.cc
*** gcc-12-20250611/gcc/tree-ssa.cc	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/gcc/tree-ssa.cc	Wed Jun 18 22:33:00 2025
*************** maybe_rewrite_mem_ref_base (tree *tp, bi
*** 1527,1533 ****
  	}
        else if (TREE_CODE (TREE_TYPE (sym)) == COMPLEX_TYPE
  	       && useless_type_conversion_p (TREE_TYPE (*tp),
! 					     TREE_TYPE (TREE_TYPE (sym))))
  	{
  	  *tp = build1 (integer_zerop (TREE_OPERAND (*tp, 1))
  			? REALPART_EXPR : IMAGPART_EXPR,
--- 1527,1536 ----
  	}
        else if (TREE_CODE (TREE_TYPE (sym)) == COMPLEX_TYPE
  	       && useless_type_conversion_p (TREE_TYPE (*tp),
! 					     TREE_TYPE (TREE_TYPE (sym)))
! 	       && (integer_zerop (TREE_OPERAND (*tp, 1))
! 		   || tree_int_cst_equal (TREE_OPERAND (*tp, 1),
! 					  TYPE_SIZE_UNIT (TREE_TYPE (*tp)))))
  	{
  	  *tp = build1 (integer_zerop (TREE_OPERAND (*tp, 1))
  			? REALPART_EXPR : IMAGPART_EXPR,
diff -Nrcpad gcc-12-20250611/gcc/tree.cc gcc-12-20250618/gcc/tree.cc
*** gcc-12-20250611/gcc/tree.cc	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/gcc/tree.cc	Wed Jun 18 22:33:00 2025
*************** skip_simple_arithmetic (tree expr)
*** 3967,3973 ****
  	expr = TREE_OPERAND (expr, 0);
        else if (BINARY_CLASS_P (expr))
  	{
! 	  if (tree_invariant_p (TREE_OPERAND (expr, 1)))
  	    expr = TREE_OPERAND (expr, 0);
  	  else if (tree_invariant_p (TREE_OPERAND (expr, 0)))
  	    expr = TREE_OPERAND (expr, 1);
--- 3967,3985 ----
  	expr = TREE_OPERAND (expr, 0);
        else if (BINARY_CLASS_P (expr))
  	{
! 	  /* Before commutative binary operands are canonicalized,
! 	     it is quite common to have constants in the first operand.
! 	     Check for that common case first so that we don't walk
! 	     large expressions with tree_invariant_p unnecessarily.
! 	     This can still have terrible compile time complexity,
! 	     we should limit the depth of the tree_invariant_p and
! 	     skip_simple_arithmetic recursion.  */
! 	  if ((TREE_CONSTANT (TREE_OPERAND (expr, 0))
! 	       || (TREE_READONLY (TREE_OPERAND (expr, 0))
! 		   && !TREE_SIDE_EFFECTS (TREE_OPERAND (expr, 0))))
! 	      && tree_invariant_p (TREE_OPERAND (expr, 0)))
! 	    expr = TREE_OPERAND (expr, 1);
! 	  else if (tree_invariant_p (TREE_OPERAND (expr, 1)))
  	    expr = TREE_OPERAND (expr, 0);
  	  else if (tree_invariant_p (TREE_OPERAND (expr, 0)))
  	    expr = TREE_OPERAND (expr, 1);
diff -Nrcpad gcc-12-20250611/libatomic/ChangeLog gcc-12-20250618/libatomic/ChangeLog
*** gcc-12-20250611/libatomic/ChangeLog	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libatomic/ChangeLog	Wed Jun 18 22:33:00 2025
***************
*** 1,3 ****
--- 1,29 ----
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libgcc/101075
+ 	PR libgcc/119796
+ 	* config/mingw/lock.c (libat_lock_n, libat_unlock_n): Start with
+ 	computing how many locks will be needed and take into account
+ 	((uintptr_t)ptr % WATCH_SIZE).  If some locks from the end of the
+ 	locks array and others from the start of it will be needed, first
+ 	lock the ones from the start followed by ones from the end.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-16  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libgcc/101075
+ 	PR libgcc/119796
+ 	* config/posix/lock.c (libat_lock_n, libat_unlock_n): Start with
+ 	computing how many locks will be needed and take into account
+ 	((uintptr_t)ptr % WATCH_SIZE).  If some locks from the end of the
+ 	locks array and others from the start of it will be needed, first
+ 	lock the ones from the start followed by ones from the end.
+ 
  2024-06-20  Release Manager
  
  	* GCC 12.4.0 released.
diff -Nrcpad gcc-12-20250611/libatomic/config/mingw/lock.c gcc-12-20250618/libatomic/config/mingw/lock.c
*** gcc-12-20250611/libatomic/config/mingw/lock.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libatomic/config/mingw/lock.c	Wed Jun 18 22:33:00 2025
*************** libat_lock_n (void *ptr, size_t n)
*** 86,106 ****
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
  
    /* Don't lock more than all the locks we have.  */
!   if (n > PAGE_SIZE)
!     n = PAGE_SIZE;
  
!   do
      {
        if (!locks[h].mutex)
! 	locks[h].mutex = CreateMutex  (NULL, FALSE, NULL);
!       WaitForSingleObject (locks[h].mutex, INFINITE);
!       if (++h == NLOCKS)
! 	h = 0;
!       i += WATCH_SIZE;
      }
-   while (i < n);
  }
  
  void
--- 86,115 ----
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
+   size_t nlocks
+     = (n + ((uintptr_t)ptr % WATCH_SIZE) + WATCH_SIZE - 1) / WATCH_SIZE;
  
    /* Don't lock more than all the locks we have.  */
!   if (nlocks > NLOCKS)
!     nlocks = NLOCKS;
  
!   if (__builtin_expect (h + nlocks > NLOCKS, 0))
!     {
!       size_t j = h + nlocks - NLOCKS;
!       for (; i < j; ++i)
! 	{
! 	  if (!locks[i].mutex)
! 	    locks[i].mutex = CreateMutex (NULL, FALSE, NULL);
! 	  WaitForSingleObject (locks[i].mutex, INFINITE);
! 	}
!     }
! 
!   for (; i < nlocks; ++i)
      {
        if (!locks[h].mutex)
! 	locks[h].mutex = CreateMutex (NULL, FALSE, NULL);
!       WaitForSingleObject (locks[h++].mutex, INFINITE);
      }
  }
  
  void
*************** libat_unlock_n (void *ptr, size_t n)
*** 108,124 ****
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
  
!   if (n > PAGE_SIZE)
!     n = PAGE_SIZE;
  
!   do
      {
!       if (locks[h].mutex)
! 	ReleaseMutex (locks[h].mutex);
!       if (++h == NLOCKS)
! 	h = 0;
!       i += WATCH_SIZE;
      }
!   while (i < n);
  }
--- 117,138 ----
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
+   size_t nlocks
+     = (n + ((uintptr_t)ptr % WATCH_SIZE) + WATCH_SIZE - 1) / WATCH_SIZE;
  
!   /* Don't lock more than all the locks we have.  */
!   if (nlocks > NLOCKS)
!     nlocks = NLOCKS;
  
!   if (__builtin_expect (h + nlocks > NLOCKS, 0))
      {
!       size_t j = h + nlocks - NLOCKS;
!       for (; i < j; ++i)
! 	if (locks[i].mutex)
! 	  ReleaseMutex (locks[i].mutex);
      }
! 
!   for (; i < nlocks; ++i, ++h)
!     if (locks[h].mutex)
!       ReleaseMutex (locks[h].mutex);
  }
diff -Nrcpad gcc-12-20250611/libatomic/config/posix/lock.c gcc-12-20250618/libatomic/config/posix/lock.c
*** gcc-12-20250611/libatomic/config/posix/lock.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libatomic/config/posix/lock.c	Wed Jun 18 22:33:00 2025
*************** libat_lock_n (void *ptr, size_t n)
*** 81,99 ****
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
  
    /* Don't lock more than all the locks we have.  */
!   if (n > PAGE_SIZE)
!     n = PAGE_SIZE;
  
!   do
      {
!       pthread_mutex_lock (&locks[h].mutex);
!       if (++h == NLOCKS)
! 	h = 0;
!       i += WATCH_SIZE;
      }
!   while (i < n);
  }
  
  void
--- 81,102 ----
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
+   size_t nlocks
+     = (n + ((uintptr_t)ptr % WATCH_SIZE) + WATCH_SIZE - 1) / WATCH_SIZE;
  
    /* Don't lock more than all the locks we have.  */
!   if (nlocks > NLOCKS)
!     nlocks = NLOCKS;
  
!   if (__builtin_expect (h + nlocks > NLOCKS, 0))
      {
!       size_t j = h + nlocks - NLOCKS;
!       for (; i < j; ++i)
! 	pthread_mutex_lock (&locks[i].mutex);
      }
! 
!   for (; i < nlocks; ++i)
!     pthread_mutex_lock (&locks[h++].mutex);
  }
  
  void
*************** libat_unlock_n (void *ptr, size_t n)
*** 101,116 ****
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
  
!   if (n > PAGE_SIZE)
!     n = PAGE_SIZE;
  
!   do
      {
!       pthread_mutex_unlock (&locks[h].mutex);
!       if (++h == NLOCKS)
! 	h = 0;
!       i += WATCH_SIZE;
      }
!   while (i < n);
  }
--- 104,123 ----
  {
    uintptr_t h = addr_hash (ptr);
    size_t i = 0;
+   size_t nlocks
+     = (n + ((uintptr_t)ptr % WATCH_SIZE) + WATCH_SIZE - 1) / WATCH_SIZE;
  
!   /* Don't lock more than all the locks we have.  */
!   if (nlocks > NLOCKS)
!     nlocks = NLOCKS;
  
!   if (__builtin_expect (h + nlocks > NLOCKS, 0))
      {
!       size_t j = h + nlocks - NLOCKS;
!       for (; i < j; ++i)
! 	pthread_mutex_unlock (&locks[i].mutex);
      }
! 
!   for (; i < nlocks; ++i)
!     pthread_mutex_unlock (&locks[h++].mutex);
  }
diff -Nrcpad gcc-12-20250611/libgfortran/ChangeLog gcc-12-20250618/libgfortran/ChangeLog
*** gcc-12-20250611/libgfortran/ChangeLog	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/ChangeLog	Wed Jun 18 22:33:00 2025
***************
*** 1,3 ****
--- 1,57 ----
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR libfortran/120196
+ 	* m4/ifindloc2.m4 (header1, header2): For back use i > 0 rather than
+ 	i >= 0 as for condition.
+ 	* generated/findloc2_s1.c: Regenerate.
+ 	* generated/findloc2_s4.c: Regenerate.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/120191
+ 	* m4/ifunction-s.m4 (SCALAR_ARRAY_FUNCTION): Don't multiply
+ 	GFC_DESCRIPTOR_EXTENT(array,) by string_len.
+ 	* generated/maxloc1_4_s1.c: Regenerate.
+ 	* generated/maxloc1_4_s4.c: Regenerate.
+ 	* generated/maxloc1_8_s1.c: Regenerate.
+ 	* generated/maxloc1_8_s4.c: Regenerate.
+ 	* generated/maxloc1_16_s1.c: Regenerate.
+ 	* generated/maxloc1_16_s4.c: Regenerate.
+ 	* generated/minloc1_4_s1.c: Regenerate.
+ 	* generated/minloc1_4_s4.c: Regenerate.
+ 	* generated/minloc1_8_s1.c: Regenerate.
+ 	* generated/minloc1_8_s4.c: Regenerate.
+ 	* generated/minloc1_16_s1.c: Regenerate.
+ 	* generated/minloc1_16_s4.c: Regenerate.
+ 
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR fortran/120191
+ 	* m4/maxloc2s.m4: For smaxloc2 call maxloc2 if mask is NULL or *mask.
+ 	Swap back and len arguments.
+ 	* m4/minloc2s.m4: Likewise.
+ 	* generated/maxloc2_4_s1.c: Regenerate.
+ 	* generated/maxloc2_4_s4.c: Regenerate.
+ 	* generated/maxloc2_8_s1.c: Regenerate.
+ 	* generated/maxloc2_8_s4.c: Regenerate.
+ 	* generated/maxloc2_16_s1.c: Regenerate.
+ 	* generated/maxloc2_16_s4.c: Regenerate.
+ 	* generated/minloc2_4_s1.c: Regenerate.
+ 	* generated/minloc2_4_s4.c: Regenerate.
+ 	* generated/minloc2_8_s1.c: Regenerate.
+ 	* generated/minloc2_8_s4.c: Regenerate.
+ 	* generated/minloc2_16_s1.c: Regenerate.
+ 	* generated/minloc2_16_s4.c: Regenerate.
+ 
  2024-06-20  Release Manager
  
  	* GCC 12.4.0 released.
diff -Nrcpad gcc-12-20250611/libgfortran/generated/findloc2_s1.c gcc-12-20250618/libgfortran/generated/findloc2_s1.c
*** gcc-12-20250611/libgfortran/generated/findloc2_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/findloc2_s1.c	Wed Jun 18 22:33:00 2025
*************** findloc2_s1 (gfc_array_s1 * const restri
*** 49,55 ****
    if (back)
      {
        src = array->base_addr + (extent - 1) * sstride;
!       for (i = extent; i >= 0; i--)
  	{
  	  if (compare_string (len_array, (char *) src, len_value, (char *) value) == 0)
  	    return i;
--- 49,55 ----
    if (back)
      {
        src = array->base_addr + (extent - 1) * sstride;
!       for (i = extent; i > 0; i--)
  	{
  	  if (compare_string (len_array, (char *) src, len_value, (char *) value) == 0)
  	    return i;
*************** mfindloc2_s1 (gfc_array_s1 * const restr
*** 112,118 ****
      {
        src = array->base_addr + (extent - 1) * sstride;
        mbase += (extent - 1) * mstride;
!       for (i = extent; i >= 0; i--)
  	{
  	  if (*mbase && (compare_string (len_array, (char *) src, len_value, (char *) value) == 0))
  	    return i;
--- 112,118 ----
      {
        src = array->base_addr + (extent - 1) * sstride;
        mbase += (extent - 1) * mstride;
!       for (i = extent; i > 0; i--)
  	{
  	  if (*mbase && (compare_string (len_array, (char *) src, len_value, (char *) value) == 0))
  	    return i;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/findloc2_s4.c gcc-12-20250618/libgfortran/generated/findloc2_s4.c
*** gcc-12-20250611/libgfortran/generated/findloc2_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/findloc2_s4.c	Wed Jun 18 22:33:00 2025
*************** findloc2_s4 (gfc_array_s4 * const restri
*** 49,55 ****
    if (back)
      {
        src = array->base_addr + (extent - 1) * sstride;
!       for (i = extent; i >= 0; i--)
  	{
  	  if (compare_string_char4 (len_array, src, len_value, value) == 0)
  	    return i;
--- 49,55 ----
    if (back)
      {
        src = array->base_addr + (extent - 1) * sstride;
!       for (i = extent; i > 0; i--)
  	{
  	  if (compare_string_char4 (len_array, src, len_value, value) == 0)
  	    return i;
*************** mfindloc2_s4 (gfc_array_s4 * const restr
*** 112,118 ****
      {
        src = array->base_addr + (extent - 1) * sstride;
        mbase += (extent - 1) * mstride;
!       for (i = extent; i >= 0; i--)
  	{
  	  if (*mbase && (compare_string_char4 (len_array, src, len_value, value) == 0))
  	    return i;
--- 112,118 ----
      {
        src = array->base_addr + (extent - 1) * sstride;
        mbase += (extent - 1) * mstride;
!       for (i = extent; i > 0; i--)
  	{
  	  if (*mbase && (compare_string_char4 (len_array, src, len_value, value) == 0))
  	    return i;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc1_16_s1.c gcc-12-20250618/libgfortran/generated/maxloc1_16_s1.c
*** gcc-12-20250611/libgfortran/generated/maxloc1_16_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc1_16_s1.c	Wed Jun 18 22:33:00 2025
*************** smaxloc1_16_s1 (gfc_array_i16 * const re
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** smaxloc1_16_s1 (gfc_array_i16 * const re
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc1_16_s4.c gcc-12-20250618/libgfortran/generated/maxloc1_16_s4.c
*** gcc-12-20250611/libgfortran/generated/maxloc1_16_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc1_16_s4.c	Wed Jun 18 22:33:00 2025
*************** smaxloc1_16_s4 (gfc_array_i16 * const re
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** smaxloc1_16_s4 (gfc_array_i16 * const re
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc1_4_s1.c gcc-12-20250618/libgfortran/generated/maxloc1_4_s1.c
*** gcc-12-20250611/libgfortran/generated/maxloc1_4_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc1_4_s1.c	Wed Jun 18 22:33:00 2025
*************** smaxloc1_4_s1 (gfc_array_i4 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** smaxloc1_4_s1 (gfc_array_i4 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc1_4_s4.c gcc-12-20250618/libgfortran/generated/maxloc1_4_s4.c
*** gcc-12-20250611/libgfortran/generated/maxloc1_4_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc1_4_s4.c	Wed Jun 18 22:33:00 2025
*************** smaxloc1_4_s4 (gfc_array_i4 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** smaxloc1_4_s4 (gfc_array_i4 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc1_8_s1.c gcc-12-20250618/libgfortran/generated/maxloc1_8_s1.c
*** gcc-12-20250611/libgfortran/generated/maxloc1_8_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc1_8_s1.c	Wed Jun 18 22:33:00 2025
*************** smaxloc1_8_s1 (gfc_array_i8 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** smaxloc1_8_s1 (gfc_array_i8 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc1_8_s4.c gcc-12-20250618/libgfortran/generated/maxloc1_8_s4.c
*** gcc-12-20250611/libgfortran/generated/maxloc1_8_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc1_8_s4.c	Wed Jun 18 22:33:00 2025
*************** smaxloc1_8_s4 (gfc_array_i8 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** smaxloc1_8_s4 (gfc_array_i8 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc2_16_s1.c gcc-12-20250618/libgfortran/generated/maxloc2_16_s1.c
*** gcc-12-20250611/libgfortran/generated/maxloc2_16_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc2_16_s1.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_16
*** 152,159 ****
  smaxloc2_16_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return maxloc2_16_s1 (array, len, back);
    else
      return 0;
  }
--- 152,159 ----
  smaxloc2_16_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return maxloc2_16_s1 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc2_16_s4.c gcc-12-20250618/libgfortran/generated/maxloc2_16_s4.c
*** gcc-12-20250611/libgfortran/generated/maxloc2_16_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc2_16_s4.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_16
*** 152,159 ****
  smaxloc2_16_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return maxloc2_16_s4 (array, len, back);
    else
      return 0;
  }
--- 152,159 ----
  smaxloc2_16_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return maxloc2_16_s4 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc2_4_s1.c gcc-12-20250618/libgfortran/generated/maxloc2_4_s1.c
*** gcc-12-20250611/libgfortran/generated/maxloc2_4_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc2_4_s1.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_4
*** 152,159 ****
  smaxloc2_4_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return maxloc2_4_s1 (array, len, back);
    else
      return 0;
  }
--- 152,159 ----
  smaxloc2_4_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return maxloc2_4_s1 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc2_4_s4.c gcc-12-20250618/libgfortran/generated/maxloc2_4_s4.c
*** gcc-12-20250611/libgfortran/generated/maxloc2_4_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc2_4_s4.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_4
*** 152,159 ****
  smaxloc2_4_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return maxloc2_4_s4 (array, len, back);
    else
      return 0;
  }
--- 152,159 ----
  smaxloc2_4_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return maxloc2_4_s4 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc2_8_s1.c gcc-12-20250618/libgfortran/generated/maxloc2_8_s1.c
*** gcc-12-20250611/libgfortran/generated/maxloc2_8_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc2_8_s1.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_8
*** 152,159 ****
  smaxloc2_8_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return maxloc2_8_s1 (array, len, back);
    else
      return 0;
  }
--- 152,159 ----
  smaxloc2_8_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return maxloc2_8_s1 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/maxloc2_8_s4.c gcc-12-20250618/libgfortran/generated/maxloc2_8_s4.c
*** gcc-12-20250611/libgfortran/generated/maxloc2_8_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/maxloc2_8_s4.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_8
*** 152,159 ****
  smaxloc2_8_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return maxloc2_8_s4 (array, len, back);
    else
      return 0;
  }
--- 152,159 ----
  smaxloc2_8_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return maxloc2_8_s4 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc1_16_s1.c gcc-12-20250618/libgfortran/generated/minloc1_16_s1.c
*** gcc-12-20250611/libgfortran/generated/minloc1_16_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc1_16_s1.c	Wed Jun 18 22:33:00 2025
*************** sminloc1_16_s1 (gfc_array_i16 * const re
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** sminloc1_16_s1 (gfc_array_i16 * const re
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc1_16_s4.c gcc-12-20250618/libgfortran/generated/minloc1_16_s4.c
*** gcc-12-20250611/libgfortran/generated/minloc1_16_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc1_16_s4.c	Wed Jun 18 22:33:00 2025
*************** sminloc1_16_s4 (gfc_array_i16 * const re
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** sminloc1_16_s4 (gfc_array_i16 * const re
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc1_4_s1.c gcc-12-20250618/libgfortran/generated/minloc1_4_s1.c
*** gcc-12-20250611/libgfortran/generated/minloc1_4_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc1_4_s1.c	Wed Jun 18 22:33:00 2025
*************** sminloc1_4_s1 (gfc_array_i4 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** sminloc1_4_s1 (gfc_array_i4 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc1_4_s4.c gcc-12-20250618/libgfortran/generated/minloc1_4_s4.c
*** gcc-12-20250611/libgfortran/generated/minloc1_4_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc1_4_s4.c	Wed Jun 18 22:33:00 2025
*************** sminloc1_4_s4 (gfc_array_i4 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** sminloc1_4_s4 (gfc_array_i4 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc1_8_s1.c gcc-12-20250618/libgfortran/generated/minloc1_8_s1.c
*** gcc-12-20250611/libgfortran/generated/minloc1_8_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc1_8_s1.c	Wed Jun 18 22:33:00 2025
*************** sminloc1_8_s1 (gfc_array_i8 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** sminloc1_8_s1 (gfc_array_i8 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc1_8_s4.c gcc-12-20250618/libgfortran/generated/minloc1_8_s4.c
*** gcc-12-20250611/libgfortran/generated/minloc1_8_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc1_8_s4.c	Wed Jun 18 22:33:00 2025
*************** sminloc1_8_s4 (gfc_array_i8 * const rest
*** 468,474 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 468,474 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** sminloc1_8_s4 (gfc_array_i8 * const rest
*** 476,483 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 476,482 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc2_16_s1.c gcc-12-20250618/libgfortran/generated/minloc2_16_s1.c
*** gcc-12-20250611/libgfortran/generated/minloc2_16_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc2_16_s1.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_16
*** 154,161 ****
  sminloc2_16_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return minloc2_16_s1 (array, len, back);
    else
      return 0;
  }
--- 154,161 ----
  sminloc2_16_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return minloc2_16_s1 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc2_16_s4.c gcc-12-20250618/libgfortran/generated/minloc2_16_s4.c
*** gcc-12-20250611/libgfortran/generated/minloc2_16_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc2_16_s4.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_16
*** 154,161 ****
  sminloc2_16_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return minloc2_16_s4 (array, len, back);
    else
      return 0;
  }
--- 154,161 ----
  sminloc2_16_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return minloc2_16_s4 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc2_4_s1.c gcc-12-20250618/libgfortran/generated/minloc2_4_s1.c
*** gcc-12-20250611/libgfortran/generated/minloc2_4_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc2_4_s1.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_4
*** 154,161 ****
  sminloc2_4_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return minloc2_4_s1 (array, len, back);
    else
      return 0;
  }
--- 154,161 ----
  sminloc2_4_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return minloc2_4_s1 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc2_4_s4.c gcc-12-20250618/libgfortran/generated/minloc2_4_s4.c
*** gcc-12-20250611/libgfortran/generated/minloc2_4_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc2_4_s4.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_4
*** 154,161 ****
  sminloc2_4_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return minloc2_4_s4 (array, len, back);
    else
      return 0;
  }
--- 154,161 ----
  sminloc2_4_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return minloc2_4_s4 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc2_8_s1.c gcc-12-20250618/libgfortran/generated/minloc2_8_s1.c
*** gcc-12-20250611/libgfortran/generated/minloc2_8_s1.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc2_8_s1.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_8
*** 154,161 ****
  sminloc2_8_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return minloc2_8_s1 (array, len, back);
    else
      return 0;
  }
--- 154,161 ----
  sminloc2_8_s1 (gfc_array_s1 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return minloc2_8_s1 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/generated/minloc2_8_s4.c gcc-12-20250618/libgfortran/generated/minloc2_8_s4.c
*** gcc-12-20250611/libgfortran/generated/minloc2_8_s4.c	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/generated/minloc2_8_s4.c	Wed Jun 18 22:33:00 2025
*************** GFC_INTEGER_8
*** 154,161 ****
  sminloc2_8_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask)
!     return minloc2_8_s4 (array, len, back);
    else
      return 0;
  }
--- 154,161 ----
  sminloc2_8_s4 (gfc_array_s4 * const restrict array,
  				 GFC_LOGICAL_4 *mask, GFC_LOGICAL_4 back, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return minloc2_8_s4 (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/m4/ifindloc2.m4 gcc-12-20250618/libgfortran/m4/ifindloc2.m4
*** gcc-12-20250611/libgfortran/m4/ifindloc2.m4	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/m4/ifindloc2.m4	Wed Jun 18 22:33:01 2025
*************** see the files COPYING3 and COPYING.RUNTI
*** 41,47 ****
    if (back)
      {
        src = array->base_addr + (extent - 1) * sstride;
!       for (i = extent; i >= 0; i--)
  	{
  	  if ('comparison`'`)
  	    return i;
--- 41,47 ----
    if (back)
      {
        src = array->base_addr + (extent - 1) * sstride;
!       for (i = extent; i > 0; i--)
  	{
  	  if ('comparison`'`)
  	    return i;
*************** see the files COPYING3 and COPYING.RUNTI
*** 94,100 ****
      {
        src = array->base_addr + (extent - 1) * sstride;
        mbase += (extent - 1) * mstride;
!       for (i = extent; i >= 0; i--)
  	{
  	  if (*mbase && ('comparison`'`))
  	    return i;
--- 94,100 ----
      {
        src = array->base_addr + (extent - 1) * sstride;
        mbase += (extent - 1) * mstride;
!       for (i = extent; i > 0; i--)
  	{
  	  if (*mbase && ('comparison`'`))
  	    return i;
diff -Nrcpad gcc-12-20250611/libgfortran/m4/ifunction-s.m4 gcc-12-20250618/libgfortran/m4/ifunction-s.m4
*** gcc-12-20250611/libgfortran/m4/ifunction-s.m4	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/m4/ifunction-s.m4	Wed Jun 18 22:33:01 2025
*************** s'name`'rtype_qual`_'atype_code` ('rtype
*** 432,438 ****
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 432,438 ----
  
    for (n = 0; n < dim; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
*************** s'name`'rtype_qual`_'atype_code` ('rtype
*** 440,447 ****
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] =
! 	GFC_DESCRIPTOR_EXTENT(array,n + 1) * string_len;
  
        if (extent[n] <= 0)
  	extent[n] = 0;
--- 440,446 ----
  
    for (n = dim; n < rank; n++)
      {
!       extent[n] = GFC_DESCRIPTOR_EXTENT(array,n + 1);
  
        if (extent[n] <= 0)
  	extent[n] = 0;
diff -Nrcpad gcc-12-20250611/libgfortran/m4/maxloc2s.m4 gcc-12-20250618/libgfortran/m4/maxloc2s.m4
*** gcc-12-20250611/libgfortran/m4/maxloc2s.m4	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/m4/maxloc2s.m4	Wed Jun 18 22:33:01 2025
*************** export_proto(s'name`'rtype_qual`_'atype_
*** 153,160 ****
  s'name`'rtype_qual`_'atype_code` ('atype` * const restrict array,
  				 GFC_LOGICAL_4 *mask'back_arg`, gfc_charlen_type len)
  {
!   if (mask)
!     return 'name`'rtype_qual`_'atype_code` (array, len, back);
    else
      return 0;
  }
--- 153,160 ----
  s'name`'rtype_qual`_'atype_code` ('atype` * const restrict array,
  				 GFC_LOGICAL_4 *mask'back_arg`, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return 'name`'rtype_qual`_'atype_code` (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libgfortran/m4/minloc2s.m4 gcc-12-20250618/libgfortran/m4/minloc2s.m4
*** gcc-12-20250611/libgfortran/m4/minloc2s.m4	Wed Jun 11 22:32:45 2025
--- gcc-12-20250618/libgfortran/m4/minloc2s.m4	Wed Jun 18 22:33:01 2025
*************** export_proto(s'name`'rtype_qual`_'atype_
*** 155,162 ****
  s'name`'rtype_qual`_'atype_code` ('atype` * const restrict array,
  				 GFC_LOGICAL_4 *mask'back_arg`, gfc_charlen_type len)
  {
!   if (mask)
!     return 'name`'rtype_qual`_'atype_code` (array, len, back);
    else
      return 0;
  }
--- 155,162 ----
  s'name`'rtype_qual`_'atype_code` ('atype` * const restrict array,
  				 GFC_LOGICAL_4 *mask'back_arg`, gfc_charlen_type len)
  {
!   if (mask == NULL || *mask)
!     return 'name`'rtype_qual`_'atype_code` (array, back, len);
    else
      return 0;
  }
diff -Nrcpad gcc-12-20250611/libiberty/ChangeLog gcc-12-20250618/libiberty/ChangeLog
*** gcc-12-20250611/libiberty/ChangeLog	Wed Jun 11 22:32:51 2025
--- gcc-12-20250618/libiberty/ChangeLog	Wed Jun 18 22:33:18 2025
***************
*** 1,3 ****
--- 1,27 ----
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-09-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR lto/116614
+ 	* simple-object-elf.c (SHN_COMMON): Align comment with neighbouring
+ 	comments.
+ 	(SHN_HIRESERVE): Use uppercase hex digits instead of lowercase for
+ 	consistency.
+ 	(simple_object_elf_find_sections): Formatting fixes.
+ 	(simple_object_elf_fetch_attributes): Likewise.
+ 	(simple_object_elf_attributes_merge): Likewise.
+ 	(simple_object_elf_start_write): Likewise.
+ 	(simple_object_elf_write_ehdr): Likewise.
+ 	(simple_object_elf_write_shdr): Likewise.
+ 	(simple_object_elf_write_to_file): Likewise.
+ 	(simple_object_elf_copy_lto_debug_section): Likewise.  Don't fail for
+ 	new_i - 1 >= SHN_LORESERVE, instead arrange in that case to copy
+ 	over .symtab_shndx sections, though emit those last and compute their
+ 	section content when processing associated .symtab sections.  Handle
+ 	simple_object_internal_read failure even in the .symtab_shndx reading
+ 	case.
+ 
  2024-06-20  Release Manager
  
  	* GCC 12.4.0 released.
diff -Nrcpad gcc-12-20250611/libiberty/simple-object-elf.c gcc-12-20250618/libiberty/simple-object-elf.c
*** gcc-12-20250611/libiberty/simple-object-elf.c	Wed Jun 11 22:32:51 2025
--- gcc-12-20250618/libiberty/simple-object-elf.c	Wed Jun 18 22:33:18 2025
*************** typedef struct {
*** 128,136 ****
  
  #define SHN_UNDEF	0		/* Undefined section */
  #define SHN_LORESERVE	0xFF00		/* Begin range of reserved indices */
! #define SHN_COMMON	0xFFF2	/* Associated symbol is in common */
  #define SHN_XINDEX	0xFFFF		/* Section index is held elsewhere */
! #define SHN_HIRESERVE	0xffff		/* End of reserved indices */
  
  
  /* 32-bit ELF program header.  */
--- 128,136 ----
  
  #define SHN_UNDEF	0		/* Undefined section */
  #define SHN_LORESERVE	0xFF00		/* Begin range of reserved indices */
! #define SHN_COMMON	0xFFF2		/* Associated symbol is in common */
  #define SHN_XINDEX	0xFFFF		/* Section index is held elsewhere */
! #define SHN_HIRESERVE	0xFFFF		/* End of reserved indices */
  
  
  /* 32-bit ELF program header.  */
*************** simple_object_elf_find_sections (simple_
*** 569,576 ****
  				 void *data,
  				 int *err)
  {
!   struct simple_object_elf_read *eor =
!     (struct simple_object_elf_read *) sobj->data;
    const struct elf_type_functions *type_functions = eor->type_functions;
    unsigned char ei_class = eor->ei_class;
    size_t shdr_size;
--- 569,576 ----
  				 void *data,
  				 int *err)
  {
!   struct simple_object_elf_read *eor
!     = (struct simple_object_elf_read *) sobj->data;
    const struct elf_type_functions *type_functions = eor->type_functions;
    unsigned char ei_class = eor->ei_class;
    size_t shdr_size;
*************** simple_object_elf_fetch_attributes (simp
*** 662,669 ****
  				    const char **errmsg ATTRIBUTE_UNUSED,
  				    int *err ATTRIBUTE_UNUSED)
  {
!   struct simple_object_elf_read *eor =
!     (struct simple_object_elf_read *) sobj->data;
    struct simple_object_elf_attributes *ret;
  
    ret = XNEW (struct simple_object_elf_attributes);
--- 662,669 ----
  				    const char **errmsg ATTRIBUTE_UNUSED,
  				    int *err ATTRIBUTE_UNUSED)
  {
!   struct simple_object_elf_read *eor
!     = (struct simple_object_elf_read *) sobj->data;
    struct simple_object_elf_attributes *ret;
  
    ret = XNEW (struct simple_object_elf_attributes);
*************** simple_object_elf_release_read (void *da
*** 689,698 ****
  static const char *
  simple_object_elf_attributes_merge (void *todata, void *fromdata, int *err)
  {
!   struct simple_object_elf_attributes *to =
!     (struct simple_object_elf_attributes *) todata;
!   struct simple_object_elf_attributes *from =
!     (struct simple_object_elf_attributes *) fromdata;
  
    if (to->ei_data != from->ei_data || to->ei_class != from->ei_class)
      {
--- 689,698 ----
  static const char *
  simple_object_elf_attributes_merge (void *todata, void *fromdata, int *err)
  {
!   struct simple_object_elf_attributes *to
!     = (struct simple_object_elf_attributes *) todata;
!   struct simple_object_elf_attributes *from
!     = (struct simple_object_elf_attributes *) fromdata;
  
    if (to->ei_data != from->ei_data || to->ei_class != from->ei_class)
      {
*************** simple_object_elf_start_write (void *att
*** 751,758 ****
  			       const char **errmsg ATTRIBUTE_UNUSED,
  			       int *err ATTRIBUTE_UNUSED)
  {
!   struct simple_object_elf_attributes *attrs =
!     (struct simple_object_elf_attributes *) attributes_data;
    struct simple_object_elf_write *ret;
  
    /* We're just going to record the attributes, but we need to make a
--- 751,758 ----
  			       const char **errmsg ATTRIBUTE_UNUSED,
  			       int *err ATTRIBUTE_UNUSED)
  {
!   struct simple_object_elf_attributes *attrs
!     = (struct simple_object_elf_attributes *) attributes_data;
    struct simple_object_elf_write *ret;
  
    /* We're just going to record the attributes, but we need to make a
*************** static int
*** 769,776 ****
  simple_object_elf_write_ehdr (simple_object_write *sobj, int descriptor,
  			      const char **errmsg, int *err)
  {
!   struct simple_object_elf_attributes *attrs =
!     (struct simple_object_elf_attributes *) sobj->data;
    const struct elf_type_functions* fns;
    unsigned char cl;
    size_t ehdr_size;
--- 769,776 ----
  simple_object_elf_write_ehdr (simple_object_write *sobj, int descriptor,
  			      const char **errmsg, int *err)
  {
!   struct simple_object_elf_attributes *attrs
!     = (struct simple_object_elf_attributes *) sobj->data;
    const struct elf_type_functions* fns;
    unsigned char cl;
    size_t ehdr_size;
*************** simple_object_elf_write_shdr (simple_obj
*** 852,859 ****
  			      size_t sh_entsize,
  			      const char **errmsg, int *err)
  {
!   struct simple_object_elf_attributes *attrs =
!     (struct simple_object_elf_attributes *) sobj->data;
    const struct elf_type_functions* fns;
    unsigned char cl;
    size_t shdr_size;
--- 852,859 ----
  			      size_t sh_entsize,
  			      const char **errmsg, int *err)
  {
!   struct simple_object_elf_attributes *attrs
!     = (struct simple_object_elf_attributes *) sobj->data;
    const struct elf_type_functions* fns;
    unsigned char cl;
    size_t shdr_size;
*************** static const char *
*** 894,901 ****
  simple_object_elf_write_to_file (simple_object_write *sobj, int descriptor,
  				 int *err)
  {
!   struct simple_object_elf_write *eow =
!     (struct simple_object_elf_write *) sobj->data;
    struct simple_object_elf_attributes *attrs = &eow->attrs;
    unsigned char cl;
    size_t ehdr_size;
--- 894,901 ----
  simple_object_elf_write_to_file (simple_object_write *sobj, int descriptor,
  				 int *err)
  {
!   struct simple_object_elf_write *eow
!     = (struct simple_object_elf_write *) sobj->data;
    struct simple_object_elf_attributes *attrs = &eow->attrs;
    unsigned char cl;
    size_t ehdr_size;
*************** simple_object_elf_copy_lto_debug_section
*** 1088,1098 ****
  					   char *(*pfn) (const char *),
  					   int *err)
  {
!   struct simple_object_elf_read *eor =
!     (struct simple_object_elf_read *) sobj->data;
    const struct elf_type_functions *type_functions = eor->type_functions;
!   struct simple_object_elf_write *eow =
!     (struct simple_object_elf_write *) dobj->data;
    unsigned char ei_class = eor->ei_class;
    size_t shdr_size;
    unsigned int shnum;
--- 1088,1098 ----
  					   char *(*pfn) (const char *),
  					   int *err)
  {
!   struct simple_object_elf_read *eor
!     = (struct simple_object_elf_read *) sobj->data;
    const struct elf_type_functions *type_functions = eor->type_functions;
!   struct simple_object_elf_write *eow
!     = (struct simple_object_elf_write *) dobj->data;
    unsigned char ei_class = eor->ei_class;
    size_t shdr_size;
    unsigned int shnum;
*************** simple_object_elf_copy_lto_debug_section
*** 1106,1115 ****
    int changed;
    int *pfnret;
    const char **pfnname;
!   unsigned new_i;
    unsigned *sh_map;
    unsigned first_shndx = 0;
    unsigned int *symtab_indices_shndx;
  
    shdr_size = (ei_class == ELFCLASS32
  	       ? sizeof (Elf32_External_Shdr)
--- 1106,1118 ----
    int changed;
    int *pfnret;
    const char **pfnname;
!   unsigned new_i, new_count;
    unsigned *sh_map;
    unsigned first_shndx = 0;
    unsigned int *symtab_indices_shndx;
+   int pass_symtab_indices_shndx;
+   unsigned int first_symtab_indices_shndx;
+   unsigned char **symtab_indices_shndx_buf;
  
    shdr_size = (ei_class == ELFCLASS32
  	       ? sizeof (Elf32_External_Shdr)
*************** simple_object_elf_copy_lto_debug_section
*** 1179,1186 ****
        ret = (*pfn) (name);
        pfnret[i - 1] = ret == NULL ? -1 : 0;
        pfnname[i - 1] = ret == NULL ? name : ret;
!       if (first_shndx == 0
! 	  && pfnret[i - 1] == 0)
  	first_shndx = i;
  
        /* Remember the indexes of existing SHT_SYMTAB_SHNDX sections.  */
--- 1182,1188 ----
        ret = (*pfn) (name);
        pfnret[i - 1] = ret == NULL ? -1 : 0;
        pfnname[i - 1] = ret == NULL ? name : ret;
!       if (first_shndx == 0 && pfnret[i - 1] == 0)
  	first_shndx = i;
  
        /* Remember the indexes of existing SHT_SYMTAB_SHNDX sections.  */
*************** simple_object_elf_copy_lto_debug_section
*** 1191,1201 ****
  	  unsigned int sh_link;
  	  sh_link = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  				     shdr, sh_link, Elf_Word);
! 	  symtab_indices_shndx[sh_link - 1] = i - 1;
! 	  /* Always discard the extended index sections, after
! 	     copying it will not be needed.  This way we don't need to
! 	     update it and deal with the ordering constraints of
! 	     processing the existing symtab and changing the index.  */
  	  pfnret[i - 1] = -1;
  	}
      }
--- 1193,1204 ----
  	  unsigned int sh_link;
  	  sh_link = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  				     shdr, sh_link, Elf_Word);
! 	  symtab_indices_shndx[sh_link - 1] = i;
! 	  /* Discard the extended index sections, after copying it will not
! 	     be needed, unless we need more than SHN_LORESERVE - 1 sections
! 	     in the output.  This way we don't need to update it and deal with
! 	     the ordering constraints of processing the existing symtab and
! 	     changing the index.  */
  	  pfnret[i - 1] = -1;
  	}
      }
*************** simple_object_elf_copy_lto_debug_section
*** 1291,1306 ****
        else
  	sh_map[i] = new_i++;
      }
    if (new_i - 1 >= SHN_LORESERVE)
!     {
!       *err = ENOTSUP;
!       return "Too many copied sections";
!     }
!   eow->shdrs = XNEWVEC (unsigned char, shdr_size * (new_i - 1));
  
    /* Then perform the actual copying.  */
    new_i = 0;
!   for (i = 1; i < shnum; ++i)
      {
        unsigned char *shdr;
        unsigned int sh_name, sh_type;
--- 1294,1318 ----
        else
  	sh_map[i] = new_i++;
      }
+   first_symtab_indices_shndx = new_i;
+   symtab_indices_shndx_buf = NULL;
    if (new_i - 1 >= SHN_LORESERVE)
!     for (i = 1; i < shnum; ++i)
!       if (pfnret[i - 1] == 0 && symtab_indices_shndx[i - 1] != 0)
! 	{
! 	  pfnret[symtab_indices_shndx[i - 1] - 1] = 0;
! 	  sh_map[symtab_indices_shndx[i - 1]] = new_i++;
! 	}
!   new_count = new_i;
!   if (new_count != first_symtab_indices_shndx)
!     symtab_indices_shndx_buf
!       = XNEWVEC (unsigned char *, new_count - first_symtab_indices_shndx);
!   eow->shdrs = XNEWVEC (unsigned char, shdr_size * (new_count - 1));
  
    /* Then perform the actual copying.  */
    new_i = 0;
!   pass_symtab_indices_shndx = 0;
!   for (i = 1; i <= shnum; ++i)
      {
        unsigned char *shdr;
        unsigned int sh_name, sh_type;
*************** simple_object_elf_copy_lto_debug_section
*** 1311,1321 ****
        off_t flags;
        unsigned char *buf;
  
        if (pfnret[i - 1])
  	continue;
  
-       new_i++;
        shdr = shdrs + (i - 1) * shdr_size;
        sh_name = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  				 shdr, sh_name, Elf_Word);
        if (sh_name >= name_size)
--- 1323,1352 ----
        off_t flags;
        unsigned char *buf;
  
+       if (i == shnum)
+ 	{
+ 	  if (new_count - 1 < SHN_LORESERVE || pass_symtab_indices_shndx)
+ 	    break;
+ 	  i = 0;
+ 	  pass_symtab_indices_shndx = 1;
+ 	  continue;
+ 	}
+ 
        if (pfnret[i - 1])
  	continue;
  
        shdr = shdrs + (i - 1) * shdr_size;
+       sh_type = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
+ 				 shdr, sh_type, Elf_Word);
+       if (sh_type == SHT_SYMTAB_SHNDX)
+ 	{
+ 	  if (!pass_symtab_indices_shndx)
+ 	    continue;
+ 	}
+       else if (pass_symtab_indices_shndx)
+ 	continue;
+ 
+       new_i++;
        sh_name = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  				 shdr, sh_name, Elf_Word);
        if (sh_name >= name_size)
*************** simple_object_elf_copy_lto_debug_section
*** 1324,1329 ****
--- 1355,1361 ----
  	  XDELETEVEC (names);
  	  XDELETEVEC (shdrs);
  	  XDELETEVEC (symtab_indices_shndx);
+ 	  XDELETEVEC (symtab_indices_shndx_buf);
  	  return "ELF section name out of range";
  	}
  
*************** simple_object_elf_copy_lto_debug_section
*** 1332,1347 ****
  				shdr, sh_offset, Elf_Addr);
        length = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  				shdr, sh_size, Elf_Addr);
-       sh_type = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
- 				 shdr, sh_type, Elf_Word);
  
!       dest = simple_object_write_create_section (dobj, pfnname[i - 1],
! 						 0, &errmsg, err);
        if (dest == NULL)
  	{
  	  XDELETEVEC (names);
  	  XDELETEVEC (shdrs);
  	  XDELETEVEC (symtab_indices_shndx);
  	  return errmsg;
  	}
  
--- 1364,1377 ----
  				shdr, sh_offset, Elf_Addr);
        length = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  				shdr, sh_size, Elf_Addr);
  
!       dest = simple_object_write_create_section (dobj, name, 0, &errmsg, err);
        if (dest == NULL)
  	{
  	  XDELETEVEC (names);
  	  XDELETEVEC (shdrs);
  	  XDELETEVEC (symtab_indices_shndx);
+ 	  XDELETEVEC (symtab_indices_shndx_buf);
  	  return errmsg;
  	}
  
*************** simple_object_elf_copy_lto_debug_section
*** 1363,1368 ****
--- 1393,1399 ----
  	  XDELETEVEC (names);
  	  XDELETEVEC (shdrs);
  	  XDELETEVEC (symtab_indices_shndx);
+ 	  XDELETEVEC (symtab_indices_shndx_buf);
  	  return errmsg;
  	}
  
*************** simple_object_elf_copy_lto_debug_section
*** 1378,1384 ****
  	  /* Read the section index table if present.  */
  	  if (symtab_indices_shndx[i - 1] != 0)
  	    {
! 	      unsigned char *sidxhdr = shdrs + symtab_indices_shndx[i - 1] * shdr_size;
  	      off_t sidxoff = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  					       sidxhdr, sh_offset, Elf_Addr);
  	      size_t sidxsz = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
--- 1409,1416 ----
  	  /* Read the section index table if present.  */
  	  if (symtab_indices_shndx[i - 1] != 0)
  	    {
! 	      unsigned char *sidxhdr
! 		= shdrs + (symtab_indices_shndx[i - 1] - 1) * shdr_size;
  	      off_t sidxoff = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
  					       sidxhdr, sh_offset, Elf_Addr);
  	      size_t sidxsz = ELF_FETCH_FIELD (type_functions, ei_class, Shdr,
*************** simple_object_elf_copy_lto_debug_section
*** 1388,1398 ****
  				   sidxhdr, sh_type, Elf_Word);
  	      if (shndx_type != SHT_SYMTAB_SHNDX)
  		return "Wrong section type of a SYMTAB SECTION INDICES section";
! 	      shndx_table = (unsigned *)XNEWVEC (char, sidxsz);
! 	      simple_object_internal_read (sobj->descriptor,
! 					   sobj->offset + sidxoff,
! 					   (unsigned char *)shndx_table,
! 					   sidxsz, &errmsg, err);
  	    }
  
  	  /* Find a WEAK HIDDEN symbol which name we will use for removed
--- 1420,1439 ----
  				   sidxhdr, sh_type, Elf_Word);
  	      if (shndx_type != SHT_SYMTAB_SHNDX)
  		return "Wrong section type of a SYMTAB SECTION INDICES section";
! 	      shndx_table = (unsigned *) XNEWVEC (char, sidxsz);
! 	      if (!simple_object_internal_read (sobj->descriptor,
! 						sobj->offset + sidxoff,
! 						(unsigned char *) shndx_table,
! 						sidxsz, &errmsg, err))
! 		{
! 		  XDELETEVEC (buf);
! 		  XDELETEVEC (names);
! 		  XDELETEVEC (shdrs);
! 		  XDELETEVEC (symtab_indices_shndx);
! 		  XDELETEVEC (shndx_table);
! 		  XDELETEVEC (symtab_indices_shndx_buf);
! 		  return errmsg;
! 		}
  	    }
  
  	  /* Find a WEAK HIDDEN symbol which name we will use for removed
*************** simple_object_elf_copy_lto_debug_section
*** 1407,1423 ****
  	      unsigned char *st_other;
  	      if (ei_class == ELFCLASS32)
  		{
! 		  st_info = &((Elf32_External_Sym *)ent)->st_info;
! 		  st_other = &((Elf32_External_Sym *)ent)->st_other;
  		}
  	      else
  		{
! 		  st_info = &((Elf64_External_Sym *)ent)->st_info;
! 		  st_other = &((Elf64_External_Sym *)ent)->st_other;
  		}
  	      if (st_shndx == SHN_XINDEX)
! 		st_shndx = type_functions->fetch_Elf_Word
! 		    ((unsigned char *)(shndx_table + (ent - buf) / entsize));
  
  	      if (st_shndx != SHN_COMMON
  		  && !(st_shndx != SHN_UNDEF
--- 1448,1467 ----
  	      unsigned char *st_other;
  	      if (ei_class == ELFCLASS32)
  		{
! 		  st_info = &((Elf32_External_Sym *) ent)->st_info;
! 		  st_other = &((Elf32_External_Sym *) ent)->st_other;
  		}
  	      else
  		{
! 		  st_info = &((Elf64_External_Sym *) ent)->st_info;
! 		  st_other = &((Elf64_External_Sym *) ent)->st_other;
  		}
  	      if (st_shndx == SHN_XINDEX)
! 		{
! 		  unsigned char *ndx_ptr
! 		    = (unsigned char *) (shndx_table + (ent - buf) / entsize);
! 		  st_shndx = type_functions->fetch_Elf_Word (ndx_ptr);
! 		}
  
  	      if (st_shndx != SHN_COMMON
  		  && !(st_shndx != SHN_UNDEF
*************** simple_object_elf_copy_lto_debug_section
*** 1442,1460 ****
  	      unsigned char *st_info;
  	      unsigned char *st_other;
  	      int discard = 0;
  	      if (ei_class == ELFCLASS32)
  		{
! 		  st_info = &((Elf32_External_Sym *)ent)->st_info;
! 		  st_other = &((Elf32_External_Sym *)ent)->st_other;
  		}
  	      else
  		{
! 		  st_info = &((Elf64_External_Sym *)ent)->st_info;
! 		  st_other = &((Elf64_External_Sym *)ent)->st_other;
  		}
  	      if (st_shndx == SHN_XINDEX)
! 		st_shndx = type_functions->fetch_Elf_Word
! 		    ((unsigned char *)(shndx_table + (ent - buf) / entsize));
  	      /* Eliminate all COMMONs - this includes __gnu_lto_slim
  		 which otherwise cause endless LTO plugin invocation.
  		 FIXME: remove the condition once we remove emission
--- 1486,1511 ----
  	      unsigned char *st_info;
  	      unsigned char *st_other;
  	      int discard = 0;
+ 	      unsigned char *ndx_ptr = NULL;
  	      if (ei_class == ELFCLASS32)
  		{
! 		  st_info = &((Elf32_External_Sym *) ent)->st_info;
! 		  st_other = &((Elf32_External_Sym *) ent)->st_other;
  		}
  	      else
  		{
! 		  st_info = &((Elf64_External_Sym *) ent)->st_info;
! 		  st_other = &((Elf64_External_Sym *) ent)->st_other;
  		}
+ 	      if (shndx_table)
+ 		ndx_ptr
+ 		  = (unsigned char *) (shndx_table + (ent - buf) / entsize);
+ 
  	      if (st_shndx == SHN_XINDEX)
! 		{
! 		  st_shndx = type_functions->fetch_Elf_Word (ndx_ptr);
! 		  type_functions->set_Elf_Word (ndx_ptr, SHN_UNDEF);
! 		}
  	      /* Eliminate all COMMONs - this includes __gnu_lto_slim
  		 which otherwise cause endless LTO plugin invocation.
  		 FIXME: remove the condition once we remove emission
*************** simple_object_elf_copy_lto_debug_section
*** 1488,1496 ****
  			 defined in the first prevailing section.  */
  		      ELF_SET_FIELD (type_functions, ei_class, Sym,
  				     ent, st_name, Elf_Word, 0);
  		      ELF_SET_FIELD (type_functions, ei_class, Sym,
! 				     ent, st_shndx, Elf_Half,
! 				     sh_map[first_shndx]);
  		    }
  		  else
  		    {
--- 1539,1552 ----
  			 defined in the first prevailing section.  */
  		      ELF_SET_FIELD (type_functions, ei_class, Sym,
  				     ent, st_name, Elf_Word, 0);
+ 		      st_shndx = sh_map[first_shndx];
+ 		      if (st_shndx >= SHN_LORESERVE)
+ 			{
+ 			  type_functions->set_Elf_Word (ndx_ptr, st_shndx);
+ 			  st_shndx = SHN_XINDEX;
+ 			}
  		      ELF_SET_FIELD (type_functions, ei_class, Sym,
! 				     ent, st_shndx, Elf_Half, st_shndx);
  		    }
  		  else
  		    {
*************** simple_object_elf_copy_lto_debug_section
*** 1514,1524 ****
  		}
  	      else if (raw_st_shndx < SHN_LORESERVE
  		       || raw_st_shndx == SHN_XINDEX)
! 		/* Remap the section reference.  */
! 		ELF_SET_FIELD (type_functions, ei_class, Sym,
! 			       ent, st_shndx, Elf_Half, sh_map[st_shndx]);
  	    }
! 	  XDELETEVEC (shndx_table);
  	}
        else if (sh_type == SHT_GROUP)
  	{
--- 1570,1593 ----
  		}
  	      else if (raw_st_shndx < SHN_LORESERVE
  		       || raw_st_shndx == SHN_XINDEX)
! 		{
! 		  /* Remap the section reference.  */
! 		  st_shndx = sh_map[st_shndx];
! 		  if (st_shndx >= SHN_LORESERVE)
! 		    {
! 		      type_functions->set_Elf_Word (ndx_ptr, st_shndx);
! 		      st_shndx = SHN_XINDEX;
! 		    }
! 		  ELF_SET_FIELD (type_functions, ei_class, Sym,
! 				 ent, st_shndx, Elf_Half, st_shndx);
! 		}
  	    }
! 	  if (symtab_indices_shndx_buf)
! 	    symtab_indices_shndx_buf[sh_map[symtab_indices_shndx[i - 1]]
! 				     - first_symtab_indices_shndx]
! 	      = (unsigned char *) shndx_table;
! 	  else
! 	    XDELETEVEC (shndx_table);
  	}
        else if (sh_type == SHT_GROUP)
  	{
*************** simple_object_elf_copy_lto_debug_section
*** 1538,1552 ****
  	  /* Adjust the length.  */
  	  length = dst - buf;
  	}
  
!       errmsg = simple_object_write_add_data (dobj, dest,
! 					     buf, length, 1, err);
        XDELETEVEC (buf);
        if (errmsg)
  	{
  	  XDELETEVEC (names);
  	  XDELETEVEC (shdrs);
  	  XDELETEVEC (symtab_indices_shndx);
  	  return errmsg;
  	}
  
--- 1607,1627 ----
  	  /* Adjust the length.  */
  	  length = dst - buf;
  	}
+       else if (sh_type == SHT_SYMTAB_SHNDX)
+ 	{
+ 	  XDELETEVEC (buf);
+ 	  buf = symtab_indices_shndx_buf[new_i - first_symtab_indices_shndx];
+ 	  symtab_indices_shndx_buf[new_i - first_symtab_indices_shndx] = NULL;
+ 	}
  
!       errmsg = simple_object_write_add_data (dobj, dest, buf, length, 1, err);
        XDELETEVEC (buf);
        if (errmsg)
  	{
  	  XDELETEVEC (names);
  	  XDELETEVEC (shdrs);
  	  XDELETEVEC (symtab_indices_shndx);
+ 	  XDELETEVEC (symtab_indices_shndx_buf);
  	  return errmsg;
  	}
  
*************** simple_object_elf_copy_lto_debug_section
*** 1586,1591 ****
--- 1661,1667 ----
    XDELETEVEC (pfnname);
    XDELETEVEC (symtab_indices_shndx);
    XDELETEVEC (sh_map);
+   XDELETEVEC (symtab_indices_shndx_buf);
  
    return NULL;
  }
diff -Nrcpad gcc-12-20250611/libquadmath/ChangeLog gcc-12-20250618/libquadmath/ChangeLog
*** gcc-12-20250611/libquadmath/ChangeLog	Wed Jun 11 22:32:51 2025
--- gcc-12-20250618/libquadmath/ChangeLog	Wed Jun 18 22:33:18 2025
***************
*** 1,3 ****
--- 1,10 ----
+ 2025-06-13  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-04-09  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* math/expq.c (C): Fix up THREEp96 constant.
+ 
  2024-06-20  Release Manager
  
  	* GCC 12.4.0 released.
diff -Nrcpad gcc-12-20250611/libquadmath/math/expq.c gcc-12-20250618/libquadmath/math/expq.c
*** gcc-12-20250611/libquadmath/math/expq.c	Wed Jun 11 22:32:51 2025
--- gcc-12-20250618/libquadmath/math/expq.c	Wed Jun 18 22:33:18 2025
*************** static const __float128 C[] = {
*** 74,80 ****
  
  /* 3x2^96 */
  #define THREEp96 C[2]
!  59421121885698253195157962752.0Q,
  
  /* 3x2^103 */
  #define THREEp103 C[3]
--- 74,80 ----
  
  /* 3x2^96 */
  #define THREEp96 C[2]
!  237684487542793012780631851008.0Q,
  
  /* 3x2^103 */
  #define THREEp103 C[3]
diff -Nrcpad gcc-12-20250611/libstdc++-v3/ChangeLog gcc-12-20250618/libstdc++-v3/ChangeLog
*** gcc-12-20250611/libstdc++-v3/ChangeLog	Wed Jun 11 22:32:51 2025
--- gcc-12-20250618/libstdc++-v3/ChangeLog	Wed Jun 18 22:33:18 2025
***************
*** 1,3 ****
--- 1,36 ----
+ 2025-06-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-10-16  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* python/libstdcxx/v6/printers.py (strip_fundts_namespace): New.
+ 	(StdExpAnyPrinter, StdExpOptionalPrinter): Use it.
+ 
+ 2025-06-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-06-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/99832
+ 	* include/bits/chrono.h (system_clock::to_time_t): Add
+ 	always_inline attribute to be agnostic to the underlying type of
+ 	time_t.
+ 	(system_clock::from_time_t): Add always_inline for consistency
+ 	with to_time_t.
+ 	* testsuite/20_util/system_clock/99832.cc: New test.
+ 
+ 2025-06-11  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* doc/xml/faq.xml: Update URL for archived SGI STL docs.
+ 	* doc/xml/manual/containers.xml: Likewise.
+ 	* doc/xml/manual/extensions.xml: Likewise.
+ 	* doc/xml/manual/using.xml: Likewise.
+ 	* doc/xml/manual/utilities.xml: Likewise.
+ 	* doc/html/*: Regenerate.
+ 
  2025-04-17  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
