diff -Nrcpad gcc-13-20260226/LAST_UPDATED gcc-13-20260305/LAST_UPDATED
*** gcc-13-20260226/LAST_UPDATED	Thu Feb 26 22:32:20 2026
--- gcc-13-20260305/LAST_UPDATED	Thu Mar  5 22:32:19 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-13 revision 441b484726723c15643c7a09af8f2297263f09f8
--- 1 ----
! Obtained from git: releases/gcc-13 revision 9077925f1f1d3dc840b60eaa100308015c73d0ad
diff -Nrcpad gcc-13-20260226/MD5SUMS gcc-13-20260305/MD5SUMS
*** gcc-13-20260226/MD5SUMS	Thu Feb 26 22:32:24 2026
--- gcc-13-20260305/MD5SUMS	Thu Mar  5 22:32:23 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-13-20260226.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-13-20260305.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
*** 21,27 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! c1edf00829295b6a9790df086f3bc801  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
--- 21,27 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 39cb24228aa440efcd4810c610790ad3  LAST_UPDATED
  81b3330d422f3ce1ef8b720dfae35068  MAINTAINERS
  2b61ddbd876fa839639a7ca551773426  Makefile.def
  5d2d6a74f897f8158d37f5f2ec6877ce  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 475,481 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 495549cae30ce38108ca6a41c05fae40  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
--- 475,481 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 3e458098045ab630da268e8eaa793fdb  gcc/ChangeLog
  a3b63c675afa7a655cc2bfa8a907af79  gcc/ChangeLog-1997
  d9a88529352a010253c2e8fb1ed6023b  gcc/ChangeLog-1998
  240f08f81cb4699e8b49347db38233db  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 510,516 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! b98ebdc193727679fb07cea204a63cca  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 510,516 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 1f980fc52300e4f8d98e995aebf1aa32  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 522,528 ****
  f6d47a542d432aed7e7eaaecb71d3a4c  gcc/acinclude.m4
  6526979dd900a0b58b7691b478a91fec  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 980932d1e1bc4d5a697db3413cb10e37  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 522,528 ----
  f6d47a542d432aed7e7eaaecb71d3a4c  gcc/acinclude.m4
  6526979dd900a0b58b7691b478a91fec  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 2c46bf2b244dfeb973ae5ac1ebccf3ba  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** d69e0fff19957a7b29ee08926fc6f3cf  gcc/ad
*** 782,788 ****
  29e1f3d1ec783849cfedc4ba5b3f86d2  gcc/ada/gcc-interface/ada.h
  67dc9599090345bd6fc9fed0361f76ee  gcc/ada/gcc-interface/config-lang.in
  df2ffb467ff9812983d01da40295ec68  gcc/ada/gcc-interface/cuintp.cc
! 3b4c69b7437bb1d9995a98fdc583817a  gcc/ada/gcc-interface/decl.cc
  2e46e3864371bc11eae92e2f030fe9c3  gcc/ada/gcc-interface/gadaint.h
  1e23461a8b089b3f96b0eec67b96b60d  gcc/ada/gcc-interface/gigi.h
  9f177b1d16ab7e6e558ee0eccca943ff  gcc/ada/gcc-interface/lang-specs.h
--- 782,788 ----
  29e1f3d1ec783849cfedc4ba5b3f86d2  gcc/ada/gcc-interface/ada.h
  67dc9599090345bd6fc9fed0361f76ee  gcc/ada/gcc-interface/config-lang.in
  df2ffb467ff9812983d01da40295ec68  gcc/ada/gcc-interface/cuintp.cc
! 9823a920edd689b62a47787950265ae0  gcc/ada/gcc-interface/decl.cc
  2e46e3864371bc11eae92e2f030fe9c3  gcc/ada/gcc-interface/gadaint.h
  1e23461a8b089b3f96b0eec67b96b60d  gcc/ada/gcc-interface/gigi.h
  9f177b1d16ab7e6e558ee0eccca943ff  gcc/ada/gcc-interface/lang-specs.h
*************** c12e2732707baf23e73a14d0b1b36dfd  gcc/in
*** 5957,5963 ****
  b604200ebd6bbb8075a58d20d96105e3  gcc/intl.cc
  2086a023243c1aeb61f8be26da7a72ad  gcc/intl.h
  f1c9645780e7d29c2d852ae147ef5d45  gcc/ipa-comdats.cc
! 91346ff57f1624cfcd802a92dface4d8  gcc/ipa-cp.cc
  55517140580887ca4deb8ce1e0321892  gcc/ipa-devirt.cc
  c8ce953e3c995ecf84e97c4c93a60807  gcc/ipa-fnsummary.cc
  fb25c569d03784bece5c17aaaaa369c5  gcc/ipa-fnsummary.h
--- 5957,5963 ----
  b604200ebd6bbb8075a58d20d96105e3  gcc/intl.cc
  2086a023243c1aeb61f8be26da7a72ad  gcc/intl.h
  f1c9645780e7d29c2d852ae147ef5d45  gcc/ipa-comdats.cc
! 6a1702a5c0f4ba3a3e91d03b1d87c58c  gcc/ipa-cp.cc
  55517140580887ca4deb8ce1e0321892  gcc/ipa-devirt.cc
  c8ce953e3c995ecf84e97c4c93a60807  gcc/ipa-fnsummary.cc
  fb25c569d03784bece5c17aaaaa369c5  gcc/ipa-fnsummary.h
*************** c65f55fed79f6f011c286a8c15d49485  gcc/lt
*** 6136,6142 ****
  84bdf4dde2c999956f004a2cec5fcdfa  gcc/lto-streamer.cc
  4051a87eb8e439afcde2567e10273f08  gcc/lto-streamer.h
  937c657e2ab15274b95fdb91519d7865  gcc/lto-wrapper.cc
! 2466e7895148af5a4575b78d9aee2152  gcc/lto/ChangeLog
  1c031130b442e688f20c6f97577f6f1c  gcc/lto/Make-lang.in
  10ec91fabc2cd5424224460087811ade  gcc/lto/common.cc
  797d875c24181ac44cc33ff020e1b788  gcc/lto/common.h
--- 6136,6142 ----
  84bdf4dde2c999956f004a2cec5fcdfa  gcc/lto-streamer.cc
  4051a87eb8e439afcde2567e10273f08  gcc/lto-streamer.h
  937c657e2ab15274b95fdb91519d7865  gcc/lto-wrapper.cc
! 369fb8beefda3a002a9354dc54fc56d6  gcc/lto/ChangeLog
  1c031130b442e688f20c6f97577f6f1c  gcc/lto/Make-lang.in
  10ec91fabc2cd5424224460087811ade  gcc/lto/common.cc
  797d875c24181ac44cc33ff020e1b788  gcc/lto/common.h
*************** b829ed0032c899e107be2db349c913f3  gcc/ta
*** 7637,7643 ****
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 1b11cba6a9a583d1dece6f3aef3c8bb3  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
--- 7637,7643 ----
  811da275a2b9d3186a6decf96c01b0ed  gcc/targhooks.cc
  edb193a32070c4a7626fb75382def9b9  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! ad42575d76c7a27c040f17362858dae1  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** ecfa94e705bc436ad699767b1e4c929e  gcc/te
*** 21912,21917 ****
--- 21912,21918 ----
  55ee7bff7cc115f42266bd1d62dda46b  gcc/testsuite/g++.dg/ipa/pr100413.C
  901698e6dabf29dd6ced031811fcf59e  gcc/testsuite/g++.dg/ipa/pr103099.C
  f2ff4523ab9758b8e447b088ac708879  gcc/testsuite/g++.dg/ipa/pr106258.C
+ 4b93844d472e68bdcc050f5ef8ce7079  gcc/testsuite/g++.dg/ipa/pr106260.C
  c43cd4a90674d630795e0323738e0460  gcc/testsuite/g++.dg/ipa/pr107661.C
  7d63c0342d026b9ee4f2ecb03364cefe  gcc/testsuite/g++.dg/ipa/pr108110.C
  9a257f3564fd42fe9d7e00c5567f89d2  gcc/testsuite/g++.dg/ipa/pr108509.C
*************** e8eff4c0ef885b002db007e536bb99f2  gcc/te
*** 27518,27523 ****
--- 27519,27526 ----
  f5cb8caa482838045861d5ee18445814  gcc/testsuite/g++.dg/torture/pr113896.C
  6c3c5585841ff28b7c4ab8a61978f689  gcc/testsuite/g++.dg/torture/pr113994.C
  ef666186552a9562e70783bbdf98ac33  gcc/testsuite/g++.dg/torture/pr115694.C
+ 433f2d5d832623625319b4192fc7b69c  gcc/testsuite/g++.dg/torture/pr117217-1.C
+ 370446845d836416f63d6f4ab2dbab30  gcc/testsuite/g++.dg/torture/pr117217-2.C
  f298eddbaaad3dfdc15f6cf9683ff08a  gcc/testsuite/g++.dg/torture/pr11911.C
  9df51f0b5a7e716286f2e97dfd28d477  gcc/testsuite/g++.dg/torture/pr119610.C
  9cede7e8b587157ccdf0f9f6667d6cc8  gcc/testsuite/g++.dg/torture/pr119778.C
*************** de366240409b1c3413cd274333487fb7  gcc/te
*** 95956,95961 ****
--- 95959,95965 ----
  67001591d13a2654ac5b7435e121cb10  gcc/testsuite/gnat.dg/specs/unchecked_convert2.ads
  a013922e8c147a09784a5aca21aa3a65  gcc/testsuite/gnat.dg/specs/unchecked_union1.ads
  fbc11dba24887c4af40c8660f7168a67  gcc/testsuite/gnat.dg/specs/unchecked_union2.ads
+ bc8a00cafe93a77626f7d163fb369bcf  gcc/testsuite/gnat.dg/specs/unchecked_union3.ads
  c8cf8a4c8db78f809bd3550ca820e6a5  gcc/testsuite/gnat.dg/specs/universal_fixed.ads
  956da2e940d0e7706607f91ce39d70ad  gcc/testsuite/gnat.dg/specs/variant_part.ads
  12e2e0159b45a86a40c49bc020048d43  gcc/testsuite/gnat.dg/specs/varsize_return.ads
*************** e020b68426183241592d8d9e6fc099b4  gcc/te
*** 98654,98660 ****
  b295a72c05b831c76c031b8e2eb4d3b2  gcc/testsuite/lib/scanwpaipa.exp
  193dff75973e9817b77d076cd499f3fa  gcc/testsuite/lib/target-libpath.exp
  3d3f2e71aead61b3117d14eb7bbd4a01  gcc/testsuite/lib/target-supports-dg.exp
! c340faeb4b9a17de175506f693cdba4a  gcc/testsuite/lib/target-supports.exp
  7e0169745cc1fb5c7a32430931fd5493  gcc/testsuite/lib/target-utils.exp
  60311806ad83bff4ff32a9473e1b70f2  gcc/testsuite/lib/timeout-dg.exp
  b097a1276df72ba56dc546dc3859883c  gcc/testsuite/lib/timeout.exp
--- 98658,98664 ----
  b295a72c05b831c76c031b8e2eb4d3b2  gcc/testsuite/lib/scanwpaipa.exp
  193dff75973e9817b77d076cd499f3fa  gcc/testsuite/lib/target-libpath.exp
  3d3f2e71aead61b3117d14eb7bbd4a01  gcc/testsuite/lib/target-supports-dg.exp
! 66e07f3cd02fc91bdb4a02de7c8f4029  gcc/testsuite/lib/target-supports.exp
  7e0169745cc1fb5c7a32430931fd5493  gcc/testsuite/lib/target-utils.exp
  60311806ad83bff4ff32a9473e1b70f2  gcc/testsuite/lib/timeout-dg.exp
  b097a1276df72ba56dc546dc3859883c  gcc/testsuite/lib/timeout.exp
*************** feca017a2b8993f6879429c3b7fa9740  gcc/tr
*** 100516,100522 ****
  13e933e748d0799695ef67be87740769  gcc/tree-profile.cc
  835e107c7d950e109cab7dc47dd27a51  gcc/tree-scalar-evolution.cc
  b8223329488a4001552728350c5dbbef  gcc/tree-scalar-evolution.h
! 5e677b9e7eeb0dadfa42a9dae0095eed  gcc/tree-sra.cc
  1f7981f8ac0c98c7d1acb674035e2c16  gcc/tree-sra.h
  931fca6fc15298fa1f2021f8e4f2ed8d  gcc/tree-ssa-address.cc
  c37e139873f3e8da2fffefa09903ee42  gcc/tree-ssa-address.h
--- 100520,100526 ----
  13e933e748d0799695ef67be87740769  gcc/tree-profile.cc
  835e107c7d950e109cab7dc47dd27a51  gcc/tree-scalar-evolution.cc
  b8223329488a4001552728350c5dbbef  gcc/tree-scalar-evolution.h
! 4b97a5fc431c29ba0c8cdf1b7ba47147  gcc/tree-sra.cc
  1f7981f8ac0c98c7d1acb674035e2c16  gcc/tree-sra.h
  931fca6fc15298fa1f2021f8e4f2ed8d  gcc/tree-ssa-address.cc
  c37e139873f3e8da2fffefa09903ee42  gcc/tree-ssa-address.h
*************** c265574887f4390ecccd1073ee5c0190  libssp
*** 113556,113562 ****
  02470b541ab713bd1bfb8e6787e65f2c  libssp/strncpy-chk.c
  8a7a0719ef45cb3ae0041192eac8d550  libssp/vsnprintf-chk.c
  d662ba7536e1bd06226d47b1a7f1f4e2  libssp/vsprintf-chk.c
! 2f8b730301d8ab6deaa3f2abd319993a  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 113560,113566 ----
  02470b541ab713bd1bfb8e6787e65f2c  libssp/strncpy-chk.c
  8a7a0719ef45cb3ae0041192eac8d550  libssp/vsnprintf-chk.c
  d662ba7536e1bd06226d47b1a7f1f4e2  libssp/vsprintf-chk.c
! 9473c2e0836c9425d6c7bbcb95b92598  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** c236e001d2914387b789ce13408d7224  libstd
*** 114920,114926 ****
  685f5bca7582106082732b3aa4facb12  libstdc++-v3/include/std/algorithm
  fc9b21dd5374fb6eb8ae18d329975612  libstdc++-v3/include/std/any
  2d7e12f609af86f79536f7ce64c736c4  libstdc++-v3/include/std/array
! 882b23ab9c7ba08dd769fd5181d847a9  libstdc++-v3/include/std/atomic
  9f99ade7dd4b9b396effd0996ee55664  libstdc++-v3/include/std/barrier
  6a6e184e0a63330c64ab616785279ac6  libstdc++-v3/include/std/bit
  06852873ecbf5b23ff53ea0b1952d3d8  libstdc++-v3/include/std/bitset
--- 114924,114930 ----
  685f5bca7582106082732b3aa4facb12  libstdc++-v3/include/std/algorithm
  fc9b21dd5374fb6eb8ae18d329975612  libstdc++-v3/include/std/any
  2d7e12f609af86f79536f7ce64c736c4  libstdc++-v3/include/std/array
! 933660330d9bc80580f97359a896a891  libstdc++-v3/include/std/atomic
  9f99ade7dd4b9b396effd0996ee55664  libstdc++-v3/include/std/barrier
  6a6e184e0a63330c64ab616785279ac6  libstdc++-v3/include/std/bit
  06852873ecbf5b23ff53ea0b1952d3d8  libstdc++-v3/include/std/bitset
*************** bbc0c33c94ab18dc7789ef417cbd2143  libstd
*** 114978,114984 ****
  7fd4f7aceafc9e47af067236ba39094f  libstdc++-v3/include/std/stop_token
  2b9390e43d36e97d4ea240c08afeeba5  libstdc++-v3/include/std/streambuf
  d4462abdac571d8d61a236930c8cfc4b  libstdc++-v3/include/std/string
! 0fecd4da9af242a5c73494454baddd26  libstdc++-v3/include/std/string_view
  389b652a4f0c6e87818f8b1ab805ec13  libstdc++-v3/include/std/syncstream
  0ef04d7cdcad35a449aec6319852270f  libstdc++-v3/include/std/system_error
  f247d2ab92c9235549e795b99206b5e7  libstdc++-v3/include/std/thread
--- 114982,114988 ----
  7fd4f7aceafc9e47af067236ba39094f  libstdc++-v3/include/std/stop_token
  2b9390e43d36e97d4ea240c08afeeba5  libstdc++-v3/include/std/streambuf
  d4462abdac571d8d61a236930c8cfc4b  libstdc++-v3/include/std/string
! 1f5767878023aeda25ed5a092a92c77a  libstdc++-v3/include/std/string_view
  389b652a4f0c6e87818f8b1ab805ec13  libstdc++-v3/include/std/syncstream
  0ef04d7cdcad35a449aec6319852270f  libstdc++-v3/include/std/system_error
  f247d2ab92c9235549e795b99206b5e7  libstdc++-v3/include/std/thread
*************** bb4c8750d06e6cbcf2c116c8d2fdd3d1  libstd
*** 122447,122452 ****
--- 122451,122457 ----
  4251989d2e19682c01faed5c294409d4  libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc
  b3d7e6cfe8b8bd01758e4c07a4c28005  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  74c43187a818b684f8f265cb91a41448  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
+ 681f32c88b23086d76f165a9e1487576  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  cbcc81eb663d244bc37286ed070abed1  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  1405fe779f482abe4dfd50e50b9f6d04  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  b098b856e7a62fed0201c9aa38383951  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
diff -Nrcpad gcc-13-20260226/gcc/ChangeLog gcc-13-20260305/gcc/ChangeLog
*** gcc-13-20260226/gcc/ChangeLog	Thu Feb 26 22:32:06 2026
--- gcc-13-20260305/gcc/ChangeLog	Thu Mar  5 22:32:06 2026
***************
*** 1,3 ****
--- 1,22 ----
+ 2026-03-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-02-09  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/117217
+ 	* tree-sra.cc (propagate_subaccesses_from_rhs): Do not propagate
+ 	bit-field children.
+ 	(propagate_subaccesses_from_lhs): Likewise.
+ 
+ 2026-03-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-02-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/106260
+ 	* ipa-cp.cc (initialize_node_lattices): Replace assert that there are
+ 	callers with handling that situation when -fno-toplevel_reorder.
+ 
  2026-02-05  Hongyu Wang  <hongyu.wang@intel.com>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260226/gcc/DATESTAMP gcc-13-20260305/gcc/DATESTAMP
*** gcc-13-20260226/gcc/DATESTAMP	Thu Feb 26 22:32:06 2026
--- gcc-13-20260305/gcc/DATESTAMP	Thu Mar  5 22:32:06 2026
***************
*** 1 ****
! 20260226
--- 1 ----
! 20260305
diff -Nrcpad gcc-13-20260226/gcc/ada/ChangeLog gcc-13-20260305/gcc/ada/ChangeLog
*** gcc-13-20260226/gcc/ada/ChangeLog	Thu Feb 26 22:32:06 2026
--- gcc-13-20260305/gcc/ada/ChangeLog	Thu Mar  5 22:32:06 2026
***************
*** 1,3 ****
--- 1,10 ----
+ 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-25  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/124226
diff -Nrcpad gcc-13-20260226/gcc/ada/gcc-interface/decl.cc gcc-13-20260305/gcc/ada/gcc-interface/decl.cc
*** gcc-13-20260226/gcc/ada/gcc-interface/decl.cc	Thu Feb 26 22:32:06 2026
--- gcc-13-20260305/gcc/ada/gcc-interface/decl.cc	Thu Mar  5 22:32:06 2026
*************** typedef struct vinfo
*** 7971,7977 ****
  
     DEBUG_INFO is true if we need to write debug information about the type.
  
!    IN_VARIANT is true if the componennt list is that of a variant.
  
     FIRST_FREE_POS, if nonzero, is the first (lowest) free field position in
     the outer record type down to this variant level.  It is nonzero only if
--- 7971,7977 ----
  
     DEBUG_INFO is true if we need to write debug information about the type.
  
!    IN_VARIANT is true if the component list is that of a variant.
  
     FIRST_FREE_POS, if nonzero, is the first (lowest) free field position in
     the outer record type down to this variant level.  It is nonzero only if
*************** components_to_record (Node_Id gnat_compo
*** 8088,8094 ****
        tree gnu_union_type;
        tree this_first_free_pos, gnu_variant_list = NULL_TREE;
        bool union_field_needs_strict_alignment = false;
!       bool innermost_variant_level = true;
        auto_vec <vinfo_t, 16> variant_types;
        vinfo_t *gnu_variant;
        unsigned int variants_align = 0;
--- 8088,8094 ----
        tree gnu_union_type;
        tree this_first_free_pos, gnu_variant_list = NULL_TREE;
        bool union_field_needs_strict_alignment = false;
!       bool innermost_of_unchecked_union = false;
        auto_vec <vinfo_t, 16> variant_types;
        vinfo_t *gnu_variant;
        unsigned int variants_align = 0;
*************** components_to_record (Node_Id gnat_compo
*** 8137,8151 ****
        /* For an unchecked union with a fixed part, we need to compute whether
  	 we are at the innermost level of the variant part.  */
        if (unchecked_union && gnu_field_list)
! 	for (variant = First_Non_Pragma (Variants (gnat_variant_part));
! 	     Present (variant);
! 	     variant = Next_Non_Pragma (variant))
! 	  if (Present (Component_List (variant))
! 	      && Present (Variant_Part (Component_List (variant))))
! 	    {
! 	      innermost_variant_level = false;
! 	      break;
! 	    }
  
        /* We build the variants in two passes.  The bulk of the work is done in
  	 the first pass, that is to say translating the GNAT nodes, building
--- 8137,8155 ----
        /* For an unchecked union with a fixed part, we need to compute whether
  	 we are at the innermost level of the variant part.  */
        if (unchecked_union && gnu_field_list)
! 	{
! 	  innermost_of_unchecked_union = true;
! 
! 	  for (variant = First_Non_Pragma (Variants (gnat_variant_part));
! 	       Present (variant);
! 	       variant = Next_Non_Pragma (variant))
! 	    if (Present (Component_List (variant))
! 		&& Present (Variant_Part (Component_List (variant))))
! 	      {
! 		innermost_of_unchecked_union = false;
! 		break;
! 	      }
! 	}
  
        /* We build the variants in two passes.  The bulk of the work is done in
  	 the first pass, that is to say translating the GNAT nodes, building
*************** components_to_record (Node_Id gnat_compo
*** 8192,8208 ****
  	     the outer variant, so as to flatten the rep-ed layout as much as
  	     possible, the reason being that we cannot do any flattening when
  	     a subtype statically selects a variant later on, for example for
! 	     an aggregate.  */
  	  has_rep
  	    = components_to_record (Component_List (variant), gnat_record_type,
! 				    NULL_TREE, gnu_variant_type, packed,
  				    definition, !all_rep_and_size, all_rep,
  				    unchecked_union, true, needs_xv_encodings,
  				    true, this_first_free_pos,
  				    (all_rep || this_first_free_pos)
! 				    && !(unchecked_union
! 				         && gnu_field_list
! 					 && innermost_variant_level)
  				    ? NULL : &gnu_rep_list);
  
  	  /* Translate the qualifier and annotate the GNAT node.  */
--- 8196,8212 ----
  	     the outer variant, so as to flatten the rep-ed layout as much as
  	     possible, the reason being that we cannot do any flattening when
  	     a subtype statically selects a variant later on, for example for
! 	     an aggregate; in that case, we force a packed layout because the
! 	     moved fields may overlap with packed bit-fields.  */
  	  has_rep
  	    = components_to_record (Component_List (variant), gnat_record_type,
! 				    NULL_TREE, gnu_variant_type, packed ||
! 				    (all_rep && innermost_of_unchecked_union),
  				    definition, !all_rep_and_size, all_rep,
  				    unchecked_union, true, needs_xv_encodings,
  				    true, this_first_free_pos,
  				    (all_rep || this_first_free_pos)
! 				    && !innermost_of_unchecked_union
  				    ? NULL : &gnu_rep_list);
  
  	  /* Translate the qualifier and annotate the GNAT node.  */
diff -Nrcpad gcc-13-20260226/gcc/ipa-cp.cc gcc-13-20260305/gcc/ipa-cp.cc
*** gcc-13-20260226/gcc/ipa-cp.cc	Thu Feb 26 22:32:08 2026
--- gcc-13-20260305/gcc/ipa-cp.cc	Thu Mar  5 22:32:08 2026
*************** initialize_node_lattices (struct cgraph_
*** 1575,1584 ****
        int caller_count = 0;
        node->call_for_symbol_thunks_and_aliases (count_callers, &caller_count,
  						true);
-       gcc_checking_assert (caller_count > 0);
        if (caller_count == 1)
  	node->call_for_symbol_thunks_and_aliases (set_single_call_flag,
  						  NULL, true);
      }
    else
      {
--- 1575,1588 ----
        int caller_count = 0;
        node->call_for_symbol_thunks_and_aliases (count_callers, &caller_count,
  						true);
        if (caller_count == 1)
  	node->call_for_symbol_thunks_and_aliases (set_single_call_flag,
  						  NULL, true);
+       else if (caller_count == 0)
+ 	{
+ 	  gcc_checking_assert (!opt_for_fn (node->decl, flag_toplevel_reorder));
+ 	  variable = true;
+ 	}
      }
    else
      {
diff -Nrcpad gcc-13-20260226/gcc/lto/ChangeLog gcc-13-20260305/gcc/lto/ChangeLog
*** gcc-13-20260226/gcc/lto/ChangeLog	Thu Feb 26 22:32:08 2026
--- gcc-13-20260305/gcc/lto/ChangeLog	Thu Mar  5 22:32:08 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-02-26  Michal Jires  <mjires@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-01-11  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/121588
+ 	* lto-symtab.cc (lto_symtab_merge_symbols): Set body_removed
+ 	for symbols resolved outside of IR.
+ 
  2025-06-05  Release Manager
  
  	* GCC 13.4.0 released.
diff -Nrcpad gcc-13-20260226/gcc/testsuite/ChangeLog gcc-13-20260305/gcc/testsuite/ChangeLog
*** gcc-13-20260226/gcc/testsuite/ChangeLog	Thu Feb 26 22:32:09 2026
--- gcc-13-20260305/gcc/testsuite/ChangeLog	Thu Mar  5 22:32:08 2026
***************
*** 1,3 ****
--- 1,42 ----
+ 2026-03-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-02-09  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR tree-optimization/117217
+ 	* g++.dg/torture/pr117217-1.C: New test.
+ 	* g++.dg/torture/pr117217-2.C: Likewise.
+ 
+ 2026-03-04  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-02-06  Martin Jambor  <mjambor@suse.cz>
+ 
+ 	PR ipa/106260
+ 	* g++.dg/ipa/pr106260.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-26  Michal Jires  <mjires@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-01-11  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/121588
+ 	* gcc.dg/lto/attr-weakref-2_0.c: New test.
+ 	* gcc.dg/lto/attr-weakref-2_1.c: New test.
+ 
  2026-02-25  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* gnat.dg/protected_deref1.adb: New test.
diff -Nrcpad gcc-13-20260226/gcc/testsuite/g++.dg/ipa/pr106260.C gcc-13-20260305/gcc/testsuite/g++.dg/ipa/pr106260.C
*** gcc-13-20260226/gcc/testsuite/g++.dg/ipa/pr106260.C	Thu Jan  1 00:00:00 1970
--- gcc-13-20260305/gcc/testsuite/g++.dg/ipa/pr106260.C	Thu Mar  5 22:32:09 2026
***************
*** 0 ****
--- 1,64 ----
+ // { dg-do compile }
+ // { dg-options "-O2 -std=gnu++14 -fwhole-program -fno-unit-at-a-time" }
+ 
+ struct A;
+ template <class T>
+ struct Q { Q (T); };
+ template<typename T, class D>
+ struct U {
+   ~U () { m1 (nullptr); }
+   D m2 ();
+   T *u;
+   void m1 (T *) { m2 () (u); }
+ };
+ struct F { F (int *); };
+ template <class, class T = F>
+ using W = Q<T>;
+ int a, b;
+ void fn1 (void *);
+ template <class T>
+ void
+ fn2 (T *x)
+ {
+   if (x)
+     x->~T();
+   fn1 (x);
+ }
+ template <typename T>
+ struct C {
+   void operator() (T *x) { fn2 (x); }
+ };
+ struct D;
+ template <typename T, typename D = C<T> >
+ using V = U<T, D>;
+ struct A {
+   A (int *);
+ };
+ struct S;
+ struct G {
+   V<S> m3 ();
+ };
+ struct S {
+   int e;
+   virtual ~S () {}
+ };
+ template<typename T>
+ struct H {
+   H (int, T x, int) : h(x) {}
+   G g;
+   void m4 () { g.m3 (); }
+   T h;
+ };
+ struct I {
+   I(A, W<D>);
+ };
+ void
+ test ()
+ {
+   A c (&b);
+   W<D> d (&b);
+   I e (c, d);
+   H<I> f (0, e, a);
+   f.m4 ();
+ }
+ 
diff -Nrcpad gcc-13-20260226/gcc/testsuite/g++.dg/torture/pr117217-1.C gcc-13-20260305/gcc/testsuite/g++.dg/torture/pr117217-1.C
*** gcc-13-20260226/gcc/testsuite/g++.dg/torture/pr117217-1.C	Thu Jan  1 00:00:00 1970
--- gcc-13-20260305/gcc/testsuite/g++.dg/torture/pr117217-1.C	Thu Mar  5 22:32:09 2026
***************
*** 0 ****
--- 1,24 ----
+ struct [[gnu::packed]] A {
+   int i;
+   bool b;
+ };
+ 
+ struct [[gnu::packed]] B {
+   int i;
+   bool b : 1;
+ };
+ 
+ struct E {
+   union Data {
+     A a;
+     B b;
+     Data(const B &b) : b(b) {}
+   } data;
+ };
+ 
+ extern B copy;
+ 
+ int main() {
+   E e{{B()}};
+   copy = e.data.b; // NEEDED FOR ICE
+ }
diff -Nrcpad gcc-13-20260226/gcc/testsuite/g++.dg/torture/pr117217-2.C gcc-13-20260305/gcc/testsuite/g++.dg/torture/pr117217-2.C
*** gcc-13-20260226/gcc/testsuite/g++.dg/torture/pr117217-2.C	Thu Jan  1 00:00:00 1970
--- gcc-13-20260305/gcc/testsuite/g++.dg/torture/pr117217-2.C	Thu Mar  5 22:32:09 2026
***************
*** 0 ****
--- 1,24 ----
+ struct a {
+   int b;
+   long c;
+   long d;
+   bool f;
+ };
+ struct g {
+   int b;
+   long c;
+   long d;
+   bool : 1;
+ } h;
+ struct l {
+   union i {
+     a j;
+     g k;
+     i(g m) : k(m) {}
+   } data;
+ };
+ int main() {
+   l e{g()};
+   h = e.data.k;
+   return 0;
+ }
diff -Nrcpad gcc-13-20260226/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads gcc-13-20260305/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads
*** gcc-13-20260226/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads	Thu Jan  1 00:00:00 1970
--- gcc-13-20260305/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads	Thu Mar  5 22:32:13 2026
***************
*** 0 ****
--- 1,80 ----
+ -- { dg-do compile }
+ 
+ with Interfaces;
+ 
+ package Unchecked_Union3 is
+ 
+    type T_CAN_ID is mod 2**29 with
+       Default_Value => 0,
+       Size          => 29;
+ 
+    type T_Node_ID is mod 2**7 with
+       Size          => 7,
+       Default_Value => 0;
+ 
+    type T_Message_Type_ID is new Interfaces.Unsigned_16;
+ 
+    type T_Service_Type_ID is new Interfaces.Unsigned_8;
+ 
+    type T_Priority is mod 2**5 with
+       Size          => 5,
+       Default_Value => 0;
+ 
+    type T_Format_Selector is
+      (CAN_Fields,
+       DroneCAN_Fields);
+ 
+    type T_Frame_Selector is
+      (Message_Frame,
+       Anonymous_Frame,
+       Service_Frame);
+ 
+    type Unsigned_2 is mod 2**2 with
+       Size          => 2,
+       Default_Value => 0;
+ 
+    type Unsigned_14 is mod 2**14 with
+       Size          => 14,
+       Default_Value => 0;
+ 
+    type T_Header (Format_Selector : T_Format_Selector := DroneCAN_Fields;
+       Frame_Selector              : T_Frame_Selector  := Message_Frame) is record
+       case Format_Selector is
+          when CAN_Fields =>
+             CAN_ID : T_CAN_ID;
+ 
+          when DroneCAN_Fields =>
+             Source_Node_ID      : T_Node_ID;
+             Service_Not_Message : Boolean := False;
+             Priority            : T_Priority;
+ 
+             case Frame_Selector is
+                when Message_Frame =>
+                   Message_Type_ID : T_Message_Type_ID;
+                when Anonymous_Frame =>
+                   Message_Type_ID_Lower_Bits : Unsigned_2;
+                   Discriminator              : Unsigned_14;
+                when Service_Frame =>
+                   Destination_Node_ID  : T_Node_ID;
+                   Request_Not_Response : Boolean := False;
+                   Service_Type_ID      : T_Service_Type_ID;
+             end case;
+       end case;
+    end record with
+       Unchecked_Union,
+       Size => 29;
+ 
+    for T_Header use record
+       CAN_ID                     at 0 range  0 .. 28;
+       Source_Node_ID             at 0 range  0 ..  6;
+       Service_Not_Message        at 0 range  7 ..  7;
+       Priority                   at 0 range 24 .. 28;
+       Message_Type_ID            at 0 range  8 .. 23;
+       Message_Type_ID_Lower_Bits at 0 range  8 ..  9;
+       Discriminator              at 0 range 10 .. 23;
+       Destination_Node_ID        at 0 range  8 .. 14;
+       Request_Not_Response       at 0 range 15 .. 15;
+       Service_Type_ID            at 0 range 16 .. 23;
+    end record;
+ 
+ end Unchecked_Union3;
diff -Nrcpad gcc-13-20260226/gcc/testsuite/lib/target-supports.exp gcc-13-20260305/gcc/testsuite/lib/target-supports.exp
*** gcc-13-20260226/gcc/testsuite/lib/target-supports.exp	Thu Feb 26 22:32:14 2026
--- gcc-13-20260305/gcc/testsuite/lib/target-supports.exp	Thu Mar  5 22:32:14 2026
*************** proc add_options_for_arm_v8_3a_fp16_comp
*** 11930,11936 ****
  
  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"
--- 11930,11936 ----
  
  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-13-20260226/gcc/tree-sra.cc gcc-13-20260305/gcc/tree-sra.cc
*** gcc-13-20260226/gcc/tree-sra.cc	Thu Feb 26 22:32:14 2026
--- gcc-13-20260305/gcc/tree-sra.cc	Thu Mar  5 22:32:14 2026
*************** propagate_subaccesses_from_rhs (struct a
*** 3045,3050 ****
--- 3045,3051 ----
  	}
  
        if (rchild->grp_unscalarizable_region
+ 	  || (rchild->size % BITS_PER_UNIT) != 0
  	  || !budget_for_propagation_access (lacc->base))
  	{
  	  if (!lacc->grp_write && access_or_its_child_written (rchild))
*************** propagate_subaccesses_from_lhs (struct a
*** 3104,3109 ****
--- 3105,3111 ----
        HOST_WIDE_INT norm_offset = lchild->offset + norm_delta;
  
        if (lchild->grp_unscalarizable_region
+ 	  || (lchild->size % BITS_PER_UNIT) != 0
  	  || child_would_conflict_in_acc (racc, norm_offset, lchild->size,
  					  &matching_acc)
  	  || !budget_for_propagation_access (racc->base))
diff -Nrcpad gcc-13-20260226/libstdc++-v3/ChangeLog gcc-13-20260305/libstdc++-v3/ChangeLog
*** gcc-13-20260226/libstdc++-v3/ChangeLog	Thu Feb 26 22:32:16 2026
--- gcc-13-20260305/libstdc++-v3/ChangeLog	Thu Mar  5 22:32:15 2026
***************
*** 1,3 ****
--- 1,24 ----
+ 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-02-27  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/123875
+ 	* include/std/atomic (atomic<_Tp>::atomic(_Tp)): Skip __clear_padding
+ 	call for constant evaluation.
+ 	* testsuite/29_atomics/atomic/cons/zero_padding.cc: New test.
+ 	(cherry picked with modifications from commits
+ 	6b550d69fe7cb62ea6e240ce7a4ba29ce33aa1b1
+ 	682c95b808724e6f876ea709b873ac6771704d7b
+ 	060d7c2a9c1fe16d23d98a74287fdb7c73ddb784
+ 	f3ba5ad088cebe117f857329a35b95d18d97a808)
+ 
  2026-02-10  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-13-20260226/libstdc++-v3/include/std/atomic gcc-13-20260305/libstdc++-v3/include/std/atomic
*** gcc-13-20260226/libstdc++-v3/include/std/atomic	Thu Feb 26 22:32:16 2026
--- gcc-13-20260305/libstdc++-v3/include/std/atomic	Thu Mar  5 22:32:16 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 234,240 ****
        {
  #if __cplusplus >= 201402L && __has_builtin(__builtin_clear_padding)
  	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
! 	  __builtin_clear_padding(std::__addressof(_M_i));
  #endif
        }
  
--- 234,241 ----
        {
  #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
        }
  
diff -Nrcpad gcc-13-20260226/libstdc++-v3/include/std/string_view gcc-13-20260305/libstdc++-v3/include/std/string_view
*** gcc-13-20260226/libstdc++-v3/include/std/string_view	Thu Feb 26 22:32:16 2026
--- gcc-13-20260305/libstdc++-v3/include/std/string_view	Thu Mar  5 22:32:16 2026
*************** _GLIBCXX_END_NAMESPACE_VERSION
*** 904,909 ****
  
  #include <bits/string_view.tcc>
  
! #endif // __cplusplus <= 201402L
  
! #endif // _GLIBCXX_EXPERIMENTAL_STRING_VIEW
--- 904,909 ----
  
  #include <bits/string_view.tcc>
  
! #endif // C++17
  
! #endif // _GLIBCXX_STRING_VIEW
diff -Nrcpad gcc-13-20260226/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc gcc-13-20260305/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
*** gcc-13-20260226/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Thu Jan  1 00:00:00 1970
--- gcc-13-20260305/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Thu Mar  5 22:32:16 2026
***************
*** 0 ****
--- 1,79 ----
+ // { dg-do run { target c++11 } }
+ // { dg-require-atomic-cmpxchg-word "" }
+ // { dg-add-options libatomic }
+ 
+ #include <atomic>
+ #include <cstring>
+ #include <testsuite_hooks.h>
+ 
+ struct TailPadding { int i; char c; };
+ TailPadding ztail{1, 2}; // zeroed-padding
+ constexpr std::atomic<TailPadding> ctail(TailPadding{1,2});
+ std::atomic<TailPadding> gtail(TailPadding{1,2});
+ 
+ struct MidPadding { char c; int x; };
+ MidPadding zmid{1, 2}; // zeroed-padding
+ constexpr std::atomic<MidPadding> cmid(MidPadding{1,2});
+ std::atomic<MidPadding> gmid(MidPadding{1,2});
+ 
+ struct BitPadding { int : 4; int i : 5; int : 4; int j : 5; int : 4;  };
+ BitPadding zbit{1, 2}; // zeroed-padding
+ constexpr std::atomic<BitPadding> cbit(BitPadding{1,2});
+ std::atomic<BitPadding> gbit(BitPadding{1,2});
+ 
+ struct Ctor
+ {
+   Ctor() = default;
+ 
+   constexpr Ctor(char pc, char pi)
+     : c(pc), i(pi)
+   {}
+ 
+   char c;
+   int i;
+ };
+ 
+ Ctor zctor{1, 2}; // zeroed-padding
+ constexpr std::atomic<Ctor> cctor(Ctor{1,2});
+ std::atomic<Ctor> gctor(Ctor{1,2});
+ 
+ template<typename T>
+ void test_struct(std::atomic<T>& g, const T& zp)
+ {
+   T const d{3, 4};
+   T t;
+ 
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( g.compare_exchange_strong(t, d) );
+ 
+   static std::atomic<T> st(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( st.compare_exchange_strong(t, d) );
+ 
+   thread_local std::atomic<T> tl(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( tl.compare_exchange_strong(t, d) );
+ 
+   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});
+ }
+ 
+ int main()
+ {
+   test_struct(gtail, ztail);
+   test_struct(gmid, zmid);
+   test_struct(gbit, zbit);
+   test_struct(gctor, zctor);
+ }
