diff -Nrcpad gcc-14-20250523/LAST_UPDATED gcc-14-20250530/LAST_UPDATED
*** gcc-14-20250523/LAST_UPDATED	Fri May 23 22:33:03 2025
--- gcc-14-20250530/LAST_UPDATED	Fri May 30 22:32:54 2025
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 306cdb4df729079d7bd924e0023693181163e2e3
--- 1 ----
! Obtained from git: releases/gcc-14 revision f4def864a27c41025bbed0d086fa4628921fec28
diff -Nrcpad gcc-14-20250523/MD5SUMS gcc-14-20250530/MD5SUMS
*** gcc-14-20250523/MD5SUMS	Fri May 23 22:33:07 2025
--- gcc-14-20250530/MD5SUMS	Fri May 30 22:32:58 2025
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20250523.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-14-20250530.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
*************** fc9280b02bc68e4fb1ef8d51ccc25061  Change
*** 23,29 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! c7c0996217ae17d3912965a6b6bdbee8  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! e095be9181505935bb23ffdabd72d0ba  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
*************** bc7394806417778d77541ba1ec0e4a70  gcc/BA
*** 505,511 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! c57294eec6d28c2be6e8b91b8cac0118  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 505,511 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 57e0900e95022e5bfac8900a702fef75  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 541,547 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 3772f2ca36f694559e5d6e1f64c13543  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 541,547 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! e4bbae4b5998234efa1f9b2e60b91a80  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** d833b4b6e2dc4e170cf059f5286d55d8  gcc/ad
*** 3025,3031 ****
  24eade18dfea4858d18e0befd8b97a7e  gcc/ada/xutil.ads
  6b61c248d8d365e41e3056a6b692cc1d  gcc/addresses.h
  85955146c0cd00b4541afc4076fa17b9  gcc/adjust-alignment.cc
! d26f49a857a199a0971344812eeb04c3  gcc/alias.cc
  0f4702138fd7573d96ae2c8135b41255  gcc/alias.h
  1cd09d1b18b5ce7d249387ae22ccfaec  gcc/align.h
  1810c60b7a3a20ff5222ab395bfcb9b8  gcc/alloc-pool.cc
--- 3025,3031 ----
  24eade18dfea4858d18e0befd8b97a7e  gcc/ada/xutil.ads
  6b61c248d8d365e41e3056a6b692cc1d  gcc/addresses.h
  85955146c0cd00b4541afc4076fa17b9  gcc/adjust-alignment.cc
! 4dbb0a380db08caaa96205e35562eb02  gcc/alias.cc
  0f4702138fd7573d96ae2c8135b41255  gcc/alias.h
  1cd09d1b18b5ce7d249387ae22ccfaec  gcc/align.h
  1810c60b7a3a20ff5222ab395bfcb9b8  gcc/alloc-pool.cc
*************** cb26f6c0709fd9533aec72a07a36bf8b  gcc/co
*** 4413,4419 ****
  9b8779320526aa5f273de983bdc206ce  gcc/config/microblaze/linux.h
  ef3714e630d226fc9f9a52d072ae6d49  gcc/config/microblaze/microblaze-c.cc
  5b4dece5790de432c81f12521dc1c3f8  gcc/config/microblaze/microblaze-protos.h
! fe73a15d0d3e7f53d281ee102dfe15fa  gcc/config/microblaze/microblaze.cc
  15444436357947286ccf30f90e3a28c8  gcc/config/microblaze/microblaze.h
  c16b6c77f514fb5e2247d16dcfcc5b22  gcc/config/microblaze/microblaze.md
  38180380f0c251974ab87d52c6680c1f  gcc/config/microblaze/microblaze.opt
--- 4413,4419 ----
  9b8779320526aa5f273de983bdc206ce  gcc/config/microblaze/linux.h
  ef3714e630d226fc9f9a52d072ae6d49  gcc/config/microblaze/microblaze-c.cc
  5b4dece5790de432c81f12521dc1c3f8  gcc/config/microblaze/microblaze-protos.h
! d500089903fa2f61e36c3c09c952a269  gcc/config/microblaze/microblaze.cc
  15444436357947286ccf30f90e3a28c8  gcc/config/microblaze/microblaze.h
  c16b6c77f514fb5e2247d16dcfcc5b22  gcc/config/microblaze/microblaze.md
  38180380f0c251974ab87d52c6680c1f  gcc/config/microblaze/microblaze.opt
*************** a5a54c7c2bc12aee90c87a116610c28e  gcc/co
*** 5083,5089 ****
  d04ec298ee3e87b2b5e6a05a5e8fab7f  gcc/config/s390/s390-protos.h
  7e68f718fd24a643d9674af42fd5c99a  gcc/config/s390/s390.cc
  147006e730fe3e106809eac19cfd90dc  gcc/config/s390/s390.h
! a18271cac23c5586f969ae8bdba53855  gcc/config/s390/s390.md
  cb0b2736d73615065dbf9dd10eb64d5a  gcc/config/s390/s390.opt
  4afe70778cb47f5ab74798a74ebe0ee2  gcc/config/s390/s390.opt.urls
  2c3dc8c98bc81eca16182e930c08db3b  gcc/config/s390/s390intrin.h
--- 5083,5089 ----
  d04ec298ee3e87b2b5e6a05a5e8fab7f  gcc/config/s390/s390-protos.h
  7e68f718fd24a643d9674af42fd5c99a  gcc/config/s390/s390.cc
  147006e730fe3e106809eac19cfd90dc  gcc/config/s390/s390.h
! b20eb234c5efa5c06e2d779d624b0457  gcc/config/s390/s390.md
  cb0b2736d73615065dbf9dd10eb64d5a  gcc/config/s390/s390.opt
  4afe70778cb47f5ab74798a74ebe0ee2  gcc/config/s390/s390.opt.urls
  2c3dc8c98bc81eca16182e930c08db3b  gcc/config/s390/s390intrin.h
*************** e2e50c477f234875fd9fc66727097083  gcc/co
*** 5096,5102 ****
  9eb7894e650772c40cbdb9e6ed254142  gcc/config/s390/tpf.opt
  34c54b547202715f11db388829243402  gcc/config/s390/tpf.opt.urls
  6fcb92a14c96feb4d689ed578348c642  gcc/config/s390/vecintrin.h
! 456c74f339daf88596753216ea278b0f  gcc/config/s390/vector.md
  634c4f8cae42dd7a7d29a223437ff660  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
  481e371a2719a54e96d2efd0b7ceb35b  gcc/config/sh/constraints.md
--- 5096,5102 ----
  9eb7894e650772c40cbdb9e6ed254142  gcc/config/s390/tpf.opt
  34c54b547202715f11db388829243402  gcc/config/s390/tpf.opt.urls
  6fcb92a14c96feb4d689ed578348c642  gcc/config/s390/vecintrin.h
! a2b5ef23f487179e37f8acef6b97dc0f  gcc/config/s390/vector.md
  634c4f8cae42dd7a7d29a223437ff660  gcc/config/s390/vx-builtins.md
  7813da5eac25ac16f589b0319ad43386  gcc/config/s390/x-native
  481e371a2719a54e96d2efd0b7ceb35b  gcc/config/sh/constraints.md
*************** d36a2aabdf8da39363d9be0efef739b0  gcc/co
*** 5361,5367 ****
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! 50a671acc4b9410c92e51a0e80eae342  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
--- 5361,5367 ----
  11daa3f7f65177eb32e2dad6fd437637  gcc/coroutine-passes.cc
  f1ae4baa11bd5b6dd111907d100e7c0c  gcc/coverage.cc
  bf1a3b3570d1b69e07f60f5150f38a93  gcc/coverage.h
! 967a0702b26780375aea50c2f8c2c0d1  gcc/cp/ChangeLog
  d271e3663538ba1f3281cab3838e92cd  gcc/cp/ChangeLog-1993
  f5a44adbc05521162350ca409d1d95ce  gcc/cp/ChangeLog-1994
  ac55db48d964cb5469ff03c1cd3ee04d  gcc/cp/ChangeLog-1995
*************** e5de0a6c0e25db99122b38cfbd158f92  gcc/cp
*** 5446,5452 ****
  b4ea7976f776ee37fce22b16756ad0e0  gcc/cp/optimize.cc
  3005c54da5bb91ee03256ad352be3db5  gcc/cp/parser.cc
  64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
! b21cb4ca763e2f9f0e4e87c4f31976f7  gcc/cp/pt.cc
  c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
  5e3e9c87ee323734a11e7081aaa64fa5  gcc/cp/rtti.cc
  7764edeba26dbb6b15962e6395cba9d2  gcc/cp/search.cc
--- 5446,5452 ----
  b4ea7976f776ee37fce22b16756ad0e0  gcc/cp/optimize.cc
  3005c54da5bb91ee03256ad352be3db5  gcc/cp/parser.cc
  64953966b085a9e770be93c5d1bdca4e  gcc/cp/parser.h
! 5c23dd92167e6b23deaf502b2e9c2639  gcc/cp/pt.cc
  c59b967f38f4705696e11724814e2a06  gcc/cp/ptree.cc
  5e3e9c87ee323734a11e7081aaa64fa5  gcc/cp/rtti.cc
  7764edeba26dbb6b15962e6395cba9d2  gcc/cp/search.cc
*************** c2ff7817297154695270be6f932730a6  gcc/cp
*** 5464,5470 ****
  dba9a9584db67bce81cb489ca8b13396  gcc/cppdefault.h
  e507d631984ba5c424cfa8c5586bd54c  gcc/cprop.cc
  455b3e5012e2a894aeae048cfc2d43a0  gcc/cse.cc
! 0486f1a8e4d2a697c45e648d89c99a3d  gcc/cselib.cc
  7cb7858299cde7776c4d453abc8d968b  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
  aba39deaa8ad2ad555dc0798497a6c58  gcc/ctfc.cc
--- 5464,5470 ----
  dba9a9584db67bce81cb489ca8b13396  gcc/cppdefault.h
  e507d631984ba5c424cfa8c5586bd54c  gcc/cprop.cc
  455b3e5012e2a894aeae048cfc2d43a0  gcc/cse.cc
! bf32c438eaeb9f5ef0b840bddc108fc7  gcc/cselib.cc
  7cb7858299cde7776c4d453abc8d968b  gcc/cselib.h
  1ded054093de910d9786c62bc4fe8cc6  gcc/cstamp-h.in
  aba39deaa8ad2ad555dc0798497a6c58  gcc/ctfc.cc
*************** dce7dac7e905ada28c6563d930b531eb  gcc/fo
*** 5872,5878 ****
  090850db6c719557b18e35fafc041a4c  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 9a5250e39235e1f8cdbb0370fc417778  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5872,5878 ----
  090850db6c719557b18e35fafc041a4c  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 6a49fb5048bbefebcd1f1fa72959c990  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** ba11ab9ac11e6a78fa7706263e42f1fc  gcc/fo
*** 5949,5955 ****
  56af741644ab30aa09221a750079e265  gcc/fortran/parse.cc
  6afe26dd3f7a33ff8c524687d1958f05  gcc/fortran/parse.h
  a0e2907182a3f4a299681840e8f5be43  gcc/fortran/primary.cc
! e8c15377bf31a221c1961801acf6b0be  gcc/fortran/resolve.cc
  bf73188a78ecc3c99bc6915db827d75f  gcc/fortran/scanner.cc
  1cfffbabece85f419a6ca2676917e619  gcc/fortran/scanner.h
  be0b83b5f771bbe50926a1109ebd9e09  gcc/fortran/simplify.cc
--- 5949,5955 ----
  56af741644ab30aa09221a750079e265  gcc/fortran/parse.cc
  6afe26dd3f7a33ff8c524687d1958f05  gcc/fortran/parse.h
  a0e2907182a3f4a299681840e8f5be43  gcc/fortran/primary.cc
! 241cf6809911c98dd99b5ae8fbb1b747  gcc/fortran/resolve.cc
  bf73188a78ecc3c99bc6915db827d75f  gcc/fortran/scanner.cc
  1cfffbabece85f419a6ca2676917e619  gcc/fortran/scanner.h
  be0b83b5f771bbe50926a1109ebd9e09  gcc/fortran/simplify.cc
*************** c234572876f75890cc99027aed682b90  gcc/gi
*** 6057,6063 ****
  422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
  1ece622a98fd5bd127baa4493d2fb983  gcc/gimple-expr.cc
  0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! a94566c6e62ecc281fa71bc2e2a44d07  gcc/gimple-fold.cc
  0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
  2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
  c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
--- 6057,6063 ----
  422023fc20fa277895b77d52f2183524  gcc/gimple-builder.h
  1ece622a98fd5bd127baa4493d2fb983  gcc/gimple-expr.cc
  0f70f2b47fe0c3ba8e84cdc0d8635964  gcc/gimple-expr.h
! 6c6ed63be1d13a2e29f2994f8c5b44c0  gcc/gimple-fold.cc
  0d56f593f441abaac17b0e32d153edde  gcc/gimple-fold.h
  2c9bf44778a0d4078822e0867f454d35  gcc/gimple-harden-conditionals.cc
  c7112787b043c022d8874ce63d5b7a10  gcc/gimple-harden-control-flow.cc
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8060,8066 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 94ec51a650289142168fc7ddc1819997  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 8060,8066 ----
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 919d68670f7e4dbb617a3338d9b1ef0a  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** a991f3b843fb36ef428fd3261f7cd8d6  gcc/te
*** 29263,29268 ****
--- 29263,29269 ----
  450c0b9e346d4201c85d9055f20ebf1a  gcc/testsuite/g++.dg/template/unify1.C
  c0294c255af8599c061bc4b5b4fc75ca  gcc/testsuite/g++.dg/template/unify10.C
  09af30adee47658569e7245f1283085e  gcc/testsuite/g++.dg/template/unify11.C
+ 92da0b63f24f1d3a4d4bde6739afa3e2  gcc/testsuite/g++.dg/template/unify13.C
  4559d27962ac65b887c6f4a3a42dc70f  gcc/testsuite/g++.dg/template/unify2.C
  16808e8b62429d390bc5719fd2009b5c  gcc/testsuite/g++.dg/template/unify3.C
  314446f36deb8f9d24cf095763c83315  gcc/testsuite/g++.dg/template/unify4.C
*************** c7172cd9252e12b67637bd9c4179611f  gcc/te
*** 35384,35389 ****
--- 35385,35391 ----
  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
*************** cddb5f327c3c1dc3f843d95d86f7f6a9  gcc/te
*** 36502,36507 ****
--- 36504,36510 ----
  ece87744c4e664bf39922d9937465df1  gcc/testsuite/gcc.c-torture/compile/pr115143-2.c
  14405634ff4726e79f727af592887eec  gcc/testsuite/gcc.c-torture/compile/pr115143-3.c
  a374b3675317752237cc478b2e662a04  gcc/testsuite/gcc.c-torture/compile/pr115277.c
+ 0385d5805cb6d90dc8a17f2f44d3450e  gcc/testsuite/gcc.c-torture/compile/pr117358.c
  6d7416e999725c0f023c4322893b1214  gcc/testsuite/gcc.c-torture/compile/pr118501.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
  ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
*************** cca17c29951566d10372eb936be3afeb  gcc/te
*** 46912,46917 ****
--- 46915,46921 ----
  4de2a7a2ac95300f89928764d873895d  gcc/testsuite/gcc.dg/pr117104.c
  39da48ce24fb558efbc78d75a88467b5  gcc/testsuite/gcc.dg/pr117145-1.c
  63803de207f2916bad86717cde438311  gcc/testsuite/gcc.dg/pr117145-2.c
+ 809d1e4fe382fd35194849af2413cb9f  gcc/testsuite/gcc.dg/pr117239.c
  e141af51e94bbc37f37d1c4c3ea2f9bf  gcc/testsuite/gcc.dg/pr117245.c
  22c935f2bff095783388f4e05eabe99b  gcc/testsuite/gcc.dg/pr117254.c
  2fdaaf6f7a5cac0bc0536de3a8e9cc31  gcc/testsuite/gcc.dg/pr117391.c
*************** a3d075dd1b96232581aa40c9e02294e1  gcc/te
*** 46927,46932 ****
--- 46931,46937 ----
  23b8c99f9e2dfda91a95f1195ab38bfd  gcc/testsuite/gcc.dg/pr119183.c
  5b4015cb994569a43c505c35b96cda44  gcc/testsuite/gcc.dg/pr119204.c
  212cef6b05e312dbd1f377cf4e35ab99  gcc/testsuite/gcc.dg/pr120048.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
*************** ca8eb6db97f18fddd890561a22a8cfbb  gcc/te
*** 92981,92987 ****
  b199d329559fc3f1b7e43203cdc460a8  gcc/testsuite/gfortran.dg/alloc_comp_assign_9.f90
  f3e77fcc01f3018d64a5ab3fb3368fd1  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_1.f90
  948fbff88548392e63b67e446403f2b3  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_2.f90
! 5570a1ba5f39729a7f7334e3e99b7262  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90
  01702b87b457a827628539076733715b  gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90
  c161df8775b21819cda81ffa8bd1b23f  gcc/testsuite/gfortran.dg/alloc_comp_basics_2.f90
  8b7900064da86d65153abf5f6284186c  gcc/testsuite/gfortran.dg/alloc_comp_basics_3.f90
--- 92986,92992 ----
  b199d329559fc3f1b7e43203cdc460a8  gcc/testsuite/gfortran.dg/alloc_comp_assign_9.f90
  f3e77fcc01f3018d64a5ab3fb3368fd1  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_1.f90
  948fbff88548392e63b67e446403f2b3  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_2.f90
! 2ff38561a2a894668fd17d66604b6953  gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90
  01702b87b457a827628539076733715b  gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90
  c161df8775b21819cda81ffa8bd1b23f  gcc/testsuite/gfortran.dg/alloc_comp_basics_2.f90
  8b7900064da86d65153abf5f6284186c  gcc/testsuite/gfortran.dg/alloc_comp_basics_3.f90
*************** d863a7b7baeff902abcb73f750294f4b  gcc/te
*** 92992,92999 ****
  01ce8d13f86e2c85f83ca4efb7539502  gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90
  ae1746e87e5762c6b68826278ee28628  gcc/testsuite/gfortran.dg/alloc_comp_class_1.f90
  dfee92253f572cefadfc9896e31aa911  gcc/testsuite/gfortran.dg/alloc_comp_class_2.f90
! 52d1ff97d60e0604c88137e39d6ee817  gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03
! ea89ea8f65090a4151fb0cc736157f55  gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03
  344f8d4e949089ff45b60afe587aec49  gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
  f87a2c3e25c614f7c7331df1491f1a03  gcc/testsuite/gfortran.dg/alloc_comp_constraint_1.f90
  3c67ddbdd5451204f415b2315005e09e  gcc/testsuite/gfortran.dg/alloc_comp_constraint_2.f90
--- 92997,93004 ----
  01ce8d13f86e2c85f83ca4efb7539502  gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90
  ae1746e87e5762c6b68826278ee28628  gcc/testsuite/gfortran.dg/alloc_comp_class_1.f90
  dfee92253f572cefadfc9896e31aa911  gcc/testsuite/gfortran.dg/alloc_comp_class_2.f90
! b387c0f145b4b44ea83d2265782d7be3  gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03
! a3de047b4026c722974a4a412344860d  gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03
  344f8d4e949089ff45b60afe587aec49  gcc/testsuite/gfortran.dg/alloc_comp_class_5.f03
  f87a2c3e25c614f7c7331df1491f1a03  gcc/testsuite/gfortran.dg/alloc_comp_constraint_1.f90
  3c67ddbdd5451204f415b2315005e09e  gcc/testsuite/gfortran.dg/alloc_comp_constraint_2.f90
*************** f4cacbb7fc7a73c4dc452abb4169a708  gcc/te
*** 93113,93119 ****
  3e69f8fb58e06a24fc9934b0040bc33c  gcc/testsuite/gfortran.dg/allocate_with_source_11.f08
  d76b12105ec17a95100b1c0109eba21e  gcc/testsuite/gfortran.dg/allocate_with_source_12.f03
  7eb26a0ecf38b62a277060acb6ecd19a  gcc/testsuite/gfortran.dg/allocate_with_source_13.f03
! e983e31f5907aa7a18c2e0f43cdf3d9a  gcc/testsuite/gfortran.dg/allocate_with_source_14.f03
  7750d599d9ba89b3f5a9b83001a920ef  gcc/testsuite/gfortran.dg/allocate_with_source_15.f03
  f68a5464b779f75e7ff8e50d9d8b199e  gcc/testsuite/gfortran.dg/allocate_with_source_16.f90
  bd4118fd768f3467307efc9602103e4c  gcc/testsuite/gfortran.dg/allocate_with_source_17.f03
--- 93118,93124 ----
  3e69f8fb58e06a24fc9934b0040bc33c  gcc/testsuite/gfortran.dg/allocate_with_source_11.f08
  d76b12105ec17a95100b1c0109eba21e  gcc/testsuite/gfortran.dg/allocate_with_source_12.f03
  7eb26a0ecf38b62a277060acb6ecd19a  gcc/testsuite/gfortran.dg/allocate_with_source_13.f03
! aa0e2acc5bfe4a7ddc3c5e96cc91be7e  gcc/testsuite/gfortran.dg/allocate_with_source_14.f03
  7750d599d9ba89b3f5a9b83001a920ef  gcc/testsuite/gfortran.dg/allocate_with_source_15.f03
  f68a5464b779f75e7ff8e50d9d8b199e  gcc/testsuite/gfortran.dg/allocate_with_source_16.f90
  bd4118fd768f3467307efc9602103e4c  gcc/testsuite/gfortran.dg/allocate_with_source_17.f03
*************** f024936b2bb3be33b204bc283db65a94  gcc/te
*** 95225,95231 ****
  cb44893d94f03877d3d146a8c1da8bd8  gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90
  1985d33efa2fb91552f8a4d90653edd7  gcc/testsuite/gfortran.dg/derived_constructor_comps_4.f90
  b90644647498c9ab9c17c0d5ea8d1b82  gcc/testsuite/gfortran.dg/derived_constructor_comps_5.f90
! b2ca02520bfaffc03c538a5319e61893  gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
  a4520e3938bf347c0b9e1003348fd3b6  gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90
  cff987fa6f89201aa37245231d20c023  gcc/testsuite/gfortran.dg/derived_external_function_1.f90
  9ec4e99aea8dbcc56d952be32f63911c  gcc/testsuite/gfortran.dg/derived_function_interface_1.f90
--- 95230,95236 ----
  cb44893d94f03877d3d146a8c1da8bd8  gcc/testsuite/gfortran.dg/derived_constructor_comps_3.f90
  1985d33efa2fb91552f8a4d90653edd7  gcc/testsuite/gfortran.dg/derived_constructor_comps_4.f90
  b90644647498c9ab9c17c0d5ea8d1b82  gcc/testsuite/gfortran.dg/derived_constructor_comps_5.f90
! b82bb411ffe2afd1f983103a913048ea  gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
  a4520e3938bf347c0b9e1003348fd3b6  gcc/testsuite/gfortran.dg/derived_constructor_comps_7.f90
  cff987fa6f89201aa37245231d20c023  gcc/testsuite/gfortran.dg/derived_external_function_1.f90
  9ec4e99aea8dbcc56d952be32f63911c  gcc/testsuite/gfortran.dg/derived_function_interface_1.f90
*************** a19ffb5a22d6663608efe30bfaaa6c3e  gcc/te
*** 95243,95248 ****
--- 95248,95255 ----
  21dd790eb5de9f5842955d3e4168f143  gcc/testsuite/gfortran.dg/derived_recursion.f90
  e9e8f279200f5692fad235f157925873  gcc/testsuite/gfortran.dg/derived_result.f90
  cf5153f1f09bb80f5a964ce90c83a5dc  gcc/testsuite/gfortran.dg/derived_result_2.f90
+ 9568da62ebf5982dd0feeb2af336d4be  gcc/testsuite/gfortran.dg/derived_result_3.f90
+ 489e76e1c9546ac43f028e88ed875909  gcc/testsuite/gfortran.dg/derived_result_5.f90
  b522fadd1464db48d2fe8165d2a66e70  gcc/testsuite/gfortran.dg/derived_sub.f90
  652fa12d630d17b29894c33b10c6b1b8  gcc/testsuite/gfortran.dg/dev_null.F90
  94ce3208dac145ea14fc3f821f662788  gcc/testsuite/gfortran.dg/dfloat_1.f90
*************** be693b3847d0256fa77c5e6d96396c97  gcc/te
*** 98321,98327 ****
  d17e376a8cc641dbedaeffcce81d5297  gcc/testsuite/gfortran.dg/pdt_23.f03
  74618f98f612c4722b0e366283ec8ca8  gcc/testsuite/gfortran.dg/pdt_24.f03
  7c4f6f585a57e25f1c6f31ac89e87d40  gcc/testsuite/gfortran.dg/pdt_25.f03
! 7182317a2e9d6c03d247c9fb2b50ab74  gcc/testsuite/gfortran.dg/pdt_26.f03
  f67cfd0ae4d38f1ca5dc8d7f6e954087  gcc/testsuite/gfortran.dg/pdt_27.f03
  7efa911fe665f45456e6943844302ac0  gcc/testsuite/gfortran.dg/pdt_28.f03
  68b10a194ff6797eee8ecb042129b08f  gcc/testsuite/gfortran.dg/pdt_29.f03
--- 98328,98334 ----
  d17e376a8cc641dbedaeffcce81d5297  gcc/testsuite/gfortran.dg/pdt_23.f03
  74618f98f612c4722b0e366283ec8ca8  gcc/testsuite/gfortran.dg/pdt_24.f03
  7c4f6f585a57e25f1c6f31ac89e87d40  gcc/testsuite/gfortran.dg/pdt_25.f03
! 0104b02a8045f96f71bb79804308cd3b  gcc/testsuite/gfortran.dg/pdt_26.f03
  f67cfd0ae4d38f1ca5dc8d7f6e954087  gcc/testsuite/gfortran.dg/pdt_27.f03
  7efa911fe665f45456e6943844302ac0  gcc/testsuite/gfortran.dg/pdt_28.f03
  68b10a194ff6797eee8ecb042129b08f  gcc/testsuite/gfortran.dg/pdt_29.f03
*************** c12365a0fd0bfbb153c9b75f558feba5  libgcc
*** 111363,111369 ****
  c7b2e09c1a819d37ab91db3294159732  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  b7792b93ec270f682ce38eb52297254e  libgcc/config/avr/lib2funcs.c
! 4d75935fb870e6efd9653abf822c8c81  libgcc/config/avr/libf7/ChangeLog
  159c564e8ed539925b0a82879e077648  libgcc/config/avr/libf7/asm-defs.h
  434f68c401e93814081ae499ba72ffaf  libgcc/config/avr/libf7/f7-renames.h
  f65ef9e7ada883e17a2dd60b931ad23b  libgcc/config/avr/libf7/f7-wraps.h
--- 111370,111376 ----
  c7b2e09c1a819d37ab91db3294159732  libgcc/config/avr/lib1funcs.S
  622f81485f02d0eac2caaafa7d3a2fd1  libgcc/config/avr/lib2-object.mk
  b7792b93ec270f682ce38eb52297254e  libgcc/config/avr/lib2funcs.c
! 8110a879f89877ea27de80b940d01c4b  libgcc/config/avr/libf7/ChangeLog
  159c564e8ed539925b0a82879e077648  libgcc/config/avr/libf7/asm-defs.h
  434f68c401e93814081ae499ba72ffaf  libgcc/config/avr/libf7/f7-renames.h
  f65ef9e7ada883e17a2dd60b931ad23b  libgcc/config/avr/libf7/f7-wraps.h
*************** b6e24d20e3f00cbfe5078999558011c5  libgcc
*** 111376,111382 ****
  47dccabf16372b55fb7154bd70ce141f  libgcc/config/avr/libf7/libf7-common.mk
  c29107694f22e1434011033331235b51  libgcc/config/avr/libf7/libf7-const.def
  e55ce8934ace33b814bf03fbbfd9ba5f  libgcc/config/avr/libf7/libf7-constdef.h
! 70d9926ceec1e5a18355f5e64c776b86  libgcc/config/avr/libf7/libf7.c
  c242f404ef73dc81c1dc9b99ffa63920  libgcc/config/avr/libf7/libf7.h
  606c568e8f2d692bc5762eaba8d8e7b0  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
--- 111383,111389 ----
  47dccabf16372b55fb7154bd70ce141f  libgcc/config/avr/libf7/libf7-common.mk
  c29107694f22e1434011033331235b51  libgcc/config/avr/libf7/libf7-const.def
  e55ce8934ace33b814bf03fbbfd9ba5f  libgcc/config/avr/libf7/libf7-constdef.h
! 9f0c02fe426113aa8e7eb23939a8d3f4  libgcc/config/avr/libf7/libf7.c
  c242f404ef73dc81c1dc9b99ffa63920  libgcc/config/avr/libf7/libf7.h
  606c568e8f2d692bc5762eaba8d8e7b0  libgcc/config/avr/libf7/t-libf7
  bf9360cfc14e0b0129af5560893f374e  libgcc/config/avr/libf7/t-libf7-math
diff -Nrcpad gcc-14-20250523/gcc/ChangeLog gcc-14-20250530/gcc/ChangeLog
*** gcc-14-20250523/gcc/ChangeLog	Fri May 23 22:32:08 2025
--- gcc-14-20250530/gcc/ChangeLog	Fri May 30 22:32:12 2025
***************
*** 1,3 ****
--- 1,90 ----
+ 2025-05-26  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2025-05-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
+ 
+ 	* config/s390/vector.md: Fix tf_to_fprx2 by using vlr instead of
+ 	ldr.
+ 
+ 2025-05-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-27  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/118819
+ 	* alias.cc (memrefs_conflict_p): Perform arithmetics on c, xsize and
+ 	ysize in poly_offset_int and return -1 if it is not representable in
+ 	poly_int64.
+ 
+ 2025-05-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/117239
+ 	* cselib.cc (cselib_init): Remove spurious closing paren in
+ 	the #ifdef STACK_ADDRESS_OFFSET specific code.
+ 
+ 2025-05-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/117239
+ 	* cselib.cc: Include predict.h.
+ 	(callmem): Change type from rtx to rtx[2].
+ 	(cselib_preserve_only_values): Use callmem[0] rather than callmem.
+ 	(cselib_invalidate_mem): Optimize and don't try to invalidate
+ 	for the mem_rtx == callmem[1] case MEMs which clearly can't be
+ 	below the stack pointer.
+ 	(cselib_process_insn): Use callmem[0] rather than callmem.
+ 	For const/pure calls also call cselib_invalidate_mem (callmem[1])
+ 	in !ACCUMULATE_OUTGOING_ARGS or cfun->calls_alloca functions.
+ 	(cselib_init): Initialize callmem[0] rather than callmem and also
+ 	initialize callmem[1].
+ 
+ 2025-05-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117358
+ 	* gimple-fold.cc (gimple_fold_builtin_memory_op): Punt if stmt has no
+ 	vdef in ssa form.
+ 	(gimple_fold_builtin_bcmp): Punt if stmt has no vuse in ssa form.
+ 	(gimple_fold_builtin_bcopy): Punt if stmt has no vdef in ssa form.
+ 	(gimple_fold_builtin_bzero): Likewise.
+ 	(gimple_fold_builtin_memset): Likewise.  Use return false instead of
+ 	return NULL_TREE.
+ 	(gimple_fold_builtin_strcpy): Punt if stmt has no vdef in ssa form.
+ 	(gimple_fold_builtin_strncpy): Likewise.
+ 	(gimple_fold_builtin_strchr): Punt if stmt has no vuse in ssa form.
+ 	(gimple_fold_builtin_strstr): Likewise.
+ 	(gimple_fold_builtin_strcat): Punt if stmt has no vdef in ssa form.
+ 	(gimple_fold_builtin_strcat_chk): Likewise.
+ 	(gimple_fold_builtin_strncat): Likewise.
+ 	(gimple_fold_builtin_strncat_chk): Likewise.
+ 	(gimple_fold_builtin_string_compare): Likewise.
+ 	(gimple_fold_builtin_fputs): Likewise.
+ 	(gimple_fold_builtin_memory_chk): Likewise.
+ 	(gimple_fold_builtin_stxcpy_chk): Likewise.
+ 	(gimple_fold_builtin_stxncpy_chk): Likewise.
+ 	(gimple_fold_builtin_stpcpy): Likewise.
+ 	(gimple_fold_builtin_snprintf_chk): Likewise.
+ 	(gimple_fold_builtin_sprintf_chk): Likewise.
+ 	(gimple_fold_builtin_sprintf): Likewise.
+ 	(gimple_fold_builtin_snprintf): Likewise.
+ 	(gimple_fold_builtin_fprintf): Likewise.
+ 	(gimple_fold_builtin_printf): Likewise.
+ 	(gimple_fold_builtin_realloc): Likewise.
+ 
+ 2025-05-25  Michael J. Eager  <eager@eagercon.com>
+ 
+ 	PR target/86772
+ 	Tracking CVE-2017-5753
+ 	* config/microblaze/microblaze.cc (TARGET_HAVE_SPECULATION_SAFE_VALUE):
+ 	Define to speculation_save_value_not_needed
+ 
  2025-05-23  Release Manager
  
  	* GCC 14.3.0 released.
diff -Nrcpad gcc-14-20250523/gcc/DATESTAMP gcc-14-20250530/gcc/DATESTAMP
*** gcc-14-20250523/gcc/DATESTAMP	Fri May 23 22:32:09 2025
--- gcc-14-20250530/gcc/DATESTAMP	Fri May 30 22:32:12 2025
***************
*** 1 ****
! 20250523
--- 1 ----
! 20250530
diff -Nrcpad gcc-14-20250523/gcc/alias.cc gcc-14-20250530/gcc/alias.cc
*** gcc-14-20250523/gcc/alias.cc	Fri May 23 22:32:09 2025
--- gcc-14-20250530/gcc/alias.cc	Fri May 30 22:32:12 2025
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2533,2551 ****
  	    return memrefs_conflict_p (xsize, x1, ysize, y1, c);
  	  if (poly_int_rtx_p (x1, &cx1))
  	    {
  	      if (poly_int_rtx_p (y1, &cy1))
! 		return memrefs_conflict_p (xsize, x0, ysize, y0,
! 					   c - cx1 + cy1);
  	      else
! 		return memrefs_conflict_p (xsize, x0, ysize, y, c - cx1);
  	    }
  	  else if (poly_int_rtx_p (y1, &cy1))
! 	    return memrefs_conflict_p (xsize, x, ysize, y0, c + cy1);
  
  	  return -1;
  	}
        else if (poly_int_rtx_p (x1, &cx1))
! 	return memrefs_conflict_p (xsize, x0, ysize, y, c - cx1);
      }
    else if (GET_CODE (y) == PLUS)
      {
--- 2533,2571 ----
  	    return memrefs_conflict_p (xsize, x1, ysize, y1, c);
  	  if (poly_int_rtx_p (x1, &cx1))
  	    {
+ 	      poly_offset_int co = c;
+ 	      co -= cx1;
  	      if (poly_int_rtx_p (y1, &cy1))
! 		{
! 		  co += cy1;
! 		  if (!co.to_shwi (&c))
! 		    return -1;
! 		  return memrefs_conflict_p (xsize, x0, ysize, y0, c);
! 		}
! 	      else if (!co.to_shwi (&c))
! 		return -1;
  	      else
! 		return memrefs_conflict_p (xsize, x0, ysize, y, c);
  	    }
  	  else if (poly_int_rtx_p (y1, &cy1))
! 	    {
! 	      poly_offset_int co = c;
! 	      co += cy1;
! 	      if (!co.to_shwi (&c))
! 		return -1;
! 	      return memrefs_conflict_p (xsize, x, ysize, y0, c);
! 	    }
  
  	  return -1;
  	}
        else if (poly_int_rtx_p (x1, &cx1))
! 	{
! 	  poly_offset_int co = c;
! 	  co -= cx1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
! 	  return memrefs_conflict_p (xsize, x0, ysize, y, c);
! 	}
      }
    else if (GET_CODE (y) == PLUS)
      {
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2561,2567 ****
  
        poly_int64 cy1;
        if (poly_int_rtx_p (y1, &cy1))
! 	return memrefs_conflict_p (xsize, x, ysize, y0, c + cy1);
        else
  	return -1;
      }
--- 2581,2593 ----
  
        poly_int64 cy1;
        if (poly_int_rtx_p (y1, &cy1))
! 	{
! 	  poly_offset_int co = c;
! 	  co += cy1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
! 	  return memrefs_conflict_p (xsize, x, ysize, y0, c);
! 	}
        else
  	return -1;
      }
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2614,2621 ****
  	  if (maybe_gt (xsize, 0))
  	    xsize = -xsize;
  	  if (maybe_ne (xsize, 0))
! 	    xsize += sc + 1;
! 	  c -= sc + 1;
  	  return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)),
  				     ysize, y, c);
  	}
--- 2640,2655 ----
  	  if (maybe_gt (xsize, 0))
  	    xsize = -xsize;
  	  if (maybe_ne (xsize, 0))
! 	    {
! 	      poly_offset_int xsizeo = xsize;
! 	      xsizeo += sc + 1;
! 	      if (!xsizeo.to_shwi (&xsize))
! 		return -1;
! 	    }
! 	  poly_offset_int co = c;
! 	  co -= sc + 1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
  	  return memrefs_conflict_p (xsize, canon_rtx (XEXP (x, 0)),
  				     ysize, y, c);
  	}
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2629,2636 ****
  	  if (maybe_gt (ysize, 0))
  	    ysize = -ysize;
  	  if (maybe_ne (ysize, 0))
! 	    ysize += sc + 1;
! 	  c += sc + 1;
  	  return memrefs_conflict_p (xsize, x,
  				     ysize, canon_rtx (XEXP (y, 0)), c);
  	}
--- 2663,2678 ----
  	  if (maybe_gt (ysize, 0))
  	    ysize = -ysize;
  	  if (maybe_ne (ysize, 0))
! 	    {
! 	      poly_offset_int ysizeo = ysize;
! 	      ysizeo += sc + 1;
! 	      if (!ysizeo.to_shwi (&ysize))
! 		return -1;
! 	    }
! 	  poly_offset_int co = c;
! 	  co += sc + 1;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
  	  return memrefs_conflict_p (xsize, x,
  				     ysize, canon_rtx (XEXP (y, 0)), c);
  	}
*************** memrefs_conflict_p (poly_int64 xsize, rt
*** 2641,2647 ****
        poly_int64 cx, cy;
        if (poly_int_rtx_p (x, &cx) && poly_int_rtx_p (y, &cy))
  	{
! 	  c += cy - cx;
  	  return offset_overlap_p (c, xsize, ysize);
  	}
  
--- 2683,2693 ----
        poly_int64 cx, cy;
        if (poly_int_rtx_p (x, &cx) && poly_int_rtx_p (y, &cy))
  	{
! 	  poly_offset_int co = c;
! 	  co += cy;
! 	  co -= cx;
! 	  if (!co.to_shwi (&c))
! 	    return -1;
  	  return offset_overlap_p (c, xsize, ysize);
  	}
  
diff -Nrcpad gcc-14-20250523/gcc/config/microblaze/microblaze.cc gcc-14-20250530/gcc/config/microblaze/microblaze.cc
*** gcc-14-20250523/gcc/config/microblaze/microblaze.cc	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/config/microblaze/microblaze.cc	Fri May 30 22:32:13 2025
*************** section *sdata2_section;
*** 239,244 ****
--- 239,248 ----
  #define TARGET_HAVE_TLS true
  #endif
  
+ /* MicroBlaze does not do speculative execution.  */
+ #undef  TARGET_HAVE_SPECULATION_SAFE_VALUE
+ #define TARGET_HAVE_SPECULATION_SAFE_VALUE speculation_safe_value_not_needed
+ 
  /* Return truth value if a CONST_DOUBLE is ok to be a legitimate constant.  */
  static bool
  microblaze_const_double_ok (rtx op, machine_mode mode)
diff -Nrcpad gcc-14-20250523/gcc/config/s390/s390.md gcc-14-20250530/gcc/config/s390/s390.md
*** gcc-14-20250523/gcc/config/s390/s390.md	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/config/s390/s390.md	Fri May 30 22:32:13 2025
***************
*** 3392,3398 ****
          (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))
--- 3392,3398 ----
          (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))
***************
*** 3404,3410 ****
          (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)
--- 3404,3410 ----
          (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)
***************
*** 3418,3431 ****
          (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" "")
--- 3418,3431 ----
          (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" "")
***************
*** 3644,3650 ****
          (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
--- 3644,3650 ----
          (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
***************
*** 3658,3664 ****
          (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
--- 3658,3664 ----
          (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
***************
*** 3674,3680 ****
          (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
--- 3674,3680 ----
          (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
***************
*** 3839,3845 ****
                       (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)))
--- 3839,3845 ----
                       (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)))
***************
*** 3852,3858 ****
                       (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)
--- 3852,3858 ----
                       (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)
***************
*** 3867,3873 ****
                       (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)
--- 3867,3873 ----
                       (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-14-20250523/gcc/config/s390/vector.md gcc-14-20250530/gcc/config/s390/vector.md
*** gcc-14-20250523/gcc/config/s390/vector.md	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/config/s390/vector.md	Fri May 30 22:32:13 2025
***************
*** 938,944 ****
        else
  	{
  	  reg_pair += 2;  // get rid of prefix %f
! 	  snprintf (buf, sizeof (buf), "ldr\t%%f0,%%f1;vpdi\t%%%%v%s,%%v1,%%%%v%s,5", reg_pair, reg_pair);
  	  output_asm_insn (buf, operands);
  	  return "";
  	}
--- 938,944 ----
        else
  	{
  	  reg_pair += 2;  // get rid of prefix %f
! 	  snprintf (buf, sizeof (buf), "vlr\t%%v0,%%v1;vpdi\t%%%%v%s,%%v1,%%%%v%s,5", reg_pair, reg_pair);
  	  output_asm_insn (buf, operands);
  	  return "";
  	}
diff -Nrcpad gcc-14-20250523/gcc/cp/ChangeLog gcc-14-20250530/gcc/cp/ChangeLog
*** gcc-14-20250523/gcc/cp/ChangeLog	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/cp/ChangeLog	Fri May 30 22:32:13 2025
***************
*** 1,3 ****
--- 1,12 ----
+ 2025-05-27  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/120161
+ 	* pt.cc (unify) <case RECORD_TYPE>: When comparing specializations
+ 	of a non-primary template, still perform a type comparison.
+ 
  2025-05-23  Release Manager
  
  	* GCC 14.3.0 released.
diff -Nrcpad gcc-14-20250523/gcc/cp/pt.cc gcc-14-20250530/gcc/cp/pt.cc
*** gcc-14-20250523/gcc/cp/pt.cc	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/cp/pt.cc	Fri May 30 22:32:13 2025
*************** unify (tree tparms, tree targs, tree par
*** 25299,25308 ****
  			  INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (parm)),
  			  INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (t)),
  			  UNIFY_ALLOW_NONE, explain_p);
! 	  else
! 	    return unify_success (explain_p);
  	}
!       else if (!same_type_ignoring_top_level_qualifiers_p (parm, arg))
  	return unify_type_mismatch (explain_p, parm, arg);
        return unify_success (explain_p);
  
--- 25299,25308 ----
  			  INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (parm)),
  			  INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (t)),
  			  UNIFY_ALLOW_NONE, explain_p);
! 	  gcc_checking_assert (t == arg);
  	}
! 
!       if (!same_type_ignoring_top_level_qualifiers_p (parm, arg))
  	return unify_type_mismatch (explain_p, parm, arg);
        return unify_success (explain_p);
  
diff -Nrcpad gcc-14-20250523/gcc/cselib.cc gcc-14-20250530/gcc/cselib.cc
*** gcc-14-20250523/gcc/cselib.cc	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/cselib.cc	Fri May 30 22:32:13 2025
*************** along with GCC; see the file COPYING3.
*** 33,38 ****
--- 33,39 ----
  #include "cselib.h"
  #include "function-abi.h"
  #include "alias.h"
+ #include "predict.h"
  
  /* A list of cselib_val structures.  */
  struct elt_list
*************** static unsigned int *used_regs;
*** 248,255 ****
  static unsigned int n_used_regs;
  
  /* We pass this to cselib_invalidate_mem to invalidate all of
!    memory for a non-const call instruction.  */
! static GTY(()) rtx callmem;
  
  /* Set by discard_useless_locs if it deleted the last location of any
     value.  */
--- 249,257 ----
  static unsigned int n_used_regs;
  
  /* We pass this to cselib_invalidate_mem to invalidate all of
!    memory for a non-const call instruction and memory below stack pointer
!    for const/pure calls.  */
! static GTY(()) rtx callmem[2];
  
  /* Set by discard_useless_locs if it deleted the last location of any
     value.  */
*************** cselib_preserve_only_values (void)
*** 808,814 ****
    for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
      cselib_invalidate_regno (i, reg_raw_mode[i]);
  
!   cselib_invalidate_mem (callmem);
  
    remove_useless_values ();
  
--- 810,816 ----
    for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
      cselib_invalidate_regno (i, reg_raw_mode[i]);
  
!   cselib_invalidate_mem (callmem[0]);
  
    remove_useless_values ();
  
*************** cselib_invalidate_mem (rtx mem_rtx)
*** 2600,2605 ****
--- 2602,2609 ----
        struct elt_loc_list **p = &v->locs;
        bool had_locs = v->locs != NULL;
        rtx_insn *setting_insn = v->locs ? v->locs->setting_insn : NULL;
+       rtx sp_base = NULL_RTX;
+       HOST_WIDE_INT sp_off = 0;
  
        while (*p)
  	{
*************** cselib_invalidate_mem (rtx mem_rtx)
*** 2614,2619 ****
--- 2618,2731 ----
  	      p = &(*p)->next;
  	      continue;
  	    }
+ 
+ 	  /* When invalidating memory below the stack pointer for const/pure
+ 	     calls and alloca/VLAs aren't used, attempt to optimize.  Values
+ 	     stored into area sometimes below the stack pointer shouldn't be
+ 	     addressable and should be stored just through stack pointer
+ 	     derived expressions, so don't invalidate MEMs not using stack
+ 	     derived addresses, or if the MEMs clearly aren't below the stack
+ 	     pointer.  This isn't a fully conservative approach, the hope is
+ 	     that invalidating more MEMs than this isn't actually needed.  */
+ 	  if (mem_rtx == callmem[1]
+ 	      && num_mems < param_max_cselib_memory_locations
+ 	      && GET_CODE (XEXP (x, 0)) == VALUE
+ 	      && !cfun->calls_alloca)
+ 	    {
+ 	      cselib_val *v2 = CSELIB_VAL_PTR (XEXP (x, 0));
+ 	      rtx x_base = NULL_RTX;
+ 	      HOST_WIDE_INT x_off = 0;
+ 	      if (SP_DERIVED_VALUE_P (v2->val_rtx))
+ 		x_base = v2->val_rtx;
+ 	      else
+ 		for (struct elt_loc_list *l = v2->locs; l; l = l->next)
+ 		  if (GET_CODE (l->loc) == PLUS
+ 		      && GET_CODE (XEXP (l->loc, 0)) == VALUE
+ 		      && SP_DERIVED_VALUE_P (XEXP (l->loc, 0))
+ 		      && CONST_INT_P (XEXP (l->loc, 1)))
+ 		    {
+ 		      x_base = XEXP (l->loc, 0);
+ 		      x_off = INTVAL (XEXP (l->loc, 1));
+ 		      break;
+ 		    }
+ 	      /* If x_base is NULL here, don't invalidate x as its address
+ 		 isn't derived from sp such that it could be in outgoing
+ 		 argument area of some call in !ACCUMULATE_OUTGOING_ARGS
+ 		 function.  */
+ 	      if (x_base)
+ 		{
+ 		  if (sp_base == NULL_RTX)
+ 		    {
+ 		      if (cselib_val *v3
+ 			  = cselib_lookup_1 (stack_pointer_rtx, Pmode, 0,
+ 					     VOIDmode))
+ 			{
+ 			  if (SP_DERIVED_VALUE_P (v3->val_rtx))
+ 			    sp_base = v3->val_rtx;
+ 			  else
+ 			    for (struct elt_loc_list *l = v3->locs;
+ 				 l; l = l->next)
+ 			      if (GET_CODE (l->loc) == PLUS
+ 				  && GET_CODE (XEXP (l->loc, 0)) == VALUE
+ 				  && SP_DERIVED_VALUE_P (XEXP (l->loc, 0))
+ 				  && CONST_INT_P (XEXP (l->loc, 1)))
+ 				{
+ 				  sp_base = XEXP (l->loc, 0);
+ 				  sp_off = INTVAL (XEXP (l->loc, 1));
+ 				  break;
+ 				}
+ 			}
+ 		      if (sp_base == NULL_RTX)
+ 			sp_base = pc_rtx;
+ 		    }
+ 		  /* Otherwise, if x_base and sp_base are the same,
+ 		     we know that x_base + x_off is the x's address and
+ 		     sp_base + sp_off is current value of stack pointer,
+ 		     so try to determine if x is certainly not below stack
+ 		     pointer.  */
+ 		  if (sp_base == x_base)
+ 		    {
+ 		      if (STACK_GROWS_DOWNWARD)
+ 			{
+ 			  HOST_WIDE_INT off = sp_off;
+ #ifdef STACK_ADDRESS_OFFSET
+ 			  /* On SPARC take stack pointer bias into account as
+ 			     well.  */
+ 			  off += (STACK_ADDRESS_OFFSET
+ 				  - FIRST_PARM_OFFSET (current_function_decl));
+ #endif
+ 			  if (x_off >= off)
+ 			    /* x is at or above the current stack pointer,
+ 			       no need to invalidate it.  */
+ 			    x_base = NULL_RTX;
+ 			}
+ 		      else
+ 			{
+ 			  HOST_WIDE_INT sz;
+ 			  enum machine_mode mode = GET_MODE (x);
+ 			  if ((MEM_SIZE_KNOWN_P (x)
+ 			       && MEM_SIZE (x).is_constant (&sz))
+ 			      || (mode != BLKmode
+ 				  && GET_MODE_SIZE (mode).is_constant (&sz)))
+ 			    if (x_off < sp_off
+ 				&& ((HOST_WIDE_INT) ((unsigned HOST_WIDE_INT)
+ 						     x_off + sz) <= sp_off))
+ 			      /* x's end is below or at the current stack
+ 				 pointer in !STACK_GROWS_DOWNWARD target,
+ 				 no need to invalidate it.  */
+ 			      x_base = NULL_RTX;
+ 			 }
+ 		    }
+ 		}
+ 	      if (x_base == NULL_RTX)
+ 		{
+ 		  has_mem = true;
+ 		  num_mems++;
+ 		  p = &(*p)->next;
+ 		  continue;
+ 		}
+ 	    }
+ 
  	  if (num_mems < param_max_cselib_memory_locations
  	      && ! canon_anti_dependence (x, false, mem_rtx,
  					  GET_MODE (mem_rtx), mem_addr))
*************** cselib_process_insn (rtx_insn *insn)
*** 3166,3179 ****
  	 as if they were regular functions.  */
        if (RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)
  	  || !(RTL_CONST_OR_PURE_CALL_P (insn)))
! 	cselib_invalidate_mem (callmem);
        else
! 	/* For const/pure calls, invalidate any argument slots because
! 	   they are owned by the callee.  */
! 	for (x = CALL_INSN_FUNCTION_USAGE (insn); x; x = XEXP (x, 1))
! 	  if (GET_CODE (XEXP (x, 0)) == USE
! 	      && MEM_P (XEXP (XEXP (x, 0), 0)))
! 	    cselib_invalidate_mem (XEXP (XEXP (x, 0), 0));
      }
  
    cselib_record_sets (insn);
--- 3278,3301 ----
  	 as if they were regular functions.  */
        if (RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)
  	  || !(RTL_CONST_OR_PURE_CALL_P (insn)))
! 	cselib_invalidate_mem (callmem[0]);
        else
! 	{
! 	  /* For const/pure calls, invalidate any argument slots because
! 	     they are owned by the callee.  */
! 	  for (x = CALL_INSN_FUNCTION_USAGE (insn); x; x = XEXP (x, 1))
! 	    if (GET_CODE (XEXP (x, 0)) == USE
! 		&& MEM_P (XEXP (XEXP (x, 0), 0)))
! 	      cselib_invalidate_mem (XEXP (XEXP (x, 0), 0));
! 	  /* And invalidate memory below the stack (or above for
! 	     !STACK_GROWS_DOWNWARD), as even const/pure call can invalidate
! 	     that.  Do this only if !ACCUMULATE_OUTGOING_ARGS or if
! 	     cfun->calls_alloca, otherwise the stack pointer shouldn't be
! 	     changing in the middle of the function and nothing should be
! 	     stored below the stack pointer.  */
! 	  if (!ACCUMULATE_OUTGOING_ARGS || cfun->calls_alloca)
! 	    cselib_invalidate_mem (callmem[1]);
! 	}
      }
  
    cselib_record_sets (insn);
*************** cselib_init (int record_what)
*** 3226,3233 ****
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything,
       see canon_true_dependence.  This is only created once.  */
!   if (! callmem)
!     callmem = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode));
  
    cselib_nregs = max_reg_num ();
  
--- 3348,3378 ----
  
    /* (mem:BLK (scratch)) is a special mechanism to conflict with everything,
       see canon_true_dependence.  This is only created once.  */
!   if (! callmem[0])
!     callmem[0] = gen_rtx_MEM (BLKmode, gen_rtx_SCRATCH (VOIDmode));
!   /* Similarly create a MEM representing roughly everything below
!      the stack for STACK_GROWS_DOWNWARD targets or everything above
!      it otherwise.  Do this only when !ACCUMULATE_OUTGOING_ARGS or
!      if cfun->calls_alloca, otherwise the stack pointer shouldn't be
!      changing in the middle of the function and nothing should be stored
!      below the stack pointer.  */
!   if (!callmem[1] && (!ACCUMULATE_OUTGOING_ARGS || cfun->calls_alloca))
!     {
!       if (STACK_GROWS_DOWNWARD)
! 	{
! 	  unsigned HOST_WIDE_INT off = -(GET_MODE_MASK (Pmode) >> 1);
! #ifdef STACK_ADDRESS_OFFSET
! 	  /* On SPARC take stack pointer bias into account as well.  */
! 	  off += (STACK_ADDRESS_OFFSET
! 		  - FIRST_PARM_OFFSET (current_function_decl));
! #endif
! 	  callmem[1] = plus_constant (Pmode, stack_pointer_rtx, off);
! 	}
!       else
! 	callmem[1] = stack_pointer_rtx;
!       callmem[1] = gen_rtx_MEM (BLKmode, callmem[1]);
!       set_mem_size (callmem[1], GET_MODE_MASK (Pmode) >> 1);
!     }
  
    cselib_nregs = max_reg_num ();
  
diff -Nrcpad gcc-14-20250523/gcc/fortran/ChangeLog gcc-14-20250530/gcc/fortran/ChangeLog
*** gcc-14-20250523/gcc/fortran/ChangeLog	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/fortran/ChangeLog	Fri May 30 22:32:13 2025
***************
*** 1,3 ****
--- 1,21 ----
+ 2025-05-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-05-15  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/85750
+ 	* resolve.cc (resolve_symbol): Reorder conditions when to apply
+ 	default-initializers.
+ 
+ 2025-05-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2024-08-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/98454
+ 	* resolve.cc (resolve_symbol): Add default-initialization of
+ 	non-allocatable, non-pointer derived-type function results.
+ 
  2025-05-23  Release Manager
  
  	* GCC 14.3.0 released.
diff -Nrcpad gcc-14-20250523/gcc/fortran/resolve.cc gcc-14-20250530/gcc/fortran/resolve.cc
*** gcc-14-20250523/gcc/fortran/resolve.cc	Fri May 23 22:32:13 2025
--- gcc-14-20250530/gcc/fortran/resolve.cc	Fri May 30 22:32:13 2025
*************** skip_interfaces:
*** 17134,17139 ****
--- 17134,17143 ----
  	  || (a->dummy && !a->pointer && a->intent == INTENT_OUT
  	      && sym->ns->proc_name->attr.if_source != IFSRC_IFBODY))
  	apply_default_init (sym);
+       else if (a->function && !a->pointer && !a->allocatable && !a->use_assoc
+ 	       && sym->result)
+ 	/* Default initialization for function results.  */
+ 	apply_default_init (sym->result);
        else if (a->function && sym->result && a->access != ACCESS_PRIVATE
  	       && (sym->ts.u.derived->attr.alloc_comp
  		   || sym->ts.u.derived->attr.pointer_comp))
diff -Nrcpad gcc-14-20250523/gcc/gimple-fold.cc gcc-14-20250530/gcc/gimple-fold.cc
*** gcc-14-20250523/gcc/gimple-fold.cc	Fri May 23 22:32:14 2025
--- gcc-14-20250530/gcc/gimple-fold.cc	Fri May 30 22:32:13 2025
*************** gimple_fold_builtin_memory_op (gimple_st
*** 936,941 ****
--- 936,943 ----
  	}
        goto done;
      }
+   else if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
    else
      {
        /* We cannot (easily) change the type of the copy if it is a storage
*************** gimple_fold_builtin_bcmp (gimple_stmt_it
*** 1377,1382 ****
--- 1379,1386 ----
    /* Transform bcmp (a, b, len) into memcmp (a, b, len).  */
  
    gimple *stmt = gsi_stmt (*gsi);
+   if (!gimple_vuse (stmt) && gimple_in_ssa_p (cfun))
+     return false;
    tree a = gimple_call_arg (stmt, 0);
    tree b = gimple_call_arg (stmt, 1);
    tree len = gimple_call_arg (stmt, 2);
*************** gimple_fold_builtin_bcopy (gimple_stmt_i
*** 1403,1408 ****
--- 1407,1414 ----
       len) into memmove (dest, src, len).  */
  
    gimple *stmt = gsi_stmt (*gsi);
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
    tree src = gimple_call_arg (stmt, 0);
    tree dest = gimple_call_arg (stmt, 1);
    tree len = gimple_call_arg (stmt, 2);
*************** gimple_fold_builtin_bzero (gimple_stmt_i
*** 1428,1433 ****
--- 1434,1441 ----
    /* Transform bzero (dest, len) into memset (dest, 0, len).  */
  
    gimple *stmt = gsi_stmt (*gsi);
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
    tree dest = gimple_call_arg (stmt, 0);
    tree len = gimple_call_arg (stmt, 1);
  
*************** gimple_fold_builtin_memset (gimple_stmt_
*** 1457,1462 ****
--- 1465,1473 ----
        return true;
      }
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    if (! tree_fits_uhwi_p (len))
      return false;
  
*************** gimple_fold_builtin_memset (gimple_stmt_
*** 1479,1498 ****
    if ((!INTEGRAL_TYPE_P (etype)
         && !POINTER_TYPE_P (etype))
        || TREE_CODE (etype) == BITINT_TYPE)
!     return NULL_TREE;
  
    if (! var_decl_component_p (var))
!     return NULL_TREE;
  
    length = tree_to_uhwi (len);
    if (GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (etype)) != length
        || (GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (etype))
  	  != GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE (etype)))
        || get_pointer_alignment (dest) / BITS_PER_UNIT < length)
!     return NULL_TREE;
  
    if (length > HOST_BITS_PER_WIDE_INT / BITS_PER_UNIT)
!     return NULL_TREE;
  
    if (!type_has_mode_precision_p (etype))
      etype = lang_hooks.types.type_for_mode (SCALAR_INT_TYPE_MODE (etype),
--- 1490,1509 ----
    if ((!INTEGRAL_TYPE_P (etype)
         && !POINTER_TYPE_P (etype))
        || TREE_CODE (etype) == BITINT_TYPE)
!     return false;
  
    if (! var_decl_component_p (var))
!     return false;
  
    length = tree_to_uhwi (len);
    if (GET_MODE_SIZE (SCALAR_INT_TYPE_MODE (etype)) != length
        || (GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (etype))
  	  != GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE (etype)))
        || get_pointer_alignment (dest) / BITS_PER_UNIT < length)
!     return false;
  
    if (length > HOST_BITS_PER_WIDE_INT / BITS_PER_UNIT)
!     return false;
  
    if (!type_has_mode_precision_p (etype))
      etype = lang_hooks.types.type_for_mode (SCALAR_INT_TYPE_MODE (etype),
*************** gimple_fold_builtin_strcpy (gimple_stmt_
*** 2106,2112 ****
        return false;
      }
  
!   if (!len)
      return false;
  
    len = fold_convert_loc (loc, size_type_node, len);
--- 2117,2123 ----
        return false;
      }
  
!   if (!len || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    len = fold_convert_loc (loc, size_type_node, len);
*************** gimple_fold_builtin_strncpy (gimple_stmt
*** 2181,2187 ****
  
    /* OK transform into builtin memcpy.  */
    tree fn = builtin_decl_implicit (BUILT_IN_MEMCPY);
!   if (!fn)
      return false;
  
    len = fold_convert_loc (loc, size_type_node, len);
--- 2192,2198 ----
  
    /* OK transform into builtin memcpy.  */
    tree fn = builtin_decl_implicit (BUILT_IN_MEMCPY);
!   if (!fn || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    len = fold_convert_loc (loc, size_type_node, len);
*************** gimple_fold_builtin_strchr (gimple_stmt_
*** 2235,2241 ****
        return true;
      }
  
!   if (!integer_zerop (c))
      return false;
  
    /* Transform strrchr (s, 0) to strchr (s, 0) when optimizing for size.  */
--- 2246,2252 ----
        return true;
      }
  
!   if (!integer_zerop (c) || (!gimple_vuse (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    /* Transform strrchr (s, 0) to strchr (s, 0) when optimizing for size.  */
*************** gimple_fold_builtin_strstr (gimple_stmt_
*** 2333,2338 ****
--- 2344,2352 ----
        return true;
      }
  
+   if (!gimple_vuse (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    /* Transform strstr (x, "c") into strchr (x, 'c').  */
    if (q[1] == '\0')
      {
*************** gimple_fold_builtin_strcat (gimple_stmt_
*** 2385,2390 ****
--- 2399,2407 ----
    if (!optimize_bb_for_speed_p (gimple_bb (stmt)))
      return false;
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    /* See if we can store by pieces into (dst + strlen(dst)).  */
    tree newdst;
    tree strlen_fn = builtin_decl_implicit (BUILT_IN_STRLEN);
*************** gimple_fold_builtin_strcat_chk (gimple_s
*** 2454,2460 ****
    tree fn;
    const char *p;
  
- 
    p = c_getstr (src);
    /* If the SRC parameter is "", return DEST.  */
    if (p && *p == '\0')
--- 2471,2476 ----
*************** gimple_fold_builtin_strcat_chk (gimple_s
*** 2466,2471 ****
--- 2482,2490 ----
    if (! tree_fits_uhwi_p (size) || ! integer_all_onesp (size))
      return false;
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    /* If __builtin_strcat_chk is used, assume strcat is available.  */
    fn = builtin_decl_explicit (BUILT_IN_STRCAT);
    if (!fn)
*************** gimple_fold_builtin_strncat (gimple_stmt
*** 2556,2562 ****
  
    /* If the replacement _DECL isn't initialized, don't do the
       transformation.  */
!   if (!fn)
      return false;
  
    /* Otherwise, emit a call to strcat.  */
--- 2575,2581 ----
  
    /* If the replacement _DECL isn't initialized, don't do the
       transformation.  */
!   if (!fn || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    /* Otherwise, emit a call to strcat.  */
*************** gimple_fold_builtin_strncat_chk (gimple_
*** 2588,2593 ****
--- 2607,2615 ----
        return true;
      }
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    if (! integer_all_onesp (size))
      {
        tree src_len = c_strlen (src, 1);
*************** gimple_fold_builtin_string_compare (gimp
*** 2678,2683 ****
--- 2700,2708 ----
        return true;
      }
  
+   if (!gimple_vuse (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    /* Initially set to the number of characters, including the terminating
       nul if each array has one.   LENx == strnlen (Sx, LENx) implies that
       the array Sx is not terminated by a nul.
*************** gimple_fold_builtin_fputs (gimple_stmt_i
*** 2970,2976 ****
  	const char *p = c_getstr (arg0);
  	if (p != NULL)
  	  {
! 	    if (!fn_fputc)
  	      return false;
  
  	    gimple *repl
--- 2995,3001 ----
  	const char *p = c_getstr (arg0);
  	if (p != NULL)
  	  {
! 	    if (!fn_fputc || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
  	      return false;
  
  	    gimple *repl
*************** gimple_fold_builtin_fputs (gimple_stmt_i
*** 2989,2995 ****
  	  return false;
  	/* New argument list transforming fputs(string, stream) to
  	   fwrite(string, 1, len, stream).  */
! 	if (!fn_fwrite)
  	  return false;
  
  	gimple *repl
--- 3014,3020 ----
  	  return false;
  	/* New argument list transforming fputs(string, stream) to
  	   fwrite(string, 1, len, stream).  */
! 	if (!fn_fwrite || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
  	  return false;
  
  	gimple *repl
*************** gimple_fold_builtin_memory_chk (gimple_s
*** 3040,3045 ****
--- 3065,3073 ----
  	}
      }
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    tree maxlen = get_maxval_strlen (len, SRK_INT_VALUE);
    if (! integer_all_onesp (size)
        && !known_lower (stmt, len, size)
*************** gimple_fold_builtin_stxcpy_chk (gimple_s
*** 3138,3143 ****
--- 3166,3174 ----
        return true;
      }
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    tree maxlen = get_maxval_strlen (src, SRK_STRLENMAX);
    if (! integer_all_onesp (size))
      {
*************** gimple_fold_builtin_stxncpy_chk (gimple_
*** 3231,3237 ****
    /* If __builtin_st{r,p}ncpy_chk is used, assume st{r,p}ncpy is available.  */
    fn = builtin_decl_explicit (fcode == BUILT_IN_STPNCPY_CHK && !ignore
  			      ? BUILT_IN_STPNCPY : BUILT_IN_STRNCPY);
!   if (!fn)
      return false;
  
    gcall *repl = gimple_build_call (fn, 3, dest, src, len);
--- 3262,3268 ----
    /* If __builtin_st{r,p}ncpy_chk is used, assume st{r,p}ncpy is available.  */
    fn = builtin_decl_explicit (fcode == BUILT_IN_STPNCPY_CHK && !ignore
  			      ? BUILT_IN_STPNCPY : BUILT_IN_STRNCPY);
!   if (!fn || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    gcall *repl = gimple_build_call (fn, 3, dest, src, len);
*************** gimple_fold_builtin_stpcpy (gimple_stmt_
*** 3252,3257 ****
--- 3283,3291 ----
    tree src = gimple_call_arg (stmt, 1);
    tree fn, lenp1;
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    /* If the result is unused, replace stpcpy with strcpy.  */
    if (gimple_call_lhs (stmt) == NULL_TREE)
      {
*************** gimple_fold_builtin_snprintf_chk (gimple
*** 3369,3375 ****
       available.  */
    fn = builtin_decl_explicit (fcode == BUILT_IN_VSNPRINTF_CHK
  			      ? BUILT_IN_VSNPRINTF : BUILT_IN_SNPRINTF);
!   if (!fn)
      return false;
  
    /* Replace the called function and the first 5 argument by 3 retaining
--- 3403,3409 ----
       available.  */
    fn = builtin_decl_explicit (fcode == BUILT_IN_VSNPRINTF_CHK
  			      ? BUILT_IN_VSNPRINTF : BUILT_IN_SNPRINTF);
!   if (!fn || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    /* Replace the called function and the first 5 argument by 3 retaining
*************** gimple_fold_builtin_sprintf_chk (gimple_
*** 3456,3462 ****
    /* If __builtin_{,v}sprintf_chk is used, assume {,v}sprintf is available.  */
    fn = builtin_decl_explicit (fcode == BUILT_IN_VSPRINTF_CHK
  			      ? BUILT_IN_VSPRINTF : BUILT_IN_SPRINTF);
!   if (!fn)
      return false;
  
    /* Replace the called function and the first 4 argument by 2 retaining
--- 3490,3496 ----
    /* If __builtin_{,v}sprintf_chk is used, assume {,v}sprintf is available.  */
    fn = builtin_decl_explicit (fcode == BUILT_IN_VSPRINTF_CHK
  			      ? BUILT_IN_VSPRINTF : BUILT_IN_SPRINTF);
!   if (!fn || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    /* Replace the called function and the first 4 argument by 2 retaining
*************** gimple_fold_builtin_sprintf (gimple_stmt
*** 3505,3511 ****
      return false;
  
    tree fn = builtin_decl_implicit (BUILT_IN_STRCPY);
!   if (!fn)
      return false;
  
    /* If the format doesn't contain % args or %%, use strcpy.  */
--- 3539,3545 ----
      return false;
  
    tree fn = builtin_decl_implicit (BUILT_IN_STRCPY);
!   if (!fn || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    /* If the format doesn't contain % args or %%, use strcpy.  */
*************** gimple_fold_builtin_snprintf (gimple_stm
*** 3618,3624 ****
    tree orig = NULL_TREE;
    const char *fmt_str = NULL;
  
!   if (gimple_call_num_args (stmt) > 4)
      return false;
  
    if (gimple_call_num_args (stmt) == 4)
--- 3652,3659 ----
    tree orig = NULL_TREE;
    const char *fmt_str = NULL;
  
!   if (gimple_call_num_args (stmt) > 4
!       || (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun)))
      return false;
  
    if (gimple_call_num_args (stmt) == 4)
*************** gimple_fold_builtin_fprintf (gimple_stmt
*** 3776,3781 ****
--- 3811,3819 ----
    if (!init_target_chars ())
      return false;
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    /* If the format doesn't contain % args or %%, use strcpy.  */
    if (strchr (fmt_str, target_percent) == NULL)
      {
*************** gimple_fold_builtin_printf (gimple_stmt_
*** 3855,3860 ****
--- 3893,3901 ----
    if (gimple_call_lhs (stmt) != NULL_TREE)
      return false;
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    /* Check whether the format is a literal string constant.  */
    fmt_str = c_getstr (fmt);
    if (fmt_str == NULL)
*************** gimple_fold_builtin_realloc (gimple_stmt
*** 4096,4101 ****
--- 4137,4145 ----
    tree arg = gimple_call_arg (stmt, 0);
    tree size = gimple_call_arg (stmt, 1);
  
+   if (!gimple_vdef (stmt) && gimple_in_ssa_p (cfun))
+     return false;
+ 
    if (operand_equal_p (arg, null_pointer_node, 0))
      {
        tree fn_malloc = builtin_decl_implicit (BUILT_IN_MALLOC);
diff -Nrcpad gcc-14-20250523/gcc/testsuite/ChangeLog gcc-14-20250530/gcc/testsuite/ChangeLog
*** gcc-14-20250523/gcc/testsuite/ChangeLog	Fri May 23 22:32:14 2025
--- gcc-14-20250530/gcc/testsuite/ChangeLog	Fri May 30 22:32:14 2025
***************
*** 1,3 ****
--- 1,50 ----
+ 2025-05-27  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-05-15  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/120161
+ 	* g++.dg/template/unify13.C: New test.
+ 
+ 2025-05-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2025-02-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/117239
+ 	* gcc.dg/pr117239.c: New test.
+ 
+ 2025-05-26  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2024-11-28  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/117358
+ 	* gcc.c-torture/compile/pr117358.c: New test.
+ 
+ 2025-05-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2025-05-15  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/85750
+ 	* gfortran.dg/alloc_comp_auto_array_3.f90: Adjust scan counts.
+ 	* gfortran.dg/alloc_comp_class_3.f03: Remove bogus warnings.
+ 	* gfortran.dg/alloc_comp_class_4.f03: Likewise.
+ 	* gfortran.dg/allocate_with_source_14.f03: Adjust scan count.
+ 	* gfortran.dg/derived_constructor_comps_6.f90: Likewise.
+ 	* gfortran.dg/derived_result_5.f90: New test.
+ 
+ 2025-05-25  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2024-08-30  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/98454
+ 	* gfortran.dg/alloc_comp_class_4.f03: Remove bogus pattern.
+ 	* gfortran.dg/pdt_26.f03: Adjust expected count.
+ 	* gfortran.dg/derived_result_3.f90: New test.
+ 
  2025-05-23  Release Manager
  
  	* GCC 14.3.0 released.
diff -Nrcpad gcc-14-20250523/gcc/testsuite/g++.dg/template/unify13.C gcc-14-20250530/gcc/testsuite/g++.dg/template/unify13.C
*** gcc-14-20250523/gcc/testsuite/g++.dg/template/unify13.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20250530/gcc/testsuite/g++.dg/template/unify13.C	Fri May 30 22:32:16 2025
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/120161
+ 
+ template<class T, class U>
+ struct mp_list { };
+ 
+ template<class T>
+ struct Wrap { struct type { }; };
+ 
+ struct A : mp_list<Wrap<int>::type, void>
+          , mp_list<Wrap<long>::type, void> { };
+ 
+ template<class U>
+ void f(mp_list<Wrap<int>::type, U>*);
+ 
+ int main() {
+   A a;
+   f(&a);
+ }
diff -Nrcpad gcc-14-20250523/gcc/testsuite/g++.target/s390/pr119834.C gcc-14-20250530/gcc/testsuite/g++.target/s390/pr119834.C
*** gcc-14-20250523/gcc/testsuite/g++.target/s390/pr119834.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20250530/gcc/testsuite/g++.target/s390/pr119834.C	Fri May 30 22:32:21 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-14-20250523/gcc/testsuite/gcc.c-torture/compile/pr117358.c gcc-14-20250530/gcc/testsuite/gcc.c-torture/compile/pr117358.c
*** gcc-14-20250523/gcc/testsuite/gcc.c-torture/compile/pr117358.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250530/gcc/testsuite/gcc.c-torture/compile/pr117358.c	Fri May 30 22:32:21 2025
***************
*** 0 ****
--- 1,17 ----
+ /* PR tree-optimization/117358 */
+ 
+ char a;
+ /* This attribute is bogus, snprintf isn't const.  Just verify we don't ICE on it.  */
+ int __attribute__((const)) snprintf (char *, __SIZE_TYPE__, const char *, ...);
+ 
+ long
+ foo (long d) 
+ { 
+   return snprintf (&a, d, ""); 
+ }
+ 
+ int
+ bar (void) 
+ { 
+   return foo (1); 
+ }
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gcc.dg/pr117239.c gcc-14-20250530/gcc/testsuite/gcc.dg/pr117239.c
*** gcc-14-20250523/gcc/testsuite/gcc.dg/pr117239.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250530/gcc/testsuite/gcc.dg/pr117239.c	Fri May 30 22:32:24 2025
***************
*** 0 ****
--- 1,42 ----
+ /* PR rtl-optimization/117239 */
+ /* { dg-do run } */
+ /* { dg-options "-fno-inline -O2" } */
+ /* { dg-additional-options "-fschedule-insns" { target i?86-*-* x86_64-*-* } } */
+ 
+ int a, b, c = 1, d;
+ 
+ int
+ foo (void)
+ {
+   return a;
+ }
+ 
+ struct A {
+   int e, f, g, h;
+   short i;
+   int j;
+ };
+ 
+ void
+ bar (int x, struct A y)
+ {
+   if (y.j == 1)
+     c = 0;
+ }
+ 
+ int
+ baz (struct A x)
+ {
+   return b;
+ }
+ 
+ int
+ main ()
+ {
+   struct A k = { 0, 0, 0, 0, 0, 1 };
+   d = baz (k);
+   bar (foo (), k);
+   if (c != 0)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gcc.dg/pr120480.c gcc-14-20250530/gcc/testsuite/gcc.dg/pr120480.c
*** gcc-14-20250523/gcc/testsuite/gcc.dg/pr120480.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20250530/gcc/testsuite/gcc.dg/pr120480.c	Fri May 30 22:32:24 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-14-20250523/gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90 gcc-14-20250530/gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90	Fri May 23 22:32:32 2025
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/alloc_comp_auto_array_3.f90	Fri May 30 22:32:35 2025
*************** contains
*** 25,30 ****
      allocate (array(1)%bigarr)
    end function
  end
! ! { dg-final { scan-tree-dump-times "builtin_malloc" 3 "original" } }
  ! { dg-final { scan-tree-dump-times "builtin_free" 3 "original" } }
! ! { dg-final { scan-tree-dump-times "while \\(1\\)" 4 "original" } }
--- 25,30 ----
      allocate (array(1)%bigarr)
    end function
  end
! ! { dg-final { scan-tree-dump-times "builtin_malloc" 4 "original" } }
  ! { dg-final { scan-tree-dump-times "builtin_free" 3 "original" } }
! ! { dg-final { scan-tree-dump-times "while \\(1\\)" 5 "original" } }
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03 gcc-14-20250530/gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03	Fri May 23 22:32:32 2025
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/alloc_comp_class_3.f03	Fri May 30 22:32:35 2025
*************** contains
*** 45,55 ****
      type(c), value :: d
    end subroutine
  
!   type(c) function c_init()  ! { dg-warning "not set" }
    end function
  
    subroutine sub(d)
      type(u), value :: d
    end subroutine
  end program test_pr58586
- 
--- 45,54 ----
      type(c), value :: d
    end subroutine
  
!   type(c) function c_init()
    end function
  
    subroutine sub(d)
      type(u), value :: d
    end subroutine
  end program test_pr58586
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03 gcc-14-20250530/gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03	Fri May 23 22:32:32 2025
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/alloc_comp_class_4.f03	Fri May 30 22:32:35 2025
*************** contains
*** 51,64 ****
      type(t), value :: d
    end subroutine
  
!   type(c) function c_init() ! { dg-warning "not set" }
    end function
  
    class(c) function c_init2() ! { dg-warning "not set" }
      allocatable :: c_init2
    end function
  
!   type(c) function d_init(this) ! { dg-warning "not set" }
      class(d) :: this
    end function
  
--- 51,64 ----
      type(t), value :: d
    end subroutine
  
!   type(c) function c_init()
    end function
  
    class(c) function c_init2() ! { dg-warning "not set" }
      allocatable :: c_init2
    end function
  
!   type(c) function d_init(this)
      class(d) :: this
    end function
  
*************** contains
*** 71,77 ****
      allocatable :: t_init
    end function
  
!   type(t) function static_t_init() ! { dg-warning "not set" }
    end function
  end module test_pr58586_mod
  
--- 71,77 ----
      allocatable :: t_init
    end function
  
!   type(t) function static_t_init()
    end function
  end module test_pr58586_mod
  
*************** program test_pr58586
*** 102,105 ****
    call add_c(oe%init())
    deallocate(oe)
  end program
- 
--- 102,104 ----
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03 gcc-14-20250530/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03	Fri May 23 22:32:32 2025
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/allocate_with_source_14.f03	Fri May 30 22:32:35 2025
*************** program main
*** 210,214 ****
    call v%free()
    deallocate(av)
  end program
! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 22 "original" } }
  ! { dg-final { scan-tree-dump-times "__builtin_free" 29 "original" } }
--- 210,214 ----
    call v%free()
    deallocate(av)
  end program
! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 23 "original" } }
  ! { dg-final { scan-tree-dump-times "__builtin_free" 29 "original" } }
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90 gcc-14-20250530/gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90	Fri May 23 22:32:32 2025
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/derived_constructor_comps_6.f90	Fri May 30 22:32:35 2025
*************** contains
*** 129,133 ****
      prt_spec = name
    end function new_prt_spec3
  end program main
! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 15 "original" } }
  ! { dg-final { scan-tree-dump-times "__builtin_free" 33 "original" } }
--- 129,133 ----
      prt_spec = name
    end function new_prt_spec3
  end program main
! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 16 "original" } }
  ! { dg-final { scan-tree-dump-times "__builtin_free" 33 "original" } }
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gfortran.dg/derived_result_3.f90 gcc-14-20250530/gcc/testsuite/gfortran.dg/derived_result_3.f90
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/derived_result_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/derived_result_3.f90	Fri May 30 22:32:35 2025
***************
*** 0 ****
--- 1,158 ----
+ ! { dg-do run }
+ ! PR fortran/98454 - default-initialization of derived-type function results
+ 
+ program test
+   implicit none
+   type t
+      integer :: unit = -1
+   end type t
+   type u
+      integer, allocatable :: unit(:)
+   end type u
+   type(t) :: x, x3(3)
+   type(u) :: y, y4(4)
+ 
+   ! Scalar function result, DT with default initializer
+   x = t(42)
+   if (x% unit /= 42) stop 1
+   x = g()
+   if (x% unit /= -1) stop 2
+   x = t(42)
+   x = f()
+   if (x% unit /= -1) stop 3
+   x = t(42)
+   x = h()
+   if (x% unit /= -1) stop 4
+   x = t(42)
+   x = k()
+   if (x% unit /= -1) stop 5
+ 
+   ! Array function result, DT with default initializer
+   x3 = t(13)
+   if (any (x3% unit /= 13)) stop 11
+   x3 = f3()
+   if (any (x3% unit /= -1)) stop 12
+   x3 = t(13)
+   x3 = g3()
+   if (any (x3% unit /= -1)) stop 13
+   x3 = t(13)
+   x3 = h3()
+   if (any (x3% unit /= -1)) stop 14
+   x3 = t(13)
+   x3 = k3()
+   if (any (x3% unit /= -1)) stop 15
+ 
+   ! Scalar function result, DT with allocatable component
+   y = u()
+   if (allocated (y% unit)) stop 21
+   allocate (y% unit(42))
+   y = m()
+   if (allocated (y% unit)) stop 22
+   allocate (y% unit(42))
+   y = n()
+   if (allocated (y% unit)) stop 23
+   allocate (y% unit(42))
+   y = o()
+   if (allocated (y% unit)) stop 24
+   allocate (y% unit(42))
+   y = p()
+   if (allocated (y% unit)) stop 25
+ 
+   ! Array function result, DT with allocatable component
+   y4 = u()
+   if (allocated (y4(1)% unit)) stop 31
+   allocate (y4(1)% unit(42))
+   y4 = m4()
+   if (allocated (y4(1)% unit)) stop 32
+   y4 = u()
+   allocate (y4(1)% unit(42))
+   y4 = n4()
+   if (allocated (y4(1)% unit)) stop 33
+ 
+   y4 = u()
+   allocate (y4(1)% unit(42))
+   y4 = o4()
+   if (allocated (y4(1)% unit)) stop 34
+   y4 = u()
+   allocate (y4(1)% unit(42))
+   y4 = p4()
+   if (allocated (y4(1)% unit)) stop 35
+ 
+ contains
+ 
+   ! Function result not referenced within function body
+   function f()
+     type(t) :: f
+   end function f
+ 
+   function k() result (f)
+     type(t) :: f
+   end function k
+ 
+   ! Function result referenced within function body
+   function g()
+     type(t) :: g
+     if (g% unit /= -1) stop 41
+   end function g
+ 
+   function h() result (g)
+     type(t) :: g
+     if (g% unit /= -1) stop 42
+   end function h
+ 
+   ! Function result not referenced within function body
+   function f3 ()
+     type(t) :: f3(3)
+   end function f3
+ 
+   function k3() result (f3)
+     type(t) :: f3(3)
+   end function k3
+ 
+   ! Function result referenced within function body
+   function g3()
+     type(t) :: g3(3)
+     if (any (g3% unit /= -1)) stop 43
+   end function g3
+ 
+   function h3() result (g3)
+     type(t) :: g3(3)
+     if (any (g3% unit /= -1)) stop 44
+   end function h3
+ 
+   function m()
+     type(u) :: m
+   end function m
+ 
+   function n() result (f)
+     type(u) :: f
+   end function n
+ 
+   function o()
+     type(u) :: o
+     if (allocated (o% unit)) stop 71
+   end function o
+ 
+   function p() result (f)
+     type(u) :: f
+     if (allocated (f% unit)) stop 72
+   end function p
+ 
+   function m4()
+     type(u) :: m4(4)
+   end function m4
+ 
+   function n4() result (f)
+     type(u) :: f(4)
+   end function n4
+ 
+   function o4()
+     type(u) :: o4(4)
+     if (allocated (o4(1)% unit)) stop 73
+   end function o4
+ 
+   function p4() result (f)
+     type(u) :: f(4)
+     if (allocated (f(1)% unit)) stop 74
+   end function p4
+ end
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gfortran.dg/derived_result_5.f90 gcc-14-20250530/gcc/testsuite/gfortran.dg/derived_result_5.f90
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/derived_result_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/derived_result_5.f90	Fri May 30 22:32:35 2025
***************
*** 0 ****
--- 1,123 ----
+ ! { dg-do run }
+ ! { dg-additional-options "-O2 -Wreturn-type" }
+ !
+ ! PR fortran/85750 - default-initialization and functions returning derived type
+ 
+ module bar
+   implicit none
+   type ilist
+     integer          :: count = 42
+     integer, pointer :: ptr(:) => null()
+   end type ilist
+ 
+   type jlist
+     real, allocatable :: a(:)
+     integer           :: count = 23
+   end type jlist
+ 
+ contains
+ 
+   function make_list(i)
+     integer,     intent(in)   :: i
+     type(ilist), dimension(2) :: make_list
+     make_list(i)%count = i
+   end function make_list
+ 
+   function make_list_res(i) result(list)
+     integer,     intent(in)   :: i
+     type(ilist), dimension(2) :: list
+     list(i)%count = i
+   end function make_list_res
+ 
+   function make_jlist(i)
+     integer,     intent(in)   :: i
+     type(jlist), dimension(2) :: make_jlist
+     make_jlist(i)%count = i
+   end function make_jlist
+ 
+   function make_jlist_res(i) result(list)
+     integer,     intent(in)   :: i
+     type(jlist), dimension(2) :: list
+     list(i)%count = i
+   end function make_jlist_res
+ 
+   function empty_ilist()
+     type(ilist), dimension(2) :: empty_ilist
+   end function
+ 
+   function empty_jlist()
+     type(jlist), dimension(2) :: empty_jlist
+   end function
+ 
+   function empty_ilist_res() result (res)
+     type(ilist), dimension(2) :: res
+   end function
+ 
+   function empty_jlist_res() result (res)
+     type(jlist), dimension(2) :: res
+   end function
+ 
+ end module bar
+ 
+ program foo
+   use bar
+   implicit none
+   type(ilist)              :: mylist(2) = ilist(count=-2)
+   type(jlist), allocatable :: yourlist(:)
+ 
+   mylist = ilist(count=-1)
+   if (any (mylist%count /= [-1,-1])) stop 1
+   mylist = empty_ilist()
+   if (any (mylist%count /= [42,42])) stop 2
+   mylist = ilist(count=-1)
+   mylist = empty_ilist_res()
+   if (any (mylist%count /= [42,42])) stop 3
+ 
+   allocate(yourlist(1:2))
+   if (any (yourlist%count /= [23,23])) stop 4
+   yourlist = jlist(count=-1)
+   if (any (yourlist%count /= [-1,-1])) stop 5
+   yourlist = empty_jlist()
+   if (any (yourlist%count /= [23,23])) stop 6
+   yourlist = jlist(count=-1)
+   yourlist = empty_jlist_res()
+   if (any (yourlist%count /= [23,23])) stop 7
+ 
+   mylist = make_list(1)
+   if (any (mylist%count /= [1,42])) stop 11
+   mylist = make_list(2)
+   if (any (mylist%count /= [42,2])) stop 12
+   mylist = (make_list(1))
+   if (any (mylist%count /= [1,42])) stop 13
+   mylist = [make_list(2)]
+   if (any (mylist%count /= [42,2])) stop 14
+ 
+   mylist = make_list_res(1)
+   if (any (mylist%count /= [1,42])) stop 21
+   mylist = make_list_res(2)
+   if (any (mylist%count /= [42,2])) stop 22
+   mylist = (make_list_res(1))
+   if (any (mylist%count /= [1,42])) stop 23
+   mylist = [make_list_res(2)]
+   if (any (mylist%count /= [42,2])) stop 24
+ 
+   yourlist = make_jlist(1)
+   if (any (yourlist%count /= [1,23])) stop 31
+   yourlist = make_jlist(2)
+   if (any (yourlist%count /= [23,2])) stop 32
+   yourlist = (make_jlist(1))
+   if (any (yourlist%count /= [1,23])) stop 33
+   yourlist = [make_jlist(2)]
+   if (any (yourlist%count /= [23,2])) stop 34
+ 
+   yourlist = make_jlist_res(1)
+   if (any (yourlist%count /= [1,23])) stop 41
+   yourlist = make_jlist_res(2)
+   if (any (yourlist%count /= [23,2])) stop 42
+   yourlist = (make_jlist_res(1))
+   if (any (yourlist%count /= [1,23])) stop 43
+   yourlist = [make_jlist_res(2)]
+   if (any (yourlist%count /= [23,2])) stop 44
+ 
+   deallocate (yourlist)
+ end program foo
diff -Nrcpad gcc-14-20250523/gcc/testsuite/gfortran.dg/pdt_26.f03 gcc-14-20250530/gcc/testsuite/gfortran.dg/pdt_26.f03
*** gcc-14-20250523/gcc/testsuite/gfortran.dg/pdt_26.f03	Fri May 23 22:32:32 2025
--- gcc-14-20250530/gcc/testsuite/gfortran.dg/pdt_26.f03	Fri May 30 22:32:35 2025
*************** program test_pdt
*** 43,46 ****
    if (any (c(1)%foo .ne. [13,15,17])) STOP 2
  end program test_pdt
  ! { dg-final { scan-tree-dump-times "__builtin_free" 8 "original" } }
! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 8 "original" } }
--- 43,46 ----
    if (any (c(1)%foo .ne. [13,15,17])) STOP 2
  end program test_pdt
  ! { dg-final { scan-tree-dump-times "__builtin_free" 8 "original" } }
! ! { dg-final { scan-tree-dump-times "__builtin_malloc" 9 "original" } }
diff -Nrcpad gcc-14-20250523/libgcc/config/avr/libf7/ChangeLog gcc-14-20250530/libgcc/config/avr/libf7/ChangeLog
*** gcc-14-20250523/libgcc/config/avr/libf7/ChangeLog	Fri May 23 22:32:35 2025
--- gcc-14-20250530/libgcc/config/avr/libf7/ChangeLog	Fri May 30 22:32:38 2025
***************
*** 1,3 ****
--- 1,11 ----
+ 2025-05-27  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	Backported from master:
+ 	2025-05-27  Georg-Johann Lay  <avr@gjlay.de>
+ 
+ 	PR target/120441
+ 	* libf7.c (f7_exp): Limit aa->expo to 10 (not to 9).
+ 
  2025-05-23  Release Manager
  
  	* GCC 14.3.0 released.
diff -Nrcpad gcc-14-20250523/libgcc/config/avr/libf7/libf7.c gcc-14-20250530/libgcc/config/avr/libf7/libf7.c
*** gcc-14-20250523/libgcc/config/avr/libf7/libf7.c	Fri May 23 22:32:35 2025
--- gcc-14-20250530/libgcc/config/avr/libf7/libf7.c	Fri May 30 22:32:38 2025
*************** void f7_exp (f7_t *cc, const f7_t *aa)
*** 1639,1648 ****
      return f7_set_nan (cc);
  
    /* The maximal exponent of 2 for a double is 1023, hence we may limit
!      to  |A| < 1023 * ln2 ~ 709.  We limit to  1024 ~ 1.99 * 2^9  */
  
    if (f7_class_inf (a_class)
!       || (f7_class_nonzero (a_class) && aa->expo >= 9))
      {
        if (f7_class_sign (a_class))
  	return f7_clr (cc);
--- 1639,1648 ----
      return f7_set_nan (cc);
  
    /* The maximal exponent of 2 for a double is 1023, hence we may limit
!      to  |A| < 1023 * ln2 ~ 709.  We limit to  1024 = 2^10  */
  
    if (f7_class_inf (a_class)
!       || (f7_class_nonzero (a_class) && aa->expo >= 10))
      {
        if (f7_class_sign (a_class))
  	return f7_clr (cc);
