diff -Nrcpad gcc-14-20260306/LAST_UPDATED gcc-14-20260313/LAST_UPDATED
*** gcc-14-20260306/LAST_UPDATED	Fri Mar  6 22:32:21 2026
--- gcc-14-20260313/LAST_UPDATED	Fri Mar 13 22:32:22 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 1c6adff07834792ece71d5bdf21eb2d2941db432
--- 1 ----
! Obtained from git: releases/gcc-14 revision 25a0e1986333654a1422f50aa115c8f10e3e9f24
diff -Nrcpad gcc-14-20260306/MD5SUMS gcc-14-20260313/MD5SUMS
*** gcc-14-20260306/MD5SUMS	Fri Mar  6 22:32:26 2026
--- gcc-14-20260313/MD5SUMS	Fri Mar 13 22:32:27 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260306.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260313.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** fc9280b02bc68e4fb1ef8d51ccc25061  Change
*** 23,29 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 6ea42fb73576bc78dea1d9b6df26a432  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! bad352f187fd02933f26b816bacca329  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
*************** bc7394806417778d77541ba1ec0e4a70  gcc/BA
*** 505,511 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 94b50fd77f13b65a6154416fd3cba68f  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 505,511 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 7ea58ac526ba0b2ed36f58957bfa6c43  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 541,547 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 28ba26fb2baa847e8565d103aee61af3  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 541,547 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 59ad64b43f7716af449f9d9e00676025  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ae7d512c89d68a199632c8e4833ec548  gcc/co
*** 5269,5275 ****
  a3620453ae83ae76c8d836eb96587391  gcc/config/vax/vax-protos.h
  ae82ae0b00b4637a81eb63fc44c4b4b1  gcc/config/vax/vax.cc
  229199e643644f927b9e9faee465a1c3  gcc/config/vax/vax.h
! 07c4dbabb21183633592e7b919bba44a  gcc/config/vax/vax.md
  b47cdf79a98e21dfe43144453a5d8ea5  gcc/config/vax/vax.opt
  bf49e906bab688af364c5f48f69324f6  gcc/config/vax/vax.opt.urls
  3a1e13187cbe98f04b0b80554d1b73f7  gcc/config/visium/constraints.md
--- 5269,5275 ----
  a3620453ae83ae76c8d836eb96587391  gcc/config/vax/vax-protos.h
  ae82ae0b00b4637a81eb63fc44c4b4b1  gcc/config/vax/vax.cc
  229199e643644f927b9e9faee465a1c3  gcc/config/vax/vax.h
! 021e60659262c497ba0a6e982de18dc3  gcc/config/vax/vax.md
  b47cdf79a98e21dfe43144453a5d8ea5  gcc/config/vax/vax.opt
  bf49e906bab688af364c5f48f69324f6  gcc/config/vax/vax.opt.urls
  3a1e13187cbe98f04b0b80554d1b73f7  gcc/config/visium/constraints.md
*************** eb0e2e62caf98260cc2641216d140ae9  gcc/cp
*** 5403,5409 ****
  dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
  cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
  c2cee7941d7a9d85eb87f70b7f8495ac  gcc/cp/config-lang.in
! 0c9c32f6b821a5ea5659f419ba69c980  gcc/cp/constexpr.cc
  e2342416928d82aea826d50f04c9f56c  gcc/cp/constraint.cc
  7f4cf1f0f93d7aa0443c94e023845d1c  gcc/cp/contracts.cc
  5b547c5fd539f8a214ed271c5a475a85  gcc/cp/contracts.h
--- 5403,5409 ----
  dee1bc8866869d1becc1c1459cf3853d  gcc/cp/cfns.h
  cece9d48fd49b2e27c93c08c799d3a43  gcc/cp/class.cc
  c2cee7941d7a9d85eb87f70b7f8495ac  gcc/cp/config-lang.in
! 71daaea76af3de66fcc8970c56dad7d2  gcc/cp/constexpr.cc
  e2342416928d82aea826d50f04c9f56c  gcc/cp/constraint.cc
  7f4cf1f0f93d7aa0443c94e023845d1c  gcc/cp/contracts.cc
  5b547c5fd539f8a214ed271c5a475a85  gcc/cp/contracts.h
*************** fcd61155f90da565ae9b576ee28ece0d  gcc/in
*** 6269,6275 ****
  5e2086cfd6bea225be01b38fb20580c1  gcc/intl.cc
  228428e1fe66a4b0575040e005f4176b  gcc/intl.h
  6fd24145bd08ca12fe502d97a9f5a8e9  gcc/ipa-comdats.cc
! c987c0a5d1a4f7021d0b8b3944cda4af  gcc/ipa-cp.cc
  4dcb4dc14308e9d673b88c990eda3bd6  gcc/ipa-cp.h
  ddaf3689bf5ee9cd7a26ab4ad95f31f4  gcc/ipa-devirt.cc
  8210f1d996629cd5789d47de6f419385  gcc/ipa-fnsummary.cc
--- 6269,6275 ----
  5e2086cfd6bea225be01b38fb20580c1  gcc/intl.cc
  228428e1fe66a4b0575040e005f4176b  gcc/intl.h
  6fd24145bd08ca12fe502d97a9f5a8e9  gcc/ipa-comdats.cc
! 46e2b9e113b99fc720b6515e5162585a  gcc/ipa-cp.cc
  4dcb4dc14308e9d673b88c990eda3bd6  gcc/ipa-cp.h
  ddaf3689bf5ee9cd7a26ab4ad95f31f4  gcc/ipa-devirt.cc
  8210f1d996629cd5789d47de6f419385  gcc/ipa-fnsummary.cc
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8062,8068 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 08cce9345f15edd390d2a2fdcd98bf34  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 8062,8068 ----
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 893890884574436457ed79bef12b4953  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** dfc43f4a6c6619f77e2370dc3ac7c5bd  gcc/te
*** 15567,15572 ****
--- 15567,15573 ----
  df7772e8bce1917bb8d1e66fcbe1ce31  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor2.C
  50c4fa620f7ec653b83dbc313350ac22  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor20.C
  75570067f1748bbf63ecff0edf089f3f  gcc/testsuite/g++.dg/cpp0x/constexpr-ctor21.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
*** 15623,15629 ****
  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
--- 15624,15630 ----
  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
*** 20253,20261 ****
  89741a348551bf62e5198e689a2cb9eb  gcc/testsuite/g++.dg/cpp2a/constexpr-new9.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
--- 20254,20262 ----
  89741a348551bf62e5198e689a2cb9eb  gcc/testsuite/g++.dg/cpp2a/constexpr-new9.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
*************** c4e9e836f72626730cc2876443c9d998  gcc/te
*** 23645,23650 ****
--- 23646,23652 ----
  e66c84f48f938ed2bb548ce51957afce  gcc/testsuite/g++.dg/ipa/pr113757.C
  d248bf5deb963f7dfbec9babb6fb70df  gcc/testsuite/g++.dg/ipa/pr116572.C
  9183db2978d574bc26d43a0d942ec920  gcc/testsuite/g++.dg/ipa/pr118243.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
*************** c2a0cf3df84b0f5f4df65937e3fa4da2  gcc/te
*** 29594,29599 ****
--- 29596,29602 ----
  6766aa21b009a63d71d22aa6baba228d  gcc/testsuite/g++.dg/torture/pr111245.C
  25af1620df0107cd03f275ddc7fd98b6  gcc/testsuite/g++.dg/torture/pr111465.C
  fd7e86518ea2a69054ff33aa0689c56b  gcc/testsuite/g++.dg/torture/pr111773.C
+ 5c620542544d327d513aa9525aba2286  gcc/testsuite/g++.dg/torture/pr112400.C
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
  6c3c5585841ff28b7c4ab8a61978f689  gcc/testsuite/g++.dg/torture/pr113994.C
  ef666186552a9562e70783bbdf98ac33  gcc/testsuite/g++.dg/torture/pr115694.C
*************** fc443edc98096342d5fc5be5a9455d4b  libstd
*** 125197,125203 ****
  ad2a7e573743a8dab1111b977e4a80fd  libstdc++-v3/include/std/algorithm
  873395466399e2601facce0f1d3514df  libstdc++-v3/include/std/any
  aab042909edbf7113490e15fccf5b560  libstdc++-v3/include/std/array
! 222b5b2282951760f27dcf4ddcccdaa5  libstdc++-v3/include/std/atomic
  01cf19d843a4461de3522fe15a305313  libstdc++-v3/include/std/barrier
  b6af1bbc3368d9c5b5a8c7182f8272ec  libstdc++-v3/include/std/bit
  6c83353fc8d46581132ab76a4ff6552a  libstdc++-v3/include/std/bitset
--- 125200,125206 ----
  ad2a7e573743a8dab1111b977e4a80fd  libstdc++-v3/include/std/algorithm
  873395466399e2601facce0f1d3514df  libstdc++-v3/include/std/any
  aab042909edbf7113490e15fccf5b560  libstdc++-v3/include/std/array
! d62b6536665a7c5121695fb1c49c5eef  libstdc++-v3/include/std/atomic
  01cf19d843a4461de3522fe15a305313  libstdc++-v3/include/std/barrier
  b6af1bbc3368d9c5b5a8c7182f8272ec  libstdc++-v3/include/std/bit
  6c83353fc8d46581132ab76a4ff6552a  libstdc++-v3/include/std/bitset
*************** f34c13e0eef44f80fc10f6cc39105956  libstd
*** 132847,132853 ****
  7de4e52d03fe19c0a05d5a8cd6bc8267  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
  5e2e08488f2a545f948bd16834cf8ee5  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
  c7cee233a1d080b1dffc7cd5311d27c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
  8a3545374cb8fbbd33dd2b2906c3cbf8  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
  b27d4e8f6e45d96e8ec5c36abd854471  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
--- 132850,132856 ----
  7de4e52d03fe19c0a05d5a8cd6bc8267  libstdc++-v3/testsuite/29_atomics/atomic/69769.cc
  5e2e08488f2a545f948bd16834cf8ee5  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
  c7cee233a1d080b1dffc7cd5311d27c3  libstdc++-v3/testsuite/29_atomics/atomic/cons/49445.cc
  8a3545374cb8fbbd33dd2b2906c3cbf8  libstdc++-v3/testsuite/29_atomics/atomic/cons/assign_neg.cc
  b27d4e8f6e45d96e8ec5c36abd854471  libstdc++-v3/testsuite/29_atomics/atomic/cons/constexpr.cc
*************** c0881d1e2eb764c023ab5b7d8a6c85b7  libstd
*** 132858,132864 ****
  66bdc51662fd70d30902211a53dedff4  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
  9e2a8388686f3e26628f06d374c98d11  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  6eaa7fecae6788d01a20ae43260848b9  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! 681f32c88b23086d76f165a9e1487576  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  4c8038b479383b8690e30cb9dd1b7a3a  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
--- 132861,132867 ----
  66bdc51662fd70d30902211a53dedff4  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
  9e2a8388686f3e26628f06d374c98d11  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  6eaa7fecae6788d01a20ae43260848b9  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
! f2694c990b173c2f406022e2d327a1b7  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  4c8038b479383b8690e30cb9dd1b7a3a  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-14-20260306/gcc/ChangeLog gcc-14-20260313/gcc/ChangeLog
*** gcc-14-20260306/gcc/ChangeLog	Fri Mar  6 22:32:05 2026
--- gcc-14-20260313/gcc/ChangeLog	Fri Mar 13 22:32:05 2026
***************
*** 1,3 ****
--- 1,25 ----
+ 2026-03-12  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-09  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-14  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	PR target/112400
+ 	* config/vax/vax.md (casesi1): Wrap naked operand 1 with a USE
+ 	where used with the insn split to.
+ 	(*casesi1): Likewise naked incoming operand 1.
+ 
  2026-03-05  Xi Ruoyao  <xry111@xry111.site>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260306/gcc/DATESTAMP gcc-14-20260313/gcc/DATESTAMP
*** gcc-14-20260306/gcc/DATESTAMP	Fri Mar  6 22:32:05 2026
--- gcc-14-20260313/gcc/DATESTAMP	Fri Mar 13 22:32:05 2026
***************
*** 1 ****
! 20260306
--- 1 ----
! 20260313
diff -Nrcpad gcc-14-20260306/gcc/config/vax/vax.md gcc-14-20260313/gcc/config/vax/vax.md
*** gcc-14-20260306/gcc/config/vax/vax.md	Fri Mar  6 22:32:06 2026
--- gcc-14-20260313/gcc/config/vax/vax.md	Fri Mar 13 22:32:07 2026
***************
*** 2909,2915 ****
    "#"
    "reload_completed"
    [(parallel
!      [(match_dup 1)
        (set (pc)
  	   (plus:SI (sign_extend:SI
  		      (mem:HI (plus:SI
--- 2909,2915 ----
    "#"
    "reload_completed"
    [(parallel
!      [(use (match_dup 1))
        (set (pc)
  	   (plus:SI (sign_extend:SI
  		      (mem:HI (plus:SI
***************
*** 2922,2928 ****
    "")
  
  (define_insn "*casesi1"
!   [(match_operand:SI 1 "const_int_operand" "n")
     (set (pc)
  	(plus:SI (sign_extend:SI
  		   (mem:HI (plus:SI
--- 2922,2928 ----
    "")
  
  (define_insn "*casesi1"
!   [(use (match_operand:SI 1 "const_int_operand" "n"))
     (set (pc)
  	(plus:SI (sign_extend:SI
  		   (mem:HI (plus:SI
diff -Nrcpad gcc-14-20260306/gcc/cp/constexpr.cc gcc-14-20260313/gcc/cp/constexpr.cc
*** gcc-14-20260306/gcc/cp/constexpr.cc	Fri Mar  6 22:32:06 2026
--- gcc-14-20260313/gcc/cp/constexpr.cc	Fri Mar 13 22:32:07 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
*** 562,572 ****
    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;
  }
--- 558,568 ----
    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-14-20260306/gcc/ipa-cp.cc gcc-14-20260313/gcc/ipa-cp.cc
*** gcc-14-20260306/gcc/ipa-cp.cc	Fri Mar  6 22:32:07 2026
--- gcc-14-20260313/gcc/ipa-cp.cc	Fri Mar 13 22:32:07 2026
*************** self_recursive_pass_through_p (cgraph_ed
*** 5280,5288 ****
  			       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)
--- 5280,5288 ----
  			       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
*** 5291,5296 ****
--- 5291,5315 ----
    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
*** 5374,5379 ****
--- 5393,5400 ----
  				ipa_get_jf_pass_through_operand (jump_func),
  				type);
  	    }
+ 	  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
*** 5539,5545 ****
  	      && !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);
--- 5560,5567 ----
  	      && !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-14-20260306/gcc/testsuite/ChangeLog gcc-14-20260313/gcc/testsuite/ChangeLog
*** gcc-14-20260306/gcc/testsuite/ChangeLog	Fri Mar  6 22:32:08 2026
--- gcc-14-20260313/gcc/testsuite/ChangeLog	Fri Mar 13 22:32:08 2026
***************
*** 1,3 ****
--- 1,19 ----
+ 2026-03-12  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-09  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-14  Kalvis Duckmanton  <kalvisd@gmail.com>
+ 
+ 	PR target/112400
+ 	* g++.dg/torture/pr112400.C: New file.
+ 
  2026-03-04  Xi Ruoyao  <xry111@xry111.site>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260306/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C gcc-14-20260313/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C
*** gcc-14-20260306/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260313/gcc/testsuite/g++.dg/cpp0x/constexpr-ctor23.C	Fri Mar 13 22:32:08 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-14-20260306/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C gcc-14-20260313/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C
*** gcc-14-20260306/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C	Fri Mar  6 22:32:08 2026
--- gcc-14-20260313/gcc/testsuite/g++.dg/cpp0x/constexpr-ex3.C	Fri Mar 13 22:32:08 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-14-20260306/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C gcc-14-20260313/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C
*** gcc-14-20260306/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C	Fri Mar  6 22:32:09 2026
--- gcc-14-20260313/gcc/testsuite/g++.dg/cpp2a/constexpr-try1.C	Fri Mar 13 22:32:09 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-14-20260306/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C gcc-14-20260313/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C
*** gcc-14-20260306/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C	Fri Mar  6 22:32:09 2026
--- gcc-14-20260313/gcc/testsuite/g++.dg/cpp2a/constexpr-try2.C	Fri Mar 13 22:32:09 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-14-20260306/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C gcc-14-20260313/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C
*** gcc-14-20260306/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C	Fri Mar  6 22:32:09 2026
--- gcc-14-20260313/gcc/testsuite/g++.dg/cpp2a/constexpr-try3.C	Fri Mar 13 22:32:09 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-14-20260306/gcc/testsuite/g++.dg/ipa/pr122856.C gcc-14-20260313/gcc/testsuite/g++.dg/ipa/pr122856.C
*** gcc-14-20260306/gcc/testsuite/g++.dg/ipa/pr122856.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260313/gcc/testsuite/g++.dg/ipa/pr122856.C	Fri Mar 13 22:32:09 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-14-20260306/gcc/testsuite/g++.dg/torture/pr112400.C gcc-14-20260313/gcc/testsuite/g++.dg/torture/pr112400.C
*** gcc-14-20260306/gcc/testsuite/g++.dg/torture/pr112400.C	Thu Jan  1 00:00:00 1970
--- gcc-14-20260313/gcc/testsuite/g++.dg/torture/pr112400.C	Fri Mar 13 22:32:09 2026
***************
*** 0 ****
--- 1,114 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-return-type" } */
+ 
+ typedef struct a *b;
+ template <typename c, typename d> c e(d);
+ enum f { g, h, i };
+ enum j { k, l, m, aa };
+ struct a {
+   f ab;
+ };
+ struct af {
+ } n;
+ struct ah;
+ class al;
+ b q;
+ void r(a *);
+ struct o : af {};
+ struct p : o {};
+ struct ag : p {};
+ j s(af *);
+ b t();
+ f fn4();
+ unsigned fn5(ag *);
+ b u(ag *, unsigned);
+ af *v(b(b), b);
+ static bool w(al *, af *, b(b), b aw, b *ax, j) {
+   r(ax[2]);
+   if (aw)
+     return false;
+ }
+ ag *ay;
+ void x(al *at, b as(b), b bb, b bc) {
+   switch (bb->ab)
+   case i:
+     if (af *bd = v(as, bb))
+       if (e<ah *>(bd))
+ 	switch (fn4())
+ 	case h: {
+ 	  b be;
+ 	  switch (be->ab)
+ 	  case i:
+ 	    if (af *bf = v(as, be))
+ 	      if (e<ah *>(bf))
+ 		if (ag *bg = e<ag *>(bf))
+ 		  switch (s(bg)) {
+ 		  case k:
+ 		    if (fn5(bg) == 1) {
+ 		      b bh = u(bg, 0);
+ 		      bh = t();
+ 		      switch (bc->ab)
+ 		      case g: {
+ 			b ax[]{be, bh, bc};
+ 			w(at, &n, as, q, ax, k);
+ 		      }
+ 		    }
+ 		    break;
+ 		  case l:
+ 		    if (fn5(bg) == 1) {
+ 		      b bh = u(bg, 0);
+ 		      bh = t();
+ 		      switch (bc->ab)
+ 		      case g: {
+ 			b ax[]{be, bh, bc};
+ 			w(at, &n, as, q, ax, l);
+ 		      }
+ 		    }
+ 		  }
+ 	}
+ 	  else switch (s(ay)) {
+ 	  case k:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, k);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case l:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, l);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case m:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, m);
+ 	      }
+ 	    }
+ 	    break;
+ 	  case aa:
+ 	    if (fn5(ay) == 1) {
+ 	      b be = u(ay, 0);
+ 	      be = t();
+ 	      switch (bc->ab)
+ 	      case g: {
+ 		b ax[]{bb, be, bc};
+ 		w(at, &n, as, q, ax, aa);
+ 	      }
+ 	    }
+ 	  }
+ }
diff -Nrcpad gcc-14-20260306/libstdc++-v3/include/std/atomic gcc-14-20260313/libstdc++-v3/include/std/atomic
*** gcc-14-20260306/libstdc++-v3/include/std/atomic	Fri Mar  6 22:32:18 2026
--- gcc-14-20260313/libstdc++-v3/include/std/atomic	Fri Mar 13 22:32:19 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 235,248 ****
        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(); }
--- 235,251 ----
        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-14-20260306/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc gcc-14-20260313/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
*** gcc-14-20260306/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc	Fri Mar  6 22:32:18 2026
--- gcc-14-20260313/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc	Fri Mar 13 22:32:19 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-14-20260306/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc gcc-14-20260313/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
*** gcc-14-20260306/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Fri Mar  6 22:32:18 2026
--- gcc-14-20260313/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Fri Mar 13 22:32:19 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 ----
