diff -Nrcpad gcc-15-20260424/LAST_UPDATED gcc-15-20260501/LAST_UPDATED
*** gcc-15-20260424/LAST_UPDATED	Fri Apr 24 22:32:22 2026
--- gcc-15-20260501/LAST_UPDATED	Fri May  1 22:32:22 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision b4c36136d8878f80c1803e445d375b186af3fed1
--- 1 ----
! Obtained from git: releases/gcc-15 revision d3240e544f5ea5e4983c38bc844c338dda1b127e
diff -Nrcpad gcc-15-20260424/MD5SUMS gcc-15-20260501/MD5SUMS
*** gcc-15-20260424/MD5SUMS	Fri Apr 24 22:32:27 2026
--- gcc-15-20260501/MD5SUMS	Fri May  1 22:32:27 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260424.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-20260501.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
! e5a63b782324c88da55ddddab96b77de  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! d006b1fd1ca6183c3137cfed808c8844  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
! f07e20a935c7fb81756f6e3e6500515b  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
! 5f55d83d604873c7ba319dd11587fdb2  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
! 80ffcab6aaf4b0e9928b004fa5e62c1c  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
! e9605c735b75fe6fd47454a342f03e47  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 563,569 ****
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! c2391fcde1dcba0975a65ba25c61e8bd  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 563,569 ----
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 27e32df26c006a24818ede58755e2df8  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** c32b79cba61a5b6f930702390ccb4a7e  gcc/ad
*** 778,785 ****
  689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
  9dda196327513bf2ff43b720e183d830  gcc/ada/exp_ch5.adb
  3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 2fa9560c122a8f5f8cd30af4e8fec94f  gcc/ada/exp_ch6.adb
! c22c79787fe7516adb5a4c55613fb6ab  gcc/ada/exp_ch6.ads
  356896e905fa10471e94e6ed528670a1  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
  ff5f2710ba824ff8ef979c388663bac2  gcc/ada/exp_ch8.adb
--- 778,785 ----
  689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
  9dda196327513bf2ff43b720e183d830  gcc/ada/exp_ch5.adb
  3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 70cbc7566dc023482c5cd134af1130f5  gcc/ada/exp_ch6.adb
! 569663f94da41d023cc2d7056ce13439  gcc/ada/exp_ch6.ads
  356896e905fa10471e94e6ed528670a1  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
  ff5f2710ba824ff8ef979c388663bac2  gcc/ada/exp_ch8.adb
*************** f3965d375e31f991fba42df0595a3470  gcc/ad
*** 2946,2952 ****
  7b283bd6453de444c7075a8c6f215dda  gcc/ada/sem_ch9.ads
  a3ec3b68d1191d6cfaaaa4ba524b8896  gcc/ada/sem_dim.adb
  d0ed9c569455451ee26c8e2565b7125b  gcc/ada/sem_dim.ads
! 0b4ce58f68d5aff0988a26cb09840d67  gcc/ada/sem_disp.adb
  40937cb7584e45e4c545aa3e4c20fbb2  gcc/ada/sem_disp.ads
  8f677120e0bcecbdcfa5b9c4f44cb282  gcc/ada/sem_dist.adb
  a38c4ce4bc2936bd0a73c28ff1b0df61  gcc/ada/sem_dist.ads
--- 2946,2952 ----
  7b283bd6453de444c7075a8c6f215dda  gcc/ada/sem_ch9.ads
  a3ec3b68d1191d6cfaaaa4ba524b8896  gcc/ada/sem_dim.adb
  d0ed9c569455451ee26c8e2565b7125b  gcc/ada/sem_dim.ads
! db704f222efa0f8a17d2cd7711c09627  gcc/ada/sem_disp.adb
  40937cb7584e45e4c545aa3e4c20fbb2  gcc/ada/sem_disp.ads
  8f677120e0bcecbdcfa5b9c4f44cb282  gcc/ada/sem_dist.adb
  a38c4ce4bc2936bd0a73c28ff1b0df61  gcc/ada/sem_dist.ads
*************** f805d118929dd79f6bd4dc75c77c968b  gcc/co
*** 3659,3665 ****
  a16ca2ab73b09afe4481044ebcec2010  gcc/config/arm/arm-tune.md
  9d72d08f0b50dda1a967bfeb70695c7c  gcc/config/arm/arm.cc
  0ada24c6acb631d40bb857f80959936a  gcc/config/arm/arm.h
! ce8684cce0c46264d74e65f8f38a4088  gcc/config/arm/arm.md
  a7974fb16c914604eacaf43120b8769f  gcc/config/arm/arm.opt
  d96083967a30e6eb0f75d624af2d831a  gcc/config/arm/arm.opt.urls
  ccbf8aa9582c7ea8db0ed6a70d1dd691  gcc/config/arm/arm1020e.md
--- 3659,3665 ----
  a16ca2ab73b09afe4481044ebcec2010  gcc/config/arm/arm-tune.md
  9d72d08f0b50dda1a967bfeb70695c7c  gcc/config/arm/arm.cc
  0ada24c6acb631d40bb857f80959936a  gcc/config/arm/arm.h
! b2f19c013193963dc0b7862e88720be5  gcc/config/arm/arm.md
  a7974fb16c914604eacaf43120b8769f  gcc/config/arm/arm.opt
  d96083967a30e6eb0f75d624af2d831a  gcc/config/arm/arm.opt.urls
  ccbf8aa9582c7ea8db0ed6a70d1dd691  gcc/config/arm/arm1020e.md
*************** cb269e14a0ffcaf48937ea37a588d123  gcc/co
*** 3681,3687 ****
  130a8fbe50847f964b84dcc079274131  gcc/config/arm/arm_vfp_builtins.def
  ae20ce20f59a062f74bc3e38bfb8e776  gcc/config/arm/bpabi.h
  bbacfe695f3abec9a6aa46cee26c1db4  gcc/config/arm/common.md
! 50e35da03cd06e93fe7b29d9658b7664  gcc/config/arm/constraints.md
  583626dca1b07ab1d185bd33be9c755e  gcc/config/arm/cortex-a15-neon.md
  e3f39f090dffb6441661f2735ff625c7  gcc/config/arm/cortex-a15.md
  2e920cabf1d4fa68e020ec3becbec753  gcc/config/arm/cortex-a17-neon.md
--- 3681,3687 ----
  130a8fbe50847f964b84dcc079274131  gcc/config/arm/arm_vfp_builtins.def
  ae20ce20f59a062f74bc3e38bfb8e776  gcc/config/arm/bpabi.h
  bbacfe695f3abec9a6aa46cee26c1db4  gcc/config/arm/common.md
! 8474b1418ac7969a5e4a7720e58affb2  gcc/config/arm/constraints.md
  583626dca1b07ab1d185bd33be9c755e  gcc/config/arm/cortex-a15-neon.md
  e3f39f090dffb6441661f2735ff625c7  gcc/config/arm/cortex-a15.md
  2e920cabf1d4fa68e020ec3becbec753  gcc/config/arm/cortex-a17-neon.md
*************** b39ae9b1d0fd52783888ae034fa27218  gcc/co
*** 3754,3760 ****
  c15086ec95d044fe59c3f12aa73190d1  gcc/config/arm/unknown-elf.h
  33bc3fb39961551d930b396b9e0baba8  gcc/config/arm/unspecs.md
  73bd6e0ed5faced721e41f90a5d22e64  gcc/config/arm/vec-common.md
! cd17766ff1d7c30a7763b20fd4eef83a  gcc/config/arm/vfp.md
  97faf501b2f484ffffb0776805ec048c  gcc/config/arm/vfp11.md
  7103226c96e3a24663955d93879e07b5  gcc/config/arm/vxworks.h
  2d895654184d467da32c02a44f6598ac  gcc/config/arm/vxworks.opt
--- 3754,3760 ----
  c15086ec95d044fe59c3f12aa73190d1  gcc/config/arm/unknown-elf.h
  33bc3fb39961551d930b396b9e0baba8  gcc/config/arm/unspecs.md
  73bd6e0ed5faced721e41f90a5d22e64  gcc/config/arm/vec-common.md
! e60badd5a74f3c97d6f8e74b2f5f58fc  gcc/config/arm/vfp.md
  97faf501b2f484ffffb0776805ec048c  gcc/config/arm/vfp11.md
  7103226c96e3a24663955d93879e07b5  gcc/config/arm/vxworks.h
  2d895654184d467da32c02a44f6598ac  gcc/config/arm/vxworks.opt
*************** e7fe06956aada61bcaae5168ad47a9c1  gcc/cp
*** 5588,5594 ****
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  eae2e1338eefdbc34a442a4f5e164277  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 91cd31f11aabe14007fafaffa9f6d864  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
--- 5588,5594 ----
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  eae2e1338eefdbc34a442a4f5e164277  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 5b837de8c6309f7a85159b465d989523  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
*************** ef535a32c5b6f227a666c63523f6bb80  gcc/in
*** 6460,6467 ****
  bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
  deb111e00b2b07aa631595045bce5003  gcc/intl.h
  47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
! 75331105b346f6316bfe3795cd72361c  gcc/ipa-cp.cc
! b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
  4b65c0ccf8c98e3a0e1526acb4ebd3a4  gcc/ipa-devirt.cc
  f0dcd3b109344ff1bf5de85f4598f9b2  gcc/ipa-fnsummary.cc
  fef6f27045737cc29ebf2dbbd22dda02  gcc/ipa-fnsummary.h
--- 6460,6467 ----
  bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
  deb111e00b2b07aa631595045bce5003  gcc/intl.h
  47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
! 77396d87335360a26a967b408f340247  gcc/ipa-cp.cc
! fa57f458a1533dfb39d7d64f4b7d9b93  gcc/ipa-cp.h
  4b65c0ccf8c98e3a0e1526acb4ebd3a4  gcc/ipa-devirt.cc
  f0dcd3b109344ff1bf5de85f4598f9b2  gcc/ipa-fnsummary.cc
  fef6f27045737cc29ebf2dbbd22dda02  gcc/ipa-fnsummary.h
*************** d33136e7edecd120aa035f0e1ad240b0  gcc/ip
*** 6486,6492 ****
  83c011375208cf1307980bcb1b18b67a  gcc/ipa-predicate.cc
  3290558dca39b32c0ca581e6c3427551  gcc/ipa-predicate.h
  efab6d5ed309040ea34311e2e35802fe  gcc/ipa-profile.cc
! 22383cc8b0b473c169dc79e083600d48  gcc/ipa-prop.cc
  769c7da3be6c74b69be2f9572626e59f  gcc/ipa-prop.h
  1ab3b52af464e998b39403664a5ee0c4  gcc/ipa-pure-const.cc
  ce0496bede6d40e2fcfbc8277856fc23  gcc/ipa-ref.cc
--- 6486,6492 ----
  83c011375208cf1307980bcb1b18b67a  gcc/ipa-predicate.cc
  3290558dca39b32c0ca581e6c3427551  gcc/ipa-predicate.h
  efab6d5ed309040ea34311e2e35802fe  gcc/ipa-profile.cc
! a46738f2691ef2f413106830a4fa8763  gcc/ipa-prop.cc
  769c7da3be6c74b69be2f9572626e59f  gcc/ipa-prop.h
  1ab3b52af464e998b39403664a5ee0c4  gcc/ipa-pure-const.cc
  ce0496bede6d40e2fcfbc8277856fc23  gcc/ipa-ref.cc
*************** d6625bf8e7676e7c0d45da5ca515ab06  gcc/re
*** 7812,7818 ****
  29f0358d26dd3f8be1417f9a16c71806  gcc/ree.cc
  40ff12eae68d7c45fee63cfa20a67634  gcc/reg-notes.def
  aa0ee68df72d26f412ede3144ff99d42  gcc/reg-stack.cc
! 326cfd57c1bbde18df46f04749c95d4c  gcc/regcprop.cc
  a15f939ddd4de2fc2a6dc44a5344d39f  gcc/regcprop.h
  fcafe43f1a7955c6e00e7b1301dae7ad  gcc/regenerate-attr-urls.py
  3779a015e4f5337a24cf38a89c57eea8  gcc/regenerate-opt-urls.py
--- 7812,7818 ----
  29f0358d26dd3f8be1417f9a16c71806  gcc/ree.cc
  40ff12eae68d7c45fee63cfa20a67634  gcc/reg-notes.def
  aa0ee68df72d26f412ede3144ff99d42  gcc/reg-stack.cc
! 3f9e91174c7e8a98c9f5539f47e2fdf9  gcc/regcprop.cc
  a15f939ddd4de2fc2a6dc44a5344d39f  gcc/regcprop.h
  fcafe43f1a7955c6e00e7b1301dae7ad  gcc/regenerate-attr-urls.py
  3779a015e4f5337a24cf38a89c57eea8  gcc/regenerate-opt-urls.py
*************** b3a965e425e6cf7888319667faf58da9  gcc/sy
*** 8448,8454 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 227e86cc11ed017048c2f447a033867d  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8448,8454 ----
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 2501df3acd2fd517dddb8c511c539601  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** c22e1405c91d95d32ec012cae1f23ccc  gcc/te
*** 20246,20251 ****
--- 20246,20252 ----
  7babed4c27249bda4fc60ca9f7b378c0  gcc/testsuite/g++.dg/cpp1y/var-templ85.C
  358ebedc9ef10722682a7bf350590dc2  gcc/testsuite/g++.dg/cpp1y/var-templ86.C
  2555b4c1ccdec6b7fca5b625f06840d3  gcc/testsuite/g++.dg/cpp1y/var-templ87.C
+ 6066c7bcfa1174f7783c52343cc9ad88  gcc/testsuite/g++.dg/cpp1y/var-templ88.C
  c62c3c5ce4dabfb077ffd26896b1d204  gcc/testsuite/g++.dg/cpp1y/var-templ9.C
  2e5f8fa912af0b2871356af6f1adbd06  gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C
  4804988f5ca1de7a49a58e20c70fc457  gcc/testsuite/g++.dg/cpp1y/vla10.C
*************** e39432b4ae7797e55b13f6d2fd29a4a6  gcc/te
*** 48219,48224 ****
--- 48220,48226 ----
  fc7c9c751d59b444d0ab30c4d9029491  gcc/testsuite/gcc.dg/ipa/pr120044-1.c
  538e5a7542c72b7ea4e4375cbebde001  gcc/testsuite/gcc.dg/ipa/pr120044-2.c
  3c119ebca762218e529eb71f0df740de  gcc/testsuite/gcc.dg/ipa/pr120295.c
+ 72900ba4925dafc06ee62e16c28d6287  gcc/testsuite/gcc.dg/ipa/pr124777.c
  c8295ff7fd7e271d17e7609620f5dfcb  gcc/testsuite/gcc.dg/ipa/pr42706.c
  e4887053c792f4f78b03804c148839ce  gcc/testsuite/gcc.dg/ipa/pr45644.c
  6e1b4f2c5d0c0d768778da8e3b7df828  gcc/testsuite/gcc.dg/ipa/pr48195.c
*************** a9069345cbc40d488766c1fbf34c5555  gcc/te
*** 52189,52194 ****
--- 52191,52197 ----
  85baf2f4880c1f6892aac66e29e93d7a  gcc/testsuite/gcc.dg/rtl/arm/mve-vxbi.c
  0fad692089013e1244e2ad3e5560e613  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_32.c
  67d911dae09d634dcf74fac029f1d2e6  gcc/testsuite/gcc.dg/rtl/powerpc/move_compare_peephole_64.c
+ 7c5684bd93ee5f194df629270a23a3fb  gcc/testsuite/gcc.dg/rtl/powerpc/test-frame-related.c
  99f400c18a1446b31c6ca0a7cb30c35c  gcc/testsuite/gcc.dg/rtl/rtl.exp
  75dd0c3d9daa8abdd58a0d0eaf55bd9e  gcc/testsuite/gcc.dg/rtl/test.c
  555898d2432906a81b3aa66cb112a450  gcc/testsuite/gcc.dg/rtl/truncated-rtl-file.c
*************** b8236d8ce423075243050d2ed9692781  gcc/te
*** 56073,56078 ****
--- 56076,56082 ----
  6d2d98158a34d9ab09e487779a321f3d  gcc/testsuite/gcc.dg/tree-ssa/pr118637.c
  b0891b1dddf226da47f4f976abdd7cb0  gcc/testsuite/gcc.dg/tree-ssa/pr119085.c
  ef9f94de68c006babcf9169489ed1b51  gcc/testsuite/gcc.dg/tree-ssa/pr121264.c
+ 71eb14b3ae5faf81c5226dc766d48edd  gcc/testsuite/gcc.dg/tree-ssa/pr122976.c
  fa32f3c662bc31e5bbf4daa360b9c87f  gcc/testsuite/gcc.dg/tree-ssa/pr123372.c
  78e6c5fe63f7305009c8a79840fe20dc  gcc/testsuite/gcc.dg/tree-ssa/pr13146.c
  eab19e0c04884cd782c9879cbe292109  gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
*************** c6c1c759a610556eca59987a77084f45  gcc/te
*** 69474,69480 ****
  5b3a2c86441e5d4b83712d58687052e0  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c
  5790d3efd74c1ddf5aeb2e8743385c60  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c
  6385d3494ed7d5dcaa3d33b79fcfc366  gcc/testsuite/gcc.target/arm/armv8_2-fp16-conv-1.c
! b08f44b71a7af7b084aac520c4780e9e  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
  c69f1e0f027fc631442a0a5361397ee1  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
  43365e7220d0c89c221983b0088e64ec  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c
  fa5db58aee2ae5b90cd3abd3c09395cf  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c
--- 69478,69484 ----
  5b3a2c86441e5d4b83712d58687052e0  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c
  5790d3efd74c1ddf5aeb2e8743385c60  gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c
  6385d3494ed7d5dcaa3d33b79fcfc366  gcc/testsuite/gcc.target/arm/armv8_2-fp16-conv-1.c
! 99e1cbeb4911db07afb48911459483aa  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
  c69f1e0f027fc631442a0a5361397ee1  gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-2.c
  43365e7220d0c89c221983b0088e64ec  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c
  fa5db58aee2ae5b90cd3abd3c09395cf  gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c
*************** c2682b969fcec66bb2ebb2442ff4221b  gcc/te
*** 72576,72581 ****
--- 72580,72586 ----
  bc84b25bc522b6ed07bd7885605c00d7  gcc/testsuite/gcc.target/arm/pr120351.c
  82da20b2c4061a368f405dbeb1cdb341  gcc/testsuite/gcc.target/arm/pr123271.c
  8120924509f8b52f39137165dd663164  gcc/testsuite/gcc.target/arm/pr124134.c
+ 236563c6007691d6571ab9e909e2c81e  gcc/testsuite/gcc.target/arm/pr124933.c
  3ce2c6a399da67ae36390d522e1f1296  gcc/testsuite/gcc.target/arm/pr19599.c
  3425143e88f989a8f52f345e6237106a  gcc/testsuite/gcc.target/arm/pr26702.c
  fc0dd660f56108005b4f0b142e94d10d  gcc/testsuite/gcc.target/arm/pr37780_1.c
*************** b2c755599d8ed47e117bbf82c6a6b12f  gcc/te
*** 113277,113282 ****
--- 113282,113289 ----
  35dc80c5b5ed756d2cc1c930f85a4456  gcc/testsuite/gnat.dg/task3_pkg2.ads
  c32b560114a348976d0298262741b6ea  gcc/testsuite/gnat.dg/task4.adb
  70bd634f46004ffa96eb4070f11592ef  gcc/testsuite/gnat.dg/task5.adb
+ 2eaa9f1d0d240e9dd1698e9211bd233e  gcc/testsuite/gnat.dg/task6.adb
+ b348428ccd472508457f80ed401511e5  gcc/testsuite/gnat.dg/task6.ads
  029ef2213e407fd423e0ce3d19a60a80  gcc/testsuite/gnat.dg/task_name.adb
  2d192de9da9a98892aa2c605de044591  gcc/testsuite/gnat.dg/task_name.ads
  91463323d692d06c9031a056ff412414  gcc/testsuite/gnat.dg/task_stack_align.adb
*************** eb1595e729e2eaac81c7ffe330d8f24e  gcc/te
*** 115803,115809 ****
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! e9de1c70c2e8f3269ed8993a95510ba1  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
--- 115810,115816 ----
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 2735c5c8f072c9bf556fc5f4c9a7554e  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
*************** fd4dd1219acc650a4f7855faa0097964  gcc/tr
*** 118297,118303 ****
  f2fea638426d89fe9ea58081e5c46b3a  gcc/tree-profile.cc
  055f8d35b7a9085ff9d4a90cd58ba399  gcc/tree-scalar-evolution.cc
  dddd950fe463803c41bc0c7cddf0fe44  gcc/tree-scalar-evolution.h
! c1ca7a019e46dc910e45ca4477d10b01  gcc/tree-sra.cc
  c022e816e38c8f399e6a16163c56d6db  gcc/tree-sra.h
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
--- 118304,118310 ----
  f2fea638426d89fe9ea58081e5c46b3a  gcc/tree-profile.cc
  055f8d35b7a9085ff9d4a90cd58ba399  gcc/tree-scalar-evolution.cc
  dddd950fe463803c41bc0c7cddf0fe44  gcc/tree-scalar-evolution.h
! 24348f279ea595d6674363727b9b3acb  gcc/tree-sra.cc
  c022e816e38c8f399e6a16163c56d6db  gcc/tree-sra.h
  3e42023ef3fe5187ffffddbbb5740208  gcc/tree-ssa-address.cc
  c724c8becbea9eec0f806e3335942c32  gcc/tree-ssa-address.h
*************** a73fdec6746eaad8ccdc8e8403aac562  libqua
*** 131900,131906 ****
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! f6f7d9a88f7cf39f4a823115f8095a9c  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  1a2ca7cd408b1705dc84c19070a7049b  libsanitizer/LOCAL_PATCHES
--- 131907,131913 ----
  af84fa5118f4adec8393614994e1c4d6  libquadmath/strtod/strtoflt128.c
  d15a18f7c46ba2add6148edc5b7563c0  libquadmath/strtod/tens_in_limb.c
  12c73a846f7668d29de720bd79502bef  libquadmath/update-quadmath.py
! f7d4d22411de7afbfdbcd546a32e7c1c  libsanitizer/ChangeLog
  63916ba64a3cfa7ce2809fb46ab38597  libsanitizer/HOWTO_MERGE
  0249c37748936faf5b1efd5789587909  libsanitizer/LICENSE.TXT
  1a2ca7cd408b1705dc84c19070a7049b  libsanitizer/LOCAL_PATCHES
*************** c20619c1cdd5936e7b8b0c701a9389ef  libsan
*** 132199,132205 ****
  b582d1c8ad1dfab45211cbb7c25cf5f6  libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp
  a4d7b3990585330fb0fbc99e5afaf019  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
  0865bdc585846a1c9cfa5d1df0517d02  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
! ae39fafc805d942f70ebb97140084eae  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
  292ad6a7d436278e2f125cecbe8cd711  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
--- 132206,132212 ----
  b582d1c8ad1dfab45211cbb7c25cf5f6  libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cpp
  a4d7b3990585330fb0fbc99e5afaf019  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.cpp
  0865bdc585846a1c9cfa5d1df0517d02  libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h
! 5de43ed5e6d6c4cae703d1906995683d  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
  292ad6a7d436278e2f125cecbe8cd711  libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h
  711b54008ada7faff939a95e325b185b  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp
  ab1ad414331f77e459da9a32b756cbac  libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
diff -Nrcpad gcc-15-20260424/gcc/ChangeLog gcc-15-20260501/gcc/ChangeLog
*** gcc-15-20260424/gcc/ChangeLog	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/ChangeLog	Fri May  1 22:32:05 2026
***************
*** 1,3 ****
--- 1,69 ----
+ 2026-04-30  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2026-04-14  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/123102
+ 	* config/arm/arm.md (*cmp_ite0): Apply stricter checks on the
+ 	comparison mode.
+ 	(*cmp_ite1, *cmp_and, *cmp_ior): Likewise.
+ 
+ 2026-04-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-04-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/122976
+ 	* tree-sra.cc (path_comparable_for_same_access): Return false if the
+ 	base is a MEM_REF with a different underlying type.
+ 
+ 2026-04-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-04-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/124777
+ 	* ipa-cp.h (ipacp_value_safe_for_type): Declare.
+ 	* ipa-cp.cc (ipacp_value_safe_for_type): Make public.
+ 	* ipa-prop.cc (ipa_set_jf_cst_copy): Fix comment.
+ 	(ipa_convert_prop_cst_jf): New function.
+ 	(update_jump_functions_after_inlining): Handle the constant to
+ 	pass-through case by calling ipa_convert_prop_cst_jf.
+ 
+ 2026-04-29  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2026-04-22  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/124933
+ 	* config/arm/constraints.md (Uj): Allow offset addressing for
+ 	all targets, only allow Neon addressing when we have both Neon
+ 	and FP16INST.
+ 	* config/arm/vfp.md (mov<mode>_vfp_<mode>16): Only use vld1/vst1
+ 	when the pattern needs address write-back.
+ 
+ 2026-04-27  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2025-12-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/122274
+ 	* regcprop.cc (value_data_entry): New field.
+ 	(kill_value_one_regno): Update field.
+ 	(init_value_data): Initialize field.
+ 	(kill_set_value_data): New field.
+ 	(kill_set_value): Update field.
+ 	(kill_autoinc_value): Likewise.
+ 	(copy_value): New parameter. Update field.
+ 	(incompatible_frame_status): New function.
+ 	(find_oldest_value_reg): New parameter. Compare frame relatedness of
+ 	insn and propagated value.
+ 	(replace_oldest_value_reg): Pass additional parameter to
+ 	find_oldest_value_reg().
+ 	(copyprop_hardreg_forward_1): Pass additional parameter to
+ 	find_oldest_value_reg(). Compare frame relatedness of insn and
+ 	propagated value. Call copy_value() with additional parameter.
+ 
  2026-04-22  Richard Biener  <rguenther@suse.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260424/gcc/DATESTAMP gcc-15-20260501/gcc/DATESTAMP
*** gcc-15-20260424/gcc/DATESTAMP	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/DATESTAMP	Fri May  1 22:32:05 2026
***************
*** 1 ****
! 20260424
--- 1 ----
! 20260501
diff -Nrcpad gcc-15-20260424/gcc/ada/ChangeLog gcc-15-20260501/gcc/ada/ChangeLog
*** gcc-15-20260424/gcc/ada/ChangeLog	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/ada/ChangeLog	Fri May  1 22:32:05 2026
***************
*** 1,3 ****
--- 1,17 ----
+ 2026-04-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/125044
+ 	* sem_disp.adb (Check_Controlling_Formals): Apply the same massaging
+ 	to the result subtype as to the parameter subtypes.
+ 
+ 2026-04-29  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/125044
+ 	* exp_ch6.ads (Needs_BIP_Task_Actuals): Adjust description.
+ 	* exp_ch6.adb (Expand_N_Extended_Return_Statement): Move activation
+ 	chain for every build-in-place function with task formal parameters
+ 	when the type of the return object might have tasks.
+ 
  2026-04-12  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/124836
diff -Nrcpad gcc-15-20260424/gcc/ada/exp_ch6.adb gcc-15-20260501/gcc/ada/exp_ch6.adb
*** gcc-15-20260424/gcc/ada/exp_ch6.adb	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/ada/exp_ch6.adb	Fri May  1 22:32:05 2026
*************** package body Exp_Ch6 is
*** 5491,5498 ****
        Loc          : constant Source_Ptr := Sloc (N);
        Func_Id      : constant Entity_Id :=
                         Return_Applies_To (Return_Statement_Entity (N));
-       Is_BIP_Func  : constant Boolean   :=
-                        Is_Build_In_Place_Function (Func_Id);
        Ret_Obj_Id   : constant Entity_Id :=
                         First_Entity (Return_Statement_Entity (N));
        Ret_Obj_Decl : constant Node_Id   := Parent (Ret_Obj_Id);
--- 5491,5496 ----
*************** package body Exp_Ch6 is
*** 5607,5618 ****
           --  master. But Move_Activation_Chain updates their master to be that
           --  of the caller, so they will not be terminated unless the return
           --  statement completes unsuccessfully due to exception, abort, goto,
!          --  or exit. As a formality, we test whether the function requires the
!          --  result to be built in place, though that's necessarily true for
!          --  the case of result types with task parts.
! 
!          if Is_BIP_Func and then Has_Task (Ret_Typ) then
  
              --  The return expression is an aggregate for a complex type which
              --  contains tasks. This particular case is left unexpanded since
              --  the regular expansion would insert all temporaries and
--- 5605,5617 ----
           --  master. But Move_Activation_Chain updates their master to be that
           --  of the caller, so they will not be terminated unless the return
           --  statement completes unsuccessfully due to exception, abort, goto,
!          --  or exit. Note that we test that the function is both BIP and has
!          --  implicit task formal parameters, because not all functions whose
!          --  result type contains tasks have them (see Needs_BIP_Task_Actuals).
  
+          if Is_Build_In_Place_Function (Func_Id)
+            and then Needs_BIP_Task_Actuals (Func_Id)
+          then
              --  The return expression is an aggregate for a complex type which
              --  contains tasks. This particular case is left unexpanded since
              --  the regular expansion would insert all temporaries and
*************** package body Exp_Ch6 is
*** 5625,5631 ****
              --  Do not move the activation chain if the return object does not
              --  contain tasks.
  
!             if Has_Task (Etype (Ret_Obj_Id)) then
                 Append_To (Stmts, Move_Activation_Chain (Func_Id));
              end if;
           end if;
--- 5624,5630 ----
              --  Do not move the activation chain if the return object does not
              --  contain tasks.
  
!             if Might_Have_Tasks (Etype (Ret_Obj_Id)) then
                 Append_To (Stmts, Move_Activation_Chain (Func_Id));
              end if;
           end if;
diff -Nrcpad gcc-15-20260424/gcc/ada/exp_ch6.ads gcc-15-20260501/gcc/ada/exp_ch6.ads
*** gcc-15-20260424/gcc/ada/exp_ch6.ads	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/ada/exp_ch6.ads	Fri May  1 22:32:05 2026
*************** package Exp_Ch6 is
*** 294,300 ****
     --  dispatching calls, and descendant types may require finalization.
  
     function Needs_BIP_Task_Actuals (Func_Id : Entity_Id) return Boolean;
!    --  Return True if the function returns an object of a type that has tasks.
  
     function Unqual_BIP_Iface_Function_Call (Expr : Node_Id) return Node_Id;
     --  Return the inner BIP function call removing any qualification from Expr
--- 294,301 ----
     --  dispatching calls, and descendant types may require finalization.
  
     function Needs_BIP_Task_Actuals (Func_Id : Entity_Id) return Boolean;
!    --  Ada 2005 (AI-318-02): Return True if the function needs implicit
!    --  BIP_Task_Master and BIP_Activation_Chain parameters.
  
     function Unqual_BIP_Iface_Function_Call (Expr : Node_Id) return Node_Id;
     --  Return the inner BIP function call removing any qualification from Expr
diff -Nrcpad gcc-15-20260424/gcc/ada/sem_disp.adb gcc-15-20260501/gcc/ada/sem_disp.adb
*** gcc-15-20260424/gcc/ada/sem_disp.adb	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/ada/sem_disp.adb	Fri May  1 22:32:06 2026
*************** package body Sem_Disp is
*** 337,345 ****
           end if;
  
           if Present (Ctrl_Type) then
! 
!             --  Obtain the full type in case we are looking at an incomplete
!             --  view.
  
              if Ekind (Ctrl_Type) = E_Incomplete_Type
                and then Present (Full_View (Ctrl_Type))
--- 337,343 ----
           end if;
  
           if Present (Ctrl_Type) then
!             --  Use the full view for an incomplete type
  
              if Ekind (Ctrl_Type) = E_Incomplete_Type
                and then Present (Full_View (Ctrl_Type))
*************** package body Sem_Disp is
*** 347,354 ****
                 Ctrl_Type := Full_View (Ctrl_Type);
              end if;
  
!             --  When controlling type is concurrent and declared within a
!             --  generic or inside an instance use corresponding record type.
  
              if Is_Concurrent_Type (Ctrl_Type)
                and then Present (Corresponding_Record_Type (Ctrl_Type))
--- 345,351 ----
                 Ctrl_Type := Full_View (Ctrl_Type);
              end if;
  
!             --  Use the corresponding record type for a concurrent type
  
              if Is_Concurrent_Type (Ctrl_Type)
                and then Present (Corresponding_Record_Type (Ctrl_Type))
*************** package body Sem_Disp is
*** 440,445 ****
--- 437,458 ----
           Ctrl_Type := Check_Controlling_Type (Etype (Subp), Subp);
  
           if Present (Ctrl_Type) then
+             --  Use the full view for an incomplete type
+ 
+             if Ekind (Ctrl_Type) = E_Incomplete_Type
+               and then Present (Full_View (Ctrl_Type))
+             then
+                Ctrl_Type := Full_View (Ctrl_Type);
+             end if;
+ 
+             --  Use the corresponding record type for a concurrent type
+ 
+             if Is_Concurrent_Type (Ctrl_Type)
+               and then Present (Corresponding_Record_Type (Ctrl_Type))
+             then
+                Ctrl_Type := Corresponding_Record_Type (Ctrl_Type);
+             end if;
+ 
              if Ctrl_Type = Typ then
                 Set_Has_Controlling_Result (Subp);
  
diff -Nrcpad gcc-15-20260424/gcc/config/arm/arm.md gcc-15-20260501/gcc/config/arm/arm.md
*** gcc-15-20260424/gcc/config/arm/arm.md	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/config/arm/arm.md	Fri May  1 22:32:06 2026
***************
*** 10151,10156 ****
--- 10151,10157 ----
     (set_attr "type" "multiple")]
  )
  
+ ;; (pred4 && pred5) != 0
  (define_insn "*cmp_ite0"
    [(set (match_operand 6 "dominant_cc_register" "")
  	(compare
***************
*** 10167,10173 ****
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 0))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
--- 10168,10178 ----
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 0))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_AND_Y))"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10234,10239 ****
--- 10239,10245 ----
             (const_int 10))])]
  )
  
+ ;; (!pred4 || pred5) != 0
  (define_insn "*cmp_ite1"
    [(set (match_operand 6 "dominant_cc_register" "")
  	(compare
***************
*** 10250,10256 ****
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 1))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
--- 10256,10266 ----
  	        "lPy,rI,L,lPy,lPy,rI,rI,L,L")])
  	  (const_int 1))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_NX_OR_Y))"
    "*
    {
      static const char * const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10333,10339 ****
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
--- 10343,10353 ----
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_AND_Y))"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
***************
*** 10418,10424 ****
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
--- 10432,10442 ----
  	    (match_operand:SI 3 "arm_add_operand"
  	        "lPy,rI,L,lPy,lPy,r,rI,rI,L,L")]))
  	 (const_int 0)))]
!   "TARGET_32BIT
!    && GET_MODE (operands[6]) != CCmode
!    && (GET_MODE (operands[6])
!        == arm_select_dominance_cc_mode (operands[4], operands[5],
! 					DOM_CC_X_OR_Y))"
    "*
    {
      static const char *const cmp1[NUM_OF_COND_CMP][2] =
diff -Nrcpad gcc-15-20260424/gcc/config/arm/constraints.md gcc-15-20260501/gcc/config/arm/constraints.md
*** gcc-15-20260424/gcc/config/arm/constraints.md	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/config/arm/constraints.md	Fri May  1 22:32:06 2026
***************
*** 475,486 ****
  (define_memory_constraint "Uj"
   "@internal
    In ARM/Thumb-2 state a VFP load/store address that supports writeback
!   for Neon but not for MVE"
   (and (match_code "mem")
!       (match_test "TARGET_32BIT")
!       (match_test "TARGET_HAVE_MVE
!                    ? arm_coproc_mem_operand_no_writeback (op)
!                    : neon_vector_mem_operand (op, 2, true)")))
  
  (define_memory_constraint "Uy"
   "@internal
--- 475,486 ----
  (define_memory_constraint "Uj"
   "@internal
    In ARM/Thumb-2 state a VFP load/store address that supports writeback
!   for Neon but not for MVE or VFP_FP16INST"
   (and (match_code "mem")
!       (match_test "TARGET_32BIT
! 		   && (arm_coproc_mem_operand_no_writeback (op)
! 		       || (TARGET_NEON_FP16
! 			   && neon_vector_mem_operand (op, 2, true)))")))
  
  (define_memory_constraint "Uy"
   "@internal
diff -Nrcpad gcc-15-20260424/gcc/config/arm/vfp.md gcc-15-20260501/gcc/config/arm/vfp.md
*** gcc-15-20260424/gcc/config/arm/vfp.md	Fri Apr 24 22:32:06 2026
--- gcc-15-20260501/gcc/config/arm/vfp.md	Fri May  1 22:32:06 2026
***************
*** 424,435 ****
      case 6: /* S register from immediate.  */
        return \"vmov.f16\\t%0, %1\t%@ __<fporbf>\";
      case 7: /* S register from memory.  */
!       if (TARGET_HAVE_MVE)
  	return \"vldr.16\\t%0, %1\";
        else
  	return \"vld1.16\\t{%z0}, %A1\";
      case 8: /* Memory from S register.  */
!       if (TARGET_HAVE_MVE)
  	return \"vstr.16\\t%1, %0\";
        else
  	return \"vst1.16\\t{%z1}, %A0\";
--- 424,435 ----
      case 6: /* S register from immediate.  */
        return \"vmov.f16\\t%0, %1\t%@ __<fporbf>\";
      case 7: /* S register from memory.  */
!       if (!auto_inc_p (XEXP (operands[1], 0)))
  	return \"vldr.16\\t%0, %1\";
        else
  	return \"vld1.16\\t{%z0}, %A1\";
      case 8: /* Memory from S register.  */
!       if (!auto_inc_p (XEXP (operands[0], 0)))
  	return \"vstr.16\\t%1, %0\";
        else
  	return \"vst1.16\\t{%z1}, %A0\";
diff -Nrcpad gcc-15-20260424/gcc/cp/pt.cc gcc-15-20260501/gcc/cp/pt.cc
*** gcc-15-20260424/gcc/cp/pt.cc	Fri Apr 24 22:32:07 2026
--- gcc-15-20260501/gcc/cp/pt.cc	Fri May  1 22:32:06 2026
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 21862,21868 ****
  	      }
  	  }
  	else if (TREE_CODE (member) == SCOPE_REF
! 		 && TREE_CODE (TREE_OPERAND (member, 1)) == TEMPLATE_ID_EXPR)
  	  {
  	    /* Lookup the template functions now that we know what the
  	       scope is.  */
--- 21862,21869 ----
  	      }
  	  }
  	else if (TREE_CODE (member) == SCOPE_REF
! 		 && TREE_CODE (TREE_OPERAND (member, 1)) == TEMPLATE_ID_EXPR
! 		 && identifier_p (TREE_OPERAND (TREE_OPERAND (member, 1), 0)))
  	  {
  	    /* Lookup the template functions now that we know what the
  	       scope is.  */
diff -Nrcpad gcc-15-20260424/gcc/ipa-cp.cc gcc-15-20260501/gcc/ipa-cp.cc
*** gcc-15-20260424/gcc/ipa-cp.cc	Fri Apr 24 22:32:07 2026
--- gcc-15-20260501/gcc/ipa-cp.cc	Fri May  1 22:32:07 2026
*************** initialize_node_lattices (struct cgraph_
*** 1477,1483 ****
     propagated to a parameter of type PARAM_TYPE, or return a fold-converted
     VALUE to PARAM_TYPE if that is possible.  Return NULL_TREE otherwise.  */
  
! static tree
  ipacp_value_safe_for_type (tree param_type, tree value)
  {
    if (!value)
--- 1477,1483 ----
     propagated to a parameter of type PARAM_TYPE, or return a fold-converted
     VALUE to PARAM_TYPE if that is possible.  Return NULL_TREE otherwise.  */
  
! tree
  ipacp_value_safe_for_type (tree param_type, tree value)
  {
    if (!value)
diff -Nrcpad gcc-15-20260424/gcc/ipa-cp.h gcc-15-20260501/gcc/ipa-cp.h
*** gcc-15-20260424/gcc/ipa-cp.h	Fri Apr 24 22:32:07 2026
--- gcc-15-20260501/gcc/ipa-cp.h	Fri May  1 22:32:07 2026
*************** bool ipa_vr_operation_and_type_effects (
*** 309,314 ****
--- 309,315 ----
  					const ipa_vr &src_vr,
  					enum tree_code operation,
  					tree dst_type, tree src_type);
+ tree ipacp_value_safe_for_type (tree param_type, tree value);
  
  
  
diff -Nrcpad gcc-15-20260424/gcc/ipa-prop.cc gcc-15-20260501/gcc/ipa-prop.cc
*** gcc-15-20260424/gcc/ipa-prop.cc	Fri Apr 24 22:32:07 2026
--- gcc-15-20260501/gcc/ipa-prop.cc	Fri May  1 22:32:07 2026
*************** ipa_set_jf_unknown (struct ipa_jump_func
*** 645,652 ****
    jfunc->type = IPA_JF_UNKNOWN;
  }
  
! /* Set JFUNC to be a copy of another jmp (to be used by jump function
!    combination code).  The two functions will share their rdesc.  */
  
  static void
  ipa_set_jf_cst_copy (struct ipa_jump_func *dst,
--- 645,652 ----
    jfunc->type = IPA_JF_UNKNOWN;
  }
  
! /* Set DST to be a copy of another SRC.  The two functions will share their
!    rdesc.  */
  
  static void
  ipa_set_jf_cst_copy (struct ipa_jump_func *dst,
*************** ipa_set_jf_cst_copy (struct ipa_jump_fun
*** 658,663 ****
--- 658,693 ----
    dst->value.constant = src->value.constant;
  }
  
+ /* Set DST to be a copy of another jump function SRC but possibly adjust it to
+    a new passed type PARM_TYPE.  If the adjustment fails, the jump function can
+    end up being set to the unknown type.  If the conversion is not necessary or
+    it succeeds and if the destination rdesc has not been already used, the two
+    functions will share their rdesc.  */
+ 
+ static void
+ ipa_convert_prop_cst_jf (struct ipa_jump_func *dst,
+ 			 struct ipa_jump_func *src,
+ 			 tree parm_type)
+ 
+ {
+   gcc_checking_assert (src->type == IPA_JF_CONST);
+   tree new_val = ipacp_value_safe_for_type (parm_type,
+ 					    ipa_get_jf_constant (src));
+   if (new_val)
+     {
+       bool rd = ipa_get_jf_pass_through_refdesc_decremented (dst);
+ 
+       dst->type = IPA_JF_CONST;
+       dst->value.constant.value = new_val;
+       if (!rd)
+ 	dst->value.constant.rdesc = src->value.constant.rdesc;
+       else
+ 	ipa_zap_jf_refdesc (dst);
+     }
+   else
+     ipa_set_jf_unknown (dst);
+ }
+ 
  /* Set JFUNC to be a constant jmp function.  */
  
  static void
*************** update_jump_functions_after_inlining (st
*** 3529,3541 ****
  		  ipa_set_jf_unknown (dst);
  		  break;
  		case IPA_JF_CONST:
! 		  {
! 		    bool rd = ipa_get_jf_pass_through_refdesc_decremented (dst);
! 		    ipa_set_jf_cst_copy (dst, src);
! 		    if (rd)
! 		      ipa_zap_jf_refdesc (dst);
! 		  }
! 
  		  break;
  
  		case IPA_JF_PASS_THROUGH:
--- 3559,3567 ----
  		  ipa_set_jf_unknown (dst);
  		  break;
  		case IPA_JF_CONST:
! 		  ipa_convert_prop_cst_jf (dst, src,
! 					   ipa_get_type (old_inline_root_info,
! 							 dst_fid));
  		  break;
  
  		case IPA_JF_PASS_THROUGH:
diff -Nrcpad gcc-15-20260424/gcc/regcprop.cc gcc-15-20260501/gcc/regcprop.cc
*** gcc-15-20260424/gcc/regcprop.cc	Fri Apr 24 22:32:08 2026
--- gcc-15-20260501/gcc/regcprop.cc	Fri May  1 22:32:07 2026
*************** struct queued_debug_insn_change
*** 59,71 ****
     value.  The OLDEST_REGNO field points to the head of the list, and
     the NEXT_REGNO field runs through the list.  The MODE field indicates
     what mode the data is known to be in; this field is VOIDmode when the
!    register is not known to contain valid data.  */
  
  struct value_data_entry
  {
    machine_mode mode;
    unsigned int oldest_regno;
    unsigned int next_regno;
    struct queued_debug_insn_change *debug_insn_changes;
  };
  
--- 59,74 ----
     value.  The OLDEST_REGNO field points to the head of the list, and
     the NEXT_REGNO field runs through the list.  The MODE field indicates
     what mode the data is known to be in; this field is VOIDmode when the
!    register is not known to contain valid data.  The FRAME_RELATED field
!    indicates if the instruction that updated this register is frame
!    related or not.  */
  
  struct value_data_entry
  {
    machine_mode mode;
    unsigned int oldest_regno;
    unsigned int next_regno;
+   bool frame_related;
    struct queued_debug_insn_change *debug_insn_changes;
  };
  
*************** static void set_value_regno (unsigned, m
*** 88,99 ****
  static void init_value_data (struct value_data *);
  static void kill_clobbered_value (rtx, const_rtx, void *);
  static void kill_set_value (rtx, const_rtx, void *);
! static void copy_value (rtx, rtx, struct value_data *);
  static bool mode_change_ok (machine_mode, machine_mode,
  			    unsigned int);
  static rtx maybe_mode_change (machine_mode, machine_mode,
  			      machine_mode, unsigned int, unsigned int);
! static rtx find_oldest_value_reg (enum reg_class, rtx, struct value_data *);
  static bool replace_oldest_value_reg (rtx *, enum reg_class, rtx_insn *,
  				      struct value_data *);
  static bool replace_oldest_value_addr (rtx *, enum reg_class,
--- 91,103 ----
  static void init_value_data (struct value_data *);
  static void kill_clobbered_value (rtx, const_rtx, void *);
  static void kill_set_value (rtx, const_rtx, void *);
! static void copy_value (rtx, rtx, struct value_data *, bool frame_related);
  static bool mode_change_ok (machine_mode, machine_mode,
  			    unsigned int);
  static rtx maybe_mode_change (machine_mode, machine_mode,
  			      machine_mode, unsigned int, unsigned int);
! static bool incompatible_frame_status (bool, bool);
! static rtx find_oldest_value_reg (enum reg_class, rtx, struct value_data *, bool frame_related);
  static bool replace_oldest_value_reg (rtx *, enum reg_class, rtx_insn *,
  				      struct value_data *);
  static bool replace_oldest_value_addr (rtx *, enum reg_class,
*************** kill_value_one_regno (unsigned int regno
*** 147,152 ****
--- 151,157 ----
    vd->e[regno].mode = VOIDmode;
    vd->e[regno].oldest_regno = regno;
    vd->e[regno].next_regno = INVALID_REGNUM;
+   vd->e[regno].frame_related = false;
    if (vd->e[regno].debug_insn_changes)
      free_debug_insn_changes (vd, regno);
  
*************** init_value_data (struct value_data *vd)
*** 227,232 ****
--- 232,238 ----
        vd->e[i].oldest_regno = i;
        vd->e[i].next_regno = INVALID_REGNUM;
        vd->e[i].debug_insn_changes = NULL;
+       vd->e[i].frame_related = false;
      }
    vd->max_value_regs = 0;
    vd->n_debug_insn_changes = 0;
*************** struct kill_set_value_data
*** 248,253 ****
--- 254,260 ----
  {
    struct value_data *vd;
    rtx ignore_set_reg;
+   bool insn_is_frame_related;
  };
  
  /* Called through note_stores.  If X is set, not clobbered, kill its
*************** kill_set_value (rtx x, const_rtx set, vo
*** 264,270 ****
      {
        kill_value (x, ksvd->vd);
        if (REG_P (x))
! 	set_value_regno (REGNO (x), GET_MODE (x), ksvd->vd);
      }
  }
  
--- 271,280 ----
      {
        kill_value (x, ksvd->vd);
        if (REG_P (x))
! 	{
! 	  set_value_regno (REGNO (x), GET_MODE (x), ksvd->vd);
! 	  ksvd->vd->e[REGNO(x)].frame_related = ksvd->insn_is_frame_related;
! 	}
      }
  }
  
*************** kill_autoinc_value (rtx_insn *insn, stru
*** 283,288 ****
--- 293,299 ----
  	  x = XEXP (x, 0);
  	  kill_value (x, vd);
  	  set_value_regno (REGNO (x), GET_MODE (x), vd);
+ 	  vd->e[REGNO(x)].frame_related = RTX_FRAME_RELATED_P (insn);
  	  iter.skip_subrtxes ();
  	}
      }
*************** kill_autoinc_value (rtx_insn *insn, stru
*** 292,298 ****
     to reflect that SRC contains an older copy of the shared value.  */
  
  static void
! copy_value (rtx dest, rtx src, struct value_data *vd)
  {
    unsigned int dr = REGNO (dest);
    unsigned int sr = REGNO (src);
--- 303,309 ----
     to reflect that SRC contains an older copy of the shared value.  */
  
  static void
! copy_value (rtx dest, rtx src, struct value_data *vd, bool frame_related)
  {
    unsigned int dr = REGNO (dest);
    unsigned int sr = REGNO (src);
*************** copy_value (rtx dest, rtx src, struct va
*** 387,392 ****
--- 398,405 ----
      continue;
    vd->e[i].next_regno = dr;
  
+   vd->e[dr].frame_related = frame_related;
+ 
    if (flag_checking)
      validate_value_data (vd);
  }
*************** maybe_mode_change (machine_mode orig_mod
*** 451,462 ****
    return NULL_RTX;
  }
  
  /* Find the oldest copy of the value contained in REGNO that is in
     register class CL and has mode MODE.  If found, return an rtx
     of that oldest register, otherwise return NULL.  */
  
  static rtx
! find_oldest_value_reg (enum reg_class cl, rtx reg, struct value_data *vd)
  {
    unsigned int regno = REGNO (reg);
    machine_mode mode = GET_MODE (reg);
--- 464,491 ----
    return NULL_RTX;
  }
  
+ /* Copy propagation must not replace a value in a frame-related
+    instruction with one produced by a non–frame-related instruction.
+    Doing so may cause the DCE pass to delete the original frame-related
+    instruction, which would in turn produce incorrect DWARF information
+    (see PR122274).  TO_FRAME_RELATED indicates whether the destination
+    instruction receiving the propagated value is frame-related.
+    FROM_FRAME_RELATED indicates whether the instruction providing that
+    value is frame-related.
+    Return true if copy propagation is not permitted.  */
+ 
+ static bool
+ incompatible_frame_status (bool to_frame_related, bool from_frame_related)
+ {
+   return to_frame_related && !from_frame_related;
+ }
+ 
  /* Find the oldest copy of the value contained in REGNO that is in
     register class CL and has mode MODE.  If found, return an rtx
     of that oldest register, otherwise return NULL.  */
  
  static rtx
! find_oldest_value_reg (enum reg_class cl, rtx reg, struct value_data *vd, bool frame_related)
  {
    unsigned int regno = REGNO (reg);
    machine_mode mode = GET_MODE (reg);
*************** find_oldest_value_reg (enum reg_class cl
*** 484,489 ****
--- 513,521 ----
        if (!in_hard_reg_set_p (reg_class_contents[cl], mode, i))
  	continue;
  
+       if (incompatible_frame_status (frame_related, vd->e[i].frame_related))
+ 	continue;
+ 
        new_rtx = maybe_mode_change (oldmode, vd->e[regno].mode, mode, i, regno);
        if (new_rtx)
  	{
*************** static bool
*** 509,515 ****
  replace_oldest_value_reg (rtx *loc, enum reg_class cl, rtx_insn *insn,
  			  struct value_data *vd)
  {
!   rtx new_rtx = find_oldest_value_reg (cl, *loc, vd);
    if (new_rtx && (!DEBUG_INSN_P (insn) || !skip_debug_insn_p))
      {
        if (DEBUG_INSN_P (insn))
--- 541,547 ----
  replace_oldest_value_reg (rtx *loc, enum reg_class cl, rtx_insn *insn,
  			  struct value_data *vd)
  {
!   rtx new_rtx = find_oldest_value_reg (cl, *loc, vd, RTX_FRAME_RELATED_P (insn));
    if (new_rtx && (!DEBUG_INSN_P (insn) || !skip_debug_insn_p))
      {
        if (DEBUG_INSN_P (insn))
*************** copyprop_hardreg_forward_1 (basic_block
*** 803,811 ****
  	{
  	  unsigned int regno = REGNO (SET_SRC (set));
  	  rtx r1 = find_oldest_value_reg (REGNO_REG_CLASS (regno),
! 					  SET_DEST (set), vd);
  	  rtx r2 = find_oldest_value_reg (REGNO_REG_CLASS (regno),
! 					  SET_SRC (set), vd);
  	  if (rtx_equal_p (r1 ? r1 : SET_DEST (set), r2 ? r2 : SET_SRC (set)))
  	    {
  	      bool last = insn == BB_END (bb);
--- 835,843 ----
  	{
  	  unsigned int regno = REGNO (SET_SRC (set));
  	  rtx r1 = find_oldest_value_reg (REGNO_REG_CLASS (regno),
! 					  SET_DEST (set), vd, false);
  	  rtx r2 = find_oldest_value_reg (REGNO_REG_CLASS (regno),
! 					  SET_SRC (set), vd, false);
  	  if (rtx_equal_p (r1 ? r1 : SET_DEST (set), r2 ? r2 : SET_SRC (set)))
  	    {
  	      bool last = insn == BB_END (bb);
*************** copyprop_hardreg_forward_1 (basic_block
*** 929,935 ****
  	  if (REG_P (dest))
  	    {
  	      new_rtx = find_oldest_value_reg (REGNO_REG_CLASS (regno),
! 					       src, vd);
  
  	      if (new_rtx && validate_change (insn, &SET_SRC (set), new_rtx, 0))
  		{
--- 961,967 ----
  	  if (REG_P (dest))
  	    {
  	      new_rtx = find_oldest_value_reg (REGNO_REG_CLASS (regno),
! 					       src, vd, RTX_FRAME_RELATED_P (insn));
  
  	      if (new_rtx && validate_change (insn, &SET_SRC (set), new_rtx, 0))
  		{
*************** copyprop_hardreg_forward_1 (basic_block
*** 950,955 ****
--- 982,989 ----
  	  for (i = vd->e[regno].oldest_regno; i != regno;
  	       i = vd->e[i].next_regno)
  	    {
+ 	      if (incompatible_frame_status (RTX_FRAME_RELATED_P (insn), vd->e[i].frame_related))
+ 		continue;
  	      new_rtx = maybe_mode_change (vd->e[i].mode, vd->e[regno].mode,
  				       mode, i, regno);
  	      if (new_rtx != NULL_RTX)
*************** copyprop_hardreg_forward_1 (basic_block
*** 1078,1083 ****
--- 1112,1118 ----
  
        ksvd.vd = vd;
        ksvd.ignore_set_reg = NULL_RTX;
+       ksvd.insn_is_frame_related = false;
  
        /* Clobber call-clobbered registers.  */
        if (CALL_P (insn))
*************** copyprop_hardreg_forward_1 (basic_block
*** 1095,1101 ****
  		  rtx dest = SET_DEST (x);
  		  kill_value (dest, vd);
  		  set_value_regno (REGNO (dest), GET_MODE (dest), vd);
! 		  copy_value (dest, SET_SRC (x), vd);
  		  ksvd.ignore_set_reg = dest;
  		  set_regno = REGNO (dest);
  		  set_nregs = REG_NREGS (dest);
--- 1130,1136 ----
  		  rtx dest = SET_DEST (x);
  		  kill_value (dest, vd);
  		  set_value_regno (REGNO (dest), GET_MODE (dest), vd);
! 		  copy_value (dest, SET_SRC (x), vd, false);
  		  ksvd.ignore_set_reg = dest;
  		  set_regno = REGNO (dest);
  		  set_nregs = REG_NREGS (dest);
*************** copyprop_hardreg_forward_1 (basic_block
*** 1143,1148 ****
--- 1178,1185 ----
  
        if (!noop_p)
  	{
+ 	  ksvd.insn_is_frame_related = RTX_FRAME_RELATED_P (insn);
+ 
  	  /* Notice stores.  */
  	  note_stores (insn, kill_set_value, &ksvd);
  
*************** copyprop_hardreg_forward_1 (basic_block
*** 1150,1156 ****
  	  if (copy_p)
  	    {
  	      df_insn_rescan (insn);
! 	      copy_value (SET_DEST (set), SET_SRC (set), vd);
  	    }
  	}
  
--- 1187,1193 ----
  	  if (copy_p)
  	    {
  	      df_insn_rescan (insn);
! 	      copy_value (SET_DEST (set), SET_SRC (set), vd, RTX_FRAME_RELATED_P (insn));
  	    }
  	}
  
diff -Nrcpad gcc-15-20260424/gcc/testsuite/ChangeLog gcc-15-20260501/gcc/testsuite/ChangeLog
*** gcc-15-20260424/gcc/testsuite/ChangeLog	Fri Apr 24 22:32:08 2026
--- gcc-15-20260501/gcc/testsuite/ChangeLog	Fri May  1 22:32:07 2026
***************
*** 1,3 ****
--- 1,50 ----
+ 2026-04-30  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/task6.ads, gnat.dg/task6.adb: New test.
+ 
+ 2026-04-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-04-15  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/122976
+ 	* gcc.dg/tree-ssa/pr122976.c: New test.
+ 
+ 2026-04-29  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-04-14  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/124777
+ 	* gcc.dg/ipa/pr124777.c: New test.
+ 
+ 2026-04-29  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2026-04-22  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/124933
+ 	* lib/target-supports.exp (v8_1m_main_fp_hard): New arm
+ 	architecture variant.
+ 	* gcc.target/arm/pr124933.c: New test.
+ 	* gcc.target/arm/armv8_2-fp16-move-1.c: Update expected output.
+ 
+ 2026-04-27  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2026-01-12  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR testsuite/123129
+ 	* gcc.dg/rtl/powerpc/test-frame-related.c: Add -mpowerpc64.
+ 
+ 2026-04-27  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	Backported from master:
+ 	2025-12-14  Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	PR rtl-optimization/122274
+ 	* gcc.dg/rtl/powerpc/test-frame-related.c: New test.
+ 
  2026-04-22  Richard Biener  <rguenther@suse.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260424/gcc/testsuite/g++.dg/cpp1y/var-templ88.C gcc-15-20260501/gcc/testsuite/g++.dg/cpp1y/var-templ88.C
*** gcc-15-20260424/gcc/testsuite/g++.dg/cpp1y/var-templ88.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260501/gcc/testsuite/g++.dg/cpp1y/var-templ88.C	Fri May  1 22:32:08 2026
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/123143
+ // { dg-do compile { target c++14 } }
+ 
+ constexpr int x = 42;
+ struct S { static constexpr int x = 20; template <int N> static constexpr int a = N; };
+ 
+ template<typename>
+ void
+ f ()
+ {
+   constexpr S s;
+   static_assert (s.template a<42> == 42, "");
+   static_assert (s.S::template a<42> == 42, "");
+ }
+ 
+ void
+ g ()
+ {
+   f<int>();
+ }
diff -Nrcpad gcc-15-20260424/gcc/testsuite/gcc.dg/ipa/pr124777.c gcc-15-20260501/gcc/testsuite/gcc.dg/ipa/pr124777.c
*** gcc-15-20260424/gcc/testsuite/gcc.dg/ipa/pr124777.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260501/gcc/testsuite/gcc.dg/ipa/pr124777.c	Fri May  1 22:32:13 2026
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fno-early-inlining" } */
+ 
+ int a;
+ char b;
+ void c() {
+     __builtin_exit(0);
+ }
+ 
+ typedef short (*t_d)(unsigned);
+ 
+ static short __attribute__((noclone))
+ d(unsigned f)
+ {
+   if (f == (unsigned)(unsigned short)-1)
+     c ();
+   for (; a; a++)
+     ;
+   return 0;
+ }
+ 
+ typedef short (*t_g)(unsigned, unsigned, unsigned short, t_d);
+ 
+ static short  __attribute__((noclone))
+ g(unsigned f, unsigned h, unsigned short i, t_d p_d) {
+   if (f || h)
+     p_d(i);
+   return 0;
+ }
+ 
+ static unsigned  __attribute__((noclone))
+ j(unsigned f, signed char h, t_d p_d, t_g p_g) {
+   p_g(b, 1, h, p_d);
+   return 0;
+ }
+ 
+ int main() {
+   signed char e = -1;
+   j(0, e, d, g);
+   return 0;
+ }
diff -Nrcpad gcc-15-20260424/gcc/testsuite/gcc.dg/rtl/powerpc/test-frame-related.c gcc-15-20260501/gcc/testsuite/gcc.dg/rtl/powerpc/test-frame-related.c
*** gcc-15-20260424/gcc/testsuite/gcc.dg/rtl/powerpc/test-frame-related.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260501/gcc/testsuite/gcc.dg/rtl/powerpc/test-frame-related.c	Fri May  1 22:32:13 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile { target { powerpc64*-*-linux* } } } */
+ /* { dg-options "-O2 -mregnames -mpowerpc64" } */
+ 
+ int __RTL (startwith ("cprop_hardreg")) test_frame_related ()
+ {
+ (function "frame_related"
+   (insn-chain
+     (block 2
+       (edge-from entry (flags "FALLTHRU"))
+       (cnote 3 [bb 2] NOTE_INSN_BASIC_BLOCK)
+       (cinsn 8 (set (reg:DI %r5)
+                     (reg:DI lr)))
+       (cinsn/f 9 (set (reg:DI %r0)
+                     (reg:DI lr)))
+       (cinsn/f 10 (set (mem/c:DI (plus:DI (reg/f:DI %r1)
+                             (const_int 16 ))[18  S8 A8])
+                     (reg:DI %r0)))
+ 
+       ;; Extra insn to avoid the above being deleted by DCE.
+       (cinsn 18 (use (reg:DI %r5)))
+       (edge-to exit (flags "FALLTHRU"))
+     ) ;; block 2
+   ) ;; insn-chain
+ ) ;; function "main"
+ }
+ 
+ /* { dg-final { scan-assembler {\mmflr %r0\M}  } } */
+ /* { dg-final { scan-assembler {\mmflr %r5\M}  } } */
+ /* { dg-final { scan-assembler {\mstd %r0,16\(%r1\)}  } } */
diff -Nrcpad gcc-15-20260424/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c gcc-15-20260501/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c
*** gcc-15-20260424/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260501/gcc/testsuite/gcc.dg/tree-ssa/pr122976.c	Fri May  1 22:32:13 2026
***************
*** 0 ****
--- 1,105 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ typedef unsigned long NI;
+ 
+ struct inner_t_Content
+ {
+   int x[8], y[16];
+   char a[10], b[20], c[30];
+ };
+ 
+ struct inner_t {
+   NI len;
+   struct inner_t_Content* p;
+ };
+ 
+ struct outer_t {
+   struct inner_t bytes;
+   NI position;
+ };
+ 
+ struct localo_t {
+   struct outer_t fo;
+   char stuff[222];
+ };
+ 
+ struct alien_t {
+   NI Field0;
+   struct inner_t Field1;
+ };
+ 
+ static struct inner_t_Content gic;
+ struct inner_t gis;
+ struct outer_t gos;
+ volatile int vgi;
+ 
+ int __attribute__((noipa))
+ get_int (void)
+ {
+   return 0;
+ }
+ 
+ struct inner_t __attribute__((noipa))
+ get_inner_t ()
+ {
+   struct inner_t v = {0, (void *)0};
+   return v;
+ }
+ 
+ void __attribute__((noipa))
+ use_inner_t (struct inner_t v)
+ {
+   gis = v;
+ }
+ 
+ void __attribute__((noipa))
+ init (void)
+ {
+   gos.bytes.len = 15;
+   gos.bytes.p = &gic;
+ }
+ 
+ void __attribute__((noipa))
+ check (void)
+ {
+   if (gis.p != &gic)
+     __builtin_abort ();
+ }
+ 
+ static void foo (int m, struct outer_t *a)
+ {
+   struct inner_t lis;
+ 
+   if (m == 20)
+       ((struct alien_t *) a)->Field1.len = 0;
+   if (m == 21)
+     lis = get_inner_t ();
+   else
+     lis = a->bytes;
+ 
+   vgi = get_int ();
+   if (m < 1)
+     use_inner_t (lis);
+   if (get_int ())
+     vgi = ((struct alien_t *) a)->Field1.len;
+ 
+ }
+ 
+ void bar (struct outer_t pos)
+ {
+   struct localo_t los;
+   los.fo = pos;
+   los.fo.bytes.len = get_int ();
+   foo (get_int (), &los.fo);
+   gos = los.fo;
+ }
+ 
+ int main (int argc, char **argv)
+ {
+   init ();
+   for (int i = 0; i <= get_int (); i++)
+     bar (gos);
+   check ();
+   return 0;
+ }
diff -Nrcpad gcc-15-20260424/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c gcc-15-20260501/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
*** gcc-15-20260424/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c	Fri Apr 24 22:32:14 2026
--- gcc-15-20260501/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c	Fri May  1 22:32:14 2026
***************
*** 8,14 ****
  /*
  **test_load_1:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 8,14 ----
  /*
  **test_load_1:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
*************** test_load_1 (__fp16* a)
*** 20,26 ****
  /*
  **test_load_2:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 20,26 ----
  /*
  **test_load_2:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
*************** test_load_2 (__fp16* a, int i)
*** 32,38 ****
  /*
  **test_store_1:
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  void
--- 32,38 ----
  /*
  **test_store_1:
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  void
*************** test_store_1 (__fp16* a, __fp16 b)
*** 44,50 ****
  /*
  **test_store_2:
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  void
--- 44,50 ----
  /*
  **test_store_2:
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  void
*************** test_store_2 (__fp16* a, int i, __fp16 b
*** 56,64 ****
  /*
  **test_load_store_1:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 56,64 ----
  /*
  **test_load_store_1:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\]
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
*************** test_load_store_1 (__fp16* a, int i, __f
*** 70,78 ****
  /*
  **test_load_store_2:
  **	...
! **	vld1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
! **	vst1.16	{d[0-9]+\[[0-9]+\]}, \[r[0-9]+\]
  **	...
  */
  __fp16
--- 70,78 ----
  /*
  **test_load_store_2:
  **	...
! **	vldr.16	s[0-9]+, \[r[0-9]+\, #4]
  **	...
! **	vstr.16	s[0-9]+, \[r[0-9]+\]
  **	...
  */
  __fp16
diff -Nrcpad gcc-15-20260424/gcc/testsuite/gcc.target/arm/pr124933.c gcc-15-20260501/gcc/testsuite/gcc.target/arm/pr124933.c
*** gcc-15-20260424/gcc/testsuite/gcc.target/arm/pr124933.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260501/gcc/testsuite/gcc.target/arm/pr124933.c	Fri May  1 22:32:14 2026
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-require-effective-target arm_arch_v8_1m_main_fp_hard_ok } */
+ /* { dg-add-options arm_arch_v8_1m_main_fp_hard } */
+ /* { dg-additional-options "-O2 -mfp16-format=ieee" } */
+ /* { dg-do assemble } */
+ 
+ __fp16 f;
+ __fp16 g;
+ 
+ void __attribute__((noinline,noclone)) h (__fp16 x)
+ {
+   g = x;
+ }
+ 
+ void __attribute__((noinline,noclone)) i ()
+ {
+   h (f);
+ }
diff -Nrcpad gcc-15-20260424/gcc/testsuite/gnat.dg/task6.adb gcc-15-20260501/gcc/testsuite/gnat.dg/task6.adb
*** gcc-15-20260424/gcc/testsuite/gnat.dg/task6.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20260501/gcc/testsuite/gnat.dg/task6.adb	Fri May  1 22:32:17 2026
***************
*** 0 ****
--- 1,15 ----
+ -- { dg-do compile }
+ 
+ package body Task6 is
+ 
+    task body T is
+    begin
+      accept E;
+    end T;
+ 
+    function Make return T is
+    begin
+      return Ret : T;
+    end;
+ 
+ end Task6;
diff -Nrcpad gcc-15-20260424/gcc/testsuite/gnat.dg/task6.ads gcc-15-20260501/gcc/testsuite/gnat.dg/task6.ads
*** gcc-15-20260424/gcc/testsuite/gnat.dg/task6.ads	Thu Jan  1 00:00:00 1970
--- gcc-15-20260501/gcc/testsuite/gnat.dg/task6.ads	Fri May  1 22:32:17 2026
***************
*** 0 ****
--- 1,13 ----
+ package Task6 is
+ 
+   type Int is task interface;
+ 
+   procedure E (T: Int) is abstract;
+ 
+   task type T is new Int with
+     entry E;
+   end T;
+ 
+   function Make return T;
+ 
+ end Task6;
diff -Nrcpad gcc-15-20260424/gcc/testsuite/lib/target-supports.exp gcc-15-20260501/gcc/testsuite/lib/target-supports.exp
*** gcc-15-20260424/gcc/testsuite/lib/target-supports.exp	Fri Apr 24 22:32:16 2026
--- gcc-15-20260501/gcc/testsuite/lib/target-supports.exp	Fri May  1 22:32:17 2026
*************** foreach { armfunc armflag armdefs } {
*** 6080,6085 ****
--- 6080,6086 ----
  	v8_1m_main "-march=armv8.1-m.main+fp -mthumb" __ARM_ARCH_8M_MAIN__
  	v8_1m_main_pacbti "-march=armv8.1-m.main+pacbti+fp -mthumb"
  		"__ARM_ARCH_8M_MAIN__ && __ARM_FEATURE_BTI && __ARM_FEATURE_PAUTH"
+ 	v8_1m_main_fp_hard "-march=armv8.1-m.main+pacbti+fp -mthumb -mfpu=auto -mfloat-abi=hard" "__ARM_ARCH_8M_MAIN__ && (__ARM_FP & 2)"
  	v9a "-march=armv9-a+simd" __ARM_ARCH_9A__ } {
      eval [string map [list FUNC $armfunc FLAG $armflag DEFS $armdefs ] {
  	proc check_effective_target_arm_arch_FUNC_ok { } {
diff -Nrcpad gcc-15-20260424/gcc/tree-sra.cc gcc-15-20260501/gcc/tree-sra.cc
*** gcc-15-20260424/gcc/tree-sra.cc	Fri Apr 24 22:32:17 2026
--- gcc-15-20260501/gcc/tree-sra.cc	Fri May  1 22:32:17 2026
*************** path_comparable_for_same_access (tree ex
*** 2320,2325 ****
--- 2320,2330 ----
      {
        if (!zerop (TREE_OPERAND (expr, 1)))
  	return false;
+       gcc_assert (TREE_CODE (TREE_OPERAND (expr, 0)) == ADDR_EXPR
+ 		  && DECL_P (TREE_OPERAND (TREE_OPERAND (expr, 0), 0)));
+       if (TYPE_MAIN_VARIANT (TREE_TYPE (expr))
+ 	  != TYPE_MAIN_VARIANT (TREE_TYPE (TREE_OPERAND (TREE_OPERAND (expr, 0), 0))))
+ 	return false;
      }
    else
      gcc_assert (DECL_P (expr));
diff -Nrcpad gcc-15-20260424/libsanitizer/ChangeLog gcc-15-20260501/libsanitizer/ChangeLog
*** gcc-15-20260424/libsanitizer/ChangeLog	Fri Apr 24 22:32:18 2026
--- gcc-15-20260501/libsanitizer/ChangeLog	Fri May  1 22:32:18 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-04-30  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-29  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* sanitizer_common/sanitizer_platform_limits_posix.cpp: Cherry picked
+ 	from LLVM commit 3dc4fd6dd41100f051a63642f449b16324389c96.
+ 
  2025-08-08  Release Manager
  
  	* GCC 15.2.0 released.
diff -Nrcpad gcc-15-20260424/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp gcc-15-20260501/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
*** gcc-15-20260424/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp	Fri Apr 24 22:32:18 2026
--- gcc-15-20260501/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp	Fri May  1 22:32:18 2026
*************** typedef struct user_fpregs elf_fpregset_
*** 147,162 ****
  #if defined(__mips64)
  # include <sys/procfs.h>
  #endif
! #include <sys/user.h>
! #include <linux/if_eql.h>
! #include <linux/if_plip.h>
! #include <linux/lp.h>
! #include <linux/mroute.h>
! #include <linux/mroute6.h>
! #include <linux/scc.h>
! #include <linux/serial.h>
! #include <sys/msg.h>
! #include <sys/ipc.h>
  #endif  // SANITIZER_ANDROID
  
  #include <link.h>
--- 147,161 ----
  #if defined(__mips64)
  # include <sys/procfs.h>
  #endif
! #      include <linux/if_eql.h>
! #      include <linux/if_plip.h>
! #      include <linux/lp.h>
! #      include <linux/mroute.h>
! #      include <linux/mroute6.h>
! #      include <linux/serial.h>
! #      include <sys/ipc.h>
! #      include <sys/msg.h>
! #      include <sys/user.h>
  #endif  // SANITIZER_ANDROID
  
  #include <link.h>
*************** unsigned struct_ElfW_Phdr_sz = sizeof(El
*** 523,530 ****
    unsigned struct_kbsentry_sz = sizeof(struct kbsentry);
    unsigned struct_mtconfiginfo_sz = sizeof(struct mtconfiginfo);
    unsigned struct_nr_parms_struct_sz = sizeof(struct nr_parms_struct);
-   unsigned struct_scc_modem_sz = sizeof(struct scc_modem);
-   unsigned struct_scc_stat_sz = sizeof(struct scc_stat);
    unsigned struct_serial_multiport_struct_sz
        = sizeof(struct serial_multiport_struct);
    unsigned struct_serial_struct_sz = sizeof(struct serial_struct);
--- 522,527 ----
