diff -Nrcpad gcc-15-20260228/LAST_UPDATED gcc-15-20260307/LAST_UPDATED
*** gcc-15-20260228/LAST_UPDATED	Sat Feb 28 22:32:22 2026
--- gcc-15-20260307/LAST_UPDATED	Sat Mar  7 22:32:19 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision ba99b94208670193f3b4d852e668d8b8b07754ac
--- 1 ----
! Obtained from git: releases/gcc-15 revision 1a43136f0d2b5cb3472b106b4fa95c2ee5653f50
diff -Nrcpad gcc-15-20260228/MD5SUMS gcc-15-20260307/MD5SUMS
*** gcc-15-20260228/MD5SUMS	Sat Feb 28 22:32:26 2026
--- gcc-15-20260307/MD5SUMS	Sat Mar  7 22:32:24 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260228.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-20260307.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
! b4227b631eec49fbbd74b6e4363e23d3  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 66a8f7bbcd79a5c6de9be1ef9afa6050  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 514,520 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 3008503bffbe11237b7d73b861a5e336  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
! 667032ca90162707f1134dc1af7751e2  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
! 8bf62f7a89d06e4ee2190474a27b3d6d  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
! 89eb393b97a35d517cde752b4ad52120  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
! d128812613dd261834392b0b828d995c  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
! 7769c1daae5aa2189520b4254fd9b176  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** d3ad067b1fa15bbce42fd3cc4499966e  gcc/co
*** 4438,4444 ****
  688cd325dbeb853413435f029e712cb2  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! d37c435059e37a3b006473d0a4ae9030  gcc/config/loongarch/loongarch.cc
  cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
  20d6419804da0f3e740614d707d5918d  gcc/config/loongarch/loongarch.md
  bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
--- 4438,4444 ----
  688cd325dbeb853413435f029e712cb2  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! 186dfe5f439a08477299e6dc256d7de1  gcc/config/loongarch/loongarch.cc
  cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
  20d6419804da0f3e740614d707d5918d  gcc/config/loongarch/loongarch.md
  bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5501,5507 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! b75a54c0d4ee8112a9900745cf5256e7  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
! 6dbc8f504ab35289ddf27e1c4a02e91e  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** fce8de27014c109814b3f69be6a5d4f6  gcc/cp
*** 5542,5548 ****
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  65891fa261ce5aa3474ed32683a124d3  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! 07cf6e7630675971840823c009796a75  gcc/cp/constexpr.cc
  d132f7f4c080ce3048977e23e33b9b1c  gcc/cp/constraint.cc
  a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
--- 5542,5548 ----
  68fc21d4889b1c70ccf89747b98b1fb4  gcc/cp/cfns.h
  65891fa261ce5aa3474ed32683a124d3  gcc/cp/class.cc
  ee3fb2cc9b9557d3895f527353160bd4  gcc/cp/config-lang.in
! c6bb20681d076f4519c1f0443e24e2c9  gcc/cp/constexpr.cc
  d132f7f4c080ce3048977e23e33b9b1c  gcc/cp/constraint.cc
  a4c4f7387ee41213f5d0113f9e78d30c  gcc/cp/contracts.cc
  1f1cd3a021a2cd25741e252145ee8282  gcc/cp/contracts.h
*************** ef535a32c5b6f227a666c63523f6bb80  gcc/in
*** 6460,6466 ****
  bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
  deb111e00b2b07aa631595045bce5003  gcc/intl.h
  47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
! 4a5e303448765c8c8c01980e2236fab5  gcc/ipa-cp.cc
  b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
  4b65c0ccf8c98e3a0e1526acb4ebd3a4  gcc/ipa-devirt.cc
  f0dcd3b109344ff1bf5de85f4598f9b2  gcc/ipa-fnsummary.cc
--- 6460,6466 ----
  bcb802c64e78f80e8e46c799c7e449ad  gcc/intl.cc
  deb111e00b2b07aa631595045bce5003  gcc/intl.h
  47a65e558aff89879902e88b055c7b12  gcc/ipa-comdats.cc
! 75331105b346f6316bfe3795cd72361c  gcc/ipa-cp.cc
  b65413c6163d502dbe95a08ac40cb575  gcc/ipa-cp.h
  4b65c0ccf8c98e3a0e1526acb4ebd3a4  gcc/ipa-devirt.cc
  f0dcd3b109344ff1bf5de85f4598f9b2  gcc/ipa-fnsummary.cc
*************** b5fc1a94542b80b1683d2bee465e42be  gcc/op
*** 7709,7715 ****
  28bb97827aab6913c7fa55727bd8cea0  gcc/optabs-query.h
  796aae3e1b58b2fba9ea35dae89dbcd2  gcc/optabs-tree.cc
  295bbec8fcdeeac30d6f914e52d4adc4  gcc/optabs-tree.h
! 6c91dcd704f35b58dcd74d442e295139  gcc/optabs.cc
  70d148f0c420cc77d698f1d603fd9671  gcc/optabs.def
  30d9b07650a135e2e68bbac98a0e0295  gcc/optabs.h
  d272f0cd2742999e36feb3973232a1dc  gcc/optc-gen.awk
--- 7709,7715 ----
  28bb97827aab6913c7fa55727bd8cea0  gcc/optabs-query.h
  796aae3e1b58b2fba9ea35dae89dbcd2  gcc/optabs-tree.cc
  295bbec8fcdeeac30d6f914e52d4adc4  gcc/optabs-tree.h
! 749d47c101ddf957730c6fd1195faab4  gcc/optabs.cc
  70d148f0c420cc77d698f1d603fd9671  gcc/optabs.def
  30d9b07650a135e2e68bbac98a0e0295  gcc/optabs.h
  d272f0cd2742999e36feb3973232a1dc  gcc/optc-gen.awk
*************** b3a965e425e6cf7888319667faf58da9  gcc/sy
*** 8448,8454 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 634006414afd4c65de26fa6354fa1d7c  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
! 91676f1300c045808fb58255b734ec68  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** df7772e8bce1917bb8d1e66fcbe1ce31  gcc/te
*** 16956,16961 ****
--- 16956,16962 ----
  50c4fa620f7ec653b83dbc313350ac22  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor20.C
  75570067f1748bbf63ecff0edf089f3f  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor21.C
  898892e0dd2add16d81be2af167dd343  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor22.C
+ c3ffed418366431e337c777209f796c0  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C
  6149d79aef3c5dc04bce76d97b8072e3  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor3.C
  fe03ae0923ec0f159b32d4c95a97afbb  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor4.C
  a15ac39628455598191a6c7526c0ea4b  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor5.C
*************** cf5dbf6e27520dc069362029f5cb0540  gcc/te
*** 17012,17018 ****
  0639a526e3e93a7d7ddd53722d0d65a4  gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
  eebd11cc85b798aa6a7a34d54749b1fd  gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C
  4e6fff7f5e83663f75c94efbf299525b  gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C
! c42ce017f72e0ac9bc977500bc2d096c  gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
  ce75146a9a51521a3b4ff82cc14225c3  gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C
  19eb610e0af0918f7473197af97c60d4  gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C
  54953d2c31360e2eeefa3305044bd360  gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C
--- 17013,17019 ----
  0639a526e3e93a7d7ddd53722d0d65a4  gcc/testsuite/g++.dg/cpp0x/constexpr-empty9.C
  eebd11cc85b798aa6a7a34d54749b1fd  gcc/testsuite/g++.dg/cpp0x/constexpr-ex1.C
  4e6fff7f5e83663f75c94efbf299525b  gcc/testsuite/g++.dg/cpp0x/constexpr-ex2.C
! ee1630d30fdca78fd9a901d17054b392  gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
  ce75146a9a51521a3b4ff82cc14225c3  gcc/testsuite/g++.dg/cpp0x/constexpr-ex4.C
  19eb610e0af0918f7473197af97c60d4  gcc/testsuite/g++.dg/cpp0x/constexpr-expinst.C
  54953d2c31360e2eeefa3305044bd360  gcc/testsuite/g++.dg/cpp0x/constexpr-explicit-inst.C
*************** d29f558af48deff313645aecd90adb8d  gcc/te
*** 21823,21831 ****
  7ab8f2bb925385f3c907d1d36a81ac9b  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C
  081a94c39fa972dab2d9f8590e087bc6  gcc/testsuite/g++.dg/cpp2a/constexpr-ref1.C
  fe2e298a3cf2e9094a79a25a4ffd8fc2  gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C
! 1d1e610556de3295af12cf17177f42b7  gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
! 27ac7e1957f04ea6ee6160a7f7c14ecc  gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
! c169c0f663257a769b1da0d94c0c7307  gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C
  d74e93a21b21eb22ce0742e9b6bbb923  gcc/testsuite/g++.dg/cpp2a/constexpr-try4.C
  02c2a396d7fac0a627ada9a52c486da3  gcc/testsuite/g++.dg/cpp2a/constexpr-try5.C
  e8575fbcf5a3e212ea28a4b89fbf8253  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid1.C
--- 21824,21832 ----
  7ab8f2bb925385f3c907d1d36a81ac9b  gcc/testsuite/g++.dg/cpp2a/constexpr-prvalue2.C
  081a94c39fa972dab2d9f8590e087bc6  gcc/testsuite/g++.dg/cpp2a/constexpr-ref1.C
  fe2e298a3cf2e9094a79a25a4ffd8fc2  gcc/testsuite/g++.dg/cpp2a/constexpr-shift1.C
! 1f5b8000b29315ba3af28b7bd9f18540  gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
! 998420d0a57cce98957e79abdb9865d3  gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
! 7735fb04b9642ba24ab00207340cff41  gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C
  d74e93a21b21eb22ce0742e9b6bbb923  gcc/testsuite/g++.dg/cpp2a/constexpr-try4.C
  02c2a396d7fac0a627ada9a52c486da3  gcc/testsuite/g++.dg/cpp2a/constexpr-try5.C
  e8575fbcf5a3e212ea28a4b89fbf8253  gcc/testsuite/g++.dg/cpp2a/constexpr-typeid1.C
*************** e66c84f48f938ed2bb548ce51957afce  gcc/te
*** 25379,25384 ****
--- 25380,25386 ----
  d248bf5deb963f7dfbec9babb6fb70df  gcc/testsuite/g++.dg/ipa/pr116572.C
  9183db2978d574bc26d43a0d942ec920  gcc/testsuite/g++.dg/ipa/pr118243.C
  6cd3566146c3d805aaa4fc95d93401c3  gcc/testsuite/g++.dg/ipa/pr120146.C
+ 2e880749089a9c6febba9ae1fa0de490  gcc/testsuite/g++.dg/ipa/pr122856.C
  02f3704c0511b2d171c55dbf09c64325  gcc/testsuite/g++.dg/ipa/pr43695.C
  5345293723ad062b59b168c319738e1e  gcc/testsuite/g++.dg/ipa/pr43812.C
  b001cbe3dfdeb7d2a1061f024aa08ea4  gcc/testsuite/g++.dg/ipa/pr44372.C
*************** ae878ea349c8f9f2a197bf59dcff9d3a  gcc/te
*** 38931,38936 ****
--- 38933,38939 ----
  ab667119ae39828bcd103bb5c5434cdc  gcc/testsuite/gcc.c-torture/compile/pr120250.c
  ba307c947af4df2e0ff2f70272caf68a  gcc/testsuite/gcc.c-torture/compile/pr120807.c
  ffc2d0352a16ed7c76c12152bde69753  gcc/testsuite/gcc.c-torture/compile/pr123703.c
+ b8b52e8f02c4a8a36a13b5243b69bbe6  gcc/testsuite/gcc.c-torture/compile/pr124250.c
  33c7141fcf5b1add3ddd2be0100f1f0d  gcc/testsuite/gcc.c-torture/compile/pr12517.c
  ec16b12ab11c499bf321be18ea59da33  gcc/testsuite/gcc.c-torture/compile/pr12578.c
  86f3d5cf87d24e97aa663b79f2d0ac5d  gcc/testsuite/gcc.c-torture/compile/pr12899.c
*************** eb1595e729e2eaac81c7ffe330d8f24e  gcc/te
*** 115603,115609 ****
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 3317d86edf19ccc68350284cab1c7e2b  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
--- 115606,115612 ----
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! b781878b88c72915c8f534c8c765df50  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
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132225,132231 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 4f59f4216b5ef70deae58d0d9983968a  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 132228,132234 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 78df51605fd4304c77bc4a7956f4db18  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** f1cc3238df41adc204bc4f90accc63f3  libstd
*** 133603,133609 ****
  9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
! 9965af220c6b7a21abee5e715a7414e3  libstdc++-v3/include/std/atomic
  4f32c26cb6bb867bc482113b2f4a9eb1  libstdc++-v3/include/std/barrier
  2a2983a946c8ff2f85e6ee4fedaafdc7  libstdc++-v3/include/std/bit
  a2b26793e4e6009d6ffdd683cc309894  libstdc++-v3/include/std/bitset
--- 133606,133612 ----
  9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
! ced0f87b396ff4a012df9de2ab66f94f  libstdc++-v3/include/std/atomic
  4f32c26cb6bb867bc482113b2f4a9eb1  libstdc++-v3/include/std/barrier
  2a2983a946c8ff2f85e6ee4fedaafdc7  libstdc++-v3/include/std/bit
  a2b26793e4e6009d6ffdd683cc309894  libstdc++-v3/include/std/bitset
*************** ece7d2fc2f03efd22a5d6ce6dc618b1b  libstd
*** 133665,133671 ****
  ce747bb13a47b4ef33f5a3d2d11c472f  libstdc++-v3/include/std/stop_token
  56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
  905475b4fea23e39df3f56c178517ade  libstdc++-v3/include/std/string
! c5a4df8fdbbe4b3d33d0b52db500e16d  libstdc++-v3/include/std/string_view
  362d06f047ef5267af7587a8d12e0c0d  libstdc++-v3/include/std/syncstream
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
--- 133668,133674 ----
  ce747bb13a47b4ef33f5a3d2d11c472f  libstdc++-v3/include/std/stop_token
  56f8a72abc9e7160f18f9a373325a008  libstdc++-v3/include/std/streambuf
  905475b4fea23e39df3f56c178517ade  libstdc++-v3/include/std/string
! 9d86912dd89fcd32c17f0b69d2b316d1  libstdc++-v3/include/std/string_view
  362d06f047ef5267af7587a8d12e0c0d  libstdc++-v3/include/std/syncstream
  21988a8b4bf87b01fc566fe8659ab2cc  libstdc++-v3/include/std/system_error
  608edef7344e2e25c7b00170df6fa9e6  libstdc++-v3/include/std/text_encoding
*************** c68b5f0836c6d6755d79db2260009ea2  libstd
*** 141390,141396 ****
  f055bbfee2c4b973d46e29e09006ca8d  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
  a45c4fc47b3926e8d1e9582f0c633bf7  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
  63350a1cbb29ab67e43b7f49d0ce503d  libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
! ce997c946b9d815d3b58c18b6822f7d2  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
  39232eeaf175bdf8b48338d14b625dd7  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
  0bef884e926cfd674ed04909c99b9880  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
  1219539990355c9690f03a2f08ac601e  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
--- 141393,141399 ----
  f055bbfee2c4b973d46e29e09006ca8d  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
  a45c4fc47b3926e8d1e9582f0c633bf7  libstdc++-v3/testsuite/29_atomics/atomic/70766.cc
  63350a1cbb29ab67e43b7f49d0ce503d  libstdc++-v3/testsuite/29_atomics/atomic/89624.cc
! e20db8e4b74cd8cd87b26cf643e05738  libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
  39232eeaf175bdf8b48338d14b625dd7  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
  0bef884e926cfd674ed04909c99b9880  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
  1219539990355c9690f03a2f08ac601e  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
*************** b5add270eb89557e0c8d61fa1ace86e7  libstd
*** 141402,141408 ****
  8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
  0501a49acdbeebdf5bc829c9b499f09f  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  d4c98a94a0ffda92bd76d6f6dfdf9760  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! 681f32c88b23086d76f165a9e1487576  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  952bd3c7bb4ba837b698e7f8d43b280f  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
--- 141405,141411 ----
  8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
  0501a49acdbeebdf5bc829c9b499f09f  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  d4c98a94a0ffda92bd76d6f6dfdf9760  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! f2694c990b173c2f406022e2d327a1b7  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  952bd3c7bb4ba837b698e7f8d43b280f  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
diff -Nrcpad gcc-15-20260228/gcc/ChangeLog gcc-15-20260307/gcc/ChangeLog
*** gcc-15-20260228/gcc/ChangeLog	Sat Feb 28 22:32:05 2026
--- gcc-15-20260307/gcc/ChangeLog	Sat Mar  7 22:32:04 2026
***************
*** 1,3 ****
--- 1,35 ----
+ 2026-03-05  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-03-05  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/123807
+ 	PR middle-end/124250
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_expand_vector_init_same): Revert r16-7163 change.
+ 
+ 2026-03-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-02-20  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/122856
+ 	* ipa-cp.cc (self_recursive_pass_through_p): Test jump function type first.
+ 	(self_recursive_ancestor_p): New function.
+ 	(find_scalar_values_for_callers_subset): Test also for self-recursive
+ 	ancestor jump functions.
+ 	(push_agg_values_for_index_from_edge): Likewise.
+ 
+ 2026-03-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-02-26  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR middle-end/124250
+ 	PR target/123807
+ 	* optabs.cc (expand_binop): Extend the shift amount if it's
+ 	narrower than the element of the shifted vector.
+ 
  2026-02-26  Xi Ruoyao  <xry111@xry111.site>
  
  	Revert:
diff -Nrcpad gcc-15-20260228/gcc/DATESTAMP gcc-15-20260307/gcc/DATESTAMP
*** gcc-15-20260228/gcc/DATESTAMP	Sat Feb 28 22:32:05 2026
--- gcc-15-20260307/gcc/DATESTAMP	Sat Mar  7 22:32:05 2026
***************
*** 1 ****
! 20260227
--- 1 ----
! 20260307
diff -Nrcpad gcc-15-20260228/gcc/ada/ChangeLog gcc-15-20260307/gcc/ada/ChangeLog
*** gcc-15-20260228/gcc/ada/ChangeLog	Sat Feb 28 22:32:05 2026
--- gcc-15-20260307/gcc/ada/ChangeLog	Sat Mar  7 22:32:05 2026
***************
*** 1,3 ****
--- 1,22 ----
+ 2026-02-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/124285
+ 	* gcc-interface/decl.cc (components_to_record): Force a packed
+ 	layout for the innermost variant of an unchecked union type with
+ 	fixed part and full representation clause.
+ 
+ 2026-02-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/123306
+ 	* freeze.adb (Freeze_Entity): For a class-wide equivalent type of
+ 	a non-interface root type, freeze the root type before it.
+ 	* sem_ch3.adb (Derived_Type_Declaration): Minor tweak.
+ 	* sem_ch12.adb (Analyze_One_Association): Revert latest change.
+ 	* sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Size>: When
+ 	the prefix is a class-wide type, insert the declaration of the CW-
+ 	equivalent type immediately after that of the root type, and the
+ 	size check for the root type into its own freezing actions.
+ 
  2026-02-25  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/124226
diff -Nrcpad gcc-15-20260228/gcc/config/loongarch/loongarch.cc gcc-15-20260307/gcc/config/loongarch/loongarch.cc
*** gcc-15-20260228/gcc/config/loongarch/loongarch.cc	Sat Feb 28 22:32:06 2026
--- gcc-15-20260307/gcc/config/loongarch/loongarch.cc	Sat Mar  7 22:32:06 2026
*************** loongarch_expand_vector_init_same (rtx t
*** 10149,10164 ****
  	}
      }
  
!   if (GET_CODE (same) == MEM && GET_MODE (same) != imode)
!     {
!       rtx reg_tmp = gen_reg_rtx (GET_MODE (same));
!       loongarch_emit_move (reg_tmp, same);
!       temp = lowpart_subreg (imode, reg_tmp, GET_MODE (reg_tmp));
!     }
!   else
!     temp = same;
! 
!   temp = force_reg (imode, temp);
  
    switch (vmode)
      {
--- 10149,10155 ----
  	}
      }
  
!   temp = force_reg (imode, same);
  
    switch (vmode)
      {
diff -Nrcpad gcc-15-20260228/gcc/cp/ChangeLog gcc-15-20260307/gcc/cp/ChangeLog
*** gcc-15-20260228/gcc/cp/ChangeLog	Sat Feb 28 22:32:06 2026
--- gcc-15-20260307/gcc/cp/ChangeLog	Sat Mar  7 22:32:06 2026
***************
*** 1,3 ****
--- 1,16 ----
+ 2026-03-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123845
+ 	PR libstdc++/114865
+ 	* constexpr.cc (build_data_member_initialization): Remove
+ 	C++11-specific recognition of MODIFY_EXPR.
+ 	(check_constexpr_ctor_body): Relax error diagnostic to a
+ 	pedwarn and don't clear DECL_DECLARED_CONSTEXPR_P upon
+ 	error.  Return true if complaining.
+ 
  2026-02-19  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260228/gcc/cp/constexpr.cc gcc-15-20260307/gcc/cp/constexpr.cc
*** gcc-15-20260228/gcc/cp/constexpr.cc	Sat Feb 28 22:32:06 2026
--- gcc-15-20260307/gcc/cp/constexpr.cc	Sat Mar  7 22:32:06 2026
*************** build_data_member_initialization (tree t
*** 399,409 ****
      }
    if (TREE_CODE (t) == CONVERT_EXPR)
      t = TREE_OPERAND (t, 0);
!   if (TREE_CODE (t) == INIT_EXPR
!       /* vptr initialization shows up as a MODIFY_EXPR.  In C++14 we only
! 	 use what this function builds for cx_check_missing_mem_inits, and
! 	 assignment in the ctor body doesn't count.  */
!       || (cxx_dialect < cxx14 && TREE_CODE (t) == MODIFY_EXPR))
      {
        member = TREE_OPERAND (t, 0);
        init = break_out_target_exprs (TREE_OPERAND (t, 1));
--- 399,405 ----
      }
    if (TREE_CODE (t) == CONVERT_EXPR)
      t = TREE_OPERAND (t, 0);
!   if (TREE_CODE (t) == INIT_EXPR)
      {
        member = TREE_OPERAND (t, 0);
        init = break_out_target_exprs (TREE_OPERAND (t, 1));
*************** check_constexpr_ctor_body (tree last, tr
*** 565,575 ****
    else if (list != last
  	   && !check_constexpr_ctor_body_1 (last, list))
      ok = false;
!   if (!ok)
      {
!       if (complain)
! 	error ("%<constexpr%> constructor does not have empty body");
!       DECL_DECLARED_CONSTEXPR_P (current_function_decl) = false;
      }
    return ok;
  }
--- 561,571 ----
    else if (list != last
  	   && !check_constexpr_ctor_body_1 (last, list))
      ok = false;
!   if (!ok && complain)
      {
!       pedwarn (input_location, OPT_Wc__14_extensions,
! 	       "%<constexpr%> constructor does not have empty body");
!       ok = true;
      }
    return ok;
  }
diff -Nrcpad gcc-15-20260228/gcc/ipa-cp.cc gcc-15-20260307/gcc/ipa-cp.cc
*** gcc-15-20260228/gcc/ipa-cp.cc	Sat Feb 28 22:32:07 2026
--- gcc-15-20260307/gcc/ipa-cp.cc	Sat Mar  7 22:32:06 2026
*************** self_recursive_pass_through_p (cgraph_ed
*** 5318,5326 ****
  			       bool simple = true)
  {
    enum availability availability;
!   if (cs->caller == cs->callee->function_symbol (&availability)
        && availability > AVAIL_INTERPOSABLE
-       && jfunc->type == IPA_JF_PASS_THROUGH
        && (!simple || ipa_get_jf_pass_through_operation (jfunc) == NOP_EXPR)
        && ipa_get_jf_pass_through_formal_id (jfunc) == i
        && ipa_node_params_sum->get (cs->caller)
--- 5318,5326 ----
  			       bool simple = true)
  {
    enum availability availability;
!   if (jfunc->type == IPA_JF_PASS_THROUGH
!       && cs->caller == cs->callee->function_symbol (&availability)
        && availability > AVAIL_INTERPOSABLE
        && (!simple || ipa_get_jf_pass_through_operation (jfunc) == NOP_EXPR)
        && ipa_get_jf_pass_through_formal_id (jfunc) == i
        && ipa_node_params_sum->get (cs->caller)
*************** self_recursive_pass_through_p (cgraph_ed
*** 5329,5334 ****
--- 5329,5353 ----
    return false;
  }
  
+ /* Return true if JFUNC, which describes the i-th parameter of call CS, is an
+    ancestor function with zero offset to itself when the cgraph_node involved
+    is not an IPA-CP clone.  */
+ 
+ static bool
+ self_recursive_ancestor_p (cgraph_edge *cs, ipa_jump_func *jfunc, int i)
+ {
+   enum availability availability;
+   if (jfunc->type == IPA_JF_ANCESTOR
+       && cs->caller == cs->callee->function_symbol (&availability)
+       && availability > AVAIL_INTERPOSABLE
+       && ipa_get_jf_ancestor_offset (jfunc) == 0
+       && ipa_get_jf_ancestor_formal_id (jfunc) == i
+       && ipa_node_params_sum->get (cs->caller)
+       && !ipa_node_params_sum->get (cs->caller)->ipcp_orig_node)
+     return true;
+   return false;
+ }
+ 
  /* Return true if JFUNC, which describes a part of an aggregate represented or
     pointed to by the i-th parameter of call CS, is a pass-through function to
     itself when the cgraph_node involved is not an IPA-CP clone..  When
*************** find_more_scalar_values_for_callers_subs
*** 5415,5420 ****
--- 5434,5441 ----
  				op_type);
  	      t = ipacp_value_safe_for_type (type, t);
  	    }
+ 	  else if (self_recursive_ancestor_p (cs, jump_func, i))
+ 	    continue;
  	  else
  	    t = ipa_value_from_jfunc (ipa_node_params_sum->get (cs->caller),
  				      jump_func, type);
*************** push_agg_values_for_index_from_edge (str
*** 5580,5586 ****
  	      && !src_plats->aggs_bottom
  	      && (agg_jf_preserved || !src_plats->aggs_by_ref))
  	    {
! 	      if (interim && self_recursive_pass_through_p (cs, jfunc, index))
  		{
  		  interim->push_adjusted_values (src_idx, index, unit_delta,
  						 res);
--- 5601,5608 ----
  	      && !src_plats->aggs_bottom
  	      && (agg_jf_preserved || !src_plats->aggs_by_ref))
  	    {
! 	      if (interim && (self_recursive_pass_through_p (cs, jfunc, index)
! 			      || self_recursive_ancestor_p (cs, jfunc, index)))
  		{
  		  interim->push_adjusted_values (src_idx, index, unit_delta,
  						 res);
diff -Nrcpad gcc-15-20260228/gcc/optabs.cc gcc-15-20260307/gcc/optabs.cc
*** gcc-15-20260228/gcc/optabs.cc	Sat Feb 28 22:32:07 2026
--- gcc-15-20260307/gcc/optabs.cc	Sat Mar  7 22:32:06 2026
*************** force_expand_binop (machine_mode mode, o
*** 422,430 ****
    return true;
  }
  
! /* Create a new vector value in VMODE with all elements set to OP.  The
!    mode of OP must be the element mode of VMODE.  If OP is a constant,
!    then the return value will be a constant.  */
  
  rtx
  expand_vector_broadcast (machine_mode vmode, rtx op)
--- 422,430 ----
    return true;
  }
  
! /* Create a new vector value in VMODE with all elements set to OP.  If OP
!    is not a constant, the mode of it must be the element mode of VMODE.
!    If OP is a constant, then the return value will be a constant.  */
  
  rtx
  expand_vector_broadcast (machine_mode vmode, rtx op)
*************** expand_binop (machine_mode mode, optab b
*** 1623,1637 ****
        if (otheroptab
  	  && (icode = optab_handler (otheroptab, mode)) != CODE_FOR_nothing)
  	{
! 	  /* The scalar may have been extended to be too wide.  Truncate
! 	     it back to the proper size to fit in the broadcast vector.  */
  	  scalar_mode inner_mode = GET_MODE_INNER (mode);
! 	  if (!CONST_INT_P (op1)
! 	      && (GET_MODE_BITSIZE (as_a <scalar_int_mode> (GET_MODE (op1)))
! 		  > GET_MODE_BITSIZE (inner_mode)))
! 	    op1 = force_reg (inner_mode,
! 			     simplify_gen_unary (TRUNCATE, inner_mode, op1,
! 						 GET_MODE (op1)));
  	  rtx vop1 = expand_vector_broadcast (mode, op1);
  	  if (vop1)
  	    {
--- 1623,1647 ----
        if (otheroptab
  	  && (icode = optab_handler (otheroptab, mode)) != CODE_FOR_nothing)
  	{
! 	  /* The scalar may be wider or narrower than the vector element.
! 	     Truncate or extend it to the proper size to fit in the
! 	     broadcast vector.  */
  	  scalar_mode inner_mode = GET_MODE_INNER (mode);
! 	  if (!CONST_INT_P (op1))
! 	    {
! 	      auto mode1 = as_a <scalar_int_mode> (GET_MODE (op1));
! 	      int size1 = GET_MODE_BITSIZE (mode1);
! 	      int inner_size = GET_MODE_BITSIZE (inner_mode);
! 
! 	      if (size1 != inner_size)
! 		{
! 		  auto unary = size1 > inner_size ? TRUNCATE : ZERO_EXTEND;
! 		  op1 = force_reg (inner_mode,
! 				   simplify_gen_unary (unary, inner_mode,
! 						       op1, mode1));
! 		}
! 	    }
! 
  	  rtx vop1 = expand_vector_broadcast (mode, op1);
  	  if (vop1)
  	    {
diff -Nrcpad gcc-15-20260228/gcc/testsuite/ChangeLog gcc-15-20260307/gcc/testsuite/ChangeLog
*** gcc-15-20260228/gcc/testsuite/ChangeLog	Sat Feb 28 22:32:07 2026
--- gcc-15-20260307/gcc/testsuite/ChangeLog	Sat Mar  7 22:32:07 2026
***************
*** 1,3 ****
--- 1,61 ----
+ 2026-03-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-02-20  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/122856
+ 	* g++.dg/ipa/pr122856.C: New test.
+ 
+ 2026-03-04  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-02-26  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR middle-end/124250
+ 	PR target/123807
+ 	* gcc.c-torture/compile/pr124250.c: New test.
+ 
+ 2026-03-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-01-30  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123845
+ 	PR libstdc++/114865
+ 	* g++.dg/cpp0x/constexpr-ex3.C: Adjust C++11 non-empty
+ 	constexpr constructor dg-error to a dg-warning.  Expect
+ 	a follow-up missing member initializer diagnostic in C++11 mode.
+ 	* g++.dg/cpp2a/constexpr-try1.C: Expect a follow-up
+ 	compound-statement in constexpr function diagnostic in C++11
+ 	mode.
+ 	* g++.dg/cpp2a/constexpr-try2.C: Likewise.  Adjust C++11
+ 	non-empty constexpr constructor dg-error to a dg-warning.
+ 	* g++.dg/cpp2a/constexpr-try3.C:  Adjust C++11 non-empty
+ 	constexpr constructor dg-error to a dg-warning.
+ 	* g++.dg/cpp0x/constexpr-ctor23.C: New test.
+ 
+ 2026-03-02  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Backported from master:
+ 	2026-02-25  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	PR target/124236
+ 	* lib/target-supports.exp
+ 	(check_effective_target_arm_v8_3a_complex_neon_hw): Fix default value.
+ 
+ 2026-02-28  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/unchecked_union3.ads: New test.
+ 
+ 2026-02-27  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/specs/mutably_tagged2.ads: New test.
+ 
+ 2026-02-27  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/122097
+ 	* gcc.target/loongarch/pr122097.c (dg-final): Remove.
+ 
  2026-02-26  Michal Jires  <mjires@suse.cz>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260228/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C
*** gcc-15-20260228/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C	Sat Mar  7 22:32:07 2026
***************
*** 0 ****
--- 1,26 ----
+ // Verify we diagnose and accept, as an extension, a non-empty constexpr
+ // constructor body in C++11 mode.
+ // PR c++/123845
+ // { dg-do compile { target c++11_only } }
+ // { dg-options "" }
+ 
+ constexpr int negate(int n) { return -n; }
+ 
+ struct A {
+   int m;
+   constexpr A() : m(42) {
+     ++m;
+     m = negate(m);
+   } // { dg-warning "does not have empty body \[-Wc++14-extensions\]" }
+ };
+ static_assert(A().m == -43, "");
+ 
+ template<class T>
+ struct B {
+   int m;
+   constexpr B() : m(42) {
+     ++m;
+     m = negate(m);
+   } // { dg-warning "does not have empty body \[-Wc++14-extensions\]" }
+ };
+ static_assert(B<int>().m == -43, "");
diff -Nrcpad gcc-15-20260228/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
*** gcc-15-20260228/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C	Sat Feb 28 22:32:08 2026
--- gcc-15-20260307/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C	Sat Mar  7 22:32:07 2026
***************
*** 6,12 ****
  struct A
  {
    int i;
!   constexpr A(int _i) { i = _i; } // { dg-error "empty body|A::i" "" { target c++17_down } }
  };
  
  template <class T>
--- 6,13 ----
  struct A
  {
    int i;
!   constexpr A(int _i) { i = _i; } // { dg-warning "empty body" "" { target c++11_only } }
! 				  // { dg-error "'A::i' must be init" "" { target c++17_down } .-1 }
  };
  
  template <class T>
diff -Nrcpad gcc-15-20260228/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
*** gcc-15-20260228/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C	Sat Feb 28 22:32:08 2026
--- gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C	Sat Mar  7 22:32:08 2026
*************** struct S {
*** 32,37 ****
--- 32,38 ----
      } catch (int) {	// { dg-error "compound-statement in 'constexpr' function" "" { target c++11_only } }
      }			// { dg-error "compound-statement in 'constexpr' function" "" { target c++11_only } .-2 }
    } catch (...) {	// { dg-error "'constexpr' constructor does not have empty body" "" { target c++11_only } }
+ 		        // { dg-error "compound-statement in 'constexpr' function" "" { target c++11_only } .-1 }
    }
    int m;
  };
diff -Nrcpad gcc-15-20260228/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
*** gcc-15-20260228/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C	Sat Feb 28 22:32:08 2026
--- gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C	Sat Mar  7 22:32:08 2026
*************** struct S {
*** 32,38 ****
      try {		// { dg-warning "'try' in 'constexpr' function only available with" "" { target c++17_down } }
      } catch (int) {	// { dg-warning "compound-statement in 'constexpr' function" "" { target c++11_only } }
      }			// { dg-warning "compound-statement in 'constexpr' function" "" { target c++11_only } .-2 }
!   } catch (...) {	// { dg-error "'constexpr' constructor does not have empty body" "" { target c++11_only } }
    }
    int m;
  };
--- 32,39 ----
      try {		// { dg-warning "'try' in 'constexpr' function only available with" "" { target c++17_down } }
      } catch (int) {	// { dg-warning "compound-statement in 'constexpr' function" "" { target c++11_only } }
      }			// { dg-warning "compound-statement in 'constexpr' function" "" { target c++11_only } .-2 }
!   } catch (...) {	// { dg-warning "'constexpr' constructor does not have empty body" "" { target c++11_only } }
! 			// { dg-warning "compound-statement in 'constexpr' function" "" { target c++11_only } .-1 }
    }
    int m;
  };
diff -Nrcpad gcc-15-20260228/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C
*** gcc-15-20260228/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C	Sat Feb 28 22:32:08 2026
--- gcc-15-20260307/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C	Sat Mar  7 22:32:08 2026
*************** struct S {
*** 31,37 ****
      try {		// { dg-warning "'try' in 'constexpr' function only available with" "" { target c++17_down } }
      } catch (int) {
      }
!   } catch (...) {	// { dg-error "'constexpr' constructor does not have empty body" "" { target c++11_only } }
    }
    int m;
  };
--- 31,37 ----
      try {		// { dg-warning "'try' in 'constexpr' function only available with" "" { target c++17_down } }
      } catch (int) {
      }
!   } catch (...) {	// { dg-warning "'constexpr' constructor does not have empty body" "" { target c++11_only } }
    }
    int m;
  };
diff -Nrcpad gcc-15-20260228/gcc/testsuite/g++.dg/ipa/pr122856.C gcc-15-20260307/gcc/testsuite/g++.dg/ipa/pr122856.C
*** gcc-15-20260228/gcc/testsuite/g++.dg/ipa/pr122856.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260307/gcc/testsuite/g++.dg/ipa/pr122856.C	Sat Mar  7 22:32:08 2026
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -std=gnu++11" } */
+ 
+ template <typename T>
+ class Base {
+ public:
+     virtual int get();
+     virtual ~Base() = default;
+ };
+ 
+ template <typename T>
+ class Derived : public Base<T> {
+ public:
+     int get() override { return Base<T>::get(); }
+ };
+ 
+ template <typename T>
+ int Base<T>::get() {
+ 
+     return static_cast<Derived<int>*>(this)->get();
+ }
+ 
+ int main() {
+     Derived<int> d;
+     return d.get();
+ }
diff -Nrcpad gcc-15-20260228/gcc/testsuite/gcc.c-torture/compile/pr124250.c gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr124250.c
*** gcc-15-20260228/gcc/testsuite/gcc.c-torture/compile/pr124250.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260307/gcc/testsuite/gcc.c-torture/compile/pr124250.c	Sat Mar  7 22:32:09 2026
***************
*** 0 ****
--- 1,8 ----
+ typedef long long v2i64 __attribute__ ((vector_size (16), aligned (16)));
+ v2i64 a, b;
+ 
+ void
+ test (int l)
+ {
+   a = b >> (-l);
+ }
diff -Nrcpad gcc-15-20260228/gcc/testsuite/lib/target-supports.exp gcc-15-20260307/gcc/testsuite/lib/target-supports.exp
*** gcc-15-20260228/gcc/testsuite/lib/target-supports.exp	Sat Feb 28 22:32:16 2026
--- gcc-15-20260307/gcc/testsuite/lib/target-supports.exp	Sat Mar  7 22:32:13 2026
*************** proc add_options_for_arm_v8_3a_fp16_comp
*** 13519,13525 ****
  
  proc check_effective_target_arm_v8_3a_complex_neon_hw { } {
      if { ![check_effective_target_arm_v8_3a_complex_neon_ok] } {
! 	return 1;
      }
      return [check_runtime arm_v8_3a_complex_neon_hw_available {
  	#include "arm_neon.h"
--- 13519,13525 ----
  
  proc check_effective_target_arm_v8_3a_complex_neon_hw { } {
      if { ![check_effective_target_arm_v8_3a_complex_neon_ok] } {
! 	return 0;
      }
      return [check_runtime arm_v8_3a_complex_neon_hw_available {
  	#include "arm_neon.h"
diff -Nrcpad gcc-15-20260228/libstdc++-v3/ChangeLog gcc-15-20260307/libstdc++-v3/ChangeLog
*** gcc-15-20260228/libstdc++-v3/ChangeLog	Sat Feb 28 22:32:18 2026
--- gcc-15-20260307/libstdc++-v3/ChangeLog	Sat Mar  7 22:32:15 2026
***************
*** 1,3 ****
--- 1,26 ----
+ 2026-03-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-04  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124363
+ 	* include/std/string_view: Adjust comment on #endif to match #if
+ 	condition. Likewise for header guard.
+ 
+ 2026-03-03  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-02-12  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR libstdc++/114865
+ 	* include/std/atomic (atomic<_Tp>::atomic(_Tp)) [C++11]:
+ 	Enable __builtin_clear_padding logic.
+ 	* testsuite/29_atomics/atomic/compare_exchange_padding.cc: Enable
+ 	this test in earlier modes, including C++11.
+ 	* testsuite/29_atomics/atomic/cons/zero_padding.cc [C++11]:
+ 	Enable tests verifying cleared padding bits for a non-static-init
+ 	std::atomic object.
+ 
  2026-02-26  Tomasz Kamiński  <tkaminsk@redhat.com>
  
  	PR libstdc++/123875
diff -Nrcpad gcc-15-20260228/libstdc++-v3/include/std/atomic gcc-15-20260307/libstdc++-v3/include/std/atomic
*** gcc-15-20260228/libstdc++-v3/include/std/atomic	Sat Feb 28 22:32:18 2026
--- gcc-15-20260307/libstdc++-v3/include/std/atomic	Sat Mar  7 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 241,254 ****
        atomic& operator=(const atomic&) = delete;
        atomic& operator=(const atomic&) volatile = delete;
  
        constexpr atomic(_Tp __i) noexcept : _M_i(__i)
        {
! #if __cplusplus >= 201402L && __has_builtin(__builtin_clear_padding)
  	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
  	  if (!std::__is_constant_evaluated())
  	    __builtin_clear_padding(std::__addressof(_M_i));
  #endif
        }
  
        operator _Tp() const noexcept
        { return load(); }
--- 241,257 ----
        atomic& operator=(const atomic&) = delete;
        atomic& operator=(const atomic&) volatile = delete;
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++14-extensions" // constexpr ctor body
        constexpr atomic(_Tp __i) noexcept : _M_i(__i)
        {
! #if __has_builtin(__builtin_clear_padding)
  	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
  	  if (!std::__is_constant_evaluated())
  	    __builtin_clear_padding(std::__addressof(_M_i));
  #endif
        }
+ #pragma GCC diagnostic pop
  
        operator _Tp() const noexcept
        { return load(); }
diff -Nrcpad gcc-15-20260228/libstdc++-v3/include/std/string_view gcc-15-20260307/libstdc++-v3/include/std/string_view
*** gcc-15-20260228/libstdc++-v3/include/std/string_view	Sat Feb 28 22:32:18 2026
--- gcc-15-20260307/libstdc++-v3/include/std/string_view	Sat Mar  7 22:32:15 2026
*************** _GLIBCXX_END_NAMESPACE_VERSION
*** 910,915 ****
  
  #include <bits/string_view.tcc>
  
! #endif // __cplusplus <= 201402L
  
! #endif // _GLIBCXX_EXPERIMENTAL_STRING_VIEW
--- 910,915 ----
  
  #include <bits/string_view.tcc>
  
! #endif // C++17
  
! #endif // _GLIBCXX_STRING_VIEW
diff -Nrcpad gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc gcc-15-20260307/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
*** gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc	Sat Feb 28 22:32:18 2026
--- gcc-15-20260307/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc	Sat Mar  7 22:32:16 2026
***************
*** 1,4 ****
! // { dg-do run { target c++20 } }
  // { dg-require-atomic-cmpxchg-word "" }
  // { dg-add-options libatomic }
  // { dg-additional-options "-fno-tree-sra" }
--- 1,4 ----
! // { dg-do run { target c++11 } }
  // { dg-require-atomic-cmpxchg-word "" }
  // { dg-add-options libatomic }
  // { dg-additional-options "-fno-tree-sra" }
diff -Nrcpad gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc gcc-15-20260307/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
*** gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Sat Feb 28 22:32:18 2026
--- gcc-15-20260307/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Sat Mar  7 22:32:16 2026
*************** void test_struct(std::atomic<T>& g, cons
*** 56,70 ****
  
    std::atomic<T> l(T{1, 2});
    std::memcpy(&t, &zp, sizeof(T));
- #if __cplusplus >= 201402L // Remove once PR114865 is fixed
    VERIFY( l.compare_exchange_strong(t, d) );
- #endif
  
    std::atomic<T>* h = new std::atomic<T>(T{1, 2});
    std::memcpy(&t, &zp, sizeof(T));
- #if __cplusplus >= 201402L // Remove once PR114865 is fixed
    VERIFY( h->compare_exchange_strong(t, d) );
- #endif
    delete h;
  
    constexpr std::atomic<T> cl(T{1, 2});
--- 56,66 ----
