diff -Nrcpad gcc-15-20250621/LAST_UPDATED gcc-15-20250628/LAST_UPDATED
*** gcc-15-20250621/LAST_UPDATED	Sat Jun 21 22:33:03 2025
--- gcc-15-20250628/LAST_UPDATED	Sat Jun 28 22:32:39 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision 2c24509f90a0c1c12ba21ecbcd5636e81283d56f
--- 1 ----
! Obtained from git: releases/gcc-15 revision 06a26f4d643a5d045d893cd443425b13bd3d1b4b
diff -Nrcpad gcc-15-20250621/MD5SUMS gcc-15-20250628/MD5SUMS
*** gcc-15-20250621/MD5SUMS	Sat Jun 21 22:33:07 2025
--- gcc-15-20250628/MD5SUMS	Sat Jun 28 22:32:43 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20250621.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-15-20250628.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
*** 25,31 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 22784121aadb4149f231867716fbb01d  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 7eab583296bf83c5b4f2a703a7e110df  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 514,520 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! b58e320e70f0a1db1b18ef4c33b04d02  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 514,520 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 8d404087474d8beea0bc5a26c0bf8b67  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 551,557 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! fa7d2b69ef30b3e473413ad5e34e0ceb  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 551,557 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 41dd7c8ddf104551adfce118fdfe4a56  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** abd831e54ebd759115e62d420bdb5c2f  gcc/ad
*** 2909,2915 ****
  3bf01e026b494a442389a5d3541785b8  gcc/ada/seh_init.c
  162cc8e58f789b4cd25dc980dc46398a  gcc/ada/sem.adb
  afaa0a52de285d1aad9c58b79b424a1f  gcc/ada/sem.ads
! 94e004b797859a3d3abdda4c00eb0de7  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
  278b33ffab0157c51132dcd3fc0daa1b  gcc/ada/sem_attr.adb
  bfe4748123d415f6eb13d89a585468f1  gcc/ada/sem_attr.ads
--- 2909,2915 ----
  3bf01e026b494a442389a5d3541785b8  gcc/ada/seh_init.c
  162cc8e58f789b4cd25dc980dc46398a  gcc/ada/sem.adb
  afaa0a52de285d1aad9c58b79b424a1f  gcc/ada/sem.ads
! 4ab25deb814c762e9dcbea9e3fbe4ac8  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
  278b33ffab0157c51132dcd3fc0daa1b  gcc/ada/sem_attr.adb
  bfe4748123d415f6eb13d89a585468f1  gcc/ada/sem_attr.ads
*************** ea4d856a616d24b9db47871b82e88726  gcc/ad
*** 2953,2959 ****
  c074ec7450863300eff2a21c036a624b  gcc/ada/sem_elab.ads
  1dcf7c5349839b9e9ab4ee0d1954c7c6  gcc/ada/sem_elim.adb
  c837e01542a712c622bac1cd152fc080  gcc/ada/sem_elim.ads
! 9d6602868f501bc32b05f81cdc622438  gcc/ada/sem_eval.adb
  e0db1a09711cf7617413ca73c539ed67  gcc/ada/sem_eval.ads
  e8e79e2a818321d7816e27eed8d17404  gcc/ada/sem_intr.adb
  66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
--- 2953,2959 ----
  c074ec7450863300eff2a21c036a624b  gcc/ada/sem_elab.ads
  1dcf7c5349839b9e9ab4ee0d1954c7c6  gcc/ada/sem_elim.adb
  c837e01542a712c622bac1cd152fc080  gcc/ada/sem_elim.ads
! 45cba132d9cd53167f05f4b521b24eb9  gcc/ada/sem_eval.adb
  e0db1a09711cf7617413ca73c539ed67  gcc/ada/sem_eval.ads
  e8e79e2a818321d7816e27eed8d17404  gcc/ada/sem_intr.adb
  66ccba8e3b77fa8d6e0e13f6368d804a  gcc/ada/sem_intr.ads
*************** dce5f9aa135bb3752695f3103daa686a  gcc/cf
*** 3281,3287 ****
  0d52ee7360736bb3d0306e66c1f3a9ce  gcc/cfgbuild.h
  39bbd18fab17b2880094aa317111df50  gcc/cfgcleanup.cc
  0761d2fe0a8e51aa7ed662e27b66747a  gcc/cfgcleanup.h
! fa259ff7ddd6a4f08948047b834236d1  gcc/cfgexpand.cc
  b0df45fc1562ee51ee67ed5f30feb96e  gcc/cfgexpand.h
  748c8fca5e6dfe774ff333205ea9f9be  gcc/cfghooks.cc
  bbad65845fcf9cdbc5137d96f92eacab  gcc/cfghooks.h
--- 3281,3287 ----
  0d52ee7360736bb3d0306e66c1f3a9ce  gcc/cfgbuild.h
  39bbd18fab17b2880094aa317111df50  gcc/cfgcleanup.cc
  0761d2fe0a8e51aa7ed662e27b66747a  gcc/cfgcleanup.h
! 9996689c7ae5fb1fa1363217697db9d6  gcc/cfgexpand.cc
  b0df45fc1562ee51ee67ed5f30feb96e  gcc/cfgexpand.h
  748c8fca5e6dfe774ff333205ea9f9be  gcc/cfghooks.cc
  bbad65845fcf9cdbc5137d96f92eacab  gcc/cfghooks.h
*************** d9450e0fa15cd8b8f6659555820ec24e  gcc/co
*** 3456,3462 ****
  f28e7beab7cc8baa0b1a2e5e9efc0597  gcc/config/aarch64/aarch64-simd-builtins.def
  33ce4a896b77324d9be6448637daf9ca  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
  289754bc9c6eb2b3ec2ebb609d36de73  gcc/config/aarch64/aarch64-simd.md
! a6b5fef44720ac04efdf50efa092700a  gcc/config/aarch64/aarch64-sme.md
  221b858bba4517a3871cb07292c6b216  gcc/config/aarch64/aarch64-speculation.cc
  9ab182bab4cc10bb9676b1309abb562f  gcc/config/aarch64/aarch64-sve-builtins-base.cc
  35bb69e0b38657d068d103a2da1b8a16  gcc/config/aarch64/aarch64-sve-builtins-base.def
--- 3456,3462 ----
  f28e7beab7cc8baa0b1a2e5e9efc0597  gcc/config/aarch64/aarch64-simd-builtins.def
  33ce4a896b77324d9be6448637daf9ca  gcc/config/aarch64/aarch64-simd-pragma-builtins.def
  289754bc9c6eb2b3ec2ebb609d36de73  gcc/config/aarch64/aarch64-simd.md
! e3fe67e652934d5092addccac9c9f30a  gcc/config/aarch64/aarch64-sme.md
  221b858bba4517a3871cb07292c6b216  gcc/config/aarch64/aarch64-speculation.cc
  9ab182bab4cc10bb9676b1309abb562f  gcc/config/aarch64/aarch64-sve-builtins-base.cc
  35bb69e0b38657d068d103a2da1b8a16  gcc/config/aarch64/aarch64-sve-builtins-base.def
*************** ba15eac226714e59e1ff1026c4e09ce0  gcc/co
*** 3481,3487 ****
  a2493e870eb12f5d646c24f2949e4cd3  gcc/config/aarch64/aarch64-vxworks.h
  1b29953c4540d8dddd8d4b5e8fcd59b8  gcc/config/aarch64/aarch64.cc
  4c2226a017b612867a61db1f7929ad43  gcc/config/aarch64/aarch64.h
! 6c9bcd8da1f639806492a66eddd368c5  gcc/config/aarch64/aarch64.md
  84c23cd68c90a9be4b986aa7009ba1c9  gcc/config/aarch64/aarch64.opt
  21fd50b19307096b8be37549ae0f6f77  gcc/config/aarch64/aarch64.opt.urls
  99f46f1d591aa221b0c93a221ad9dc43  gcc/config/aarch64/arm_acle.h
--- 3481,3487 ----
  a2493e870eb12f5d646c24f2949e4cd3  gcc/config/aarch64/aarch64-vxworks.h
  1b29953c4540d8dddd8d4b5e8fcd59b8  gcc/config/aarch64/aarch64.cc
  4c2226a017b612867a61db1f7929ad43  gcc/config/aarch64/aarch64.h
! df405f0182f3a78720d2332384132c61  gcc/config/aarch64/aarch64.md
  84c23cd68c90a9be4b986aa7009ba1c9  gcc/config/aarch64/aarch64.opt
  21fd50b19307096b8be37549ae0f6f77  gcc/config/aarch64/aarch64.opt.urls
  99f46f1d591aa221b0c93a221ad9dc43  gcc/config/aarch64/arm_acle.h
*************** ba79dc9cffbca47e10d361aeb3d716f3  gcc/co
*** 4199,4205 ****
  b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/config/i386/i386-rust.cc
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
  765681b67b4077e574de3f3fbc21898a  gcc/config/i386/i386.cc
! d790ec5beb9150df85ac6b6a2429226d  gcc/config/i386/i386.h
  d4e557b6ba18e231a2dc2ac9d88f69fb  gcc/config/i386/i386.md
  5a3c6fa6266505bbc0789e269da6e250  gcc/config/i386/i386.opt
  56dd2039e03b3ae92142eb68be464b98  gcc/config/i386/i386.opt.urls
--- 4199,4205 ----
  b19c27e8a900f9eeb7d73e2bb4b8d313  gcc/config/i386/i386-rust.cc
  24065393854cd1e08e3285bd707210fe  gcc/config/i386/i386-rust.h
  765681b67b4077e574de3f3fbc21898a  gcc/config/i386/i386.cc
! a7cf0111edc47fcb86d738f772e5fca2  gcc/config/i386/i386.h
  d4e557b6ba18e231a2dc2ac9d88f69fb  gcc/config/i386/i386.md
  5a3c6fa6266505bbc0789e269da6e250  gcc/config/i386/i386.opt
  56dd2039e03b3ae92142eb68be464b98  gcc/config/i386/i386.opt.urls
*************** f51037a9e437f8e9ce7215b2da5ad4e2  gcc/co
*** 4953,4959 ****
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
  9683aceb419c131edaf7f66f9f9192f0  gcc/config/riscv/riscv.cc
  1153302a8d65cedebba8e1a3f67931b2  gcc/config/riscv/riscv.h
! 968ecde3210767685ac560bdcf6d6709  gcc/config/riscv/riscv.md
  c799356a57b52ab91ff324ab22516fba  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
  374e3c204946cff8c4be2bcad6641830  gcc/config/riscv/riscv_bitmanip.h
--- 4953,4959 ----
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
  9683aceb419c131edaf7f66f9f9192f0  gcc/config/riscv/riscv.cc
  1153302a8d65cedebba8e1a3f67931b2  gcc/config/riscv/riscv.h
! f846c6bba1a72f54b5cdc29e5670f244  gcc/config/riscv/riscv.md
  c799356a57b52ab91ff324ab22516fba  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
  374e3c204946cff8c4be2bcad6641830  gcc/config/riscv/riscv_bitmanip.h
*************** ee4c7654f733cefcb73d4fd24f3e1b82  gcc/do
*** 5948,5954 ****
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  4cf31ce9dc9e7079c1c99e7dd07215ae  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! 3fe07aded1063424ebb5560ab4891007  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  5200cc28a2ab912efe66f0944995c45b  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 5948,5954 ----
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  4cf31ce9dc9e7079c1c99e7dd07215ae  gcc/doc/install.texi
  0f98706361e63fac2c35c2c4491eaac4  gcc/doc/install.texi2html
! a8ebeaa55b78881a13da79f1eb129602  gcc/doc/invoke.texi
  47f1f55b3595acf670eb6193a0cbd933  gcc/doc/languages.texi
  5200cc28a2ab912efe66f0944995c45b  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** a798cdca802a57ffa3473ab610b37c86  gcc/fo
*** 6056,6062 ****
  4b1bef753dda2d19671f35332c69a0f7  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 0e20189cc325f7d8284577033ea7559e  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6056,6062 ----
  4b1bef753dda2d19671f35332c69a0f7  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! ee35caeada61a0858ea277fc915ab1db  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** bd08c55098f00394b9922e6163c27b92  gcc/fo
*** 6110,6116 ****
  557c4faded3d865f6f6304bf63f9bb85  gcc/fortran/gfortran.h
  7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
! aea31b73f1b7395d6302c57cbbf4bacf  gcc/fortran/interface.cc
  e80f8d5e01bd73d525ea93cef3a40a2d  gcc/fortran/intrinsic.cc
  cf346cfc6814f9a773f9f0ee705ab3aa  gcc/fortran/intrinsic.h
  5a25603bd6939073616d56ff5c8de9cc  gcc/fortran/intrinsic.texi
--- 6110,6116 ----
  557c4faded3d865f6f6304bf63f9bb85  gcc/fortran/gfortran.h
  7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
! d3fd647d14d10316a01447090ed2bbac  gcc/fortran/interface.cc
  e80f8d5e01bd73d525ea93cef3a40a2d  gcc/fortran/intrinsic.cc
  cf346cfc6814f9a773f9f0ee705ab3aa  gcc/fortran/intrinsic.h
  5a25603bd6939073616d56ff5c8de9cc  gcc/fortran/intrinsic.texi
*************** e350765243fa7b881ed82507561870ff  gcc/fo
*** 6134,6141 ****
  8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
  066b089d8a8df7ff652dcc802d982276  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
! 1e4cfc7ce628d29df9a0ab63ad092f0c  gcc/fortran/primary.cc
! 3ae0e2122c00971c3ccdf6a599f0f7d3  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  c78c72f9e780bf1c0eea63295c5ba590  gcc/fortran/simplify.cc
--- 6134,6141 ----
  8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
  066b089d8a8df7ff652dcc802d982276  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
! 8282ea5f4e00d5c64da552ea2f31dcc6  gcc/fortran/primary.cc
! 4207e845a3c96b031850c4f34077065d  gcc/fortran/resolve.cc
  8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  c78c72f9e780bf1c0eea63295c5ba590  gcc/fortran/simplify.cc
*************** da09d1e31d3994eb3d6958074d7b7ce5  gcc/gi
*** 6245,6251 ****
  fea7635818b5d7cefd4c7a0b268a254c  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! 658cb02830aa4b882ce40e022a969e6e  gcc/gimple-fold.cc
  8780d2011b6a9ef6c285eead522a3286  gcc/gimple-fold.h
  98652c967ce7f8dda9a1c398caa0996a  gcc/gimple-harden-conditionals.cc
  34959112cc04df5744be2b160e2f9d80  gcc/gimple-harden-control-flow.cc
--- 6245,6251 ----
  fea7635818b5d7cefd4c7a0b268a254c  gcc/gimple-crc-optimization.cc
  1e3c7b3ded904be69c3703ac6d27fa44  gcc/gimple-expr.cc
  7b4f02095ce9b7a43bee8570917b9dc7  gcc/gimple-expr.h
! 875e0d004a6137ff742265de906fd301  gcc/gimple-fold.cc
  8780d2011b6a9ef6c285eead522a3286  gcc/gimple-fold.h
  98652c967ce7f8dda9a1c398caa0996a  gcc/gimple-harden-conditionals.cc
  34959112cc04df5744be2b160e2f9d80  gcc/gimple-harden-control-flow.cc
*************** bb02db160d1eb3a985d3b5dfa8e0566c  gcc/gi
*** 6264,6271 ****
  da1cba564288415af1f675747c508315  gcc/gimple-match-exports.cc
  144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
  9a17a7550e34f5a6aec955c756b185fc  gcc/gimple-match.h
! 8dfd9f3f97d0202e55771cf7594fbcb3  gcc/gimple-predicate-analysis.cc
! 6c6a46b3936e3dc50695bcab2efd3520  gcc/gimple-predicate-analysis.h
  ef8cac8c03c6284903df21f3faba7014  gcc/gimple-predict.h
  eceaf6fecb6df7f838b427bf4f70eade  gcc/gimple-pretty-print.cc
  1d0e0766111d9af10f6785e9ad0b3675  gcc/gimple-pretty-print.h
--- 6264,6271 ----
  da1cba564288415af1f675747c508315  gcc/gimple-match-exports.cc
  144911a83796283e587e0c84378e118d  gcc/gimple-match-head.cc
  9a17a7550e34f5a6aec955c756b185fc  gcc/gimple-match.h
! 471bfcfc60f0edc8a89b0152f115f7fb  gcc/gimple-predicate-analysis.cc
! 642ffb039cf24eee2646936e4a143135  gcc/gimple-predicate-analysis.h
  ef8cac8c03c6284903df21f3faba7014  gcc/gimple-predict.h
  eceaf6fecb6df7f838b427bf4f70eade  gcc/gimple-pretty-print.cc
  1d0e0766111d9af10f6785e9ad0b3675  gcc/gimple-pretty-print.h
*************** f2a9985147f87fd566d4ae2dd8fceabc  gcc/lt
*** 6652,6658 ****
  022eda68922792984b6370af859619e4  gcc/lto-streamer-in.cc
  6949f7b0408d00da6a8fb188c3d5dcd9  gcc/lto-streamer-out.cc
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
! 89440b8d71857e40c8fa12dd9aa25491  gcc/lto-streamer.h
  8acdefc9fffd53b3f4f16af933640084  gcc/lto-wrapper.cc
  4c5f46a1dafc2f4b9ab971a2ddc6e08d  gcc/lto/ChangeLog
  e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lto/Make-lang.in
--- 6652,6658 ----
  022eda68922792984b6370af859619e4  gcc/lto-streamer-in.cc
  6949f7b0408d00da6a8fb188c3d5dcd9  gcc/lto-streamer-out.cc
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
! 78ea6d3e135322dfe8157d78aba82074  gcc/lto-streamer.h
  8acdefc9fffd53b3f4f16af933640084  gcc/lto-wrapper.cc
  4c5f46a1dafc2f4b9ab971a2ddc6e08d  gcc/lto/ChangeLog
  e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lto/Make-lang.in
*************** fccd951e3de91d49d3824e482c12e070  gcc/or
*** 7714,7720 ****
  c77558a1c1f43463b3acae9243006ef9  gcc/output.h
  c9e6163e1eaa8f82c57f03f76e86da75  gcc/pair-fusion.cc
  b2f692287d25760afcef126c010f7078  gcc/pair-fusion.h
! 93d02e5293a47b9d0b0106fabf46e18c  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
  82f4a87ff4fd2d77e57f3f46d6e0c197  gcc/pass_manager.h
  1a496be43b4e534d45cbad96b36be29d  gcc/passes.cc
--- 7714,7720 ----
  c77558a1c1f43463b3acae9243006ef9  gcc/output.h
  c9e6163e1eaa8f82c57f03f76e86da75  gcc/pair-fusion.cc
  b2f692287d25760afcef126c010f7078  gcc/pair-fusion.h
! 4a9501d30382fb23d331cf9fb76d5531  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
  82f4a87ff4fd2d77e57f3f46d6e0c197  gcc/pass_manager.h
  1a496be43b4e534d45cbad96b36be29d  gcc/passes.cc
*************** ae3ad005e8aa99428875298a3a4a9807  gcc/rt
*** 7820,7826 ****
  66b4e87db60474417ffffe027ae7f92f  gcc/rtl-ssa/blocks.cc
  520011b5e2ce3793d91dd754d2a666ee  gcc/rtl-ssa/blocks.h
  33b2e67a8ebbdcbe29d4b567f6ce3700  gcc/rtl-ssa/change-utils.h
! 3ee3460fd5a8e792c640416c7a25a465  gcc/rtl-ssa/changes.cc
  c607a19c0aef8e5e1a34995205ca21ad  gcc/rtl-ssa/changes.h
  3247cab7031af7ec0a17f27198004fd5  gcc/rtl-ssa/functions.cc
  ad760b8947b6feeec03df375bb3d68b9  gcc/rtl-ssa/functions.h
--- 7820,7826 ----
  66b4e87db60474417ffffe027ae7f92f  gcc/rtl-ssa/blocks.cc
  520011b5e2ce3793d91dd754d2a666ee  gcc/rtl-ssa/blocks.h
  33b2e67a8ebbdcbe29d4b567f6ce3700  gcc/rtl-ssa/change-utils.h
! e647f3e6fa2e04e4752edd000055f636  gcc/rtl-ssa/changes.cc
  c607a19c0aef8e5e1a34995205ca21ad  gcc/rtl-ssa/changes.h
  3247cab7031af7ec0a17f27198004fd5  gcc/rtl-ssa/functions.cc
  ad760b8947b6feeec03df375bb3d68b9  gcc/rtl-ssa/functions.h
*************** f39c55472711c984059aff01fd972f31  gcc/rt
*** 7838,7844 ****
  1105088521e8de72d332faeda31306c7  gcc/rtl.cc
  41ece3c6a40e9a14609645318016e228  gcc/rtl.def
  ac204602d4572883fa8bf648dcd15252  gcc/rtl.h
! 4ee5bf7f59df8ad15a444be0bc71cb4e  gcc/rtlanal.cc
  e38f02dbd2d0d8c027ccae4b785f3fb2  gcc/rtlanal.h
  f829c444b36f34672cb4a7b019c4513b  gcc/rtlhash.cc
  ce0129afbbfb3ab85e5bd8ce9672117d  gcc/rtlhash.h
--- 7838,7844 ----
  1105088521e8de72d332faeda31306c7  gcc/rtl.cc
  41ece3c6a40e9a14609645318016e228  gcc/rtl.def
  ac204602d4572883fa8bf648dcd15252  gcc/rtl.h
! b1f87a78aa0bcacaf49d45b0a31b4f3f  gcc/rtlanal.cc
  e38f02dbd2d0d8c027ccae4b785f3fb2  gcc/rtlanal.h
  f829c444b36f34672cb4a7b019c4513b  gcc/rtlhash.cc
  ce0129afbbfb3ab85e5bd8ce9672117d  gcc/rtlhash.h
*************** b1497a03867668af210c32280876fdd7  gcc/sy
*** 8430,8436 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 0de65e603a3b7b350f8956939f0fd92f  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8430,8436 ----
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! c73ab54c87c62e02b11280d2fcb55f2d  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** b71437991ec944059c8eab89238b375e  gcc/te
*** 12001,12006 ****
--- 12001,12008 ----
  418bb97e42059c30459b53c6b783f7a7  gcc/testsuite/c-c++-common/asan/pointer-subtract-7.c
  cc00a3c5a3fe4188220028449567b571  gcc/testsuite/c-c++-common/asan/pointer-subtract-8.c
  d89ff70e1d21d4c436a2561d33888f83  gcc/testsuite/c-c++-common/asan/pr106558.c
+ fabe4f563e2a6b04ace68b9b7e010e6b  gcc/testsuite/c-c++-common/asan/pr120608-1.c
+ a81fada6339487ed882e8189aae31718  gcc/testsuite/c-c++-common/asan/pr120608-2.c
  9a0dd3dcef02945c8967f40a29316496  gcc/testsuite/c-c++-common/asan/pr56330.c
  202bae43b2843228776d43c8d07c92c8  gcc/testsuite/c-c++-common/asan/pr59029.c
  65128b17436f6406d9e224257030e000  gcc/testsuite/c-c++-common/asan/pr59063-1.c
*************** b03be3a03970717959df65ccdcbebe88  gcc/te
*** 15194,15199 ****
--- 15196,15202 ----
  7998896b5b941ead8835759e67d0fff5  gcc/testsuite/g++.dg/asan/pr117845-2.C
  bcebd751b296d1287bb9fa7c080ccecb  gcc/testsuite/g++.dg/asan/pr117845.C
  350e8cfd78cd243b5ca66f3b0149e4b7  gcc/testsuite/g++.dg/asan/pr118763.C
+ a012f82a08211153b4c4517641e43c3d  gcc/testsuite/g++.dg/asan/pr120608.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
*************** e1b9ad351c56aebfaff790ff4002bf6e  gcc/te
*** 53156,53161 ****
--- 53159,53166 ----
  0c3297c6ebf6e4adcaeec164dfe8e9ac  gcc/testsuite/gcc.dg/torture/pr120211-1.c
  e9469d38b4234580f9b2284233404b3c  gcc/testsuite/gcc.dg/torture/pr120341-1.c
  aef01c040da8abd2a1e547ed6a07eb5a  gcc/testsuite/gcc.dg/torture/pr120341-2.c
+ 12e839fd30c3a301bab4708aee3c9815  gcc/testsuite/gcc.dg/torture/pr120347.c
+ e6e17b2280f19928b738f46328c5dcf7  gcc/testsuite/gcc.dg/torture/pr120654.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** fcf99b5d14963d6dc0b0c9a728fc8ac4  gcc/te
*** 62337,62342 ****
--- 62342,62348 ----
  ff37df956d90b080a15eee27baf83cf8  gcc/testsuite/gcc.target/aarch64/sme/za_state_5.c
  a9421cc74fddeb0b2e03c60e20410ede  gcc/testsuite/gcc.target/aarch64/sme/za_state_5_scp.c
  031a04851bc92dab81da666022b43d00  gcc/testsuite/gcc.target/aarch64/sme/za_state_6.c
+ d002a1f4df9b5c96addef824d09dfbd1  gcc/testsuite/gcc.target/aarch64/sme/za_state_7.c
  bc8fa843cae0050c83a00ac2cd807a98  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_1.c
  f5392df0161b11a2eb084fecc3cb5f73  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_2.c
  3ff747add1e9dfb996292dd5bf39ad0e  gcc/testsuite/gcc.target/aarch64/sme/zt0_state_3.c
*************** c0a4bee5eba1cce4e72b7fe92728426b  gcc/te
*** 92645,92650 ****
--- 92651,92657 ----
  41294ddc89d13c43941931c990fd176d  gcc/testsuite/gcc.target/riscv/target-attr-norelax.c
  eba52e984a37427da6fa1233257ff6a9  gcc/testsuite/gcc.target/riscv/tls_1.x
  dbe67905fc0f65b7be7d2f96a6c490e6  gcc/testsuite/gcc.target/riscv/tlsdesc.c
+ 29a602b7f814b2f1c3f0991f0e0525b8  gcc/testsuite/gcc.target/riscv/ventana-16122.c
  76005de0a7c1ca66b1b06de3c53ad1c2  gcc/testsuite/gcc.target/riscv/weak-1.c
  3a0dce9fff2935c0bd21176ef52d68a3  gcc/testsuite/gcc.target/riscv/xtheadba-addsl.c
  3bfc3f4f2cc9a87e45901bd3aaa79d03  gcc/testsuite/gcc.target/riscv/xtheadba.c
*************** a63ff5460cdc25350f43a09d899581db  gcc/te
*** 103874,103879 ****
--- 103881,103887 ----
  bf9bf5f797c809b218621993da43cbb7  gcc/testsuite/gfortran.dg/interface_60.f90
  85a77119c68cac58df232d99d18cd405  gcc/testsuite/gfortran.dg/interface_61.f90
  bd1bbf51e59c4440656fb9a45b99f6e0  gcc/testsuite/gfortran.dg/interface_62.f90
+ 76682e1bef00b9b6f7bd74baac09b7f4  gcc/testsuite/gfortran.dg/interface_63.f90
  b4d472d28fc0ac004218dc87eb241306  gcc/testsuite/gfortran.dg/interface_7.f90
  9b6e2c6769e8d31142faefbb1e2b8fa0  gcc/testsuite/gfortran.dg/interface_8.f90
  741aacf0bd439f6874a87ea56712aadc  gcc/testsuite/gfortran.dg/interface_9.f90
*************** bfe9a93946cdb6a9b66dd7249e65330d  gcc/te
*** 105144,105149 ****
--- 105152,105158 ----
  f4f853788012858a0134517250a7832c  gcc/testsuite/gfortran.dg/pr119836_3.f90
  a961dfda22a9cdab00655e080457bd32  gcc/testsuite/gfortran.dg/pr119836_4.f90
  884fdd238ddd6bcfe10770658ad8eaeb  gcc/testsuite/gfortran.dg/pr119856.f90
+ 8a73c3d21e2517a33bb24d479ee49a4d  gcc/testsuite/gfortran.dg/pr119948.f90
  b077fcbfe9cec19c19f0cd33e978b948  gcc/testsuite/gfortran.dg/pr120049_2.f90
  590ff128e6eb7429ddd91a02e4b826c5  gcc/testsuite/gfortran.dg/pr120049_a.f90
  2b24b9137232d611e7c0b6a8ecf96b4d  gcc/testsuite/gfortran.dg/pr120049_b.f90
*************** e98528b30f94b17e98951c75ff2f6251  gcc/te
*** 110332,110337 ****
--- 110341,110347 ----
  35f7b9995956f30c7fecd77f8e603ada  gcc/testsuite/gnat.dg/concat5_pkg1.ads
  c2a9c37d28c367751dc983961cdf3077  gcc/testsuite/gnat.dg/concat5_pkg2.adb
  0097b6fa94f0f4e09014ad30c6bcc195  gcc/testsuite/gnat.dg/concat5_pkg2.ads
+ 4d25b62ad96a6c8da51aef63b2d4ea3e  gcc/testsuite/gnat.dg/concat6.adb
  3e7f9a04f4a3706e783661ca30556322  gcc/testsuite/gnat.dg/concat_length.adb
  1e8fc5e809cc52079a69599d76a132e4  gcc/testsuite/gnat.dg/cond_expr1.adb
  6bf0919f37bc57eb62cf0adbb6d3aed5  gcc/testsuite/gnat.dg/cond_expr2.adb
*************** bc5d484f0195c40f96573375913aad6a  gcc/te
*** 111838,111843 ****
--- 111848,111854 ----
  899dd011c869ddd3d306efe8a8ba47c9  gcc/testsuite/gnat.dg/specs/aggr4_pkg.ads
  b028802f236df04a9a038de337a5c2dc  gcc/testsuite/gnat.dg/specs/aggr5.ads
  8317714735f6bcf3820730db670ecec1  gcc/testsuite/gnat.dg/specs/aggr6.ads
+ d85e98dad301b07f80ba5ad3d5adbe63  gcc/testsuite/gnat.dg/specs/aggr8.ads
  03d5230a50a20391e0238f6841dcaf91  gcc/testsuite/gnat.dg/specs/ai_116.ads
  7d85593bd2feb29192cd8b150c52dde2  gcc/testsuite/gnat.dg/specs/alignment1.ads
  2137406ab24e57901900aff5d6a8f7d6  gcc/testsuite/gnat.dg/specs/alignment2.ads
*************** cdfa97b1a7bac5b60e459fbf3ee9756c  gcc/te
*** 112137,112142 ****
--- 112148,112154 ----
  7f8cba13ebb19736c7d5565686e47063  gcc/testsuite/gnat.dg/sso19_pkg.ads
  ff784f7bca69d0717e740273960b0387  gcc/testsuite/gnat.dg/sso2.adb
  ccf43eb5df39869bb23ff9110d3b93cb  gcc/testsuite/gnat.dg/sso2.ads
+ 2ba1a49876e7f91ccde7f7d0288debb0  gcc/testsuite/gnat.dg/sso20.adb
  6fe64945c0d0238672cdece04341c316  gcc/testsuite/gnat.dg/sso3.adb
  cce4578d630a50acb2e3a4f2535af90b  gcc/testsuite/gnat.dg/sso4.adb
  6547028813699cf5a1bebf9380db3b22  gcc/testsuite/gnat.dg/sso5.adb
*************** da72a60de8a6f51a635ead26120d3cc7  gcc/tr
*** 117334,117340 ****
  299c5d8dabcb4a4d30bab51fbedc4e68  gcc/tree-ssa-propagate.h
  233d764ee886ccb3223d08a55f2a1ddc  gcc/tree-ssa-reassoc.cc
  258492cd7ef04be49374ea1e670f3b5b  gcc/tree-ssa-reassoc.h
! 84150cb9773b06cf98b1d2faeb5f28f2  gcc/tree-ssa-sccvn.cc
  4b05103d4706bf37cd0bc9f018b40965  gcc/tree-ssa-sccvn.h
  a27c58eccc3d8929767feb76dc99399f  gcc/tree-ssa-scopedtables.cc
  aa25adbcb019dd38a66ce237df54ae1d  gcc/tree-ssa-scopedtables.h
--- 117346,117352 ----
  299c5d8dabcb4a4d30bab51fbedc4e68  gcc/tree-ssa-propagate.h
  233d764ee886ccb3223d08a55f2a1ddc  gcc/tree-ssa-reassoc.cc
  258492cd7ef04be49374ea1e670f3b5b  gcc/tree-ssa-reassoc.h
! 25c0df143bf236f1bb140267726f0906  gcc/tree-ssa-sccvn.cc
  4b05103d4706bf37cd0bc9f018b40965  gcc/tree-ssa-sccvn.h
  a27c58eccc3d8929767feb76dc99399f  gcc/tree-ssa-scopedtables.cc
  aa25adbcb019dd38a66ce237df54ae1d  gcc/tree-ssa-scopedtables.h
*************** bf137326f0a436ec66b505f490068cd7  gcc/tr
*** 117364,117370 ****
  6714826bb9cd5f171a08cbabcb1da8e6  gcc/tree-streamer.h
  899a002f8aec509c2457b02d6c7634d9  gcc/tree-switch-conversion.cc
  834999e1b44b915632e773927cdaa397  gcc/tree-switch-conversion.h
! 193fbc15c5ca43c6f96cc1fe8e1c8bd8  gcc/tree-tailcall.cc
  1efeaf70ebe667efd4c946b4086d2802  gcc/tree-vect-data-refs.cc
  7ac587d2dd45a9437f9daa1b6409dca9  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
--- 117376,117382 ----
  6714826bb9cd5f171a08cbabcb1da8e6  gcc/tree-streamer.h
  899a002f8aec509c2457b02d6c7634d9  gcc/tree-switch-conversion.cc
  834999e1b44b915632e773927cdaa397  gcc/tree-switch-conversion.h
! 5ff24777133e10759c49ab4b36c7c5bd  gcc/tree-tailcall.cc
  1efeaf70ebe667efd4c946b4086d2802  gcc/tree-vect-data-refs.cc
  7ac587d2dd45a9437f9daa1b6409dca9  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
*************** d9c4840a497d0e1f2063865edafe6e97  gcc/ve
*** 117421,117427 ****
  54a3885ae2d326266cc13ab447394d8f  gcc/vector-builder.h
  40fec2b7bbea0b654d0704244caa4e9c  gcc/vmsdbg.h
  c2784afc7476e44bc70100f7c350e07b  gcc/vmsdbgout.cc
! 1c385f3f9c1183e6721b747a39267d0d  gcc/vr-values.cc
  0901703123c4198bb16fc8076912bd2e  gcc/vr-values.h
  9ce284cb128dc6f9cadddec86a09bb4a  gcc/vtable-verify.cc
  cdaf5a05f59e5ac25581747f6a7b4fe9  gcc/vtable-verify.h
--- 117433,117439 ----
  54a3885ae2d326266cc13ab447394d8f  gcc/vector-builder.h
  40fec2b7bbea0b654d0704244caa4e9c  gcc/vmsdbg.h
  c2784afc7476e44bc70100f7c350e07b  gcc/vmsdbgout.cc
! 4a87100e64ed49d643e90ef831006a50  gcc/vr-values.cc
  0901703123c4198bb16fc8076912bd2e  gcc/vr-values.h
  9ce284cb128dc6f9cadddec86a09bb4a  gcc/vtable-verify.cc
  cdaf5a05f59e5ac25581747f6a7b4fe9  gcc/vtable-verify.h
diff -Nrcpad gcc-15-20250621/gcc/ChangeLog gcc-15-20250628/gcc/ChangeLog
*** gcc-15-20250621/gcc/ChangeLog	Sat Jun 21 22:32:11 2025
--- gcc-15-20250628/gcc/ChangeLog	Sat Jun 28 22:32:15 2025
***************
*** 1,3 ****
--- 1,100 ----
+ 2025-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gimple-fold.cc (fold_const_aggregate_ref_1) <COMPONENT_REF>:
+ 	Bail out immediately if the reference has reverse storage order.
+ 	* tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Likewise.
+ 
+ 2025-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	* lto-streamer.h (LTO_minor_version): Bump to 1.
+ 
+ 2025-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-06-23  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120729
+ 	* gimple-predicate-analysis.h (uninit_analysis::prune_phi_opnds):
+ 	Add argument of work budget remaining.
+ 	* gimple-predicate-analysis.cc (uninit_analysis::prune_phi_opnds):
+ 	Likewise.  Maintain and honor it throughout the recursion.
+ 	* params.opt (uninit-max-prune-work): New.
+ 	* doc/invoke.texi (uninit-max-prune-work): Document.
+ 
+ 2025-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120654
+ 	* vr-values.cc (range_fits_type_p): Check for undefined_p ()
+ 	before accessing type ().
+ 
+ 2025-06-25  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Backported from master:
+ 	2025-06-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* config/riscv/riscv.md (lui-constraint<X:mode>and_to_or): Do not use
+ 	the RTL template for split code.  Emit it directly taking care to avoid
+ 	emitting a constant load that needed synthesis.  Fix formatting.
+ 
+ 2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2025-06-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/120624
+ 	* config/aarch64/aarch64.md (SME_STATE_REGNUM): Expand on comments.
+ 	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Also set
+ 	SME_STATE_REGNUM
+ 
+ 2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2025-05-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120347
+ 	* rtlanal.cc (rtx_properties::try_to_add_src): Don't drop the
+ 	IN_MEM_LOAD and IN_MEM_STORE flags for autoinc registers.
+ 	* rtl-ssa/changes.cc (recog_level2): Check whether an
+ 	RTX_AUTOINCed register also appears outside of an address.
+ 
+ 2025-06-25  Haochen Jiang  <haochen.jiang@intel.com>
+ 
+ 	* config/i386/i386.h (PTA_ALDERLAKE): Use PTA_GOLDMONT_PLUS
+ 	as base to remove PTA_CLDEMOTE.
+ 	(PTA_SIERRAFOREST): Add PTA_CLDEMOTE since PTA_ALDERLAKE
+ 	does not include that anymore.
+ 	* doc/invoke.texi: Update texi file.
+ 
+ 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120608
+ 	* tree-tailcall.cc (empty_eh_cleanup): Ignore .ASAN_MARK (POISON)
+ 	internal calls for the cfun->has_musttail case and diag_musttail.
+ 	(find_tail_calls): Likewise.
+ 
+ 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120608
+ 	* cfgexpand.cc: Include rtl-iter.h.
+ 	(expand_gimple_tailcall): Add ASAN_EPILOG_SEQ argument, if non-NULL
+ 	and expand_gimple_stmt emitted a tail call, emit a copy of that
+ 	insn sequence before the call sequence.
+ 	(expand_gimple_basic_block): Remove DISABLE_TAIL_CALLS argument, add
+ 	ASAN_EPILOG_SEQ argument.  Disable tail call flag only on non-musttail
+ 	calls if that flag is set, pass it to expand_gimple_tailcall.
+ 	(pass_expand::execute): Pass VAR_RET_SEQ directly as last
+ 	expand_gimple_basic_block argument rather than its comparison with
+ 	NULL.
+ 
  2025-06-20  Jeff Law  <jlaw@ventanamicro.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20250621/gcc/DATESTAMP gcc-15-20250628/gcc/DATESTAMP
*** gcc-15-20250621/gcc/DATESTAMP	Sat Jun 21 22:32:12 2025
--- gcc-15-20250628/gcc/DATESTAMP	Sat Jun 28 22:32:16 2025
***************
*** 1 ****
! 20250621
--- 1 ----
! 20250628
diff -Nrcpad gcc-15-20250621/gcc/ada/sem_aggr.adb gcc-15-20250628/gcc/ada/sem_aggr.adb
*** gcc-15-20250621/gcc/ada/sem_aggr.adb	Sat Jun 21 22:32:12 2025
--- gcc-15-20250628/gcc/ada/sem_aggr.adb	Sat Jun 28 22:32:16 2025
*************** package body Sem_Aggr is
*** 4052,4059 ****
  
        if Present (Add_Unnamed_Subp)
          and then No (New_Indexed_Subp)
!         and then Present (Etype (Add_Unnamed_Subp))
!         and then Etype (Add_Unnamed_Subp) /= Any_Type
        then
           declare
              Elmt_Type : constant Entity_Id :=
--- 4052,4059 ----
  
        if Present (Add_Unnamed_Subp)
          and then No (New_Indexed_Subp)
!         and then Present (Entity (Add_Unnamed_Subp))
!         and then Entity (Add_Unnamed_Subp) /= Any_Id
        then
           declare
              Elmt_Type : constant Entity_Id :=
*************** package body Sem_Aggr is
*** 4099,4105 ****
           end;
  
        elsif Present (Add_Named_Subp)
!         and then Etype (Add_Named_Subp) /= Any_Type
        then
           declare
              --  Retrieves types of container, key, and element from the
--- 4099,4106 ----
           end;
  
        elsif Present (Add_Named_Subp)
!         and then Present (Entity (Add_Named_Subp))
!         and then Entity (Add_Named_Subp) /= Any_Id
        then
           declare
              --  Retrieves types of container, key, and element from the
*************** package body Sem_Aggr is
*** 4153,4159 ****
           end;
  
        elsif Present (Assign_Indexed_Subp)
!         and then Etype (Assign_Indexed_Subp) /= Any_Type
        then
           --  Indexed Aggregate. Positional or indexed component
           --  can be present, but not both. Choices must be static
--- 4154,4161 ----
           end;
  
        elsif Present (Assign_Indexed_Subp)
!         and then Present (Entity (Assign_Indexed_Subp))
!         and then Entity (Assign_Indexed_Subp) /= Any_Id
        then
           --  Indexed Aggregate. Positional or indexed component
           --  can be present, but not both. Choices must be static
diff -Nrcpad gcc-15-20250621/gcc/ada/sem_eval.adb gcc-15-20250628/gcc/ada/sem_eval.adb
*** gcc-15-20250621/gcc/ada/sem_eval.adb	Sat Jun 21 22:32:12 2025
--- gcc-15-20250628/gcc/ada/sem_eval.adb	Sat Jun 28 22:32:17 2025
*************** package body Sem_Eval is
*** 5290,5298 ****
     begin
        if Nkind (N) in N_String_Literal | N_Character_Literal then
           return N;
!       else
!          pragma Assert (Is_Entity_Name (N));
           return Get_String_Val (Constant_Value (Entity (N)));
        end if;
     end Get_String_Val;
  
--- 5290,5305 ----
     begin
        if Nkind (N) in N_String_Literal | N_Character_Literal then
           return N;
!       elsif Is_Entity_Name (N) then
           return Get_String_Val (Constant_Value (Entity (N)));
+       elsif Nkind (N) = N_Integer_Literal then
+          pragma Assert (Serious_Errors_Detected /= 0);
+          return
+            Make_Character_Literal (Sloc (N),
+              Chars              => Error_Name,
+              Char_Literal_Value => Intval (N));
+       else
+          raise Program_Error;
        end if;
     end Get_String_Val;
  
diff -Nrcpad gcc-15-20250621/gcc/cfgexpand.cc gcc-15-20250628/gcc/cfgexpand.cc
*** gcc-15-20250621/gcc/cfgexpand.cc	Sat Jun 21 22:32:12 2025
--- gcc-15-20250628/gcc/cfgexpand.cc	Sat Jun 28 22:32:17 2025
*************** along with GCC; see the file COPYING3.
*** 74,79 ****
--- 74,80 ----
  #include "output.h"
  #include "builtins.h"
  #include "opts.h"
+ #include "rtl-iter.h"
  
  /* Some systems use __main in a way incompatible with its use in gcc, in these
     cases use the macros NAME__MAIN to give a quoted symbol and SYMBOL__MAIN to
*************** expand_gimple_stmt (gimple *stmt)
*** 4400,4408 ****
     tailcall) and the normal result happens via a sqrt instruction.  */
  
  static basic_block
! expand_gimple_tailcall (basic_block bb, gcall *stmt, bool *can_fallthru)
  {
!   rtx_insn *last2, *last;
    edge e;
    edge_iterator ei;
    profile_probability probability;
--- 4401,4410 ----
     tailcall) and the normal result happens via a sqrt instruction.  */
  
  static basic_block
! expand_gimple_tailcall (basic_block bb, gcall *stmt, bool *can_fallthru,
! 			rtx_insn *asan_epilog_seq)
  {
!   rtx_insn *last2, *last, *first = get_last_insn ();
    edge e;
    edge_iterator ei;
    profile_probability probability;
*************** expand_gimple_tailcall (basic_block bb,
*** 4419,4424 ****
--- 4421,4478 ----
    return NULL;
  
   found:
+ 
+   if (asan_epilog_seq)
+     {
+       /* We need to emit a copy of the asan_epilog_seq before
+ 	 the insns emitted by expand_gimple_stmt above.  The sequence
+ 	 can contain labels, which need to be remapped.  */
+       hash_map<rtx, rtx> label_map;
+       start_sequence ();
+       emit_note (NOTE_INSN_DELETED);
+       for (rtx_insn *insn = asan_epilog_seq; insn; insn = NEXT_INSN (insn))
+ 	switch (GET_CODE (insn))
+ 	  {
+ 	  case INSN:
+ 	  case CALL_INSN:
+ 	  case JUMP_INSN:
+ 	    emit_copy_of_insn_after (insn, get_last_insn ());
+ 	    break;
+ 	  case CODE_LABEL:
+ 	    label_map.put ((rtx) insn, (rtx) emit_label (gen_label_rtx ()));
+ 	    break;
+ 	  case BARRIER:
+ 	    emit_barrier ();
+ 	    break;
+ 	  default:
+ 	    gcc_unreachable ();
+ 	  }
+       for (rtx_insn *insn = get_insns (); insn; insn = NEXT_INSN (insn))
+ 	if (JUMP_P (insn))
+ 	  {
+ 	    subrtx_ptr_iterator::array_type array;
+ 	    FOR_EACH_SUBRTX_PTR (iter, array, &PATTERN (insn), ALL)
+ 	      {
+ 		rtx *loc = *iter;
+ 		if (LABEL_REF_P (*loc))
+ 		  {
+ 		    rtx *lab = label_map.get ((rtx) label_ref_label (*loc));
+ 		    gcc_assert (lab);
+ 		    set_label_ref_label (*loc, as_a <rtx_insn *> (*lab));
+ 		  }
+ 	      }
+ 	    if (JUMP_LABEL (insn))
+ 	      {
+ 		rtx *lab = label_map.get (JUMP_LABEL (insn));
+ 		gcc_assert (lab);
+ 		JUMP_LABEL (insn) = *lab;
+ 	      }
+ 	  }
+       asan_epilog_seq = NEXT_INSN (get_insns ());
+       end_sequence ();
+       emit_insn_before (asan_epilog_seq, NEXT_INSN (first));
+     }
+ 
    /* ??? Wouldn't it be better to just reset any pending stack adjust?
       Any instructions emitted here are about to be deleted.  */
    do_pending_stack_adjust ();
*************** reorder_operands (basic_block bb)
*** 6083,6089 ****
  /* Expand basic block BB from GIMPLE trees to RTL.  */
  
  static basic_block
! expand_gimple_basic_block (basic_block bb, bool disable_tail_calls)
  {
    gimple_stmt_iterator gsi;
    gimple_seq stmts;
--- 6137,6143 ----
  /* Expand basic block BB from GIMPLE trees to RTL.  */
  
  static basic_block
! expand_gimple_basic_block (basic_block bb, rtx_insn *asan_epilog_seq)
  {
    gimple_stmt_iterator gsi;
    gimple_seq stmts;
*************** expand_gimple_basic_block (basic_block b
*** 6391,6404 ****
  	{
  	  gcall *call_stmt = dyn_cast <gcall *> (stmt);
  	  if (call_stmt
  	      && gimple_call_tail_p (call_stmt)
! 	      && disable_tail_calls)
  	    gimple_call_set_tail (call_stmt, false);
  
  	  if (call_stmt && gimple_call_tail_p (call_stmt))
  	    {
  	      bool can_fallthru;
! 	      new_bb = expand_gimple_tailcall (bb, call_stmt, &can_fallthru);
  	      if (new_bb)
  		{
  		  if (can_fallthru)
--- 6445,6460 ----
  	{
  	  gcall *call_stmt = dyn_cast <gcall *> (stmt);
  	  if (call_stmt
+ 	      && asan_epilog_seq
  	      && gimple_call_tail_p (call_stmt)
! 	      && !gimple_call_must_tail_p (call_stmt))
  	    gimple_call_set_tail (call_stmt, false);
  
  	  if (call_stmt && gimple_call_tail_p (call_stmt))
  	    {
  	      bool can_fallthru;
! 	      new_bb = expand_gimple_tailcall (bb, call_stmt, &can_fallthru,
! 					       asan_epilog_seq);
  	      if (new_bb)
  		{
  		  if (can_fallthru)
*************** pass_expand::execute (function *fun)
*** 7173,7179 ****
    lab_rtx_for_bb = new hash_map<basic_block, rtx_code_label *>;
    FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
  		  next_bb)
!     bb = expand_gimple_basic_block (bb, var_ret_seq != NULL_RTX);
  
    if (MAY_HAVE_DEBUG_BIND_INSNS)
      expand_debug_locations ();
--- 7229,7235 ----
    lab_rtx_for_bb = new hash_map<basic_block, rtx_code_label *>;
    FOR_BB_BETWEEN (bb, init_block->next_bb, EXIT_BLOCK_PTR_FOR_FN (fun),
  		  next_bb)
!     bb = expand_gimple_basic_block (bb, var_ret_seq);
  
    if (MAY_HAVE_DEBUG_BIND_INSNS)
      expand_debug_locations ();
diff -Nrcpad gcc-15-20250621/gcc/config/aarch64/aarch64-sme.md gcc-15-20250628/gcc/config/aarch64/aarch64-sme.md
*** gcc-15-20250621/gcc/config/aarch64/aarch64-sme.md	Sat Jun 21 22:32:12 2025
--- gcc-15-20250628/gcc/config/aarch64/aarch64-sme.md	Sat Jun 28 22:32:17 2025
***************
*** 373,378 ****
--- 373,380 ----
  		    (reg:DI SME_STATE_REGNUM)
  		    (reg:DI TPIDR2_SETUP_REGNUM)
  		    (reg:DI ZA_SAVED_REGNUM)] UNSPEC_RESTORE_ZA))
+    (set (reg:DI SME_STATE_REGNUM)
+ 	(unspec:DI [(reg:DI SME_STATE_REGNUM)] UNSPEC_TPIDR2_RESTORE))
     (clobber (reg:DI R0_REGNUM))
     (clobber (reg:DI R14_REGNUM))
     (clobber (reg:DI R15_REGNUM))
diff -Nrcpad gcc-15-20250621/gcc/config/aarch64/aarch64.md gcc-15-20250628/gcc/config/aarch64/aarch64.md
*** gcc-15-20250621/gcc/config/aarch64/aarch64.md	Sat Jun 21 22:32:12 2025
--- gcc-15-20250628/gcc/config/aarch64/aarch64.md	Sat Jun 28 22:32:17 2025
***************
*** 136,141 ****
--- 136,149 ----
      ;; The actual value can sometimes vary, because it does not track
      ;; changes to PSTATE.ZA that happen during a lazy save and restore.
      ;; Those effects are instead tracked by ZA_SAVED_REGNUM.
+     ;;
+     ;; Sequences also write to this register if they synchronize the
+     ;; actual contents of ZA and PSTATE.ZA with the current function's
+     ;; ZA_REGNUM and SME_STATE_REGNUM.  Conceptually, these extra writes
+     ;; do not change the value of SME_STATE_REGNUM.  They simply act as
+     ;; sequencing points.  They means that all direct accesses to ZA can
+     ;; depend only on ZA_REGNUM and SME_STATE_REGNUM, rather than also
+     ;; depending on ZA_SAVED_REGNUM etc.
      (SME_STATE_REGNUM 89)
  
      ;; Instructions write to this register if they set TPIDR2_EL0 to a
diff -Nrcpad gcc-15-20250621/gcc/config/i386/i386.h gcc-15-20250628/gcc/config/i386/i386.h
*** gcc-15-20250621/gcc/config/i386/i386.h	Sat Jun 21 22:32:12 2025
--- gcc-15-20250628/gcc/config/i386/i386.h	Sat Jun 28 22:32:17 2025
*************** constexpr wide_int_bitmask PTA_GOLDMONT_
*** 2425,2436 ****
    | PTA_SGX | PTA_PTWRITE;
  constexpr wide_int_bitmask PTA_TREMONT = PTA_GOLDMONT_PLUS | PTA_CLWB
    | PTA_GFNI | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_CLDEMOTE | PTA_WAITPKG;
! constexpr wide_int_bitmask PTA_ALDERLAKE = PTA_TREMONT | PTA_ADX | PTA_AVX
    | PTA_AVX2 | PTA_BMI | PTA_BMI2 | PTA_F16C | PTA_FMA | PTA_LZCNT
    | PTA_PCONFIG | PTA_PKU | PTA_VAES | PTA_VPCLMULQDQ | PTA_SERIALIZE
    | PTA_HRESET | PTA_KL | PTA_WIDEKL | PTA_AVXVNNI;
! constexpr wide_int_bitmask PTA_SIERRAFOREST = PTA_ALDERLAKE | PTA_AVXIFMA
!   | PTA_AVXVNNIINT8 | PTA_AVXNECONVERT | PTA_CMPCCXADD | PTA_ENQCMD | PTA_UINTR;
  constexpr wide_int_bitmask PTA_GRANITERAPIDS = PTA_SAPPHIRERAPIDS | PTA_AMX_FP16
    | PTA_PREFETCHI;
  constexpr wide_int_bitmask PTA_GRANITERAPIDS_D = PTA_GRANITERAPIDS
--- 2425,2438 ----
    | PTA_SGX | PTA_PTWRITE;
  constexpr wide_int_bitmask PTA_TREMONT = PTA_GOLDMONT_PLUS | PTA_CLWB
    | PTA_GFNI | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_CLDEMOTE | PTA_WAITPKG;
! constexpr wide_int_bitmask PTA_ALDERLAKE = PTA_GOLDMONT_PLUS | PTA_CLWB
!   | PTA_GFNI | PTA_MOVDIRI | PTA_MOVDIR64B | PTA_WAITPKG | PTA_ADX | PTA_AVX
    | PTA_AVX2 | PTA_BMI | PTA_BMI2 | PTA_F16C | PTA_FMA | PTA_LZCNT
    | PTA_PCONFIG | PTA_PKU | PTA_VAES | PTA_VPCLMULQDQ | PTA_SERIALIZE
    | PTA_HRESET | PTA_KL | PTA_WIDEKL | PTA_AVXVNNI;
! constexpr wide_int_bitmask PTA_SIERRAFOREST = PTA_ALDERLAKE | PTA_CLDEMOTE
!   | PTA_AVXIFMA | PTA_AVXVNNIINT8 | PTA_AVXNECONVERT | PTA_CMPCCXADD
!   | PTA_ENQCMD | PTA_UINTR;
  constexpr wide_int_bitmask PTA_GRANITERAPIDS = PTA_SAPPHIRERAPIDS | PTA_AMX_FP16
    | PTA_PREFETCHI;
  constexpr wide_int_bitmask PTA_GRANITERAPIDS_D = PTA_GRANITERAPIDS
diff -Nrcpad gcc-15-20250621/gcc/config/riscv/riscv.md gcc-15-20250628/gcc/config/riscv/riscv.md
*** gcc-15-20250621/gcc/config/riscv/riscv.md	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/config/riscv/riscv.md	Sat Jun 28 22:32:17 2025
***************
*** 875,881 ****
  ;; Where C1 is not a LUI operand, but ~C1 is a LUI operand
  
  (define_insn_and_split "*lui_constraint<X:mode>_and_to_or"
! 	[(set (match_operand:X 0 "register_operand" "=r")
  	(plus:X (and:X (match_operand:X 1 "register_operand" "r")
  		       (match_operand 2 "const_int_operand"))
  		(match_operand 3 "const_int_operand")))
--- 875,881 ----
  ;; Where C1 is not a LUI operand, but ~C1 is a LUI operand
  
  (define_insn_and_split "*lui_constraint<X:mode>_and_to_or"
!   [(set (match_operand:X 0 "register_operand" "=r")
  	(plus:X (and:X (match_operand:X 1 "register_operand" "r")
  		       (match_operand 2 "const_int_operand"))
  		(match_operand 3 "const_int_operand")))
***************
*** 889,901 ****
  	<= riscv_const_insns (operands[3], false)))"
    "#"
    "&& reload_completed"
!   [(set (match_dup 4) (match_dup 5))
!    (set (match_dup 0) (ior:X (match_dup 1) (match_dup 4)))
!    (set (match_dup 4) (match_dup 6))
!    (set (match_dup 0) (minus:X (match_dup 0) (match_dup 4)))]
    {
      operands[5] = GEN_INT (~INTVAL (operands[2]));
      operands[6] = GEN_INT ((~INTVAL (operands[2])) | (-INTVAL (operands[3])));
    }
    [(set_attr "type" "arith")])
  
--- 889,909 ----
  	<= riscv_const_insns (operands[3], false)))"
    "#"
    "&& reload_completed"
!   [(const_int 0)]
    {
      operands[5] = GEN_INT (~INTVAL (operands[2]));
      operands[6] = GEN_INT ((~INTVAL (operands[2])) | (-INTVAL (operands[3])));
+ 
+     /* This is always a LUI operand, so it's safe to just emit.  */
+     emit_move_insn (operands[4], operands[5]);
+ 
+     rtx x = gen_rtx_IOR (word_mode, operands[1], operands[4]);
+     emit_move_insn (operands[0], x);
+ 
+     /* This may require multiple steps to synthesize.  */
+     riscv_emit_move (operands[4], operands[6]);
+     x = gen_rtx_MINUS (word_mode, operands[0], operands[4]);
+     emit_move_insn (operands[0], x);
    }
    [(set_attr "type" "arith")])
  
diff -Nrcpad gcc-15-20250621/gcc/doc/invoke.texi gcc-15-20250628/gcc/doc/invoke.texi
*** gcc-15-20250621/gcc/doc/invoke.texi	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/doc/invoke.texi	Sat Jun 28 22:32:17 2025
*************** predicate chain.
*** 17308,17313 ****
--- 17308,17316 ----
  @item uninit-max-num-chains
  Maximum number of predicates ored in the normalized predicate chain.
  
+ @item uninit-max-prune-work
+ Maximum amount of work done to prune paths where the variable is always initialized.
+ 
  @item sched-autopref-queue-depth
  Hardware autoprefetcher scheduler model control flag.
  Number of lookahead cycles the model looks into; at '
*************** VPCLMULQDQ, AVX512BITALG, RDPID and AVX5
*** 35151,35187 ****
  Intel Alder Lake/Raptor Lake/Meteor Lake/Gracemont CPU with 64-bit extensions,
  MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW,
  PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX,
! GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI,
! BMI2, F16C, FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL,
! WIDEKL and AVX-VNNI instruction set support.
  
  @item arrowlake
  Intel Arrow Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
  SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
  XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
! MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
! PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
! UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT and CMPCCXADD instruction set
! support.
  
  @item arrowlake-s
  @itemx lunarlake
  Intel Arrow Lake S/Lunar Lake CPU with 64-bit extensions, MOVBE, MMX, SSE,
  SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND,
  XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
! MOVDIRI, MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA,
! LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
! UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
! SM3 and SM4 instruction set support.
  
  @item pantherlake
  Intel Panther Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
  SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
  XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
! MOVDIR64B, CLDEMOTE, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
! PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI,
! UINTR, AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512,
! SM3, SM4 and PREFETCHI instruction set support.
  
  @item sapphirerapids
  @itemx emeraldrapids
--- 35154,35189 ----
  Intel Alder Lake/Raptor Lake/Meteor Lake/Gracemont CPU with 64-bit extensions,
  MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW,
  PCLMUL, RDRND, XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX,
! GFNI-SSE, CLWB, MOVDIRI, MOVDIR64B, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C,
! FMA, LZCNT, PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL and
! AVX-VNNI instruction set support.
  
  @item arrowlake
  Intel Arrow Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
  SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
  XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
! MOVDIR64B, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU,
! VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA,
! AVXVNNIINT8, AVXNECONVERT and CMPCCXADD instruction set support.
  
  @item arrowlake-s
  @itemx lunarlake
  Intel Arrow Lake S/Lunar Lake CPU with 64-bit extensions, MOVBE, MMX, SSE,
  SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND,
  XSAVE, XSAVEC, XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB,
! MOVDIRI, MOVDIR64B, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT,
! PCONFIG, PKU, VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, UINTR,
! AVXIFMA, AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3 and
! SM4 instruction set support.
  
  @item pantherlake
  Intel Panther Lake CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3,
  SSSE3, SSE4.1, SSE4.2, POPCNT, AES, PREFETCHW, PCLMUL, RDRND, XSAVE, XSAVEC,
  XSAVES, XSAVEOPT, FSGSBASE, PTWRITE, RDPID, SGX, GFNI-SSE, CLWB, MOVDIRI,
! MOVDIR64B, WAITPKG, ADCX, AVX, AVX2, BMI, BMI2, F16C, FMA, LZCNT, PCONFIG, PKU,
! VAES, VPCLMULQDQ, SERIALIZE, HRESET, KL, WIDEKL, AVX-VNNI, UINTR, AVXIFMA,
! AVXVNNIINT8, AVXNECONVERT, CMPCCXADD, AVXVNNIINT16, SHA512, SM3, SM4 and
! PREFETCHI instruction set support.
  
  @item sapphirerapids
  @itemx emeraldrapids
diff -Nrcpad gcc-15-20250621/gcc/fortran/ChangeLog gcc-15-20250628/gcc/fortran/ChangeLog
*** gcc-15-20250621/gcc/fortran/ChangeLog	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/fortran/ChangeLog	Sat Jun 28 22:32:17 2025
***************
*** 1,3 ****
--- 1,34 ----
+ 2025-06-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-06-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/120784
+ 	* interface.cc (gfc_match_end_interface): Detect empty local_name.
+ 
+ 2025-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-06-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/120784
+ 	* interface.cc (gfc_match_end_interface): If a use-associated
+ 	symbol is renamed, use the local_name for checking.
+ 
+ 2025-06-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-05-01  Paul Thomas  <pault@gcc.gnu.org>
+ 		    and Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/119948
+ 	* resolve.cc (gfc_impure_variable): The result of a module
+ 	procedure with an interface declaration is not impure even if
+ 	the current namespace is not the same as the symbol's.
+ 	* primary.cc (match_variable): Module procedures with sym the
+ 	same as result can be treated as variables, although marked
+ 	external.
+ 
  2025-06-18  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20250621/gcc/fortran/interface.cc gcc-15-20250628/gcc/fortran/interface.cc
*** gcc-15-20250621/gcc/fortran/interface.cc	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/fortran/interface.cc	Sat Jun 28 22:32:17 2025
*************** gfc_match_end_interface (void)
*** 452,462 ****
  
      case INTERFACE_DTIO:
      case INTERFACE_GENERIC:
        if (type != current_interface.type
! 	  || strcmp (current_interface.sym->name, name) != 0)
  	{
! 	  gfc_error ("Expecting %<END INTERFACE %s%> at %C",
! 		     current_interface.sym->name);
  	  m = MATCH_ERROR;
  	}
  
--- 452,471 ----
  
      case INTERFACE_DTIO:
      case INTERFACE_GENERIC:
+       /* If a use-associated symbol is renamed, check the local_name.   */
+       const char *local_name = current_interface.sym->name;
+ 
+       if (current_interface.sym->attr.use_assoc
+ 	  && current_interface.sym->attr.use_rename
+ 	  && current_interface.sym->ns->use_stmts->rename
+ 	  && (current_interface.sym->ns->use_stmts->rename->local_name[0]
+ 	      != '\0'))
+ 	local_name = current_interface.sym->ns->use_stmts->rename->local_name;
+ 
        if (type != current_interface.type
! 	  || strcmp (local_name, name) != 0)
  	{
! 	  gfc_error ("Expecting %<END INTERFACE %s%> at %C", local_name);
  	  m = MATCH_ERROR;
  	}
  
diff -Nrcpad gcc-15-20250621/gcc/fortran/primary.cc gcc-15-20250628/gcc/fortran/primary.cc
*** gcc-15-20250621/gcc/fortran/primary.cc	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/fortran/primary.cc	Sat Jun 28 22:32:17 2025
*************** match_variable (gfc_expr **result, int e
*** 4448,4454 ****
      case FL_PROCEDURE:
        /* Check for a nonrecursive function result variable.  */
        if (sym->attr.function
! 	  && !sym->attr.external
  	  && sym->result == sym
  	  && (gfc_is_function_return_value (sym, gfc_current_ns)
  	      || (sym->attr.entry
--- 4448,4454 ----
      case FL_PROCEDURE:
        /* Check for a nonrecursive function result variable.  */
        if (sym->attr.function
! 	  && (!sym->attr.external || sym->abr_modproc_decl)
  	  && sym->result == sym
  	  && (gfc_is_function_return_value (sym, gfc_current_ns)
  	      || (sym->attr.entry
diff -Nrcpad gcc-15-20250621/gcc/fortran/resolve.cc gcc-15-20250628/gcc/fortran/resolve.cc
*** gcc-15-20250621/gcc/fortran/resolve.cc	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/fortran/resolve.cc	Sat Jun 28 22:32:18 2025
*************** gfc_impure_variable (gfc_symbol *sym)
*** 18478,18483 ****
--- 18478,18493 ----
    if (sym->attr.use_assoc || sym->attr.in_common)
      return 1;
  
+   /* The namespace of a module procedure interface holds the arguments and
+      symbols, and so the symbol namespace can be different to that of the
+      procedure.  */
+   if (sym->ns != gfc_current_ns
+       && gfc_current_ns->proc_name->abr_modproc_decl
+       && sym->ns->proc_name->attr.function
+       && sym->attr.result
+       && !strcmp (sym->ns->proc_name->name, gfc_current_ns->proc_name->name))
+     return 0;
+ 
    /* Check if the symbol's ns is inside the pure procedure.  */
    for (ns = gfc_current_ns; ns; ns = ns->parent)
      {
diff -Nrcpad gcc-15-20250621/gcc/gimple-fold.cc gcc-15-20250628/gcc/gimple-fold.cc
*** gcc-15-20250621/gcc/gimple-fold.cc	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/gimple-fold.cc	Sat Jun 28 22:32:18 2025
*************** fold_const_aggregate_ref_1 (tree t, tree
*** 10179,10197 ****
        base = get_ref_base_and_extent (t, &offset, &size, &max_size, &reverse);
        ctor = get_base_constructor (base, &offset, valueize);
  
        /* Empty constructor.  Always fold to 0.  */
        if (ctor == error_mark_node)
  	return build_zero_cst (TREE_TYPE (t));
!       /* We do not know precise address.  */
        if (!known_size_p (max_size) || maybe_ne (max_size, size))
  	return NULL_TREE;
-       /* We cannot determine ctor.  */
-       if (!ctor)
- 	return NULL_TREE;
- 
        /* Out of bound array access.  Value is undefined, but don't fold.  */
        if (maybe_lt (offset, 0))
  	return NULL_TREE;
  
        tem = fold_ctor_reference (TREE_TYPE (t), ctor, offset, size, base);
        if (tem)
--- 10179,10199 ----
        base = get_ref_base_and_extent (t, &offset, &size, &max_size, &reverse);
        ctor = get_base_constructor (base, &offset, valueize);
  
+       /* We cannot determine ctor.  */
+       if (!ctor)
+ 	return NULL_TREE;
        /* Empty constructor.  Always fold to 0.  */
        if (ctor == error_mark_node)
  	return build_zero_cst (TREE_TYPE (t));
!       /* We do not know precise access.  */
        if (!known_size_p (max_size) || maybe_ne (max_size, size))
  	return NULL_TREE;
        /* Out of bound array access.  Value is undefined, but don't fold.  */
        if (maybe_lt (offset, 0))
  	return NULL_TREE;
+       /* Access with reverse storage order.  */
+       if (reverse)
+ 	return NULL_TREE;
  
        tem = fold_ctor_reference (TREE_TYPE (t), ctor, offset, size, base);
        if (tem)
*************** fold_const_aggregate_ref_1 (tree t, tree
*** 10211,10217 ****
  	      && offset.is_constant (&coffset)
  	      && (coffset % BITS_PER_UNIT != 0
  		  || csize % BITS_PER_UNIT != 0)
- 	      && !reverse
  	      && BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN)
  	    {
  	      poly_int64 bitoffset;
--- 10213,10218 ----
diff -Nrcpad gcc-15-20250621/gcc/gimple-predicate-analysis.cc gcc-15-20250628/gcc/gimple-predicate-analysis.cc
*** gcc-15-20250621/gcc/gimple-predicate-analysis.cc	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/gimple-predicate-analysis.cc	Sat Jun 28 22:32:18 2025
*************** bool
*** 385,391 ****
  uninit_analysis::prune_phi_opnds (gphi *phi, unsigned opnds, gphi *flag_def,
  				  tree boundary_cst, tree_code cmp_code,
  				  hash_set<gphi *> *visited_phis,
! 				  bitmap *visited_flag_phis)
  {
    /* The Boolean predicate guarding the PHI definition.  Initialized
       lazily from PHI in the first call to is_use_guarded() and cached
--- 385,392 ----
  uninit_analysis::prune_phi_opnds (gphi *phi, unsigned opnds, gphi *flag_def,
  				  tree boundary_cst, tree_code cmp_code,
  				  hash_set<gphi *> *visited_phis,
! 				  bitmap *visited_flag_phis,
! 				  unsigned &max_attempts)
  {
    /* The Boolean predicate guarding the PHI definition.  Initialized
       lazily from PHI in the first call to is_use_guarded() and cached
*************** uninit_analysis::prune_phi_opnds (gphi *
*** 398,403 ****
--- 399,408 ----
        if (!MASK_TEST_BIT (opnds, i))
  	continue;
  
+       if (max_attempts == 0)
+ 	return false;
+       --max_attempts;
+ 
        tree flag_arg = gimple_phi_arg_def (flag_def, i);
        if (!is_gimple_constant (flag_arg))
  	{
*************** uninit_analysis::prune_phi_opnds (gphi *
*** 432,438 ****
  	  unsigned opnds_arg_phi = m_eval.phi_arg_set (phi_arg_def);
  	  if (!prune_phi_opnds (phi_arg_def, opnds_arg_phi, flag_arg_def,
  				boundary_cst, cmp_code, visited_phis,
! 				visited_flag_phis))
  	    return false;
  
  	  bitmap_clear_bit (*visited_flag_phis, SSA_NAME_VERSION (phi_result));
--- 437,443 ----
  	  unsigned opnds_arg_phi = m_eval.phi_arg_set (phi_arg_def);
  	  if (!prune_phi_opnds (phi_arg_def, opnds_arg_phi, flag_arg_def,
  				boundary_cst, cmp_code, visited_phis,
! 				visited_flag_phis, max_attempts))
  	    return false;
  
  	  bitmap_clear_bit (*visited_flag_phis, SSA_NAME_VERSION (phi_result));
*************** uninit_analysis::overlap (gphi *phi, uns
*** 634,642 ****
  	 value that is in conflict with the use guard/predicate.  */
        bitmap visited_flag_phis = NULL;
        gphi *phi_def = as_a<gphi *> (flag_def);
        bool all_pruned = prune_phi_opnds (phi, opnds, phi_def, boundary_cst,
  					 cmp_code, visited,
! 					 &visited_flag_phis);
        if (visited_flag_phis)
  	BITMAP_FREE (visited_flag_phis);
        if (all_pruned)
--- 639,648 ----
  	 value that is in conflict with the use guard/predicate.  */
        bitmap visited_flag_phis = NULL;
        gphi *phi_def = as_a<gphi *> (flag_def);
+       unsigned max_attempts = param_uninit_max_prune_work;
        bool all_pruned = prune_phi_opnds (phi, opnds, phi_def, boundary_cst,
  					 cmp_code, visited,
! 					 &visited_flag_phis, max_attempts);
        if (visited_flag_phis)
  	BITMAP_FREE (visited_flag_phis);
        if (all_pruned)
diff -Nrcpad gcc-15-20250621/gcc/gimple-predicate-analysis.h gcc-15-20250628/gcc/gimple-predicate-analysis.h
*** gcc-15-20250621/gcc/gimple-predicate-analysis.h	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/gimple-predicate-analysis.h	Sat Jun 28 22:32:18 2025
*************** private:
*** 152,158 ****
    bool is_use_guarded (gimple *, basic_block, gphi *, unsigned,
  		       hash_set<gphi *> *);
    bool prune_phi_opnds (gphi *, unsigned, gphi *, tree, tree_code,
! 			hash_set<gphi *> *, bitmap *);
    bool overlap (gphi *, unsigned, hash_set<gphi *> *, const predicate &);
  
    void collect_phi_def_edges (gphi *, basic_block, vec<edge> *,
--- 152,158 ----
    bool is_use_guarded (gimple *, basic_block, gphi *, unsigned,
  		       hash_set<gphi *> *);
    bool prune_phi_opnds (gphi *, unsigned, gphi *, tree, tree_code,
! 			hash_set<gphi *> *, bitmap *, unsigned &);
    bool overlap (gphi *, unsigned, hash_set<gphi *> *, const predicate &);
  
    void collect_phi_def_edges (gphi *, basic_block, vec<edge> *,
diff -Nrcpad gcc-15-20250621/gcc/lto-streamer.h gcc-15-20250628/gcc/lto-streamer.h
*** gcc-15-20250621/gcc/lto-streamer.h	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/lto-streamer.h	Sat Jun 28 22:32:18 2025
*************** along with GCC; see the file COPYING3.
*** 122,128 ****
       form followed by the data for the string.  */
  
  #define LTO_major_version GCC_major_version
! #define LTO_minor_version 0
  
  typedef unsigned char	lto_decl_flags_t;
  
--- 122,128 ----
       form followed by the data for the string.  */
  
  #define LTO_major_version GCC_major_version
! #define LTO_minor_version 1
  
  typedef unsigned char	lto_decl_flags_t;
  
diff -Nrcpad gcc-15-20250621/gcc/params.opt gcc-15-20250628/gcc/params.opt
*** gcc-15-20250621/gcc/params.opt	Sat Jun 21 22:32:13 2025
--- gcc-15-20250628/gcc/params.opt	Sat Jun 28 22:32:18 2025
*************** predicate chain.
*** 1189,1194 ****
--- 1189,1198 ----
  Common Joined UInteger Var(param_uninit_max_num_chains) Init(8) IntegerRange(1, 128) Param Optimization
  Maximum number of predicates ored in the normalized predicate chain.
  
+ -param=uninit-max-prune-work=
+ Common Joined UInteger Var(param_uninit_max_prune_work) Init(100000) Param Optimization
+ Maximum amount of work done to prune paths where the variable is always initialized.
+ 
  -param=uninlined-function-insns=
  Common Joined UInteger Var(param_uninlined_function_insns) Init(2) Optimization IntegerRange(0, 1000000) Param
  Instruction accounted for function prologue, epilogue and other overhead.
diff -Nrcpad gcc-15-20250621/gcc/rtl-ssa/changes.cc gcc-15-20250628/gcc/rtl-ssa/changes.cc
*** gcc-15-20250621/gcc/rtl-ssa/changes.cc	Sat Jun 21 22:32:14 2025
--- gcc-15-20250628/gcc/rtl-ssa/changes.cc	Sat Jun 28 22:32:18 2025
*************** recog_level2 (insn_change &change, add_r
*** 1106,1111 ****
--- 1106,1129 ----
  	    }
  	}
  
+   // Per rtl.texi, registers that are modified using RTX_AUTOINC operations
+   // cannot also appear outside an address.
+   vec_rtx_properties properties;
+   properties.add_pattern (pat);
+   for (rtx_obj_reference def : properties.refs ())
+     if (def.is_pre_post_modify ())
+       for (rtx_obj_reference use : properties.refs ())
+ 	if (def.regno == use.regno && !use.in_address ())
+ 	  {
+ 	    if (dump_file && (dump_flags & TDF_DETAILS))
+ 	      {
+ 		fprintf (dump_file, "register %d is both auto-modified"
+ 			 " and used outside an address:\n", def.regno);
+ 		print_rtl_single (dump_file, pat);
+ 	      }
+ 	    return false;
+ 	  }
+ 
    // check_asm_operands checks the constraints after RA, so we don't
    // need to do it again.
    if (reload_completed && !asm_p)
diff -Nrcpad gcc-15-20250621/gcc/rtlanal.cc gcc-15-20250628/gcc/rtlanal.cc
*** gcc-15-20250621/gcc/rtlanal.cc	Sat Jun 21 22:32:14 2025
--- gcc-15-20250628/gcc/rtlanal.cc	Sat Jun 28 22:32:18 2025
*************** rtx_properties::try_to_add_src (const_rt
*** 2235,2241 ****
  	{
  	  has_pre_post_modify = true;
  
! 	  unsigned int addr_flags = (base_flags
  				     | rtx_obj_flags::IS_PRE_POST_MODIFY
  				     | rtx_obj_flags::IS_READ);
  	  try_to_add_dest (XEXP (x, 0), addr_flags);
--- 2235,2241 ----
  	{
  	  has_pre_post_modify = true;
  
! 	  unsigned int addr_flags = (flags
  				     | rtx_obj_flags::IS_PRE_POST_MODIFY
  				     | rtx_obj_flags::IS_READ);
  	  try_to_add_dest (XEXP (x, 0), addr_flags);
diff -Nrcpad gcc-15-20250621/gcc/testsuite/ChangeLog gcc-15-20250628/gcc/testsuite/ChangeLog
*** gcc-15-20250621/gcc/testsuite/ChangeLog	Sat Jun 21 22:32:14 2025
--- gcc-15-20250628/gcc/testsuite/ChangeLog	Sat Jun 28 22:32:18 2025
***************
*** 1,3 ****
--- 1,80 ----
+ 2025-06-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/sso20.adb: New test.
+ 
+ 2025-06-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-06-27  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/120784
+ 	* gfortran.dg/interface_63.f90: Extend testcase.
+ 
+ 2025-06-26  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-06-23  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/120784
+ 	* gfortran.dg/interface_63.f90: New test.
+ 
+ 2025-06-26  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-06-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120654
+ 	* gcc.dg/torture/pr120654.c: New testcase.
+ 
+ 2025-06-25  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	Backported from master:
+ 	2025-06-10  Jeff Law  <jlaw@ventanamicro.com>
+ 
+ 	* gcc.target/riscv/ventana-16122.c: New test.
+ 
+ 2025-06-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-05-01  Paul Thomas  <pault@gcc.gnu.org>
+ 		    and Steven G. Kargl  <kargl@gcc.gnu.org>
+ 
+ 	PR fortran/119948
+ 	* gfortran.dg/pr119948.f90: New test.
+ 
+ 2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2025-06-12  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR target/120624
+ 	* gcc.target/aarch64/sme/za_state_7.c: New test.
+ 
+ 2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	Backported from master:
+ 	2025-05-30  Richard Sandiford  <richard.sandiford@arm.com>
+ 
+ 	PR rtl-optimization/120347
+ 	* gcc.dg/torture/pr120347.c: New test.
+ 
+ 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120608
+ 	* c-c++-common/asan/pr120608-1.c: New test.
+ 	* c-c++-common/asan/pr120608-2.c: New test.
+ 
+ 2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-06-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/120608
+ 	* g++.dg/asan/pr120608.C: New test.
+ 
  2025-06-20  Jeff Law  <jlaw@ventanamicro.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20250621/gcc/testsuite/c-c++-common/asan/pr120608-1.c gcc-15-20250628/gcc/testsuite/c-c++-common/asan/pr120608-1.c
*** gcc-15-20250621/gcc/testsuite/c-c++-common/asan/pr120608-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/c-c++-common/asan/pr120608-1.c	Sat Jun 28 22:32:19 2025
***************
*** 0 ****
--- 1,43 ----
+ /* PR middle-end/120608 */
+ /* { dg-do run { target musttail } } */
+ /* { dg-options "-O2 -fsanitize=address" } */
+ 
+ __attribute__((noipa)) void
+ foo (int *x, int *y, int *z)
+ {
+   ++x[0];
+   ++y[0];
+   ++z[0];
+ }
+ 
+ __attribute__((noipa)) void
+ bar (int *x, int *y, int *z)
+ {
+   if (x || y || z)
+     __builtin_abort ();
+ }
+ 
+ __attribute__((noipa)) void
+ baz (int *x, int *y, int *z)
+ {
+   (void) x; (void) y; (void) z;
+   int a = 42, b = -42, c = 0;
+   foo (&a, &b, &c);
+   [[gnu::musttail]] return bar (0, 0, 0);
+ }
+ 
+ __attribute__((noipa)) void
+ qux (int *x, int *y, int *z)
+ {
+   (void) x; (void) y; (void) z;
+   int a = 42, b = -42, c = 0;
+   foo (&a, &b, &c);
+   [[gnu::musttail]] return bar (0, 0, 0);
+ }
+ 
+ int
+ main ()
+ {
+   baz (0, 0, 0);
+   qux (0, 0, 0);
+ }
diff -Nrcpad gcc-15-20250621/gcc/testsuite/c-c++-common/asan/pr120608-2.c gcc-15-20250628/gcc/testsuite/c-c++-common/asan/pr120608-2.c
*** gcc-15-20250621/gcc/testsuite/c-c++-common/asan/pr120608-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/c-c++-common/asan/pr120608-2.c	Sat Jun 28 22:32:19 2025
***************
*** 0 ****
--- 1,39 ----
+ /* PR middle-end/120608 */
+ /* { dg-do run { target musttail } } */
+ /* { dg-options "-O2 -fsanitize=address" } */
+ /* { dg-set-target-env-var ASAN_OPTIONS "detect_stack_use_after_return=1" } */
+ /* { dg-shouldfail "asan" } */
+ 
+ __attribute__((noipa)) void
+ foo (int *x, int *y, int *z)
+ {
+   ++x[0];
+   ++y[0];
+   ++z[0];
+ }
+ 
+ __attribute__((noipa)) void
+ bar (int *x, int *y, int *z)
+ {
+   volatile int a = x[0] + y[0] + z[0];
+ }
+ 
+ __attribute__((noipa)) void
+ baz (int *x, int *y, int *z)
+ {
+   (void) x; (void) y; (void) z;
+   int a = 42, b = -42, c = 0;
+   foo (&a, &b, &c);
+   [[gnu::musttail]] return bar (&a, &b, &c);	/* { dg-warning "address of automatic variable 'a' passed to 'musttail' call argument" } */
+ }						/* { dg-warning "address of automatic variable 'b' passed to 'musttail' call argument" "" { target *-*-* } .-1 } */
+ 						/* { dg-warning "address of automatic variable 'c' passed to 'musttail' call argument" "" { target *-*-* } .-2 } */
+ 
+ int
+ main ()
+ {
+   baz (0, 0, 0);
+ }
+ 
+ // { dg-output "ERROR: AddressSanitizer: stack-use-after-return on address.*(\n|\r\n|\r)" }
+ // { dg-output "READ of size .*" }
+ // { dg-output ".*'a' \\(line 25\\) <== Memory access at offset \[0-9\]* is inside this variable.*" }
diff -Nrcpad gcc-15-20250621/gcc/testsuite/g++.dg/asan/pr120608.C gcc-15-20250628/gcc/testsuite/g++.dg/asan/pr120608.C
*** gcc-15-20250621/gcc/testsuite/g++.dg/asan/pr120608.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/g++.dg/asan/pr120608.C	Sat Jun 28 22:32:19 2025
***************
*** 0 ****
--- 1,17 ----
+ // PR middle-end/120608
+ // { dg-do compile { target musttail } }
+ // { dg-options "-fsanitize=address" }
+ // { dg-skip-if "" { *-*-* } { "*" } { "-O0" } }
+ 
+ struct A;
+ struct B { unsigned long b; };
+ typedef const char *(*F) (void *u, const char *v, void *w, const struct A *x,
+ 			  unsigned long y, struct B z);
+ struct A { F a; };
+ 
+ const char *
+ foo (void *u, const char *v, void *w, const struct A *x, unsigned long y,
+      struct B z)
+ {
+   [[gnu::musttail]] return x->a (u, v, w, x, y, z);
+ }
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gcc.dg/torture/pr120347.c gcc-15-20250628/gcc/testsuite/gcc.dg/torture/pr120347.c
*** gcc-15-20250621/gcc/testsuite/gcc.dg/torture/pr120347.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gcc.dg/torture/pr120347.c	Sat Jun 28 22:32:23 2025
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do assemble } */
+ /* { dg-additional-options "-march=armv7-a -mthumb" { target { arm_arch_v7a_ok && arm_thumb2_ok } } } */
+ 
+ void *end;
+ void **start;
+ void main(void)
+ {
+   for (; end; start++) {
+     if (*start)
+       return;
+     *start = start;
+   }
+ }
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gcc.dg/torture/pr120654.c gcc-15-20250628/gcc/testsuite/gcc.dg/torture/pr120654.c
*** gcc-15-20250621/gcc/testsuite/gcc.dg/torture/pr120654.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gcc.dg/torture/pr120654.c	Sat Jun 28 22:32:23 2025
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ 
+ int a, c, e, f, h, j;
+ long g, k;
+ void *malloc(long);
+ void free(void *);
+ int b(int m) {
+   if (m || a)
+     return 1;
+   return 0.0f;
+ }
+ int d(int m, int p2) { return b(m) + m + (1 + p2 + p2); }
+ int i() {
+   long l[] = {2, 9, 7, 8, g, g, 9, 0, 2, g};
+   e = l[c] << 6;
+ }
+ void n() {
+   long o;
+   int *p = malloc(sizeof(int));
+   k = 1 % j;
+   for (; i() + f + h; o++)
+     if (p[d(j + 6, (int)k + 1992695866) + h + f + j + (int)k - 1 + o])
+       free(p);
+ }
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gcc.target/aarch64/sme/za_state_7.c gcc-15-20250628/gcc/testsuite/gcc.target/aarch64/sme/za_state_7.c
*** gcc-15-20250621/gcc/testsuite/gcc.target/aarch64/sme/za_state_7.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gcc.target/aarch64/sme/za_state_7.c	Sat Jun 28 22:32:24 2025
***************
*** 0 ****
--- 1,21 ----
+ // { dg-options "-O -fno-optimize-sibling-calls -fomit-frame-pointer" }
+ 
+ #include <arm_sme.h>
+ 
+ void callee();
+ 
+ __arm_new("za") __arm_locally_streaming int test()
+ {
+   svbool_t all = svptrue_b8();
+   svint8_t expected = svindex_s8(1, 1);
+   svwrite_hor_za8_m(0, 0, all, expected);
+ 
+   callee();
+ 
+   svint8_t actual = svread_hor_za8_m(svdup_s8(0), all, 0, 0);
+   return svptest_any(all, svcmpne(all, expected, actual));
+ }
+ 
+ // { dg-final { scan-assembler {\tbl\t__arm_tpidr2_save\n} } }
+ // { dg-final { scan-assembler {\tbl\t__arm_tpidr2_restore\n} } }
+ // { dg-final { scan-assembler-times {\tsmstart\tza\n} 2 } }
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gcc.target/riscv/ventana-16122.c gcc-15-20250628/gcc/testsuite/gcc.target/riscv/ventana-16122.c
*** gcc-15-20250621/gcc/testsuite/gcc.target/riscv/ventana-16122.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gcc.target/riscv/ventana-16122.c	Sat Jun 28 22:32:28 2025
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile { target { rv64 } } } */
+ 
+ extern void NG (void);
+ typedef signed char int8_t;
+ typedef signed short int16_t;
+ typedef signed int int32_t;
+ void f74(void) {
+     	int16_t x309 = 0x7fff;
+ 	volatile int32_t x310 = 0x7fffffff;
+ 	int8_t x311 = 59;
+ 	int16_t x312 = -0x8000;
+ 	static volatile int32_t t74 = 614992577;
+ 
+     t74 = (x309==((x310^x311)%x312));
+ 
+     if (t74 != 0) { NG(); } else { ; }
+ 	
+ }
+ 
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gfortran.dg/interface_63.f90 gcc-15-20250628/gcc/testsuite/gfortran.dg/interface_63.f90
*** gcc-15-20250621/gcc/testsuite/gfortran.dg/interface_63.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gfortran.dg/interface_63.f90	Sat Jun 28 22:32:29 2025
***************
*** 0 ****
--- 1,97 ----
+ ! { dg-do compile }
+ ! PR fortran/120784 - fix checking of renamed-on-use interface name
+ !
+ ! Contributed by Matt Thompson  <matthew.thompson at nasa dot gov>
+ 
+ module A_mod
+   implicit none
+ 
+   interface Get
+      procedure :: get_1
+      procedure :: get_2
+   end interface Get
+ 
+ contains
+ 
+   subroutine get_1(i)
+     integer :: i
+     i = 5
+   end subroutine get_1
+ 
+   subroutine get_2(x)
+     real :: x
+     x = 4
+   end subroutine get_2
+ end module A_mod
+ 
+ module B_mod
+   use A_mod, only : MyGet => Get
+   implicit none
+ 
+   interface MyGet
+      procedure :: other_get
+   end interface MyGet
+ 
+ contains
+ 
+   subroutine other_get(c)
+     character(1) :: c
+     c = 'a'
+   end subroutine other_get
+ 
+   subroutine check_get ()
+     character :: c
+     integer   :: i
+     real      :: r
+     call myget (c)
+     call myget (i)
+     call myget (r)
+   end subroutine check_get
+ 
+ end module B_MOD
+ 
+ program p
+   use b_mod, only: myget
+   implicit none
+   character :: c
+   integer   :: i
+   real      :: r
+   call myget (c)
+   call myget (i)
+   call myget (r)
+ end
+ 
+ ! Check that we do not regress on the following:
+ 
+ module mod1
+   implicit none
+ 
+   interface local
+     module procedure local_data
+   end interface local
+ 
+ contains
+ 
+   logical function local_data (data) result (local)
+     real, intent(in) :: data
+     local = .true.
+   end function local_data
+ 
+ end module mod1
+ 
+ module mod2
+   use mod1, only: local
+   implicit none
+ 
+   interface local
+      module procedure local_invt
+   end interface local
+ 
+ contains
+ 
+   logical function local_invt (invt) result (local)
+     integer, intent(in) :: invt
+     local = .true.
+   end function local_invt
+ 
+ end module mod2
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gfortran.dg/pr119948.f90 gcc-15-20250628/gcc/testsuite/gfortran.dg/pr119948.f90
*** gcc-15-20250621/gcc/testsuite/gfortran.dg/pr119948.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gfortran.dg/pr119948.f90	Sat Jun 28 22:32:29 2025
***************
*** 0 ****
--- 1,83 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR119948, which used to fail as indicated below with:
+ ! (1) "Error: Bad allocate-object at (1) for a PURE procedure"
+ ! (2) "Error: ‘construct_test2 at (1) is not a variable"
+ !
+ ! Contributed by Damian Rouson  <damian@archaeologic.codes>
+ !
+ module test_m
+   implicit none
+ 
+   type test_t
+     integer, allocatable :: i
+   end type
+ 
+   interface
+     pure module function construct_test(arg) result(test)
+       implicit none
+       type(test_t) :: test
+       type(test_t), intent(in) :: arg
+     end function
+ 
+     pure module function construct_test2(arg)
+       implicit none
+       type(test_t) construct_test2
+       type(test_t), intent(in) :: arg
+     end function
+ 
+     pure module function construct_test_3(arg) result(test)
+       implicit none
+       type(test_t) :: test
+       type(test_t), intent(in) :: arg
+     end function
+ 
+     pure module function construct_test_4(arg)
+       implicit none
+       type(test_t) :: construct_test_4
+       type(test_t), intent(in) :: arg
+     end function
+   end interface
+ 
+ contains
+   module procedure construct_test
+     allocate(test%i, source = arg%i) ! Fail #1
+   end procedure
+ 
+   module procedure construct_test2
+     allocate(construct_test2%i, source = arg%i)    ! Fail #2
+   end procedure
+ end module
+ 
+ submodule (test_m)test_s
+ contains
+   module procedure construct_test_3
+     allocate(test%i, source = arg%i) ! This was OK.
+   end procedure
+ 
+   module procedure construct_test_4
+     allocate(construct_test_4%i, source = arg%i) ! This was OK.
+   end procedure
+ end submodule
+ 
+   use test_m
+   type(test_t) :: res, dummy
+ !
+   dummy%i = int (rand () * 1e6)
+   res = construct_test (dummy)
+   if (res%i /= dummy%i) stop 1
+ !
+   dummy%i = int (rand () * 1e6)
+   res = construct_test2 (dummy)
+   if (res%i /= dummy%i) stop 2
+ !
+   dummy%i = int (rand () * 1e6)
+   res = construct_test_3 (dummy)
+   if (res%i /= dummy%i) stop 3
+ 
+   dummy%i = int (rand () * 1e6)
+   res = construct_test_4 (dummy)
+   if (res%i /= dummy%i) stop 4
+ 
+   deallocate (res%i, dummy%i)
+ end
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gnat.dg/concat6.adb gcc-15-20250628/gcc/testsuite/gnat.dg/concat6.adb
*** gcc-15-20250621/gcc/testsuite/gnat.dg/concat6.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gnat.dg/concat6.adb	Sat Jun 28 22:32:30 2025
***************
*** 0 ****
--- 1,9 ----
+ -- { dg-do compile }
+ 
+ with Ada.Text_IO; use Ada.Text_IO;
+ 
+ procedure Concat6 is
+   C : constant character := 16#00#; -- { dg-error "expected type|found type" }
+ begin
+   Put_Line ("Test " & C);
+ end;
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gnat.dg/specs/aggr8.ads gcc-15-20250628/gcc/testsuite/gnat.dg/specs/aggr8.ads
*** gcc-15-20250621/gcc/testsuite/gnat.dg/specs/aggr8.ads	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gnat.dg/specs/aggr8.ads	Sat Jun 28 22:32:30 2025
***************
*** 0 ****
--- 1,14 ----
+ -- PR ada/120665
+ -- { dg-do compile }
+ -- { dg-options "-gnat2022" }
+ 
+ package Aggr8 is
+ 
+   type T is null record
+     with Aggregate => (Empty => Empty, Add_Named => Add_Named);
+ 
+   function Empty return T is ([]);  -- { dg-warning "empty|infinite" }
+ 
+   procedure Add_Named (this : in out T; k : Integer; v : Integer) is null;
+ 
+ end Aggr8;
diff -Nrcpad gcc-15-20250621/gcc/testsuite/gnat.dg/sso20.adb gcc-15-20250628/gcc/testsuite/gnat.dg/sso20.adb
*** gcc-15-20250621/gcc/testsuite/gnat.dg/sso20.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20250628/gcc/testsuite/gnat.dg/sso20.adb	Sat Jun 28 22:32:30 2025
***************
*** 0 ****
--- 1,29 ----
+ --  { dg-do run }
+ --  { dg-options "-O" }
+ 
+ with Ada.Unchecked_Conversion;
+ with Interfaces;  use Interfaces;
+ with System;      use System;
+ 
+ procedure SSO20 is
+ 
+   type Bytes_Ref is array (1 .. 4) of Unsigned_8
+     with Convention => Ada_Pass_By_Reference;
+ 
+   type U32_BE is record
+     Value : Unsigned_32;
+   end record
+     with
+       Pack,
+       Bit_Order            => High_Order_First,
+       Scalar_Storage_Order => High_Order_First;
+ 
+   function Conv is new Ada.Unchecked_Conversion (Bytes_Ref, U32_BE);
+ 
+   function Value (B : Bytes_Ref) return Unsigned_32 is (Conv (B).Value);
+ 
+ begin
+   if Value ((16#11#, 16#22#, 16#33#, 16#44#)) /= 16#11223344# then
+      raise Program_Error;
+   end if;
+ end;
diff -Nrcpad gcc-15-20250621/gcc/tree-ssa-sccvn.cc gcc-15-20250628/gcc/tree-ssa-sccvn.cc
*** gcc-15-20250621/gcc/tree-ssa-sccvn.cc	Sat Jun 21 22:32:44 2025
--- gcc-15-20250628/gcc/tree-ssa-sccvn.cc	Sat Jun 28 22:32:31 2025
*************** fully_constant_vn_reference_p (vn_refere
*** 1615,1620 ****
--- 1615,1622 ----
  	      ++i;
  	      break;
  	    }
+ 	  if (operands[i].reverse)
+ 	    return NULL_TREE;
  	  if (known_eq (operands[i].off, -1))
  	    return NULL_TREE;
  	  off += operands[i].off;
diff -Nrcpad gcc-15-20250621/gcc/tree-tailcall.cc gcc-15-20250628/gcc/tree-tailcall.cc
*** gcc-15-20250621/gcc/tree-tailcall.cc	Sat Jun 21 22:32:44 2025
--- gcc-15-20250628/gcc/tree-tailcall.cc	Sat Jun 28 22:32:31 2025
*************** empty_eh_cleanup (basic_block bb, int *e
*** 528,533 ****
--- 528,537 ----
  	  *eh_has_tsan_func_exit = 1;
  	  continue;
  	}
+       if (eh_has_tsan_func_exit
+ 	  && sanitize_flags_p (SANITIZE_ADDRESS)
+ 	  && asan_mark_p (g, ASAN_MARK_POISON))
+ 	continue;
        if (is_gimple_resx (g) && stmt_can_throw_external (cfun, g))
  	return true;
        return false;
*************** find_tail_calls (basic_block bb, struct
*** 619,624 ****
--- 623,634 ----
  	    continue;
  	}
  
+       if (cfun->has_musttail
+ 	  && sanitize_flags_p (SANITIZE_ADDRESS)
+ 	  && asan_mark_p (stmt, ASAN_MARK_POISON)
+ 	  && diag_musttail)
+ 	continue;
+ 
        if (!last_stmt)
  	last_stmt = stmt;
        /* Check for a call.  */
*************** find_tail_calls (basic_block bb, struct
*** 996,1001 ****
--- 1006,1017 ----
  	  continue;
  	}
  
+       if (cfun->has_musttail
+ 	  && sanitize_flags_p (SANITIZE_ADDRESS)
+ 	  && asan_mark_p (stmt, ASAN_MARK_POISON)
+ 	  && diag_musttail)
+ 	continue;
+ 
        if (gimple_code (stmt) != GIMPLE_ASSIGN)
  	{
  	  maybe_error_musttail (call, _("unhandled code after call"),
diff -Nrcpad gcc-15-20250621/gcc/vr-values.cc gcc-15-20250628/gcc/vr-values.cc
*** gcc-15-20250621/gcc/vr-values.cc	Sat Jun 21 22:32:44 2025
--- gcc-15-20250628/gcc/vr-values.cc	Sat Jun 28 22:32:31 2025
*************** range_fits_type_p (const irange *vr,
*** 1023,1028 ****
--- 1023,1032 ----
    widest_int tem;
    signop src_sgn;
  
+   /* Now we can only handle ranges with constant bounds.  */
+   if (vr->undefined_p () || vr->varying_p ())
+     return false;
+ 
    /* We can only handle integral and pointer types.  */
    src_type = vr->type ();
    if (!INTEGRAL_TYPE_P (src_type)
*************** range_fits_type_p (const irange *vr,
*** 1031,1047 ****
  
    /* An extension is fine unless VR is SIGNED and dest_sgn is UNSIGNED,
       and so is an identity transform.  */
!   src_precision = TYPE_PRECISION (vr->type ());
    src_sgn = TYPE_SIGN (src_type);
    if ((src_precision < dest_precision
         && !(dest_sgn == UNSIGNED && src_sgn == SIGNED))
        || (src_precision == dest_precision && src_sgn == dest_sgn))
      return true;
  
-   /* Now we can only handle ranges with constant bounds.  */
-   if (vr->undefined_p () || vr->varying_p ())
-     return false;
- 
    wide_int vrmin = vr->lower_bound ();
    wide_int vrmax = vr->upper_bound ();
  
--- 1035,1047 ----
  
    /* An extension is fine unless VR is SIGNED and dest_sgn is UNSIGNED,
       and so is an identity transform.  */
!   src_precision = TYPE_PRECISION (src_type);
    src_sgn = TYPE_SIGN (src_type);
    if ((src_precision < dest_precision
         && !(dest_sgn == UNSIGNED && src_sgn == SIGNED))
        || (src_precision == dest_precision && src_sgn == dest_sgn))
      return true;
  
    wide_int vrmin = vr->lower_bound ();
    wide_int vrmax = vr->upper_bound ();
  
