diff -Nrcpad gcc-15-20260411/LAST_UPDATED gcc-15-20260418/LAST_UPDATED
*** gcc-15-20260411/LAST_UPDATED	Sat Apr 11 22:32:21 2026
--- gcc-15-20260418/LAST_UPDATED	Sat Apr 18 22:32:19 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision fd8897236ff204a16e04b65e234bba1e62b8856a
--- 1 ----
! Obtained from git: releases/gcc-15 revision 0e01be9d5b300f4bf74e02667ff3e335a6e4e248
diff -Nrcpad gcc-15-20260411/MD5SUMS gcc-15-20260418/MD5SUMS
*** gcc-15-20260411/MD5SUMS	Sat Apr 11 22:32:26 2026
--- gcc-15-20260418/MD5SUMS	Sat Apr 18 22:32:24 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260411.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-20260418.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
! 690a3e976fa9d2f8f8e0f7775e5ff43e  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! c4430a18b83e52fe58d96dca613b50ea  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
*************** c37ea1a2f77642729239faeefeabadb1  c++too
*** 46,52 ****
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! a48242244fc185385c19765cc3045b86  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  e1b259699840442ff915265a77b3a578  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
--- 46,52 ----
  c64564b7c7563dae5ebe016f340c9cd9  config.guess
  040359150cf11493f973a46d8a25b06b  config.rpath
  111d54aa3a3019adbab413c8fb435f22  config.sub
! f7333a7217d09b9b6cc589c4c19fe516  config/ChangeLog
  e8365ab73da09dccff77a6e2ad006a68  config/acinclude.m4
  e1b259699840442ff915265a77b3a578  config/acx.m4
  6b030f5cf640bdd401ea739f54a667f8  config/asmcfi.m4
*************** b75e527c5a9b8dcbcfb1ac321fa244eb  config
*** 107,116 ****
  534dce34ae221e73e2d67d3ba07f00a3  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
! 3fe4a576c2a75736c8da3af1d0824217  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! fd9ed5b9d9dbb22a41f305c72c411ba1  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
--- 107,116 ----
  534dce34ae221e73e2d67d3ba07f00a3  config/lthostflags.m4
  ad4ae2c604a57f5e6f53c9edc33ea1f1  config/math.m4
  e10d31316e03a59577fb4ed90a670914  config/mh-alpha-linux
! a6459928053a02b8092ceda8f534097e  config/mh-cygwin
  12e3e525300d7b265337e9f2dfe0e2af  config/mh-darwin
  625bacc09b9992290d94831bd7506bd0  config/mh-djgpp
! 44d3da2368ed3af5582490d54cd7e31a  config/mh-mingw
  cd7034dccd04e50150b14c597dd545a5  config/mh-pa
  76d638a67d840715b2de89afee8ef49a  config/mh-ppc-aix
  bd6855445bd58ae7e066221ade8cc55d  config/mmap.m4
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 514,520 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 8e8179ee5736ae4784db99c9e56788cb  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
! 0cb58943d6a6faa2a95f2e786a2b9714  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
! a3d4af595c5f12607abf409e2b159c6d  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
! 9e7c971e2e2a8b766866e4dd7a95aeb3  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
! fce1819f1acf810c9d8d27cc759632b2  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
! c2391fcde1dcba0975a65ba25c61e8bd  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** a07518144c5203a421dbc45a7b16e04f  gcc/ad
*** 600,606 ****
  30e7387695692ce78b78ca8165fa9561  gcc/ada/adabkend.ads
  3d1fcc88d6e5624970030c0a00ed8653  gcc/ada/adadecode.c
  066612d3b34078e2a26c00cff399ed82  gcc/ada/adadecode.h
! a4539cc4a5028b71e8c3fffdb29ebace  gcc/ada/adaint.c
  f6a5ac54108a44c0cdc3ee5c49d836ae  gcc/ada/adaint.h
  760bb6cd65cc72294ad54f492d54d482  gcc/ada/affinity.c
  a22ae88618cb2fc05cb66a79ed80efb5  gcc/ada/ali-util.adb
--- 600,606 ----
  30e7387695692ce78b78ca8165fa9561  gcc/ada/adabkend.ads
  3d1fcc88d6e5624970030c0a00ed8653  gcc/ada/adadecode.c
  066612d3b34078e2a26c00cff399ed82  gcc/ada/adadecode.h
! 973b6415adc52c90015dd36d928a35cd  gcc/ada/adaint.c
  f6a5ac54108a44c0cdc3ee5c49d836ae  gcc/ada/adaint.h
  760bb6cd65cc72294ad54f492d54d482  gcc/ada/affinity.c
  a22ae88618cb2fc05cb66a79ed80efb5  gcc/ada/ali-util.adb
*************** f805d118929dd79f6bd4dc75c77c968b  gcc/co
*** 3659,3665 ****
  a16ca2ab73b09afe4481044ebcec2010  gcc/config/arm/arm-tune.md
  9d72d08f0b50dda1a967bfeb70695c7c  gcc/config/arm/arm.cc
  0ada24c6acb631d40bb857f80959936a  gcc/config/arm/arm.h
! 06fb2053195f85622dc08e275ec34350  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
! 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
*************** f564f4fdf8d82c60a526de3aeb908531  gcc/co
*** 3819,3825 ****
  9a5cadb0cb322fae6b6177fc361f00c1  gcc/config/bpf/bpf-protos.h
  404b12a13069ede5289ad6db734105f1  gcc/config/bpf/bpf.cc
  88a80edc8d111617067abb5a0b95d469  gcc/config/bpf/bpf.h
! 0e05ae54f1a8ca63ad1533179b4b4571  gcc/config/bpf/bpf.md
  d0866c4d53c2fdcec825b3485236d9a1  gcc/config/bpf/bpf.opt
  7b6aa42f841abd7c9839fec201bb5ddf  gcc/config/bpf/bpf.opt.urls
  5642edb6fb9afaa9ee550c880d44906e  gcc/config/bpf/btfext-out.cc
--- 3819,3825 ----
  9a5cadb0cb322fae6b6177fc361f00c1  gcc/config/bpf/bpf-protos.h
  404b12a13069ede5289ad6db734105f1  gcc/config/bpf/bpf.cc
  88a80edc8d111617067abb5a0b95d469  gcc/config/bpf/bpf.h
! 21b199571a3dea4f020394c4620a608c  gcc/config/bpf/bpf.md
  d0866c4d53c2fdcec825b3485236d9a1  gcc/config/bpf/bpf.opt
  7b6aa42f841abd7c9839fec201bb5ddf  gcc/config/bpf/bpf.opt.urls
  5642edb6fb9afaa9ee550c880d44906e  gcc/config/bpf/btfext-out.cc
*************** de4e89bc042c6bc7eb093bda5d33a266  gcc/co
*** 4267,4273 ****
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! 405b9ba818c9b2c814ac97e9dd2537d5  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
--- 4267,4273 ----
  380f2e50c7d803059b0e7617da00460f  gcc/config/i386/sm4intrin.h
  a24296639492577352dd1309b136bc9a  gcc/config/i386/smmintrin.h
  f98c4d94bf04187a2905e9f4ce7d589b  gcc/config/i386/sol2.h
! c8ea31976d63d485f96c63286b3c29a0  gcc/config/i386/sse.md
  7c6ff828c11c2892168a2e450559dcb6  gcc/config/i386/ssemath.h
  7ada9f54207701e1d29fd03ea990e163  gcc/config/i386/stringop.def
  9f75a2e9a9bf20db0bef264cabe77a29  gcc/config/i386/subst.md
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5501,5507 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 78f634098463a767ffd5f691802e6b3a  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5501,5507 ----
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 1577d9b842daba37f4a9c2e5cc15e4eb  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** ea043095301b104b0d04f08fa408bb14  gcc/cp
*** 5546,5552 ****
  a4fc328db28f375cb129e7d3b1a96683  gcc/cp/constraint.cc
  a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
! 564af52a675c5727faa9f84885de41dc  gcc/cp/coroutines.cc
  be1619275f92c0a0eb6eb83c1e3c7f6b  gcc/cp/coroutines.h
  df06c0e1088c92bdb99eab5152b9f656  gcc/cp/cp-gimplify.cc
  3bf6da2fd9bef7475fae5ee6d9cdcf15  gcc/cp/cp-lang.cc
--- 5546,5552 ----
  a4fc328db28f375cb129e7d3b1a96683  gcc/cp/constraint.cc
  a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
! c404daf5f464aa16b0269f20d53c3e78  gcc/cp/coroutines.cc
  be1619275f92c0a0eb6eb83c1e3c7f6b  gcc/cp/coroutines.h
  df06c0e1088c92bdb99eab5152b9f656  gcc/cp/cp-gimplify.cc
  3bf6da2fd9bef7475fae5ee6d9cdcf15  gcc/cp/cp-lang.cc
*************** c68bb7b3acb5317c4a9cb464e89c7b68  gcc/cp
*** 5561,5567 ****
  29df6edf4122d4be24abc0274514c9bc  gcc/cp/cxx-pretty-print.cc
  955ecfa636599a39229757737e271819  gcc/cp/cxx-pretty-print.h
  c1cc5dac36866c611933c037cc1d6f2f  gcc/cp/cxxapi-data.csv
! 2d8f5d01870114ec7dd890e28bf2ba51  gcc/cp/decl.cc
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
  4fac0de789f395329ba3720ed69283a8  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
--- 5561,5567 ----
  29df6edf4122d4be24abc0274514c9bc  gcc/cp/cxx-pretty-print.cc
  955ecfa636599a39229757737e271819  gcc/cp/cxx-pretty-print.h
  c1cc5dac36866c611933c037cc1d6f2f  gcc/cp/cxxapi-data.csv
! 4c19a29ee3065686da0bb82a1f147a8d  gcc/cp/decl.cc
  7f116fdc50b24dcb13cdcf096636aef9  gcc/cp/decl.h
  4fac0de789f395329ba3720ed69283a8  gcc/cp/decl2.cc
  691a10b3246d19925433648ba9a4ea9a  gcc/cp/dump.cc
*************** fcad66262e081d6623d845cd6343e41f  gcc/cp
*** 5576,5582 ****
  ac5d78393361c1bcb930119a896a14ca  gcc/cp/lang-specs.h
  81021bc440a536664fa5365b475b36c5  gcc/cp/lex.cc
  aaf76a9b03fd0532d2904aef004fd66a  gcc/cp/logic.cc
! c2a7409e57253e5d9bfd8ce29fb85212  gcc/cp/mangle.cc
  936bd061907a7a899c3285cf17b17674  gcc/cp/mapper-client.cc
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
--- 5576,5582 ----
  ac5d78393361c1bcb930119a896a14ca  gcc/cp/lang-specs.h
  81021bc440a536664fa5365b475b36c5  gcc/cp/lex.cc
  aaf76a9b03fd0532d2904aef004fd66a  gcc/cp/logic.cc
! 1ab457bbbdb3ec9f38e681ace20b3f82  gcc/cp/mangle.cc
  936bd061907a7a899c3285cf17b17674  gcc/cp/mapper-client.cc
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
*************** b21182651156de7779948fe8ca2c4160  gcc/dw
*** 6023,6029 ****
  186b01005d892edba3b03fc17bd0dc8f  gcc/dwarf2codeview.h
  baaae59ceda4df837a6f62ffb0f29ee7  gcc/dwarf2ctf.cc
  1d0191caafac1774f50a47175d915ea0  gcc/dwarf2ctf.h
! 0d07ebae9fb33066cd8b637d54958608  gcc/dwarf2out.cc
  a37a84426cea5b6f077117901c0cbc81  gcc/dwarf2out.h
  fdd976759ee89958c91a4010e53c0f02  gcc/early-remat.cc
  e0339faf7da1ffc9030bc3a53b41cc1c  gcc/edit-context.cc
--- 6023,6029 ----
  186b01005d892edba3b03fc17bd0dc8f  gcc/dwarf2codeview.h
  baaae59ceda4df837a6f62ffb0f29ee7  gcc/dwarf2ctf.cc
  1d0191caafac1774f50a47175d915ea0  gcc/dwarf2ctf.h
! 22a7571f4564c9136707e53f0b83daf8  gcc/dwarf2out.cc
  a37a84426cea5b6f077117901c0cbc81  gcc/dwarf2out.h
  fdd976759ee89958c91a4010e53c0f02  gcc/early-remat.cc
  e0339faf7da1ffc9030bc3a53b41cc1c  gcc/edit-context.cc
*************** a798cdca802a57ffa3473ab610b37c86  gcc/fo
*** 6061,6067 ****
  c93bd28b3de1f9c783e16fc6ec4aab32  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 792dce8984e516bb5329ea18745450d7  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6061,6067 ----
  c93bd28b3de1f9c783e16fc6ec4aab32  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! d11b92eff900687bf3c53e43d14943a3  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** f654eecadb8cabd4c371426eb83f08b1  gcc/fo
*** 6137,6147 ****
  3b3c13f513e2236a6456d1d3b112404c  gcc/fortran/module.cc
  50632a137a18f04dcc1b089dbb5f27e3  gcc/fortran/openmp.cc
  8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
! 1d0a3022c08ef6b885d0772e22a2bf7f  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
  db182b9f9bffc428002f5b5b6fb821b8  gcc/fortran/resolve.cc
! 8dc2391850ee95634781b6e296a096f6  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  47b3ac143dd07e65789786d79d86b9d9  gcc/fortran/simplify.cc
  3255bc920c3609e58d8a01f6464313e8  gcc/fortran/st.cc
--- 6137,6147 ----
  3b3c13f513e2236a6456d1d3b112404c  gcc/fortran/module.cc
  50632a137a18f04dcc1b089dbb5f27e3  gcc/fortran/openmp.cc
  8376eba2060129f13c5146a7773b2af7  gcc/fortran/options.cc
! 2e829a5546ff491798ea9e9a22f75f9c  gcc/fortran/parse.cc
  09678ef13dc709d251be943d808544b8  gcc/fortran/parse.h
  8c815c31f49f2be21bde29058fe60166  gcc/fortran/primary.cc
  db182b9f9bffc428002f5b5b6fb821b8  gcc/fortran/resolve.cc
! 853897286a4ee54af01b95fad77fb872  gcc/fortran/scanner.cc
  3c39e0eef946c7f557ac375f23b9f3db  gcc/fortran/scanner.h
  47b3ac143dd07e65789786d79d86b9d9  gcc/fortran/simplify.cc
  3255bc920c3609e58d8a01f6464313e8  gcc/fortran/st.cc
*************** a4f5f15bbfd3cf3b780e3a8875ebf0df  gcc/fo
*** 6154,6160 ****
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  6866300c032ec0247d520a77be27d9fa  gcc/fortran/trans-decl.cc
! e435a86044cda4f0c9d080ccce6c6cf7  gcc/fortran/trans-expr.cc
  2fc2e705f2020d62f54715e4698b69d6  gcc/fortran/trans-intrinsic.cc
  a26cd103074d9ae2f87ac35ba1b90970  gcc/fortran/trans-io.cc
  861633525188f39f6eac2e6673146d9f  gcc/fortran/trans-openmp.cc
--- 6154,6160 ----
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  6866300c032ec0247d520a77be27d9fa  gcc/fortran/trans-decl.cc
! 01324cafeb9b406383009169af3608b8  gcc/fortran/trans-expr.cc
  2fc2e705f2020d62f54715e4698b69d6  gcc/fortran/trans-intrinsic.cc
  a26cd103074d9ae2f87ac35ba1b90970  gcc/fortran/trans-io.cc
  861633525188f39f6eac2e6673146d9f  gcc/fortran/trans-openmp.cc
*************** afa2616e2d58a9137deaabc102d2d7c1  gcc/ip
*** 6478,6484 ****
  e1e331896b86db8a2281657bbb21ac72  gcc/ipa-locality-cloning.h
  04c488e1d6439252e0fa7047b4426f9c  gcc/ipa-modref-tree.cc
  5a1edb91a2b7237c3e946f040a3d9697  gcc/ipa-modref-tree.h
! 93f2daf8d38d0031acb96faf35260073  gcc/ipa-modref.cc
  8fe1972490c1cce5a10c7cdcd57b2361  gcc/ipa-modref.h
  3d22f7330dddea6a398c36c252764f8e  gcc/ipa-param-manipulation.cc
  d33136e7edecd120aa035f0e1ad240b0  gcc/ipa-param-manipulation.h
--- 6478,6484 ----
  e1e331896b86db8a2281657bbb21ac72  gcc/ipa-locality-cloning.h
  04c488e1d6439252e0fa7047b4426f9c  gcc/ipa-modref-tree.cc
  5a1edb91a2b7237c3e946f040a3d9697  gcc/ipa-modref-tree.h
! 5d99a0f2ff3cb927823d200e2a1d1e98  gcc/ipa-modref.cc
  8fe1972490c1cce5a10c7cdcd57b2361  gcc/ipa-modref.h
  3d22f7330dddea6a398c36c252764f8e  gcc/ipa-param-manipulation.cc
  d33136e7edecd120aa035f0e1ad240b0  gcc/ipa-param-manipulation.h
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7640,7646 ****
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
  d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
! e28922d743779c1a509da32bc7d57389  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
--- 7640,7646 ----
  550bdb35d0e034ca0050c574ba896d61  gcc/machmode.h
  486412acbbb6de10b080e31410a14f33  gcc/main.cc
  d053620a6d75e0f59842e390386fd917  gcc/make-unique.h
! 9b93d31da15313dd58093c6363a31ad2  gcc/match.pd
  63bf182c7c3a100e101b2129976be89b  gcc/mcf.cc
  795fbbc034a60f5af7e79dbe3bac65a0  gcc/mem-stats-traits.h
  295dcd7618653c13dcf063266752d06f  gcc/mem-stats.h
*************** b3a965e425e6cf7888319667faf58da9  gcc/sy
*** 8448,8454 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 2a5871b6812637e1edc298862077c790  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
! 087467dbc2db3e550a6cc196819e2a15  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** d38901b61d8e8c42e6c0084cde0eaec0  gcc/te
*** 15302,15307 ****
--- 15302,15308 ----
  d987b63109ee0eb4b7f916f91d8d24be  gcc/testsuite/g++.dg/abi/mangle79.C
  eeee984fc971f0592acc52efb13ea93e  gcc/testsuite/g++.dg/abi/mangle8.C
  91fe59f4b908b8f1ebd09487c43147d8  gcc/testsuite/g++.dg/abi/mangle80.C
+ e4d26caeda2af1863c043ca61abdd37d  gcc/testsuite/g++.dg/abi/mangle84.C
  8c95c7ea3760b8a1e7954b3da9f45a16  gcc/testsuite/g++.dg/abi/mangle9.C
  d85264fae2b4c2eb4d8629cb29c42e90  gcc/testsuite/g++.dg/abi/no-linkage-expr1.C
  0cccf158230e7bf1d438169164c8020a  gcc/testsuite/g++.dg/abi/no-weak1.C
*************** c88701df415b47ac9bf5cba84cf379ab  gcc/te
*** 15390,15396 ****
  a3ef49aa5fa035e0eaa1fb23c589fe61  gcc/testsuite/g++.dg/abi/vthunk2.C
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
! bbebf12acd88ceeb72fb99bff77e889b  gcc/testsuite/g++.dg/absvect.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
  806e88a78438f2d478b5ab1e9caa01f7  gcc/testsuite/g++.dg/alias-checks.C
  45f080b7b8ebc92ae9b6072bf11d0451  gcc/testsuite/g++.dg/analyzer/analyzer.exp
--- 15391,15397 ----
  a3ef49aa5fa035e0eaa1fb23c589fe61  gcc/testsuite/g++.dg/abi/vthunk2.C
  6881f6a907aed22e3604db9a81d71753  gcc/testsuite/g++.dg/abi/vthunk3.C
  59cdef1c2f5ac26231205b723cb9ea52  gcc/testsuite/g++.dg/abi/vtt1.C
! 53e31dbb580c47605f7e76bc6cfd7704  gcc/testsuite/g++.dg/absvect.C
  cb66889e261971e64a6568617bffaeaa  gcc/testsuite/g++.dg/addr_builtin-1.C
  806e88a78438f2d478b5ab1e9caa01f7  gcc/testsuite/g++.dg/alias-checks.C
  45f080b7b8ebc92ae9b6072bf11d0451  gcc/testsuite/g++.dg/analyzer/analyzer.exp
*************** b62cd97dedd00a9fbbd509c4e3d6264b  gcc/te
*** 15451,15456 ****
--- 15452,15458 ----
  8b1aa8c61051ed1cee68c19feebe90b0  gcc/testsuite/g++.dg/asan/asan_test.cc
  7b5f694f7ad9cbae4aab558727eaceaf  gcc/testsuite/g++.dg/asan/asan_test_config.h
  a455db6e8dc9b02d6f2c59488f513896  gcc/testsuite/g++.dg/asan/asan_test_utils.h
+ eedaa19d1ebbb6f2ecc8a364fb1ddecd  gcc/testsuite/g++.dg/asan/coroutines1.C
  5e2fbdaa2b9b39d6bf1f290e581722f4  gcc/testsuite/g++.dg/asan/deep-stack-uaf-1.C
  0acf775bdbd67ca675dda4934aeacb5b  gcc/testsuite/g++.dg/asan/deep-tail-call-1.C
  b2988101c810da55bd5189f442c038b7  gcc/testsuite/g++.dg/asan/deep-thread-stack-1.C
*************** a086058df225e5fda842f4ebd12d6dbd  gcc/te
*** 16182,16187 ****
--- 16184,16191 ----
  4ba2a97e93d914ad5510f0a3df7d5dba  gcc/testsuite/g++.dg/coroutines/pr120273.C
  639bf3d722d542a1aab7bcbf3114716a  gcc/testsuite/g++.dg/coroutines/pr120453.C
  5e0a6f554522f0537a21112c91d33895  gcc/testsuite/g++.dg/coroutines/pr120495.C
+ cf70192c32f53d0ffe102b573d4080be  gcc/testsuite/g++.dg/coroutines/pr121643.C
+ 81dd0f7a2283cf853dddabb957fce0eb  gcc/testsuite/g++.dg/coroutines/pr123975.C
  cbb42d13b1660a8eb1d40a3d88308140  gcc/testsuite/g++.dg/coroutines/pr93458-1-missing-traits.C
  d9151fc224e4913ed7ffacd748769917  gcc/testsuite/g++.dg/coroutines/pr93458-2-bad-traits.C
  e9b715cb41c54f5b179b4725b788e338  gcc/testsuite/g++.dg/coroutines/pr93458-3-missing-handle.C
*************** f0e116d82b5a6de3a9e5af9a0a9f86f6  gcc/te
*** 17466,17471 ****
--- 17470,17476 ----
  60b64cb629f4a02ed81a12fb0b2cc041  gcc/testsuite/g++.dg/cpp0x/deleted16.C
  e0ec3b8dde104f6e13caaaf049aa05c6  gcc/testsuite/g++.dg/cpp0x/deleted16a.C
  739d0ece28a2f02a16bc7821fc37839c  gcc/testsuite/g++.dg/cpp0x/deleted17.C
+ 0d226107840844124f0e70cd70522c49  gcc/testsuite/g++.dg/cpp0x/deleted19.C
  80874d553919bf312b4841380187e0f9  gcc/testsuite/g++.dg/cpp0x/deleted2.C
  a9129f4cd34b93dbe745e3849ea1c38a  gcc/testsuite/g++.dg/cpp0x/deleted3.C
  d6f65d86ea217a2efd4c31ebedc9c9db  gcc/testsuite/g++.dg/cpp0x/deleted4.C
*************** c805656a195d9a98cc7141e7db52d9ef  gcc/te
*** 22659,22664 ****
--- 22664,22670 ----
  57e21034689a45ffd010ec86b2596de5  gcc/testsuite/g++.dg/debug/pr106261.C
  19de4ef7373a891f957af0121c166d89  gcc/testsuite/g++.dg/debug/pr108967.C
  553e3d84e73e0efbd2c26b6ea6df2a6c  gcc/testsuite/g++.dg/debug/pr110295.C
+ 3976ffaa5281e386a32261afc9ccfd2b  gcc/testsuite/g++.dg/debug/pr124644.C
  fcdc9d29f34ff56d1b7de0d55a1eaed7  gcc/testsuite/g++.dg/debug/pr15736.C
  d25b84553c2083b28615202497b8f94a  gcc/testsuite/g++.dg/debug/pr16792.C
  91880dfb66fda0db4ddabf486346b755  gcc/testsuite/g++.dg/debug/pr22514.C
*************** f298eddbaaad3dfdc15f6cf9683ff08a  gcc/te
*** 31874,31879 ****
--- 31880,31886 ----
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
  34ccf862a19942e4a76e7409c03669c6  gcc/testsuite/g++.dg/torture/pr120119-1.C
+ 4d68e68ec1a7391fe652111cdb89b309  gcc/testsuite/g++.dg/torture/pr120987-1.C
  75b55c517ba9c0f47c83851f084cb294  gcc/testsuite/g++.dg/torture/pr121870.C
  4cb804aebd63b708ddcac6b88e4a9b7f  gcc/testsuite/g++.dg/torture/pr123040.C
  2fa3f60c4a0ae3a4528024698d6d2c3c  gcc/testsuite/g++.dg/torture/pr123596.C
*************** c6c07c813f67e0f94f1352f2810dfcff  gcc/te
*** 53747,53752 ****
--- 53754,53760 ----
  846de4745dc42cf6d9abe36308df2301  gcc/testsuite/gcc.dg/torture/pr123887-2.c
  45e84720260c50c6a2acdec6f8eec9ca  gcc/testsuite/gcc.dg/torture/pr123887.c
  d4f9bc1a728b13f9940b71ab03cc40fd  gcc/testsuite/gcc.dg/torture/pr124132.c
+ e394027559c72da3f714e1f0bce86a7c  gcc/testsuite/gcc.dg/torture/pr124555.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** a0e208729117f798ee5200a51a9c258b  gcc/te
*** 59765,59770 ****
--- 59773,59780 ----
  8006cd394692bd071c0417ad10367515  gcc/testsuite/gcc.dg/vect/vect-pr120927-2.c
  dca085f893f46ecb56c7cecb15a42090  gcc/testsuite/gcc.dg/vect/vect-pr120927.c
  f4b106f1a647b041f524318378f476f5  gcc/testsuite/gcc.dg/vect/vect-pr122793.c
+ da160a8349fe2e0daa932c3bd967f635  gcc/testsuite/gcc.dg/vect/vect-pr124677.c
+ 09beadb34e2b0bfa6179ef89f2e6d9f7  gcc/testsuite/gcc.dg/vect/vect-pr124802.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
  b860939f62d716a264f763f82b69b2c8  gcc/testsuite/gcc.dg/vect/vect-prefetch-drop.c
*************** c2682b969fcec66bb2ebb2442ff4221b  gcc/te
*** 72558,72563 ****
--- 72568,72574 ----
  39327fb26a438561d0617a9bfe99c59f  gcc/testsuite/gcc.target/arm/pr115188.c
  01f3623877a32b45af0d229eab49f4cf  gcc/testsuite/gcc.target/arm/pr117675.c
  bc84b25bc522b6ed07bd7885605c00d7  gcc/testsuite/gcc.target/arm/pr120351.c
+ 82da20b2c4061a368f405dbeb1cdb341  gcc/testsuite/gcc.target/arm/pr123271.c
  8120924509f8b52f39137165dd663164  gcc/testsuite/gcc.target/arm/pr124134.c
  3ce2c6a399da67ae36390d522e1f1296  gcc/testsuite/gcc.target/arm/pr19599.c
  3425143e88f989a8f52f345e6237106a  gcc/testsuite/gcc.target/arm/pr26702.c
*************** b460526d0eaa50cb9a920c16a0074c0e  gcc/te
*** 73773,73778 ****
--- 73784,73790 ----
  e6aad35d5d9107b96f024e37ca14ddab  gcc/testsuite/gcc.target/bpf/smov-pseudoc-2.c
  b19d9fd422be4741c38cfd572b32a05b  gcc/testsuite/gcc.target/bpf/sync-fetch-and-add.c
  657b196a2414bfd6480a9ed6066f8819  gcc/testsuite/gcc.target/bpf/xbpf-indirect-call-1.c
+ fad710985d2f295db006a9d98419f4e9  gcc/testsuite/gcc.target/bpf/zero-ext.c
  3ae9e0cc2cd08e28ef54e8540c762679  gcc/testsuite/gcc.target/cris/20011127-1.c
  75d3e9019c866a8402bf7aa4c913ee2d  gcc/testsuite/gcc.target/cris/asm-b-1.c
  a9d478d7af0e0b31660f3b7e507a6318  gcc/testsuite/gcc.target/cris/asm-other.S
*************** fd0c95fcad577a49c3553f21604c3b61  gcc/te
*** 80429,80434 ****
--- 80441,80448 ----
  5263cb01b17b6df3496a998c2a8e70d8  gcc/testsuite/gcc.target/i386/pr123489.c
  0c572aee98b871b5098fcc5a78b5d069  gcc/testsuite/gcc.target/i386/pr123523.c
  fbfd31ba28ddc5c31ac2fd9d714443bb  gcc/testsuite/gcc.target/i386/pr124056.c
+ 2ff14347296d11b5e3b328e3957e5191  gcc/testsuite/gcc.target/i386/pr124710-1.c
+ 79c874a97f648ff278ec1765414620b1  gcc/testsuite/gcc.target/i386/pr124710-2.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
  31ead0ee84b382ba03e3561931bc6e40  gcc/testsuite/gcc.target/i386/pr14289-1.c
*************** dc0ed8100589e01d391b4954bad7b048  gcc/te
*** 103381,103386 ****
--- 103395,103401 ----
  983431ce9a90b70a112b9e156506033e  gcc/testsuite/gfortran.dg/goacc/nested-reductions-2-serial.f90
  36c28e9cc17a4b18de9957b99e3ae3d1  gcc/testsuite/gfortran.dg/goacc/nesting-fail-1.f95
  f8fe06410fd4ca50e585e681d35f4482  gcc/testsuite/gfortran.dg/goacc/note-parallelism.f90
+ 8f7b26e930f121be0c4ee68193d7adf3  gcc/testsuite/gfortran.dg/goacc/omp-108382.f90
  44c6212e07bf6b44bd6d26e3224f93d7  gcc/testsuite/gfortran.dg/goacc/omp-fixed.f
  0d004a9c292993dcae37ce3958b7e212  gcc/testsuite/gfortran.dg/goacc/omp.f95
  30617b4201e681ce9fc02f97597b907d  gcc/testsuite/gfortran.dg/goacc/orphan-reductions-1.f90
*************** a3ab8fbef738997039cfd45f350461a3  gcc/te
*** 105819,105824 ****
--- 105834,105840 ----
  77eca811eac1f80edb0f33c68ac0c4d3  gcc/testsuite/gfortran.dg/power_7.f90
  457d6bb30d331f4d3250628bdae53dc3  gcc/testsuite/gfortran.dg/power_8.f90
  e13b5dd50c332ea865cb6fabb5f79f29  gcc/testsuite/gfortran.dg/pr100154.f90
+ d7642fe0f50bb28f873042d6721e3ffb  gcc/testsuite/gfortran.dg/pr100155.f90
  c9e427811a6c55713cbb096365eec807  gcc/testsuite/gfortran.dg/pr100193.f90
  a7f1c1fb2de0acfdd19303c2a0d29d73  gcc/testsuite/gfortran.dg/pr100194.f90
  e08828a7d864f8531a58aa25e1b58894  gcc/testsuite/gfortran.dg/pr100273.f90
*************** cbd40bc334c217d37c198b1f27373810  gcc/te
*** 105849,105854 ****
--- 105865,105871 ----
  73ad9dd0e1a553e17865bdfdf09510d0  gcc/testsuite/gfortran.dg/pr102532.f90
  4efde3b7d107b33c9c8792e23b683d17  gcc/testsuite/gfortran.dg/pr102596.f90
  c0ae1c78c693e1256c471360998b7568  gcc/testsuite/gfortran.dg/pr102597.f90
+ 322a54b0e735415005b9446efbfd32f0  gcc/testsuite/gfortran.dg/pr102619.f90
  c081e1f510a2d68ec176356111dab188  gcc/testsuite/gfortran.dg/pr102685.f90
  d99cea26823109c0bb853b42df152999  gcc/testsuite/gfortran.dg/pr102715.f90
  f28998ba16e7a78633a9de3d5eaf0667  gcc/testsuite/gfortran.dg/pr102816.f90
*************** b8bfd1cf7e719488d1db3ded54f068b2  gcc/te
*** 106768,106773 ****
--- 106785,106791 ----
  662210e69dcf405442181d9c4c2a91ec  gcc/testsuite/gfortran.dg/pr95827.f90
  62cd2c3c38efcf3442a00b172c23a0f1  gcc/testsuite/gfortran.dg/pr95828.f90
  f2cfdbd57b646ea77c8d2d572b0b4a79  gcc/testsuite/gfortran.dg/pr95829.f90
+ 153dd2ab3bb579bad81f3ed62e079ff2  gcc/testsuite/gfortran.dg/pr95879.f90
  4624ef21d27373ca19abedc766bf24c8  gcc/testsuite/gfortran.dg/pr95880.f90
  5f79fc5c2f7a030ad1b82b4793b0c8a7  gcc/testsuite/gfortran.dg/pr95881.f90
  5f9a08444201a18392648013e972a14a  gcc/testsuite/gfortran.dg/pr95882_1.f90
*************** eb1595e729e2eaac81c7ffe330d8f24e  gcc/te
*** 115776,115782 ****
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 15f81355b5cc4fc37c807f3af7bc937c  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
--- 115794,115800 ----
  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
*************** cac3afe79bbadb8c304cebff78dbb3df  gcc/tr
*** 118351,118359 ****
  61a9b445a765d6b6d497bc7273d05f64  gcc/tree-vect-data-refs.cc
  cc4b6ecb376a4980bfd08a185c104993  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
! 6bc2a872ec2c5dda08efa8b277eb7783  gcc/tree-vect-loop.cc
  77240c08cea454c2d4a449206f7930c3  gcc/tree-vect-patterns.cc
! 75eb406d11bc2ae9f01cc1e72787b3d5  gcc/tree-vect-slp-patterns.cc
  c417ef312ca64d3d6d752dc4dfbbc195  gcc/tree-vect-slp.cc
  4572489a3aeb1a3163bd6409309fe0c5  gcc/tree-vect-stmts.cc
  c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
--- 118369,118377 ----
  61a9b445a765d6b6d497bc7273d05f64  gcc/tree-vect-data-refs.cc
  cc4b6ecb376a4980bfd08a185c104993  gcc/tree-vect-generic.cc
  cc0bdf3f684b251509b8552d2d8549a3  gcc/tree-vect-loop-manip.cc
! 8a2aecab8d16631a19a3c9fb4995a997  gcc/tree-vect-loop.cc
  77240c08cea454c2d4a449206f7930c3  gcc/tree-vect-patterns.cc
! dcbf10968cde6e905d28d520507d760b  gcc/tree-vect-slp-patterns.cc
  c417ef312ca64d3d6d752dc4dfbbc195  gcc/tree-vect-slp.cc
  4572489a3aeb1a3163bd6409309fe0c5  gcc/tree-vect-stmts.cc
  c8efeee600d612c4bae8dda4bd45ee54  gcc/tree-vector-builder.cc
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132399,132405 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 6f0d1e8b9469fcd51ed2bfa4f095fdd0  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 132417,132423 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 742556006f12c37957aa1227ccce1881  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a462fb6c466b34fa25624b7fab6323e3  libstd
*** 133227,133234 ****
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
  0d0aa3ff481b12a643187f08a07e9944  libstdc++-v3/include/bits/vector.tcc
! 12d6dd6628d6b456b3ab66f0b7d36529  libstdc++-v3/include/bits/version.def
! 30e2252fcee270c61b56eae8bc9031a6  libstdc++-v3/include/bits/version.h
  0db0dfc5d016435e64398e3bb70098d3  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
--- 133245,133252 ----
  3ddbcccf58411251c2825ae41b697844  libstdc++-v3/include/bits/valarray_array.tcc
  a4c99020fc6d28e94d24a3f60a71b6ec  libstdc++-v3/include/bits/valarray_before.h
  0d0aa3ff481b12a643187f08a07e9944  libstdc++-v3/include/bits/vector.tcc
! 9d5c593eec1b20e4979286edd0c20387  libstdc++-v3/include/bits/version.def
! 378d8d3b9b446acd51b00d10307488b3  libstdc++-v3/include/bits/version.h
  0db0dfc5d016435e64398e3bb70098d3  libstdc++-v3/include/bits/version.tpl
  6ccd70c0c36dd38ba559c1fc5a05fbd0  libstdc++-v3/include/c/cassert
  c31b54f25b2f8c7ca3ca3eec930d4e1d  libstdc++-v3/include/c/cctype
*************** ba651830ef81cb6553fde41b9364bf09  libstd
*** 133264,133272 ****
  89fc2cd5fc780fd78514769a27629c3b  libstdc++-v3/include/c_compatibility/signal.h
  7819a7d000064f8b11fb803ca4bf35a9  libstdc++-v3/include/c_compatibility/stdarg.h
  e8f0a5b02e79903187f6f348af2a2914  libstdc++-v3/include/c_compatibility/stdatomic.h
! c59b5e0eca126fcdb5d60553d7306e06  libstdc++-v3/include/c_compatibility/stdbit.h
  bd4f9cf4d767abec63404e4abde2e546  libstdc++-v3/include/c_compatibility/stdbool.h
! fca90211dcbb917c2de0be1f5c2aafb9  libstdc++-v3/include/c_compatibility/stdckdint.h
  14c6a4cffa1b2fea2e123d46e682c66c  libstdc++-v3/include/c_compatibility/stddef.h
  60d4a67454c28e4a3cf6d5ec2a8ea211  libstdc++-v3/include/c_compatibility/stdint.h
  81ae737e201a48c65603b147fcf85175  libstdc++-v3/include/c_compatibility/stdio.h
--- 133282,133290 ----
  89fc2cd5fc780fd78514769a27629c3b  libstdc++-v3/include/c_compatibility/signal.h
  7819a7d000064f8b11fb803ca4bf35a9  libstdc++-v3/include/c_compatibility/stdarg.h
  e8f0a5b02e79903187f6f348af2a2914  libstdc++-v3/include/c_compatibility/stdatomic.h
! c2f557a28c1227cff940c6918cba6832  libstdc++-v3/include/c_compatibility/stdbit.h
  bd4f9cf4d767abec63404e4abde2e546  libstdc++-v3/include/c_compatibility/stdbool.h
! 20542d5b060306ef86fcc79ec742c748  libstdc++-v3/include/c_compatibility/stdckdint.h
  14c6a4cffa1b2fea2e123d46e682c66c  libstdc++-v3/include/c_compatibility/stddef.h
  60d4a67454c28e4a3cf6d5ec2a8ea211  libstdc++-v3/include/c_compatibility/stdint.h
  81ae737e201a48c65603b147fcf85175  libstdc++-v3/include/c_compatibility/stdio.h
diff -Nrcpad gcc-15-20260411/config/ChangeLog gcc-15-20260418/config/ChangeLog
*** gcc-15-20260411/config/ChangeLog	Sat Apr 11 22:32:07 2026
--- gcc-15-20260418/config/ChangeLog	Sat Apr 18 22:32:05 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-04-15  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-04-13  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR target/69639
+ 	* mh-cygwin: Increase to 64MB stack reserve.
+ 	* mh-mingw: Likewise.
+ 
  2025-08-08  Release Manager
  
  	* GCC 15.2.0 released.
diff -Nrcpad gcc-15-20260411/config/mh-cygwin gcc-15-20260418/config/mh-cygwin
*** gcc-15-20260411/config/mh-cygwin	Sat Apr 11 22:32:07 2026
--- gcc-15-20260418/config/mh-cygwin	Sat Apr 18 22:32:05 2026
***************
*** 1,4 ****
! # Increase stack limit to a figure based on the Linux default, with 4MB added
! # as GCC turns out to need that much more to pass all the limits-* tests.
! LDFLAGS += -Wl,--stack,12582912
! BOOT_LDFLAGS += -Wl,--stack,12582912
--- 1,5 ----
! # Increase stack limit, to the same value that GCC tries to change to at
! # startup on Linux, as GCC turns out to need that much more to pass all the
! # limits-* tests.
! LDFLAGS += -Wl,--stack,67108864
! BOOT_LDFLAGS += -Wl,--stack,67108864
diff -Nrcpad gcc-15-20260411/config/mh-mingw gcc-15-20260418/config/mh-mingw
*** gcc-15-20260411/config/mh-mingw	Sat Apr 11 22:32:07 2026
--- gcc-15-20260418/config/mh-mingw	Sat Apr 18 22:32:05 2026
*************** STAGE2_CXXFLAGS += -D__USE_MINGW_ACCESS
*** 8,14 ****
  STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS
  STAGE4_CXXFLAGS += -D__USE_MINGW_ACCESS
  
! # Increase stack limit to a figure based on the Linux default, with 4MB added
! # as GCC turns out to need that much more to pass all the limits-* tests.
! LDFLAGS += -Wl,--stack,12582912
! BOOT_LDFLAGS += -Wl,--stack,12582912
--- 8,15 ----
  STAGE3_CXXFLAGS += -D__USE_MINGW_ACCESS
  STAGE4_CXXFLAGS += -D__USE_MINGW_ACCESS
  
! # Increase stack limit, to the same value that GCC tries to change to at
! # startup on Linux, as GCC turns out to need that much more to pass all the
! # limits-* tests.
! LDFLAGS += -Wl,--stack,67108864
! BOOT_LDFLAGS += -Wl,--stack,67108864
diff -Nrcpad gcc-15-20260411/gcc/ChangeLog gcc-15-20260418/gcc/ChangeLog
*** gcc-15-20260411/gcc/ChangeLog	Sat Apr 11 22:32:07 2026
--- gcc-15-20260418/gcc/ChangeLog	Sat Apr 18 22:32:05 2026
***************
*** 1,3 ****
--- 1,94 ----
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124802
+ 	* tree-vect-slp-patterns.cc (vect_match_expression_p): Fail
+ 	for SLP_TREE_PERMUTE_P.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124677
+ 	* tree-vect-loop.cc (vectorizable_recurr): Skip vector
+ 	stmts for the def.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/124644
+ 	* dwarf2out.cc (dwarf2out_abstract_function): Only
+ 	add DW_AT_artificial if the decl isn't DECL_ARTIFICIAL.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124555
+ 	* match.pd ((A - B) >=/> 0 ? (A - B) : (B - A) -> abs (A - B)):
+ 	Guard the vector case with target_supports_op_p checks.
+ 	((A - B) <=/< 0 ? (A - B) : (B - A) -> -abs (A - B)): Likewise.
+ 	((type)A >=/> 0 ? A : -A -> abs (A)): Likewise.
+ 	((type)A <=/< 0 ? A : -A -> -abs (A)): Likewise.
+ 
+ 2026-04-14  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-03-10  Jan Hubicka  <jh@suse.cz>
+ 		    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/120987
+ 	* ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Mask
+ 	off non const/pure/novops related flags when combining of outer
+ 	functions.
+ 
+ 2026-04-13  Vineet Gupta  <vineet.gupta@linux.dev>
+ 
+ 	PR target/124670
+ 	* config/bpf/bpf.md (zero_extendsidi2): Use 'W' in asm template.
+ 
+ 2026-04-13  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2026-03-11  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/123271
+ 	* config/arm/arm.md (subvsi3_intmin): Renamed to ...
+ 	(sub_cmpVsi3_intmin): ... this.
+ 	(subvsi3): Renamed to ...
+ 	(sub_cmpVsi3): ... this.
+ 	(subvsi3_imm1): Renamed to ...
+ 	(sub_cmpVsi3_imm1): ... this.
+ 	(usubvsi3_borrow): Renamed to ...
+ 	(usub_cmpVsi3_borrow): ... this.
+ 	(usubvsi3_borrow_imm): Renamed to ...
+ 	(usub_cmpVsi3_borrow_imm): ... this.
+ 	(subvsi3_borrow): Renamed to ...
+ 	(sub_cmpVsi3_borrow): ... this.
+ 	(subvsi3_borrow_imm): Renamed to ...
+ 	(sub_cmpVsi3_borrow_imm): ... this.
+ 
+ 2026-04-13  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/124710
+ 	* config/i386/sse.md (iptrps2qq): New mode attribute for
+ 	ps2qq Intel syntax memory operand size override.
+ 	(avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
+ 	Use %<iptrps2qq>1 in Intel syntax to emit qword ptr for V2DI (128-bit)
+ 	memory operands.
+ 	(avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
+ 	Use %q1 in Intel syntax to emit qword ptr for scalar double memory
+ 	operands.
+ 	(avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
+ 	Use %k1 in Intel syntax to emit dword ptr for scalar single memory
+ 	operands.
+ 
  2026-04-09  Xi Ruoyao  <xry111@xry111.site>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260411/gcc/DATESTAMP gcc-15-20260418/gcc/DATESTAMP
*** gcc-15-20260411/gcc/DATESTAMP	Sat Apr 11 22:32:07 2026
--- gcc-15-20260418/gcc/DATESTAMP	Sat Apr 18 22:32:05 2026
***************
*** 1 ****
! 20260411
--- 1 ----
! 20260418
diff -Nrcpad gcc-15-20260411/gcc/ada/ChangeLog gcc-15-20260418/gcc/ada/ChangeLog
*** gcc-15-20260411/gcc/ada/ChangeLog	Sat Apr 11 22:32:07 2026
--- gcc-15-20260418/gcc/ada/ChangeLog	Sat Apr 18 22:32:05 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-04-12  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/124836
+ 	* adaint.c [__MINGW32__]: Do not include mingw32.h twice, and also
+ 	include sys/param.h.
+ 
  2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* exp_ch6.adb (Expand_Simple_Function_Return): Use a constant return
diff -Nrcpad gcc-15-20260411/gcc/ada/adaint.c gcc-15-20260418/gcc/ada/adaint.c
*** gcc-15-20260411/gcc/ada/adaint.c	Sat Apr 11 22:32:07 2026
--- gcc-15-20260418/gcc/ada/adaint.c	Sat Apr 18 22:32:05 2026
*************** const char *__gnat_library_template = GN
*** 344,354 ****
  
  #else
  
- #if defined (__MINGW32__)
- #include "mingw32.h"
- #else
  #include <sys/param.h>
- #endif
  
  #ifdef MAXPATHLEN
  #define GNAT_MAX_PATH_LEN MAXPATHLEN
--- 344,350 ----
diff -Nrcpad gcc-15-20260411/gcc/config/arm/arm.md gcc-15-20260418/gcc/config/arm/arm.md
*** gcc-15-20260411/gcc/config/arm/arm.md	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/config/arm/arm.md	Sat Apr 18 22:32:06 2026
***************
*** 1012,1018 ****
     (set_attr "type" "alus_sreg")]
  )
  
! (define_insn "subvsi3_intmin"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	  (plus:DI
--- 1012,1018 ----
     (set_attr "type" "alus_sreg")]
  )
  
! (define_insn "sub_cmpVsi3_intmin"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	  (plus:DI
***************
*** 1432,1446 ****
        operands[2] = GEN_INT (-INTVAL (operands[2]));
        /* Special case for INT_MIN.  */
        if (INTVAL (operands[2]) == 0x80000000)
! 	emit_insn (gen_subvsi3_intmin (operands[0], operands[1]));
        else
  	emit_insn (gen_addsi3_compareV_imm (operands[0], operands[1],
! 					  operands[2]));
      }
    else if (CONST_INT_P (operands[1]))
!     emit_insn (gen_subvsi3_imm1 (operands[0], operands[1], operands[2]));
    else
!     emit_insn (gen_subvsi3 (operands[0], operands[1], operands[2]));
  
    arm_gen_unlikely_cbranch (NE, CC_Vmode, operands[3]);
    DONE;
--- 1432,1446 ----
        operands[2] = GEN_INT (-INTVAL (operands[2]));
        /* Special case for INT_MIN.  */
        if (INTVAL (operands[2]) == 0x80000000)
! 	emit_insn (gen_sub_cmpVsi3_intmin (operands[0], operands[1]));
        else
  	emit_insn (gen_addsi3_compareV_imm (operands[0], operands[1],
! 					    operands[2]));
      }
    else if (CONST_INT_P (operands[1]))
!     emit_insn (gen_sub_cmpVsi3_imm1 (operands[0], operands[1], operands[2]));
    else
!     emit_insn (gen_sub_cmpVsi3 (operands[0], operands[1], operands[2]));
  
    arm_gen_unlikely_cbranch (NE, CC_Vmode, operands[3]);
    DONE;
***************
*** 1513,1526 ****
      hi_op2 = force_reg (SImode, hi_op2);
    rtx ccreg = gen_rtx_REG (mode, CC_REGNUM);
    if (CONST_INT_P (hi_op2))
!     emit_insn (gen_subvsi3_borrow_imm (hi_result, hi_op1, hi_op2,
  				       gen_rtx_LTU (SImode, ccreg, const0_rtx),
  				       gen_rtx_LTU (DImode, ccreg,
  						    const0_rtx)));
-   else
-     emit_insn (gen_subvsi3_borrow (hi_result, hi_op1, hi_op2,
- 				   gen_rtx_LTU (SImode, ccreg, const0_rtx),
- 				   gen_rtx_LTU (DImode, ccreg, const0_rtx)));
    arm_gen_unlikely_cbranch (NE, CC_Vmode, operands[3]);
  
    DONE;
--- 1513,1528 ----
      hi_op2 = force_reg (SImode, hi_op2);
    rtx ccreg = gen_rtx_REG (mode, CC_REGNUM);
    if (CONST_INT_P (hi_op2))
!     emit_insn (gen_sub_cmpVsi3_borrow_imm (hi_result, hi_op1, hi_op2,
! 					   gen_rtx_LTU (SImode, ccreg,
! 							const0_rtx),
! 					   gen_rtx_LTU (DImode, ccreg,
! 							const0_rtx)));
!   else
!     emit_insn (gen_sub_cmpVsi3_borrow (hi_result, hi_op1, hi_op2,
  				       gen_rtx_LTU (SImode, ccreg, const0_rtx),
  				       gen_rtx_LTU (DImode, ccreg,
  						    const0_rtx)));
    arm_gen_unlikely_cbranch (NE, CC_Vmode, operands[3]);
  
    DONE;
***************
*** 1630,1644 ****
      hi_op2 = force_reg (SImode, hi_op2);
    rtx ccreg = gen_rtx_REG (mode, CC_REGNUM);
    if (CONST_INT_P (hi_op2))
!     emit_insn (gen_usubvsi3_borrow_imm (hi_result, hi_op1, hi_op2,
! 					GEN_INT (UINTVAL (hi_op2) & 0xffffffff),
  					gen_rtx_LTU (SImode, ccreg, const0_rtx),
  					gen_rtx_LTU (DImode, ccreg,
  						     const0_rtx)));
-   else
-     emit_insn (gen_usubvsi3_borrow (hi_result, hi_op1, hi_op2,
- 				    gen_rtx_LTU (SImode, ccreg, const0_rtx),
- 				    gen_rtx_LTU (DImode, ccreg, const0_rtx)));
    arm_gen_unlikely_cbranch (LTU, CC_Bmode, operands[3]);
  
    DONE;
--- 1632,1649 ----
      hi_op2 = force_reg (SImode, hi_op2);
    rtx ccreg = gen_rtx_REG (mode, CC_REGNUM);
    if (CONST_INT_P (hi_op2))
!     emit_insn (gen_usub_cmpVsi3_borrow_imm (hi_result, hi_op1, hi_op2,
! 					    GEN_INT (UINTVAL (hi_op2)
! 						     & 0xffffffff),
! 					    gen_rtx_LTU (SImode, ccreg,
! 							 const0_rtx),
! 					    gen_rtx_LTU (DImode, ccreg,
! 							 const0_rtx)));
!   else
!     emit_insn (gen_usub_cmpVsi3_borrow (hi_result, hi_op1, hi_op2,
  					gen_rtx_LTU (SImode, ccreg, const0_rtx),
  					gen_rtx_LTU (DImode, ccreg,
  						     const0_rtx)));
    arm_gen_unlikely_cbranch (LTU, CC_Bmode, operands[3]);
  
    DONE;
***************
*** 1657,1663 ****
     (set_attr "type" "alus_sreg")]
  )
  
! (define_insn "subvsi3"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
--- 1662,1668 ----
     (set_attr "type" "alus_sreg")]
  )
  
! (define_insn "sub_cmpVsi3"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
***************
*** 1674,1680 ****
     (set_attr "type" "alus_sreg")]
  )
  
! (define_insn "subvsi3_imm1"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
--- 1679,1685 ----
     (set_attr "type" "alus_sreg")]
  )
  
! (define_insn "sub_cmpVsi3_imm1"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
***************
*** 2131,2137 ****
     (set_attr "type" "alus_imm")]
  )
  
! (define_insn "usubvsi3_borrow"
    [(set (reg:CC_B CC_REGNUM)
  	(compare:CC_B
  	 (zero_extend:DI (match_operand:SI 1 "s_register_operand" "0,r"))
--- 2136,2142 ----
     (set_attr "type" "alus_imm")]
  )
  
! (define_insn "usub_cmpVsi3_borrow"
    [(set (reg:CC_B CC_REGNUM)
  	(compare:CC_B
  	 (zero_extend:DI (match_operand:SI 1 "s_register_operand" "0,r"))
***************
*** 2149,2155 ****
     (set_attr "length" "2,4")]
  )
  
! (define_insn "usubvsi3_borrow_imm"
    [(set (reg:CC_B CC_REGNUM)
  	(compare:CC_B
  	 (zero_extend:DI (match_operand:SI 1 "s_register_operand" "r,r"))
--- 2154,2160 ----
     (set_attr "length" "2,4")]
  )
  
! (define_insn "usub_cmpVsi3_borrow_imm"
    [(set (reg:CC_B CC_REGNUM)
  	(compare:CC_B
  	 (zero_extend:DI (match_operand:SI 1 "s_register_operand" "r,r"))
***************
*** 2168,2174 ****
     (set_attr "type" "alus_imm")]
  )
  
! (define_insn "subvsi3_borrow"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
--- 2173,2179 ----
     (set_attr "type" "alus_imm")]
  )
  
! (define_insn "sub_cmpVsi3_borrow"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
***************
*** 2189,2195 ****
     (set_attr "length" "2,4")]
  )
  
! (define_insn "subvsi3_borrow_imm"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
--- 2194,2200 ----
     (set_attr "length" "2,4")]
  )
  
! (define_insn "sub_cmpVsi3_borrow_imm"
    [(set (reg:CC_V CC_REGNUM)
  	(compare:CC_V
  	 (minus:DI
diff -Nrcpad gcc-15-20260411/gcc/config/bpf/bpf.md gcc-15-20260418/gcc/config/bpf/bpf.md
*** gcc-15-20260411/gcc/config/bpf/bpf.md	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/config/bpf/bpf.md	Sat Apr 18 22:32:06 2026
***************
*** 300,306 ****
  	  (match_operand:SI 1 "nonimmediate_operand" "r,q")))]
    ""
    "@
!    *return bpf_output_move (operands, bpf_has_alu32 ? \"{mov32\t%0,%1|%0 = %1}\" : \"{mov\t%0,%1\;and\t%0,0xffffffff|%0 = %1;%0 &= 0xffffffff}\");
     *return bpf_output_move (operands, \"{ldxw\t%0,%1|%0 = *(u32 *) %1}\");"
    [(set_attr "type" "alu,ldx")])
  
--- 300,306 ----
  	  (match_operand:SI 1 "nonimmediate_operand" "r,q")))]
    ""
    "@
!    *return bpf_output_move (operands, bpf_has_alu32 ? \"{mov32\t%0,%1|%W0 = %W1}\" : \"{mov\t%0,%1\;and\t%0,0xffffffff|%0 = %1;%0 &= 0xffffffff}\");
     *return bpf_output_move (operands, \"{ldxw\t%0,%1|%0 = *(u32 *) %1}\");"
    [(set_attr "type" "alu,ldx")])
  
diff -Nrcpad gcc-15-20260411/gcc/config/i386/sse.md gcc-15-20260418/gcc/config/i386/sse.md
*** gcc-15-20260411/gcc/config/i386/sse.md	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/config/i386/sse.md	Sat Apr 18 22:32:06 2026
***************
*** 32817,32822 ****
--- 32817,32827 ----
    [(V16SF "") (V8SF "") (V4SF "")
     (V8DF "") (V4DF "{y}") (V2DF "{x}")])
  
+ ;; Pointer size override for ps2qq conversions: V2DI uses half-width (64-bit)
+ ;; source, needing %q for Intel syntax memory operand disambiguation.
+ (define_mode_attr iptrps2qq
+   [(V8DI "") (V4DI "") (V2DI "q")])
+ 
  (define_insn "avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>"
   [(set (match_operand:<VEC_GATHER_IDXSI> 0 "register_operand" "=v")
         (unspec:<VEC_GATHER_IDXSI>
***************
*** 32845,32851 ****
  	  [(match_operand:<vpckfloat_temp_mode> 1 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>")]
  	  UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2 && <round_saeonly_mode512bit_condition>"
!  "vcvttps2<sat_cvt_sign_prefix>qqs\t{<round_saeonly_mask_op2>%1, %0<mask_operand2>|%0<mask_operand2>, %1<round_saeonly_mask_op2>}"
   [(set_attr "type" "ssecvt")
    (set_attr "prefix" "evex")
    (set_attr "mode" "<sseinsnmode>")])
--- 32850,32856 ----
  	  [(match_operand:<vpckfloat_temp_mode> 1 "<round_saeonly_nimm_predicate>" "<round_saeonly_constraint>")]
  	  UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2 && <round_saeonly_mode512bit_condition>"
!  "vcvttps2<sat_cvt_sign_prefix>qqs\t{<round_saeonly_mask_op2>%1, %0<mask_operand2>|%0<mask_operand2>, %<iptrps2qq>1<round_saeonly_mask_op2>}"
   [(set_attr "type" "ssecvt")
    (set_attr "prefix" "evex")
    (set_attr "mode" "<sseinsnmode>")])
***************
*** 32858,32864 ****
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttsd2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
--- 32863,32869 ----
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttsd2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %q1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
***************
*** 32871,32877 ****
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttss2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
--- 32876,32882 ----
        (parallel [(const_int 0)]))]
      UNSPEC_SAT_CVT_DS_SIGN_ITER))]
   "TARGET_AVX10_2"
!  "vcvttss2<sat_cvt_sign_prefix>sis\t{<round_saeonly_op2>%1, %0|%0, %k1<round_saeonly_op2>}"
   [(set_attr "type" "ssecvt")
   (set_attr "prefix" "evex")
   (set_attr "mode" "<MODE>")])
diff -Nrcpad gcc-15-20260411/gcc/cp/ChangeLog gcc-15-20260418/gcc/cp/ChangeLog
*** gcc-15-20260411/gcc/cp/ChangeLog	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/cp/ChangeLog	Sat Apr 18 22:32:06 2026
***************
*** 1,3 ****
--- 1,44 ----
+ 2026-04-16  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/120338
+ 	* decl.cc (cp_finish_decl): Set DECL_INITIAL to error_mark_node
+ 	instead of NULL_TREE for deleted main.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121643
+ 	PR c++/123975
+ 	* coroutines.cc (build_co_await): Pass rvalue to await_suspend.
+ 	(expand_one_await_expression): Fix await_suspend surgery.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121961
+ 	* coroutines.cc (build_actor_fn): Move the delete label before
+ 	the refcount handling.
+ 	(cp_coroutine_transform::build_ramp_function): Decrement refcount
+ 	after destroying gro.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/117133
+ 	PR c++/124768
+ 	PR c++/124773
+ 	* mangle.cc (unmangled_name_p): Don't mangle internal extern "C"
+ 	variables.
+ 
  2026-04-07  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260411/gcc/cp/coroutines.cc gcc-15-20260418/gcc/cp/coroutines.cc
*** gcc-15-20260411/gcc/cp/coroutines.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/cp/coroutines.cc	Sat Apr 18 22:32:06 2026
*************** build_co_await (location_t loc, tree a,
*** 1431,1436 ****
--- 1431,1439 ----
        3. a coroutine handle, we execute the handle.resume() call.  */
    tree awsp_func = NULL_TREE;
    tree h_proxy = get_coroutine_self_handle_proxy (current_function_decl);
+   /* expand_one_await_expression will replace the argument with a prvalue call
+      to from_address, so pass an rvalue now as well.  */
+   h_proxy = move (h_proxy);
    vec<tree, va_gc> *args = make_tree_vector_single (h_proxy);
    tree awsp_call
      = build_new_method_call (e_proxy, awsp_meth, &args, NULL_TREE,
*************** expand_one_await_expression (tree *expr,
*** 2212,2218 ****
      build_new_method_call (dummy_ch, data->hfa_m, &args, NULL_TREE,
  			   LOOKUP_NORMAL, NULL, tf_warning_or_error));
    release_tree_vector (args);
!   CALL_EXPR_ARG (susp_call, call_expr_nargs (susp_call) - 1) = hfa;
  
    bool is_cont = false;
    /* NOTE: final suspend can't resume; the "resume" label in that case
--- 2215,2232 ----
      build_new_method_call (dummy_ch, data->hfa_m, &args, NULL_TREE,
  			   LOOKUP_NORMAL, NULL, tf_warning_or_error));
    release_tree_vector (args);
!   {
!     tree fn = get_callee_fndecl (susp_call);
!     int argno = 0 + DECL_OBJECT_MEMBER_FUNCTION_P (fn);
!     tree &arg = CALL_EXPR_ARG (susp_call, argno);
!     /* Handle await_suspend taking an unusual type (c++/123975).  */
!     tree type = TYPE_ARG_TYPES (TREE_TYPE (fn));
!     type = TREE_VALUE (chain_index (argno, type));
!     hfa = perform_implicit_conversion (type, hfa, tf_warning_or_error);
!     hfa = convert_for_arg_passing (type, hfa, tf_warning_or_error);
!     gcc_checking_assert (same_type_p (TREE_TYPE (arg), TREE_TYPE (hfa)));
!     arg = hfa;
!   }
  
    bool is_cont = false;
    /* NOTE: final suspend can't resume; the "resume" label in that case
*************** build_actor_fn (location_t loc, tree cor
*** 2624,2630 ****
    /* The destroy point numbered #1 is special, in that it is reached from a
       coroutine that is suspended after re-throwing from unhandled_exception().
       This label just invokes the cleanup of promise, param copies and the
!      frame itself.  */
    tree del_promise_label
      = create_named_label_with_ctx (loc, "coro.delete.promise", actor);
    finish_case_label (loc, build_int_cst (short_unsigned_type_node, 1),
--- 2638,2644 ----
    /* The destroy point numbered #1 is special, in that it is reached from a
       coroutine that is suspended after re-throwing from unhandled_exception().
       This label just invokes the cleanup of promise, param copies and the
!      frame itself, if the ramp isn't still keeping them alive.  */
    tree del_promise_label
      = create_named_label_with_ctx (loc, "coro.delete.promise", actor);
    finish_case_label (loc, build_int_cst (short_unsigned_type_node, 1),
*************** build_actor_fn (location_t loc, tree cor
*** 2718,2723 ****
--- 2732,2740 ----
    /* Add in our function body with the co_returns rewritten to final form.  */
    add_stmt (fnbody);
  
+   tree r = build_stmt (loc, LABEL_EXPR, del_promise_label);
+   add_stmt (r);
+ 
    /* We are done with the frame, but if the ramp still has a hold on it
       we should not cleanup.  So decrement the refcount and then return to
       the ramp if it is > 0.  */
*************** build_actor_fn (location_t loc, tree cor
*** 2727,2733 ****
    tree released = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node,
  			      coro_frame_refcount,
  			      build_int_cst (short_unsigned_type_node, 1));
!   tree r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
  				 tf_warning_or_error);
    finish_expr_stmt (r);
    tree cond = build2_loc (loc, NE_EXPR, short_unsigned_type_node,
--- 2744,2750 ----
    tree released = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node,
  			      coro_frame_refcount,
  			      build_int_cst (short_unsigned_type_node, 1));
!   r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
  				 tf_warning_or_error);
    finish_expr_stmt (r);
    tree cond = build2_loc (loc, NE_EXPR, short_unsigned_type_node,
*************** build_actor_fn (location_t loc, tree cor
*** 2740,2747 ****
    finish_if_stmt (ramp_cu_if);
  
    /* Otherwise, do the tail of the function; first cleanups.  */
-   r = build_stmt (loc, LABEL_EXPR, del_promise_label);
-   add_stmt (r);
  
    /* Destructors for the things we built explicitly.
       promise... */
--- 2757,2762 ----
*************** cp_coroutine_transform::build_ramp_funct
*** 5255,5260 ****
--- 5270,5292 ----
        push_cleanup (p, r, /*eh_only*/false);
      }
  
+   /* Now that we've constructed everything in the frame, consider it
+      used...  */
+   r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR,
+ 			    build_int_cst (short_unsigned_type_node, 1),
+ 			    tf_warning_or_error);
+   finish_expr_stmt (r);
+   /* ... but when we finish we want to release that, and we want to do that
+      before the frame cleanups run.  But after the gro cleanup, in case it
+      calls destroy (PR121961).  */
+   tree released
+     = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node,
+ 		  coro_frame_refcount,
+ 		  build_int_cst (short_unsigned_type_node, 1));
+   released = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
+ 				 tf_warning_or_error);
+   push_cleanup (NULL_TREE, released, /*eh_only*/false);
+ 
    tree get_ro
      = coro_build_promise_expression (orig_fn_decl, p,
  				     coro_get_return_object_identifier,
*************** cp_coroutine_transform::build_ramp_funct
*** 5316,5335 ****
  	push_cleanup (coro_gro, coro_gro_cleanup, /*eh_only*/false);
      }
  
!   /* Start the coroutine body, we now have a use of the frame...  */
!   r = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR,
! 			    build_int_cst (short_unsigned_type_node, 1),
! 			    tf_warning_or_error);
!   finish_expr_stmt (r);
!   /* ... but when we finish we want to release that, and we want to do that
!      before any of the other cleanups run.  */
!   tree released
!     = build2_loc (loc, MINUS_EXPR, short_unsigned_type_node, coro_frame_refcount,
! 		  build_int_cst (short_unsigned_type_node, 1));
!   released = cp_build_modify_expr (loc, coro_frame_refcount, NOP_EXPR, released,
! 				 tf_warning_or_error);
!   push_cleanup (NULL_TREE, released, /*eh_only*/false);
! 
    r = build_call_expr_loc (fn_start, resumer, 1, coro_fp);
    finish_expr_stmt (r);
  
--- 5348,5354 ----
  	push_cleanup (coro_gro, coro_gro_cleanup, /*eh_only*/false);
      }
  
!   /* Start the coroutine body.  */
    r = build_call_expr_loc (fn_start, resumer, 1, coro_fp);
    finish_expr_stmt (r);
  
diff -Nrcpad gcc-15-20260411/gcc/cp/decl.cc gcc-15-20260418/gcc/cp/decl.cc
*** gcc-15-20260411/gcc/cp/decl.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/cp/decl.cc	Sat Apr 18 22:32:06 2026
*************** cp_finish_decl (tree decl, tree init, bo
*** 8945,8951 ****
  	      /* [basic.start.main]/3: A program that defines main as deleted
  		 is ill-formed.  */
  	      error ("%<::main%> cannot be deleted");
! 	      DECL_INITIAL (decl) = NULL_TREE;
  	    }
  	  else
  	    {
--- 8945,8951 ----
  	      /* [basic.start.main]/3: A program that defines main as deleted
  		 is ill-formed.  */
  	      error ("%<::main%> cannot be deleted");
! 	      DECL_INITIAL (decl) = error_mark_node;
  	    }
  	  else
  	    {
diff -Nrcpad gcc-15-20260411/gcc/cp/mangle.cc gcc-15-20260418/gcc/cp/mangle.cc
*** gcc-15-20260411/gcc/cp/mangle.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/cp/mangle.cc	Sat Apr 18 22:32:06 2026
*************** unmangled_name_p (const tree decl)
*** 753,766 ****
      }
    else if (VAR_P (decl))
      {
        /* static variables are mangled.  */
        if (!DECL_EXTERNAL_LINKAGE_P (decl))
  	return false;
  
-       /* extern "C" declarations aren't mangled.  */
-       if (DECL_EXTERN_C_P (decl))
- 	return true;
- 
        /* Other variables at non-global scope are mangled.  */
        if (CP_DECL_CONTEXT (decl) != global_namespace)
  	return false;
--- 753,766 ----
      }
    else if (VAR_P (decl))
      {
+       /* extern "C" declarations aren't mangled.  */
+       if (DECL_NAMESPACE_SCOPE_P (decl) && DECL_EXTERN_C_P (decl))
+ 	return true;
+ 
        /* static variables are mangled.  */
        if (!DECL_EXTERNAL_LINKAGE_P (decl))
  	return false;
  
        /* Other variables at non-global scope are mangled.  */
        if (CP_DECL_CONTEXT (decl) != global_namespace)
  	return false;
diff -Nrcpad gcc-15-20260411/gcc/dwarf2out.cc gcc-15-20260418/gcc/dwarf2out.cc
*** gcc-15-20260411/gcc/dwarf2out.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/dwarf2out.cc	Sat Apr 18 22:32:06 2026
*************** dwarf2out_abstract_function (tree decl)
*** 23473,23478 ****
--- 23473,23479 ----
      }
  
    if (DECL_DECLARED_INLINE_P (decl)
+       && !DECL_ARTIFICIAL (decl)
        && lookup_attribute ("artificial", DECL_ATTRIBUTES (decl)))
      add_AT_flag (old_die, DW_AT_artificial, 1);
  
diff -Nrcpad gcc-15-20260411/gcc/fortran/ChangeLog gcc-15-20260418/gcc/fortran/ChangeLog
*** gcc-15-20260411/gcc/fortran/ChangeLog	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/fortran/ChangeLog	Sat Apr 18 22:32:06 2026
***************
*** 1,3 ****
--- 1,48 ----
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-04-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/100155
+ 	* trans-expr.cc (gfc_add_interface_mapping): 'new_sym' dummy
+ 	attribute set to zero.
+ 	(gfc_conv_procedure_call): Deallocate allocatable components of
+ 	a class argument, enclosed in parentheses,wrap up the parmse
+ 	and proceed to the next argument.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/102619
+ 	* trans-expr.cc (gfc_get_interface_mapping_array): Add argument
+ 	'assumed_rank_formal', which if true returns the descriptor in
+ 	'ifm'.
+ 	(gfc_add_interface_mapping): Detect an assumed rank formal arg
+ 	of a non-intrinsic function to set 'assumed_rank_formal' and
+ 	pass the descriptor to gfc_get_interface_mapping_array.
+ 
+ 2026-04-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-30  Christopher Albert  <albert@tugraz.at>
+ 
+ 	* scanner.cc (skip_free_oacc_sentinel): Clear openmp_flag only for
+ 	fresh OpenACC directive lines.
+ 	(skip_free_omp_sentinel): Clear openacc_flag only for fresh OpenMP
+ 	directive lines.
+ 
+ 2026-04-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/95879
+ 	PR fortran/95879
+ 	* parse.cc (fixup_st_func_formals): New function to update
+ 	statement function formal argument lists referencing a symbol
+ 	about to be freed.
+ 	(gfc_fixup_sibling_symbols): Call fixup_st_func_formals before
+ 	gfc_release_symbol.
+ 
  2026-04-06  Harald Anlauf  <anlauf@gmx.de>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260411/gcc/fortran/parse.cc gcc-15-20260418/gcc/fortran/parse.cc
*** gcc-15-20260411/gcc/fortran/parse.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/fortran/parse.cc	Sat Apr 18 22:32:06 2026
*************** parse_executable (gfc_statement st)
*** 6725,6730 ****
--- 6725,6752 ----
  }
  
  
+ /* Update statement function formal argument lists that reference OLD_SYM
+    to point to NEW_SYM instead.  This prevents use-after-free when
+    gfc_fixup_sibling_symbols replaces and frees a symbol that is also
+    used as a statement function dummy argument (PR95879).  */
+ 
+ static void
+ fixup_st_func_formals (gfc_symtree *st, gfc_symbol *old_sym,
+ 		       gfc_symbol *new_sym)
+ {
+   if (st == NULL)
+     return;
+ 
+   fixup_st_func_formals (st->left, old_sym, new_sym);
+   fixup_st_func_formals (st->right, old_sym, new_sym);
+ 
+   if (st->n.sym && st->n.sym->attr.proc == PROC_ST_FUNCTION)
+     for (gfc_formal_arglist *fa = st->n.sym->formal; fa; fa = fa->next)
+       if (fa->sym == old_sym)
+ 	fa->sym = new_sym;
+ }
+ 
+ 
  /* Fix the symbols for sibling functions.  These are incorrectly added to
     the child namespace as the parser didn't know about this procedure.  */
  
*************** gfc_fixup_sibling_symbols (gfc_symbol *s
*** 6776,6781 ****
--- 6798,6808 ----
  	  st->n.sym = sym;
  	  sym->refs++;
  
+ 	  /* Update statement function formal argument lists that still
+ 	     reference old_sym before releasing it (PR95879).  */
+ 	  fixup_st_func_formals (ns->sym_root, old_sym, sym);
+ 
+ 
  	  gfc_release_symbol (old_sym);
  	}
  
diff -Nrcpad gcc-15-20260411/gcc/fortran/scanner.cc gcc-15-20260418/gcc/fortran/scanner.cc
*** gcc-15-20260411/gcc/fortran/scanner.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/fortran/scanner.cc	Sat Apr 18 22:32:06 2026
*************** skip_free_oacc_sentinel (locus start, lo
*** 776,781 ****
--- 776,783 ----
        if ((c = next_char ()) == ' ' || c == '\t'
  	  || continue_flag)
  	{
+ 	  if (!continue_flag && (c == ' ' || c == '\t'))
+ 	    openmp_flag = 0;
  	  while (gfc_is_whitespace (c))
  	    c = next_char ();
  	  if (c != '\n' && c != '!')
*************** skip_free_omp_sentinel (locus start, loc
*** 816,821 ****
--- 818,825 ----
        if ((c = next_char ()) == ' ' || c == '\t'
  	  || continue_flag)
  	{
+ 	  if (!continue_flag && (c == ' ' || c == '\t'))
+ 	    openacc_flag = 0;
  	  while (gfc_is_whitespace (c))
  	    c = next_char ();
  	  if (c != '\n' && c != '!')
diff -Nrcpad gcc-15-20260411/gcc/fortran/trans-expr.cc gcc-15-20260418/gcc/fortran/trans-expr.cc
*** gcc-15-20260411/gcc/fortran/trans-expr.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/fortran/trans-expr.cc	Sat Apr 18 22:32:06 2026
*************** gfc_get_interface_mapping_charlen (gfc_i
*** 4774,4786 ****
  
  /* A subroutine of gfc_add_interface_mapping.  Return a descriptorless
     array variable that can be used as the actual argument for dummy
!    argument SYM.  Add any initialization code to BLOCK.  PACKED is as
!    for gfc_get_nodesc_array_type and DATA points to the first element
!    in the passed array.  */
  
  static tree
  gfc_get_interface_mapping_array (stmtblock_t * block, gfc_symbol * sym,
! 				 gfc_packed packed, tree data, tree len)
  {
    tree type;
    tree var;
--- 4774,4788 ----
  
  /* A subroutine of gfc_add_interface_mapping.  Return a descriptorless
     array variable that can be used as the actual argument for dummy
!    argument SYM, except in the case of assumed rank dummies of
!    non-intrinsic functions where the descriptor must be passed. Add any
!    initialization code to BLOCK. PACKED is as for gfc_get_nodesc_array_type
!    and DATA points to the first element in the passed array.  */
  
  static tree
  gfc_get_interface_mapping_array (stmtblock_t * block, gfc_symbol * sym,
! 				 gfc_packed packed, tree data, tree len,
! 				 bool assumed_rank_formal)
  {
    tree type;
    tree var;
*************** gfc_get_interface_mapping_array (stmtblo
*** 4789,4795 ****
      type = gfc_get_character_type_len (sym->ts.kind, len);
    else
      type = gfc_typenode_for_spec (&sym->ts);
!   type = gfc_get_nodesc_array_type (type, sym->as, packed,
  				    !sym->attr.target && !sym->attr.pointer
  				    && !sym->attr.proc_pointer);
  
--- 4791,4801 ----
      type = gfc_get_character_type_len (sym->ts.kind, len);
    else
      type = gfc_typenode_for_spec (&sym->ts);
! 
!   if (assumed_rank_formal)
!     type = TREE_TYPE (data);
!   else
!     type = gfc_get_nodesc_array_type (type, sym->as, packed,
  				    !sym->attr.target && !sym->attr.pointer
  				    && !sym->attr.proc_pointer);
  
*************** gfc_add_interface_mapping (gfc_interface
*** 4876,4881 ****
--- 4882,4888 ----
    new_sym->attr.allocatable = sym->attr.allocatable;
    new_sym->attr.flavor = sym->attr.flavor;
    new_sym->attr.function = sym->attr.function;
+   new_sym->attr.dummy = 0;
  
    /* Ensure that the interface is available and that
       descriptors are passed for array actual arguments.  */
*************** gfc_add_interface_mapping (gfc_interface
*** 4962,4976 ****
    else if (POINTER_TYPE_P (TREE_TYPE (se->expr))
  	   && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (se->expr))))
      {
        /* Get the actual argument's descriptor.  */
        desc = build_fold_indirect_ref_loc (input_location,
  				      se->expr);
  
        /* Create the replacement variable.  */
!       tmp = gfc_conv_descriptor_data_get (desc);
        value = gfc_get_interface_mapping_array (&se->pre, sym,
  					       PACKED_NO, tmp,
! 					       se->string_length);
  
        /* Use DESC to work out the upper bounds, strides and offset.  */
        gfc_set_interface_mapping_bounds (&se->pre, TREE_TYPE (value), desc);
--- 4969,4995 ----
    else if (POINTER_TYPE_P (TREE_TYPE (se->expr))
  	   && GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (se->expr))))
      {
+       bool assumed_rank_formal = false;
+ 
        /* Get the actual argument's descriptor.  */
        desc = build_fold_indirect_ref_loc (input_location,
  				      se->expr);
  
        /* Create the replacement variable.  */
!       if (sym->as && sym->as->type == AS_ASSUMED_RANK
! 	  && !(sym->ns && sym->ns->proc_name
! 	       && sym->ns->proc_name->attr.proc == PROC_INTRINSIC))
! 	{
! 	  assumed_rank_formal = true;
! 	  tmp = desc;
! 	}
!       else
! 	tmp = gfc_conv_descriptor_data_get (desc);
! 
        value = gfc_get_interface_mapping_array (&se->pre, sym,
  					       PACKED_NO, tmp,
! 					       se->string_length,
! 					       assumed_rank_formal);
  
        /* Use DESC to work out the upper bounds, strides and offset.  */
        gfc_set_interface_mapping_bounds (&se->pre, TREE_TYPE (value), desc);
*************** gfc_add_interface_mapping (gfc_interface
*** 4979,4985 ****
      /* Otherwise we have a packed array.  */
      value = gfc_get_interface_mapping_array (&se->pre, sym,
  					     PACKED_FULL, se->expr,
! 					     se->string_length);
  
    new_sym->backend_decl = value;
  }
--- 4998,5005 ----
      /* Otherwise we have a packed array.  */
      value = gfc_get_interface_mapping_array (&se->pre, sym,
  					     PACKED_FULL, se->expr,
! 					     se->string_length,
! 					     false);
  
    new_sym->backend_decl = value;
  }
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 7623,7628 ****
--- 7643,7680 ----
  					     : &parmse.pre;
  	      gfc_add_block_to_block (class_pre_block, &class_se.pre);
  	      gfc_add_block_to_block (&parmse.post, &class_se.post);
+ 
+ 	      if (e->expr_type == EXPR_OP
+ 		  && POINTER_TYPE_P (TREE_TYPE (parmse.expr))
+ 		  && GFC_CLASS_TYPE_P (TREE_TYPE (TREE_OPERAND (parmse.expr, 0))))
+ 		{
+ 		  tree cond;
+ 		  tree dealloc_expr = gfc_finish_block (&parmse.post);
+ 		  tmp = TREE_OPERAND (parmse.expr, 0);
+ 		  gfc_init_block (&parmse.post);
+ 		  cond = gfc_class_data_get (tmp);
+ 		  tmp = gfc_deallocate_alloc_comp_no_caf (e->ts.u.derived,
+ 							  tmp, e->rank, true);
+ 		  gfc_add_expr_to_block (&parmse.post, tmp);
+ 		  cond = gfc_class_data_get (TREE_OPERAND (parmse.expr, 0));
+ 		  cond = gfc_conv_descriptor_data_get (cond);
+ 		  cond = fold_build2_loc (input_location, NE_EXPR,
+ 					  logical_type_node, cond,
+ 					  build_int_cst (TREE_TYPE (cond), 0));
+ 		  tmp = build3_v (COND_EXPR, cond, dealloc_expr,
+ 				  build_empty_stmt (input_location));
+ 
+ 		  /* This specific case should not be processed further and so
+ 		     bundle everything up and proceed to the next argument.  */
+ 		  if (fsym && need_interface_mapping && e)
+ 		    gfc_add_interface_mapping (&mapping, fsym, &parmse, e);
+ 		  gfc_add_expr_to_block (&parmse.post, tmp);
+ 		  gfc_add_block_to_block (&se->pre, &parmse.pre);
+ 		  gfc_add_block_to_block (&post, &parmse.post);
+ 		  gfc_add_block_to_block (&se->finalblock, &parmse.finalblock);
+ 		  vec_safe_push (arglist, parmse.expr);
+ 		  continue;
+ 		}
  	    }
  	  else
  	    {
diff -Nrcpad gcc-15-20260411/gcc/ipa-modref.cc gcc-15-20260418/gcc/ipa-modref.cc
*** gcc-15-20260411/gcc/ipa-modref.cc	Sat Apr 11 22:32:08 2026
--- gcc-15-20260418/gcc/ipa-modref.cc	Sat Apr 18 22:32:07 2026
*************** ipa_merge_modref_summary_after_inlining
*** 5342,5354 ****
  				      : NULL;
    class modref_summary_lto *callee_info_lto
  		 = summaries_lto ? summaries_lto->get (edge->callee) : NULL;
    int flags = flags_from_decl_or_type (edge->callee->decl);
!   /* Combine in outer flags.  */
!   cgraph_node *n;
!   for (n = edge->caller; n->inlined_to; n = n->callers->caller)
!     flags |= flags_from_decl_or_type (n->decl);
!   flags |= flags_from_decl_or_type (n->decl);
!   bool ignore_stores = ignore_stores_p (edge->caller->decl, flags);
  
    if (!callee_info && to_info)
      {
--- 5342,5387 ----
  				      : NULL;
    class modref_summary_lto *callee_info_lto
  		 = summaries_lto ? summaries_lto->get (edge->callee) : NULL;
+ 
+   /* Compute effective ECF_CONST, ECF_PURE, ECF_NOVOPS,
+      ECF_LOOPING_CONST_OR_PURE and ignore_stores of the inlined function from
+      the point of view of caller of the function it is transitively inlined to.
+ 
+      Consider inline chain A->B->C, where (edge is the edge B->C).
+      ECF_CONST, ECF_PURE_ECF, ECF_NOVOPS and ignore_stores is the strongest
+      flag seen on the inline path.
+ 
+      ECF_LOOPING_CONST_OR_PURE is bit special since, for example if C
+      is ECF_CONST | ECF_LOOPING_CONST_OR_PURE and B is ECF_PURE, then outcome
+      is ECF_CONST and !ECF_LOOPING_CONST_OR_PURE.
+ 
+      Flags are later used to avoid merging info about side-effects of C which
+      are invisible to to the caller of A.  For example, it is possible for
+      const function to have local array and call non-const functions modifying
+      it.  */
+ 
    int flags = flags_from_decl_or_type (edge->callee->decl);
!   bool ignore_stores = ignore_stores_p (edge->callee->decl, flags);
! 
!   for (cgraph_node *n = edge->caller; n;
!        n = n->inlined_to ? n->callers->caller : NULL)
!     {
!       int f = flags_from_decl_or_type (n->decl);
! 
!       ignore_stores |= ignore_stores_p (n->decl, f);
!       /* If we see first CONST/PURE flag in the chain, take its
! 	 ECF_LOOPING_CONST_OR_PURE  */
!       if (!(flags & (ECF_CONST | ECF_PURE)) && (f & (ECF_CONST | ECF_PURE)))
! 	flags |= (f & ECF_LOOPING_CONST_OR_PURE);
!       /* If we already have ECF_CONST or ECF_PURE flag
! 	 just improve ECF_LOOPING_CONST_OR_PURE if possible.  */
!       else if ((flags & (ECF_CONST | ECF_PURE))
! 	       && (flags & ECF_LOOPING_CONST_OR_PURE)
! 	       && (f & (ECF_CONST | ECF_PURE))
! 	       && !(f & ECF_LOOPING_CONST_OR_PURE))
! 	flags &= ECF_LOOPING_CONST_OR_PURE;
!       flags |= f & (ECF_CONST | ECF_PURE | ECF_NOVOPS);
!     }
  
    if (!callee_info && to_info)
      {
diff -Nrcpad gcc-15-20260411/gcc/match.pd gcc-15-20260418/gcc/match.pd
*** gcc-15-20260411/gcc/match.pd	Sat Apr 11 22:32:09 2026
--- gcc-15-20260418/gcc/match.pd	Sat Apr 18 22:32:07 2026
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6738,6744 ****
  	 && !TYPE_UNSIGNED (TREE_TYPE (@1))
  	 && element_precision (@1)
  	      <= element_precision (@0)
! 	 && bitwise_equal_p (@1, @2))
      (if (TYPE_UNSIGNED (TREE_TYPE (@2)))
        (with {
  	tree stype = signed_type_for (TREE_TYPE (@2));
--- 6738,6746 ----
  	 && !TYPE_UNSIGNED (TREE_TYPE (@1))
  	 && element_precision (@1)
  	      <= element_precision (@0)
! 	 && bitwise_equal_p (@1, @2)
! 	 && (!VECTOR_TYPE_P (type)
! 	     || target_supports_op_p (type, ABS_EXPR, optab_vector)))
      (if (TYPE_UNSIGNED (TREE_TYPE (@2)))
        (with {
  	tree stype = signed_type_for (TREE_TYPE (@2));
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6756,6762 ****
  	 && !TYPE_UNSIGNED (TREE_TYPE (@1))
  	 && element_precision (@1)
  	      <= element_precision (@0)
! 	 && bitwise_equal_p (@1, @2))
        (if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (@2))
  	      && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (@2)))
  	    || TYPE_UNSIGNED (TREE_TYPE (@2)))
--- 6758,6767 ----
  	 && !TYPE_UNSIGNED (TREE_TYPE (@1))
  	 && element_precision (@1)
  	      <= element_precision (@0)
! 	 && bitwise_equal_p (@1, @2)
! 	 && (!VECTOR_TYPE_P (type)
! 	     || (target_supports_op_p (type, ABS_EXPR, optab_vector)
! 		 && target_supports_op_p (type, NEGATE_EXPR, optab_vector))))
        (if ((ANY_INTEGRAL_TYPE_P (TREE_TYPE (@2))
  	      && !TYPE_OVERFLOW_WRAPS (TREE_TYPE (@2)))
  	    || TYPE_UNSIGNED (TREE_TYPE (@2)))
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6795,6801 ****
    (simplify
     (cnd (cmp (minus@0 @1 @2) zerop) @0 (minus @2 @1))
     (if (!HONOR_SIGNED_ZEROS (type)
! 	&& !TYPE_UNSIGNED (type))
      (abs @0))))
   /* (A - B) <=/< 0 ? (A - B) : (B - A)    same as -abs (A - B) */
   (for cmp (le lt)
--- 6800,6808 ----
    (simplify
     (cnd (cmp (minus@0 @1 @2) zerop) @0 (minus @2 @1))
     (if (!HONOR_SIGNED_ZEROS (type)
! 	&& !TYPE_UNSIGNED (type)
! 	&& (!VECTOR_TYPE_P (type)
! 	    || target_supports_op_p (type, ABS_EXPR, optab_vector)))
      (abs @0))))
   /* (A - B) <=/< 0 ? (A - B) : (B - A)    same as -abs (A - B) */
   (for cmp (le lt)
*************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
*** 6804,6810 ****
     (if (!HONOR_SIGNED_ZEROS (type)
  	&& !TYPE_UNSIGNED (type))
      (if (ANY_INTEGRAL_TYPE_P (type)
! 	 && !TYPE_OVERFLOW_WRAPS (type))
       (with {
          tree utype = unsigned_type_for (type);
        }
--- 6811,6820 ----
     (if (!HONOR_SIGNED_ZEROS (type)
  	&& !TYPE_UNSIGNED (type))
      (if (ANY_INTEGRAL_TYPE_P (type)
! 	 && !TYPE_OVERFLOW_WRAPS (type)
! 	 && (!VECTOR_TYPE_P (type)
! 	     || (target_supports_op_p (type, ABS_EXPR, optab_vector)
! 		 && target_supports_op_p (type, NEGATE_EXPR, optab_vector))))
       (with {
          tree utype = unsigned_type_for (type);
        }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/ChangeLog gcc-15-20260418/gcc/testsuite/ChangeLog
*** gcc-15-20260411/gcc/testsuite/ChangeLog	Sat Apr 11 22:32:09 2026
--- gcc-15-20260418/gcc/testsuite/ChangeLog	Sat Apr 18 22:32:07 2026
***************
*** 1,3 ****
--- 1,140 ----
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-04-03  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/100155
+ 	* gfortran.dg/pr100155.f90: New test.
+ 
+ 2026-04-17  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-27  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/102619
+ 	* gfortran.dg/pr102619.f90: New test.
+ 
+ 2026-04-16  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/120338
+ 	* g++.dg/cpp0x/deleted19.C: New test.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121643
+ 	PR c++/123975
+ 	* g++.dg/coroutines/pr121643.C: New test.
+ 	* g++.dg/coroutines/pr123975.C: New test.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/121961
+ 	* g++.dg/asan/coroutines1.C: New test.
+ 
+ 2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-15  Jason Merrill  <jason@redhat.com>
+ 
+ 	PR c++/117133
+ 	PR c++/124768
+ 	PR c++/124773
+ 	* g++.dg/abi/mangle84.C: New test.
+ 
+ 2026-04-14  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	Backported from master:
+ 	2026-04-07  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	PR target/124704
+ 	* lib/target-supports.exp
+ 	(check_effective_target_vect_cmdline_neeed): Handle arm_mve
+ 	similarly to arm_neon.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124802
+ 	* gcc.dg/vect/vect-pr124802.c: New testcase.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124677
+ 	* gcc.dg/vect/vect-pr124677.c: New testcase.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR debug/124644
+ 	* g++.dg/debug/pr124644.C: New testcase.
+ 
+ 2026-04-14  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-03-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124555
+ 	* gcc.dg/torture/pr124555.c: New testcase.
+ 	* g++.dg/absvect.C: Restrict dump scan to x86-64 and force
+ 	-msse4 there.
+ 
+ 2026-04-14  Jan Hubicka  <jh@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-03-10  Jan Hubicka  <jh@suse.cz>
+ 		    Andrew Pinski  <andrew.pinski@oss.qualcomm.com>
+ 
+ 	PR tree-optimization/120987
+ 	* g++.dg/torture/pr120987-1.C: New test.
+ 
+ 2026-04-13  Vineet Gupta  <vineet.gupta@linux.dev>
+ 
+ 	PR target/124670
+ 	* gcc.target/bpf/zero-ext.c: New test.
+ 
+ 2026-04-13  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2026-03-11  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	PR target/123271
+ 	* gcc.target/arm/pr123271.c: New test.
+ 
+ 2026-04-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-30  Christopher Albert  <albert@tugraz.at>
+ 
+ 	* gfortran.dg/goacc/omp-108382.f90: New test.
+ 
+ 2026-04-13  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/95879
+ 	PR fortran/95879
+ 	* gfortran.dg/pr95879.f90: New test.
+ 
+ 2026-04-13  Hu, Lin1  <lin1.hu@intel.com>
+ 
+ 	PR target/124710
+ 	* gcc.target/i386/pr124710-1.c: New test.
+ 	* gcc.target/i386/pr124710-2.c: Ditto.
+ 
  2026-04-09  Xi Ruoyao  <xry111@xry111.site>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/abi/mangle84.C gcc-15-20260418/gcc/testsuite/g++.dg/abi/mangle84.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/abi/mangle84.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/g++.dg/abi/mangle84.C	Sat Apr 18 22:32:08 2026
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/124768
+ // { dg-final { scan-assembler "two:" } }
+ // { dg-final { scan-assembler-not "_ZN12_GLOBAL__N_13twoE:" } }
+ namespace { extern "C" { int two = 2; } }
+ int main() { return two; }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/absvect.C gcc-15-20260418/gcc/testsuite/g++.dg/absvect.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/absvect.C	Sat Apr 11 22:32:09 2026
--- gcc-15-20260418/gcc/testsuite/g++.dg/absvect.C	Sat Apr 18 22:32:08 2026
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-options "-Ofast -fdump-tree-phiopt1" } */
! /* { dg-final { scan-tree-dump-times " = ABS_EXPR <x_\[0-9]*\\\(D\\\)>;" 1 "phiopt1" } } */
  
  typedef int v2si __attribute__ ((vector_size (2 * sizeof(int))));
  typedef short v2hi __attribute__ ((vector_size (2 * sizeof(short))));
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-options "-Ofast -fdump-tree-phiopt1" } */
! /* { dg-additional-options "-msse4" { target { x86_64-*-* i?86-*-* } } } */
! /* { dg-final { scan-tree-dump-times " = ABS_EXPR <x_\[0-9]*\\\(D\\\)>;" 1 "phiopt1" { target { x86_64-*-* i?86-*-* } } } } */
  
  typedef int v2si __attribute__ ((vector_size (2 * sizeof(int))));
  typedef short v2hi __attribute__ ((vector_size (2 * sizeof(short))));
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/asan/coroutines1.C gcc-15-20260418/gcc/testsuite/g++.dg/asan/coroutines1.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/asan/coroutines1.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/g++.dg/asan/coroutines1.C	Sat Apr 18 22:32:08 2026
***************
*** 0 ****
--- 1,71 ----
+ // PR c++/121961
+ // { dg-additional-options "-fsanitize=address" }
+ // { dg-do run { target c++20 } }
+ 
+ #include <coroutine>
+ 
+ struct Result
+ {
+   int Value;
+ };
+ 
+ template<typename... Args>
+ struct std::coroutine_traits<Result, Args...>
+ {
+   struct promise_type;
+ 
+   struct Wrapper
+   {
+     std::coroutine_handle<promise_type> Handle_;
+     bool Own_ = false;
+ 
+     ~Wrapper ()
+     {
+       if (Own_)
+ 	Handle_.destroy ();
+     }
+ 
+     operator Result ()
+     {
+       Own_ = true;
+       return { Handle_.promise ().Value_ };
+     }
+   };
+ 
+   struct promise_type
+   {
+     int Value_ = 0;
+ 
+     std::suspend_never initial_suspend () noexcept { return {}; }
+     std::suspend_always final_suspend () noexcept { return {}; }
+     void unhandled_exception () {}
+ 
+     void return_value (int v) { Value_ = v; }
+ 
+     Wrapper get_return_object ()
+     {
+       return { std::coroutine_handle<promise_type>::from_promise (*this) };
+     }
+   };
+ };
+ 
+ struct Awaitable
+ {
+   int V_;
+   bool await_ready () const noexcept { return true; }
+   void await_suspend (std::coroutine_handle<>) const noexcept {}
+   int await_resume () const noexcept { return V_; }
+ };
+ 
+ Result simple ()
+ {
+   auto a = co_await Awaitable { 3 };
+   auto b = co_await Awaitable { 5 };
+   co_return a * b;
+ }
+ 
+ int main ()
+ {
+   auto r = simple ();
+   return r.Value == 15 ? 0 : 1;
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/coroutines/pr121643.C gcc-15-20260418/gcc/testsuite/g++.dg/coroutines/pr121643.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/coroutines/pr121643.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/g++.dg/coroutines/pr121643.C	Sat Apr 18 22:32:08 2026
***************
*** 0 ****
--- 1,29 ----
+ // PR c++/121643
+ 
+ #include <coroutine>
+ 
+ struct Detached {
+   struct promise_type {
+     Detached get_return_object() const noexcept { return {}; }
+     std::suspend_never initial_suspend() const noexcept { return {}; }
+     void return_void() const noexcept {}
+     void unhandled_exception() const noexcept { }
+     std::suspend_never final_suspend() const noexcept { return {}; }
+   };
+ };
+ 
+ struct Awaiter {
+   bool await_ready() noexcept { return true; }
+   void
+   await_suspend(std::coroutine_handle<> h,
+                 int sloc = 1)
+     noexcept
+   {}
+   void await_resume() noexcept {}
+ };
+ 
+ Detached
+ coroutine()
+ {
+   co_await Awaiter{};
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/coroutines/pr123975.C gcc-15-20260418/gcc/testsuite/g++.dg/coroutines/pr123975.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/coroutines/pr123975.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/g++.dg/coroutines/pr123975.C	Sat Apr 18 22:32:08 2026
***************
*** 0 ****
--- 1,52 ----
+ // PR c++/123975
+ // { dg-do run { target c++20 } }
+ #include <coroutine>
+ 
+ #if DEBUG
+ #define PRINTF(...) __builtin_printf (__VA_ARGS__)
+ #else
+ #define PRINTF(...)
+ #endif
+ 
+ struct task {
+   bool await_ready() const { return false; }
+   void await_suspend(auto &&h);
+   void await_resume() {}
+ 
+   struct promise_type {
+     task get_return_object() { return task{}; }
+     void return_void() {}
+     void unhandled_exception() {}
+     auto initial_suspend() noexcept { return std::suspend_never{}; }
+     auto final_suspend() noexcept { return std::suspend_never{}; }
+ 
+     promise_type();
+     promise_type(const promise_type& p)
+     { PRINTF ("%p: promise copied from %p\n", this, &p); }
+     ~promise_type() { PRINTF ("%p: promise destroyed\n", this); }
+   };
+ };
+ 
+ const task::promise_type *first;
+ task::promise_type::promise_type()
+ {
+   if (!first) first = this;
+   PRINTF ("%p: promise constructed\n", this);
+ }
+ void task::await_suspend (auto &&h)
+ {
+   auto &p = h.promise();
+   PRINTF ("suspend %p\n", &h.promise());
+   if (&p != first) __builtin_abort ();
+ }
+ 
+ task f() { co_return; }
+ 
+ task g() {
+   co_await f();
+ }
+ 
+ int main()
+ {
+   g();
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/cpp0x/deleted19.C gcc-15-20260418/gcc/testsuite/g++.dg/cpp0x/deleted19.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/cpp0x/deleted19.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/g++.dg/cpp0x/deleted19.C	Sat Apr 18 22:32:08 2026
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/120338
+ // { dg-do compile { target c++11 } }
+ 
+ int main() = delete;  // { dg-error "cannot be deleted" }
+ int main() {}	      // { dg-error "redefinition" }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/debug/pr124644.C gcc-15-20260418/gcc/testsuite/g++.dg/debug/pr124644.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/debug/pr124644.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/g++.dg/debug/pr124644.C	Sat Apr 18 22:32:08 2026
***************
*** 0 ****
--- 1,95 ----
+ // { dg-do compile }
+ // { dg-options "-O -w -g1 -std=gnu++20 -fchecking" }
+ 
+ template <int __v> struct integral_constant {
+   static constexpr int value = __v;
+ };
+ struct __conjunction_impl {
+   using type = integral_constant<1>;
+ };
+ template <bool, typename _Iftrue, typename> using conditional_t = _Iftrue;
+ template <int> struct _Fixed;
+ template <int> struct _VecBuiltin;
+ template <int _Np> using fixed_size = _Fixed<_Np>;
+ template <typename...> struct _SimdTuple;
+ template <int> struct __fixed_size_storage;
+ template <typename, int _Np>
+ using __fixed_size_storage_t = __fixed_size_storage<_Np>::type;
+ struct _SimdWrapperBase {
+   [[__gnu__::__artificial__]] constexpr _SimdWrapperBase(int);
+ };
+ struct _SimdWrapper : _SimdWrapperBase {
+   using _SimdWrapperBase::_SimdWrapperBase;
+ };
+ template <unsigned long> struct __deduce_impl;
+ template <typename, long _Np> using deduce_t = __deduce_impl<_Np>::type;
+ template <template <int> class _Abi, int _Bytes> struct __find_next_valid_abi {
+   static auto _S_choose() { return _Abi<_Bytes>(); }
+   using type = decltype(_S_choose());
+ };
+ template <template <int> class...> struct _AbiList;
+ const int _S_determine_best_abi__Bytes = sizeof(int);
+ template <template <int> class _A0, template <int> class... _Rest>
+ struct _AbiList<_A0, _Rest...> {
+   template <typename, int> static auto _S_determine_best_abi() {
+     return typename __find_next_valid_abi<_A0,
+                                           _S_determine_best_abi__Bytes>::type{};
+   }
+   template <typename _Tp, int _Np>
+   using _BestAbi = decltype(_S_determine_best_abi<_Tp, _Np>());
+ };
+ template <typename _Abi> struct _SimdTraits : _Abi::__traits<int> {};
+ template <int _Np> struct __deduce_fixed_size_fallback {
+   using type = fixed_size<_Np>;
+ };
+ template <unsigned long _Np>
+ struct __deduce_impl : __deduce_fixed_size_fallback<_Np> {};
+ template <typename _Abi> struct simd {
+   using _Traits = _SimdTraits<_Abi>;
+   using _Impl = _Traits::_SimdImpl;
+   using abi_type = _Abi;
+   template <typename _Up> simd(_Up __x) : _M_data(_Impl::_S_broadcast(__x)) {}
+   friend void operator!=(simd, simd);
+   _Traits::_SimdMember _M_data;
+ };
+ struct _SimdTupleData {
+   _SimdWrapper second;
+ };
+ template <typename _Tp, typename _Abi0, typename... _Abis>
+ struct _SimdTuple<_Tp, _Abi0, _Abis...> : _SimdTupleData {
+   template <typename _Fp> static _SimdTuple _S_generate(_Fp) { return {0}; }
+ };
+ template <typename _Tp, int _Np, typename,
+           typename = simd<_AbiList<_VecBuiltin>::_BestAbi<_Tp, _Np>>>
+ struct __fixed_size_storage_builder;
+ template <int _Np>
+ struct __fixed_size_storage
+     : __fixed_size_storage_builder<long, _Np, _SimdTuple<>> {};
+ template <typename _Tp, int _Np, typename... _As, typename _Next>
+ struct __fixed_size_storage_builder<_Tp, _Np, _SimdTuple<_As...>, _Next> {
+   using type = _SimdTuple<_Tp, typename _Next::abi_type>;
+ };
+ template <int _Np> struct _SimdImplFixedSize {
+   template <typename _Tp> using _SimdMember = __fixed_size_storage_t<_Tp, _Np>;
+   template <typename _Tp> static _SimdMember<_Tp> _S_broadcast(_Tp) {
+     return _SimdMember<_Tp>::_S_generate([] {});
+   }
+ };
+ template <int _Np> struct _Fixed {
+   template <typename> struct __traits {
+     using _SimdImpl = _SimdImplFixedSize<_Np>;
+     using _SimdMember = __fixed_size_storage_t<int, _Np>;
+   };
+ };
+ struct _GnuTraits {
+   using _SimdImpl = long;
+   using _SimdMember = _SimdWrapper;
+ };
+ template <int> struct _VecBuiltin {
+   template <typename>
+   static constexpr bool _S_is_valid_v = __conjunction_impl::type ::value;
+   template <typename _Tp>
+   using __traits = conditional_t<_S_is_valid_v<_Tp>, _GnuTraits, int>;
+ };
+ template <typename U, int N> using V = simd<deduce_t<U, N>>;
+ void reduce(V<long, 4> x) { x != 1; }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/g++.dg/torture/pr120987-1.C gcc-15-20260418/gcc/testsuite/g++.dg/torture/pr120987-1.C
*** gcc-15-20260411/gcc/testsuite/g++.dg/torture/pr120987-1.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/g++.dg/torture/pr120987-1.C	Sat Apr 18 22:32:08 2026
***************
*** 0 ****
--- 1,57 ----
+ // { dg-do run { target c++11 } }
+ // { dg-skip-if "requires hosted libstdc++ for string/memory" { ! hostedlib } }
+ // PR tree-optimization/120987
+ 
+ #include <memory>
+ #include <string>
+ #include <cstdlib>
+ 
+ #define ERROR_STRING  "012345678901234567"
+ 
+ struct gdb_exception
+ {
+   gdb_exception (const char *s)
+     : message (std::make_shared<std::string> (s))
+   {}
+ 
+   explicit gdb_exception (gdb_exception &&other) noexcept
+     : message (std::move (other.message))
+   {
+     volatile int a = 1;
+     if (a != 1)
+       abort ();
+   }
+   
+ 
+   std::shared_ptr<std::string> message;
+ };
+ 
+ void __attribute__((noinline, noclone))
+ throw_exception (gdb_exception &&exception)
+ {
+   throw gdb_exception (std::move (exception));
+ }
+ 
+ static void __attribute__((noinline, noclone))
+ parse_linespec (void)
+ {
+   struct gdb_exception file_exception (ERROR_STRING);
+   throw_exception (std::move (file_exception));
+ }
+ 
+ int
+ main (void)
+ {
+   try
+     {
+       parse_linespec ();
+     }
+   catch (const gdb_exception &e)
+     {
+       if (*e.message != ERROR_STRING)
+         __builtin_abort();
+       return 0;
+     }
+ 
+   __builtin_abort();
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gcc.dg/torture/pr124555.c gcc-15-20260418/gcc/testsuite/gcc.dg/torture/pr124555.c
*** gcc-15-20260411/gcc/testsuite/gcc.dg/torture/pr124555.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gcc.dg/torture/pr124555.c	Sat Apr 18 22:32:09 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-additional-options "-fwrapv" } */
+ 
+ int vsad8_c_y;
+ char *vsad8_c_s1, *vsad8_c_s2;
+ long vsad8_c_stride;
+ int vsad8_c()
+ {
+   int score, x;
+   for (; vsad8_c_y; vsad8_c_y++)
+     {
+       x = 0;
+       for (; x < 8; x++)
+ 	score += (vsad8_c_s1[x] - vsad8_c_s2[x] - vsad8_c_s1[x + vsad8_c_stride]
+ 	    + vsad8_c_s2[x + vsad8_c_stride]) >= 0
+ 	    ? vsad8_c_s1[x] - vsad8_c_s2[x] -
+ 	    vsad8_c_s1[x + vsad8_c_stride] +
+ 	    vsad8_c_s2[x + vsad8_c_stride]
+ 	    : -(vsad8_c_s1[x] - vsad8_c_s2[x] -
+ 		vsad8_c_s1[x + vsad8_c_stride] +
+ 		vsad8_c_s2[x + vsad8_c_stride]);
+       vsad8_c_s1 += vsad8_c_stride;
+       vsad8_c_s2 += vsad8_c_stride;
+     }
+   return score;
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gcc.dg/vect/vect-pr124677.c gcc-15-20260418/gcc/testsuite/gcc.dg/vect/vect-pr124677.c
*** gcc-15-20260411/gcc/testsuite/gcc.dg/vect/vect-pr124677.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gcc.dg/vect/vect-pr124677.c	Sat Apr 18 22:32:10 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-tree-copy-prop" } */
+ 
+ int printf(const char *, ...);
+ int a, b, c, d, e;
+ int g(int h) { return h >> a; }
+ int main()
+ {
+   int j = c;
+   while (a)
+     while (1)
+       {
+ 	while (1)
+ 	  {
+ 	    for (e = 0; e < 16; e++)
+ 	      {
+ 		d = b;
+ 		j && (b = g(2));
+ 	      }
+ 	    break;
+ 	  }
+ 	printf("%d\n", b);
+       }
+   return 0;
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gcc.dg/vect/vect-pr124802.c gcc-15-20260418/gcc/testsuite/gcc.dg/vect/vect-pr124802.c
*** gcc-15-20260411/gcc/testsuite/gcc.dg/vect/vect-pr124802.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gcc.dg/vect/vect-pr124802.c	Sat Apr 18 22:32:10 2026
***************
*** 0 ****
--- 1,118 ----
+ /* { dg-skip-if "requires x86 intrinsic header" { ! { x86_64-*-* i?86-*-* } } } */
+ /* { dg-require-effective-target avx2_runtime } */
+ /* { dg-require-effective-target fma } */
+ /* { dg-additional-options "-mavx2 -mfma" } */
+ 
+ /* PR tree-optimization/NNNNN
+    Wrong code with AVX2 complex double multiply at -O2.
+    Reduced from a sparse matrix kernel.  */
+ 
+ #include <immintrin.h>
+ 
+ #include "tree-vect.h"
+ 
+ static inline __m256d
+ cmul (__m256d a, __m256d b)
+ {
+   __m256d t = _mm256_mul_pd (_mm256_movedup_pd (_mm256_permute_pd (a, 0x5)), b);
+   return _mm256_fmaddsub_pd (_mm256_movedup_pd (a), b,
+      _mm256_permute_pd (t, 0x5));
+ }
+ 
+ __attribute__((noipa)) void
+ kern (long n, long nnz, const double *alpha, const double *val,
+       const long *col, const double *B, long ldb, double *C)
+ {
+   for (long p = 0; p < nnz; p += 4)
+     {
+       long blkr, p0, p1, p2, p3;
+       long left = nnz - p;
+       if (left == 1)      { blkr=1; p0=p; p1=p;   p2=p;   p3=p;   }
+       else if (left == 2) { blkr=2; p0=p; p1=p+1; p2=p;   p3=p;   }
+       else if (left == 3) { blkr=3; p0=p; p1=p+1; p2=p+2; p3=p;   }
+       else                { blkr=4; p0=p; p1=p+1; p2=p+2; p3=p+3; }
+ 
+       double ar0 = alpha[0]*val[p0*2] - alpha[1]*val[p0*2+1];
+       double ai0 = alpha[0]*val[p0*2+1] + alpha[1]*val[p0*2];
+       double ar1 = alpha[0]*val[p1*2] - alpha[1]*val[p1*2+1];
+       double ai1 = alpha[0]*val[p1*2+1] + alpha[1]*val[p1*2];
+       double ar2 = alpha[0]*val[p2*2] - alpha[1]*val[p2*2+1];
+       double ai2 = alpha[0]*val[p2*2+1] + alpha[1]*val[p2*2];
+       double ar3 = alpha[0]*val[p3*2] - alpha[1]*val[p3*2+1];
+       double ai3 = alpha[0]*val[p3*2+1] + alpha[1]*val[p3*2];
+ 
+       long b0 = col[p0]*ldb*2, b1 = col[p1]*ldb*2;
+       long b2 = col[p2]*ldb*2, b3 = col[p3]*ldb*2;
+ 
+       for (long j = 0; j < n * 2; j += 4)
+ {
+   __m256d cv  = _mm256_loadu_pd (&C[j]);
+   __m256d bv0 = _mm256_loadu_pd (&B[j + b0]);
+   __m256d bv1 = _mm256_loadu_pd (&B[j + b1]);
+   __m256d bv2 = _mm256_loadu_pd (&B[j + b2]);
+   __m256d bv3 = _mm256_loadu_pd (&B[j + b3]);
+   __m256d av0 = _mm256_set_pd (ai0, ar0, ai0, ar0);
+   __m256d av1 = _mm256_set_pd (ai1, ar1, ai1, ar1);
+   __m256d av2 = _mm256_set_pd (ai2, ar2, ai2, ar2);
+   __m256d av3 = _mm256_set_pd (ai3, ar3, ai3, ar3);
+ 
+   switch (blkr)
+     {
+     case 4: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     cv = _mm256_add_pd (cmul (av1, bv1), cv);
+     cv = _mm256_add_pd (cmul (av2, bv2), cv);
+     cv = _mm256_add_pd (cmul (av3, bv3), cv);
+     break;
+     case 3: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     cv = _mm256_add_pd (cmul (av1, bv1), cv);
+     cv = _mm256_add_pd (cmul (av2, bv2), cv);
+     break;
+     case 2: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     cv = _mm256_add_pd (cmul (av1, bv1), cv);
+     break;
+     case 1: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     break;
+     }
+   _mm256_storeu_pd (&C[j], cv);
+ }
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   check_vect ();
+ 
+   double alpha[2] = { 1.0, -2.0 };
+   double val[] = { 5, 12, 5, 40, -1, 5 };
+   long col[] = { 0, 1, 2 };
+   double B[] = {
+     10, 240, 24, 523,
+     -23, 233, 55, 28,
+     1, 2, 2, 52
+   };
+   double ref[4] = { 0 }, res[4] = { 0 };
+   int i, j, k;
+ 
+   for (k = 0; k < 3; k++)
+     {
+       double ar = alpha[0]*val[k*2] - alpha[1]*val[k*2+1];
+       double ai = alpha[0]*val[k*2+1] + alpha[1]*val[k*2];
+       for (j = 0; j < 2; j++)
+ 	{
+ 	  ref[j*2]   += ar*B[(col[k]*2+j)*2] - ai*B[(col[k]*2+j)*2+1];
+ 	  ref[j*2+1] += ar*B[(col[k]*2+j)*2+1] + ai*B[(col[k]*2+j)*2];
+ 	}
+     }
+ 
+   kern (2, 3, alpha, val, col, B, 2, res);
+ 
+   for (i = 0; i < 4; i++)
+     {
+       double d = res[i] - ref[i];
+       if (d * d > 1e-10)
+ 	__builtin_abort ();
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gcc.target/arm/pr123271.c gcc-15-20260418/gcc/testsuite/gcc.target/arm/pr123271.c
*** gcc-15-20260411/gcc/testsuite/gcc.target/arm/pr123271.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gcc.target/arm/pr123271.c	Sat Apr 18 22:32:10 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-options "-O2 -ftrapv" } */
+ /* { dg-final { check-function-bodies "**" "" "" } } */
+ 
+ int sub(int a, int b)
+ {
+   return a - b;
+ }
+ 
+ /*
+ ** sub:
+ ** ...
+ ** (
+ **	bl	__subvsi3
+ ** |
+    Not generated yet, but would be equally acceptable.
+ **	subs	r0, r0, r1
+ **	bv[sc]	.*
+ ** )
+ ** ...
+ */
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gcc.target/bpf/zero-ext.c gcc-15-20260418/gcc/testsuite/gcc.target/bpf/zero-ext.c
*** gcc-15-20260411/gcc/testsuite/gcc.target/bpf/zero-ext.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gcc.target/bpf/zero-ext.c	Sat Apr 18 22:32:11 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mcpu=v4" } */
+ 
+ int bar_int(void);
+ 
+ int foo_int(void) {
+       if (bar_int() != 1) return 0; else return 1;
+ }
+ 
+ /* { dg-final { scan-assembler-not {r0 = r0} } } */
+ /* { dg-final { scan-assembler-times {w0 = w0} 1 } } */
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gcc.target/i386/pr124710-1.c gcc-15-20260418/gcc/testsuite/gcc.target/i386/pr124710-1.c
*** gcc-15-20260411/gcc/testsuite/gcc.target/i386/pr124710-1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gcc.target/i386/pr124710-1.c	Sat Apr 18 22:32:11 2026
***************
*** 0 ****
--- 1,16 ----
+ /* PR target/124710 */
+ /* { dg-do assemble } */
+ /* { dg-options "-O -masm=intel -mavx10.2" } */
+ /* { dg-require-effective-target masm_intel } */
+ /* { dg-require-effective-target avx10_2 } */
+ 
+ #include <immintrin.h>
+ 
+ __m128i v;
+ __m128 w;
+ 
+ void
+ foo()
+ {
+   v = _mm_mask_cvtts_ps_epi64(v, -1, w);
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gcc.target/i386/pr124710-2.c gcc-15-20260418/gcc/testsuite/gcc.target/i386/pr124710-2.c
*** gcc-15-20260411/gcc/testsuite/gcc.target/i386/pr124710-2.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gcc.target/i386/pr124710-2.c	Sat Apr 18 22:32:11 2026
***************
*** 0 ****
--- 1,57 ----
+ /* PR target/124710 */
+ /* { dg-do assemble } */
+ /* { dg-options "-O2 -masm=intel -mavx10.2" } */
+ /* { dg-require-effective-target masm_intel } */
+ /* { dg-require-effective-target avx10_2 } */
+ 
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+ typedef double __v2df __attribute__ ((__vector_size__ (16)));
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ 
+ /* vcvttps2qqs 128-bit: source V4SF is half-width of dest V2DI,
+    Intel syntax needs "qword ptr" for memory operand.
+    At -O2 the compiler folds *p into the instruction.  */
+ 
+ __v2di
+ test_vcvttps2qqs128 (__v4sf *p)
+ {
+   return (__v2di) __builtin_ia32_cvttps2qqs128_mask (*p, (__v2di) { 0, 0 },
+ 						     (unsigned char) -1);
+ }
+ 
+ __v2di
+ test_vcvttps2uqqs128 (__v4sf *p)
+ {
+   return (__v2di) __builtin_ia32_cvttps2uqqs128_mask (*p, (__v2di) { 0, 0 },
+ 						      (unsigned char) -1);
+ }
+ 
+ /* vcvttsd2sis: source V2DF extracts scalar double (64-bit),
+    Intel syntax needs "qword ptr" for memory operand.  */
+ 
+ int
+ test_vcvttsd2sis32 (__v2df *p)
+ {
+   return (int) __builtin_ia32_cvttsd2sis32_round (*p, 4);
+ }
+ 
+ unsigned int
+ test_vcvttsd2usis32 (__v2df *p)
+ {
+   return (unsigned int) __builtin_ia32_cvttsd2usis32_round (*p, 4);
+ }
+ 
+ /* vcvttss2sis: source V4SF extracts scalar float (32-bit),
+    Intel syntax needs "dword ptr" for memory operand.  */
+ 
+ int
+ test_vcvttss2sis32 (__v4sf *p)
+ {
+   return (int) __builtin_ia32_cvttss2sis32_round (*p, 4);
+ }
+ 
+ unsigned int
+ test_vcvttss2usis32 (__v4sf *p)
+ {
+   return (unsigned int) __builtin_ia32_cvttss2usis32_round (*p, 4);
+ }
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90 gcc-15-20260418/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90
*** gcc-15-20260411/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gfortran.dg/goacc/omp-108382.f90	Sat Apr 18 22:32:12 2026
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fopenmp" }
+ 
+ module m_108382_a
+   implicit none
+   integer :: x, y
+ 
+ !$acc declare copyin(x, &
+ !$acc   y)
+ !$omp declare target(x, &
+ !$omp   y)
+ end module m_108382_a
+ 
+ module m_108382_b
+   implicit none
+   integer :: x, y
+ 
+ !$omp declare target(x, &
+ !$omp   y)
+ !$acc declare copyin(x, &
+ !$acc   y)
+ end module m_108382_b
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gfortran.dg/pr100155.f90 gcc-15-20260418/gcc/testsuite/gfortran.dg/pr100155.f90
*** gcc-15-20260411/gcc/testsuite/gfortran.dg/pr100155.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gfortran.dg/pr100155.f90	Sat Apr 18 22:32:12 2026
***************
*** 0 ****
--- 1,43 ----
+ ! { dg-do run }
+ ! Test the fix for PR100155 in which the parentheses caused an ICE
+ ! in evaluation the specification expression for 'z'. Note that the
+ ! recursive attribute is not a factor in the ICE (see PR105168).
+ ! Contributed by Gerhard Steinmetz  <gscfq@t-online.de>
+ !
+ module m1
+    type t
+      integer, allocatable :: i
+    end type
+    integer :: ctr = 0, vals = 0
+    integer, parameter :: no_calls = 6
+ contains
+    recursive function f(x) result(z)
+       class(t) :: x(:)
+       type(t) :: z(size(x)+1)
+       class(t), allocatable :: a(:)
+       type(t), allocatable :: b(:)
+       ctr = ctr + 1
+       allocate (t :: a(1))
+       a(1)%i = ctr
+       if (ctr <= no_calls - 1) then
+           b = f((a)) ! <== parentheses
+       else
+           allocate (b(a(1)%i))
+           b(1)%i = ctr
+       end if
+       vals = vals + b(1)%i
+       z(1) = t(b(1)%i)
+    end 
+ end module m1
+ 
+   use m1
+   type (t) :: dummy(1)
+   type(t), allocatable :: res(:)
+   dummy = t(1)
+   res = f (dummy);
+   if (ctr /= no_calls) stop 1
+   if (vals /= (2 * sum ([(i, i = 1, no_calls)]) - no_calls)) stop 2
+   if (size (res) /= 2) stop 3
+   deallocate (res)
+   deallocate (dummy(1)%i)
+ end
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gfortran.dg/pr102619.f90 gcc-15-20260418/gcc/testsuite/gfortran.dg/pr102619.f90
*** gcc-15-20260411/gcc/testsuite/gfortran.dg/pr102619.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gfortran.dg/pr102619.f90	Sat Apr 18 22:32:12 2026
***************
*** 0 ****
--- 1,23 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR102619.
+ !
+ ! Contributed by Gerhard Steinmetz  <gscfq@t-online.de>
+ !
+ program p
+   implicit none
+   real :: w(2,3)
+   real, allocatable :: y(:)
+   y = h(w)                        ! Caused an ICE
+   if (size (y) /= product (shape (w))) stop 1
+   if (any (int (y) /= [1,2,3,4,5,6])) stop 2
+   deallocate (y)
+ contains
+   function h(x) result (g)
+     real :: x(..)
+     real :: g(product(shape(x)))
+     integer :: i
+     if (any (shape (x) /= shape (w))) stop 3
+     g = [(real(i),i=1,size(g))]
+   end
+ end
diff -Nrcpad gcc-15-20260411/gcc/testsuite/gfortran.dg/pr95879.f90 gcc-15-20260418/gcc/testsuite/gfortran.dg/pr95879.f90
*** gcc-15-20260411/gcc/testsuite/gfortran.dg/pr95879.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260418/gcc/testsuite/gfortran.dg/pr95879.f90	Sat Apr 18 22:32:12 2026
***************
*** 0 ****
--- 1,30 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f2018" }
+ ! PR fortran/95879
+ ! Contributed by G. Steinmetz <gscfq@t-online.de>
+ !
+ ! Use-after-free in gfc_resolve_formal_arglist when a contained subroutine
+ ! has a statement function whose dummy argument name matches a symbol
+ ! replaced by gfc_fixup_sibling_symbols.
+ 
+ module m1
+ contains
+    integer function f(x) bind(c)
+       use iso_c_binding
+    contains
+       subroutine s
+          c_funloc(f) = x  ! { dg-warning "Obsolescent feature: Statement function" }
+       end
+    end
+ end
+ 
+ module m2
+ contains
+    integer function f(x)
+       use iso_c_binding
+    contains
+       subroutine s
+          c_funloc(f) = x  ! { dg-warning "Obsolescent feature: Statement function" }
+       end
+    end
+ end
diff -Nrcpad gcc-15-20260411/gcc/testsuite/lib/target-supports.exp gcc-15-20260418/gcc/testsuite/lib/target-supports.exp
*** gcc-15-20260411/gcc/testsuite/lib/target-supports.exp	Sat Apr 11 22:32:15 2026
--- gcc-15-20260418/gcc/testsuite/lib/target-supports.exp	Sat Apr 18 22:32:13 2026
*************** proc check_effective_target_vect_cmdline
*** 4441,4447 ****
  	     || ([istarget powerpc*-*-*]
  		 && [check_effective_target_powerpc_altivec])
  	     || ([istarget sparc*-*-*] && [check_effective_target_sparc_vis])
! 	     || ([istarget arm*-*-*] && [check_effective_target_arm_neon])
  	     || [istarget aarch64*-*-*]
  	     || [istarget amdgcn*-*-*]
  	     || [istarget riscv*-*-*]} {
--- 4441,4449 ----
  	     || ([istarget powerpc*-*-*]
  		 && [check_effective_target_powerpc_altivec])
  	     || ([istarget sparc*-*-*] && [check_effective_target_sparc_vis])
! 	     || ([istarget arm*-*-*] && ([check_effective_target_arm_neon]
! 					 || [check_effective_target_arm_mve])
! 		 )
  	     || [istarget aarch64*-*-*]
  	     || [istarget amdgcn*-*-*]
  	     || [istarget riscv*-*-*]} {
diff -Nrcpad gcc-15-20260411/gcc/tree-vect-loop.cc gcc-15-20260418/gcc/tree-vect-loop.cc
*** gcc-15-20260411/gcc/tree-vect-loop.cc	Sat Apr 11 22:32:16 2026
--- gcc-15-20260418/gcc/tree-vect-loop.cc	Sat Apr 18 22:32:13 2026
*************** vectorizable_recurr (loop_vec_info loop_
*** 9798,9804 ****
    edge le = loop_latch_edge (LOOP_VINFO_LOOP (loop_vinfo));
    gimple *latch_def = SSA_NAME_DEF_STMT (PHI_ARG_DEF_FROM_EDGE (phi, le));
    gimple_stmt_iterator gsi2 = gsi_for_stmt (latch_def);
!   gsi_next (&gsi2);
  
    for (unsigned i = 0; i < ncopies; ++i)
      {
--- 9798,9810 ----
    edge le = loop_latch_edge (LOOP_VINFO_LOOP (loop_vinfo));
    gimple *latch_def = SSA_NAME_DEF_STMT (PHI_ARG_DEF_FROM_EDGE (phi, le));
    gimple_stmt_iterator gsi2 = gsi_for_stmt (latch_def);
!   do
!     {
!       gsi_next (&gsi2);
!     }
!   /* Skip inserted vectorized stmts for the latch definition.  We have to
!      insert after those.  */
!   while (gimple_uid (gsi_stmt (gsi2)) == 0);
  
    for (unsigned i = 0; i < ncopies; ++i)
      {
diff -Nrcpad gcc-15-20260411/gcc/tree-vect-slp-patterns.cc gcc-15-20260418/gcc/tree-vect-slp-patterns.cc
*** gcc-15-20260411/gcc/tree-vect-slp-patterns.cc	Sat Apr 11 22:32:16 2026
--- gcc-15-20260418/gcc/tree-vect-slp-patterns.cc	Sat Apr 18 22:32:13 2026
*************** static inline bool
*** 302,307 ****
--- 302,308 ----
  vect_match_expression_p (slp_tree node, tree_code code)
  {
    if (!node
+       || SLP_TREE_CODE (node) == VEC_PERM_EXPR
        || !SLP_TREE_REPRESENTATIVE (node))
      return false;
  
diff -Nrcpad gcc-15-20260411/libstdc++-v3/ChangeLog gcc-15-20260418/libstdc++-v3/ChangeLog
*** gcc-15-20260411/libstdc++-v3/ChangeLog	Sat Apr 11 22:32:17 2026
--- gcc-15-20260418/libstdc++-v3/ChangeLog	Sat Apr 18 22:32:15 2026
***************
*** 1,3 ****
--- 1,15 ----
+ 2026-04-16  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-14  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (stdbit_h, stdckdint_h): Define.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/c_compatibility/stdbit.h (__cpp_lib_stdbit_h): Define
+ 	and use it in guards.
+ 	* include/c_compatibility/stdckdint.h (__cpp_lib_stdckdint_h):
+ 	Define and use it in guards.
+ 
  2026-04-07  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260411/libstdc++-v3/include/bits/version.def gcc-15-20260418/libstdc++-v3/include/bits/version.def
*** gcc-15-20260411/libstdc++-v3/include/bits/version.def	Sat Apr 11 22:32:17 2026
--- gcc-15-20260418/libstdc++-v3/include/bits/version.def	Sat Apr 18 22:32:15 2026
*************** ftms = {
*** 1669,1674 ****
--- 1669,1690 ----
  };
  
  ftms = {
+   name = stdbit_h;
+   values = {
+     v = 202603;
+     cxxmin = 26;
+   };
+ };
+ 
+ ftms = {
+   name = stdckdint_h;
+   values = {
+     v = 202603;
+     cxxmin = 26;
+   };
+ };
+ 
+ ftms = {
    name = adaptor_iterator_pair_constructor;
    values = {
      v = 202106;
diff -Nrcpad gcc-15-20260411/libstdc++-v3/include/bits/version.h gcc-15-20260418/libstdc++-v3/include/bits/version.h
*** gcc-15-20260411/libstdc++-v3/include/bits/version.h	Sat Apr 11 22:32:17 2026
--- gcc-15-20260418/libstdc++-v3/include/bits/version.h	Sat Apr 18 22:32:18 2026
***************
*** 1860,1865 ****
--- 1860,1885 ----
  #endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */
  #undef __glibcxx_want_stdatomic_h
  
+ #if !defined(__cpp_lib_stdbit_h)
+ # if (__cplusplus >  202302L)
+ #  define __glibcxx_stdbit_h 202603L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdbit_h)
+ #   define __cpp_lib_stdbit_h 202603L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_stdbit_h) */
+ #undef __glibcxx_want_stdbit_h
+ 
+ #if !defined(__cpp_lib_stdckdint_h)
+ # if (__cplusplus >  202302L)
+ #  define __glibcxx_stdckdint_h 202603L
+ #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdckdint_h)
+ #   define __cpp_lib_stdckdint_h 202603L
+ #  endif
+ # endif
+ #endif /* !defined(__cpp_lib_stdckdint_h) */
+ #undef __glibcxx_want_stdckdint_h
+ 
  #if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
  # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
  #  define __glibcxx_adaptor_iterator_pair_constructor 202106L
diff -Nrcpad gcc-15-20260411/libstdc++-v3/include/c_compatibility/stdbit.h gcc-15-20260418/libstdc++-v3/include/c_compatibility/stdbit.h
*** gcc-15-20260411/libstdc++-v3/include/c_compatibility/stdbit.h	Sat Apr 11 22:32:17 2026
--- gcc-15-20260418/libstdc++-v3/include/c_compatibility/stdbit.h	Sat Apr 18 22:32:15 2026
***************
*** 29,35 ****
  #ifndef _GLIBCXX_STDBIT_H
  #define _GLIBCXX_STDBIT_H
  
! #if __cplusplus > 202302L
  #include <bit>
  
  #define __STDC_VERSION_STDBIT_H__ 202311L
--- 29,39 ----
  #ifndef _GLIBCXX_STDBIT_H
  #define _GLIBCXX_STDBIT_H
  
! #define __glibcxx_want_stdbit_h
! #include <bits/version.h>
! 
! #ifdef __cpp_lib_stdbit_h // C++ >= 26
! 
  #include <bit>
  
  #define __STDC_VERSION_STDBIT_H__ 202311L
*************** _GLIBCXX_STDBIT_FUNC(stdc_bit_floor);
*** 577,582 ****
  _GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
  #undef _GLIBCXX_STDBIT_FUNC
  #endif // !DOXYGEN
! #endif // C++26
  
  #endif // _GLIBCXX_STDBIT_H
--- 581,586 ----
  _GLIBCXX_STDBIT_FUNC(stdc_bit_ceil);
  #undef _GLIBCXX_STDBIT_FUNC
  #endif // !DOXYGEN
! #endif // __cpp_lib_stdbit_h
  
  #endif // _GLIBCXX_STDBIT_H
diff -Nrcpad gcc-15-20260411/libstdc++-v3/include/c_compatibility/stdckdint.h gcc-15-20260418/libstdc++-v3/include/c_compatibility/stdckdint.h
*** gcc-15-20260411/libstdc++-v3/include/c_compatibility/stdckdint.h	Sat Apr 11 22:32:17 2026
--- gcc-15-20260418/libstdc++-v3/include/c_compatibility/stdckdint.h	Sat Apr 18 22:32:15 2026
***************
*** 29,35 ****
  #ifndef _GLIBCXX_STDCKDINT_H
  #define _GLIBCXX_STDCKDINT_H
  
! #if __cplusplus > 202302L
  #include <type_traits>
  #include <concepts>
  
--- 29,39 ----
  #ifndef _GLIBCXX_STDCKDINT_H
  #define _GLIBCXX_STDCKDINT_H
  
! #define __glibcxx_want_stdckdint_h
! #include <bits/version.h>
! 
! #ifdef __cpp_lib_stdckdint_h // C++ >= 26
! 
  #include <type_traits>
  #include <concepts>
  
*************** using __gnu_cxx::ckd_sub;
*** 108,113 ****
  using __gnu_cxx::ckd_mul;
  #endif
  
! #endif // C++26
  
  #endif // _GLIBCXX_STDCKDINT_H
--- 112,117 ----
  using __gnu_cxx::ckd_mul;
  #endif
  
! #endif // __cpp_lib_stdckdint_h
  
  #endif // _GLIBCXX_STDCKDINT_H
