diff -Nrcpad gcc-14-20260227/LAST_UPDATED gcc-14-20260306/LAST_UPDATED
*** gcc-14-20260227/LAST_UPDATED	Fri Feb 27 22:32:18 2026
--- gcc-14-20260306/LAST_UPDATED	Fri Mar  6 22:32:21 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 22ab869ea08aeaa877676310a1b82481f4eef1ba
--- 1 ----
! Obtained from git: releases/gcc-14 revision 1c6adff07834792ece71d5bdf21eb2d2941db432
diff -Nrcpad gcc-14-20260227/MD5SUMS gcc-14-20260306/MD5SUMS
*** gcc-14-20260227/MD5SUMS	Fri Feb 27 22:32:22 2026
--- gcc-14-20260306/MD5SUMS	Fri Mar  6 22:32:26 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260227.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-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
*************** fc9280b02bc68e4fb1ef8d51ccc25061  Change
*** 23,29 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 4171d318b44afe2c86e285b5f0f09920  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 6ea42fb73576bc78dea1d9b6df26a432  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
! d98b05d627a701a44d550c6cbe08e686  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
! 94b50fd77f13b65a6154416fd3cba68f  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
! 8bf62f7a89d06e4ee2190474a27b3d6d  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
! 28ba26fb2baa847e8565d103aee61af3  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 553,559 ****
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 97429b161b97f3a3eb8a41d47290b217  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
--- 553,559 ----
  4ff8b6b00464fd6c37969f80145dca46  gcc/acinclude.m4
  496cb89e62ed3dbfd1af1db0975a4c04  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! dce4cf02c4d7a83879bcf05b7a8e89ed  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** e76788ae5fdae399904afcee294d994e  gcc/ad
*** 815,821 ****
  2d59d22647c9cc2b47b4898c4dd4cb21  gcc/ada/gcc-interface/ada.h
  ace55b710e2eba0e33421198b158de00  gcc/ada/gcc-interface/config-lang.in
  52ac0b9aec1b1a53cb183788c4a36595  gcc/ada/gcc-interface/cuintp.cc
! ecd379264ada8e784f8a27c58922673f  gcc/ada/gcc-interface/decl.cc
  e95c0feeaced6a36656b245efe836c63  gcc/ada/gcc-interface/gadaint.h
  f61a98e52a715a073f777f982f1394b7  gcc/ada/gcc-interface/gigi.h
  0609d8dffb6cdfbd0d07912a8da3038d  gcc/ada/gcc-interface/lang-specs.h
--- 815,821 ----
  2d59d22647c9cc2b47b4898c4dd4cb21  gcc/ada/gcc-interface/ada.h
  ace55b710e2eba0e33421198b158de00  gcc/ada/gcc-interface/config-lang.in
  52ac0b9aec1b1a53cb183788c4a36595  gcc/ada/gcc-interface/cuintp.cc
! 71f567593230fd03b831b2955067d038  gcc/ada/gcc-interface/decl.cc
  e95c0feeaced6a36656b245efe836c63  gcc/ada/gcc-interface/gadaint.h
  f61a98e52a715a073f777f982f1394b7  gcc/ada/gcc-interface/gigi.h
  0609d8dffb6cdfbd0d07912a8da3038d  gcc/ada/gcc-interface/lang-specs.h
*************** ea6cc43b3fa3313db4228947eed2152e  gcc/co
*** 4308,4314 ****
  3ce5af4b5c069929ba519548d5342e90  gcc/config/loongarch/loongarch-protos.h
  3b7b410fd2ede1c56c692fa390a8d415  gcc/config/loongarch/loongarch-str.h
  2088d1b3164d3464806a7627d2fd6e52  gcc/config/loongarch/loongarch-tune.h
! 6c41263f3aaac835ffcd83721082f1e0  gcc/config/loongarch/loongarch.cc
  39c8662694bff1c4d52f90cba43e5048  gcc/config/loongarch/loongarch.h
  2bf401adae6dfb1d853a71961fec58c9  gcc/config/loongarch/loongarch.md
  b62396c60e7bd1b4de8956c5869d45f2  gcc/config/loongarch/loongarch.opt
--- 4308,4314 ----
  3ce5af4b5c069929ba519548d5342e90  gcc/config/loongarch/loongarch-protos.h
  3b7b410fd2ede1c56c692fa390a8d415  gcc/config/loongarch/loongarch-str.h
  2088d1b3164d3464806a7627d2fd6e52  gcc/config/loongarch/loongarch-tune.h
! a2c77447e497eb94952bc52b487bf6f2  gcc/config/loongarch/loongarch.cc
  39c8662694bff1c4d52f90cba43e5048  gcc/config/loongarch/loongarch.h
  2bf401adae6dfb1d853a71961fec58c9  gcc/config/loongarch/loongarch.md
  b62396c60e7bd1b4de8956c5869d45f2  gcc/config/loongarch/loongarch.opt
*************** f90689370e66cea8434860b5a2b4ce6d  gcc/op
*** 7488,7494 ****
  45ddcc72ac7b1afaa7af97d8bc82c631  gcc/optabs-query.h
  2621e9c7af560a2b8e74cf60d4b9ad19  gcc/optabs-tree.cc
  13ecee26d0eed80122b7cdd5558365c0  gcc/optabs-tree.h
! b7b7a3a69ee4aec8df4843eb6df44cf2  gcc/optabs.cc
  1524c898bb70671cfa4ccd9cda136f8b  gcc/optabs.def
  043f510a745f66b5001f887999834c82  gcc/optabs.h
  460fed94230230ee1afb607142c60ed7  gcc/optc-gen.awk
--- 7488,7494 ----
  45ddcc72ac7b1afaa7af97d8bc82c631  gcc/optabs-query.h
  2621e9c7af560a2b8e74cf60d4b9ad19  gcc/optabs-tree.cc
  13ecee26d0eed80122b7cdd5558365c0  gcc/optabs-tree.h
! b889cc728a93ee38fbea04c6cc22d460  gcc/optabs.cc
  1524c898bb70671cfa4ccd9cda136f8b  gcc/optabs.def
  043f510a745f66b5001f887999834c82  gcc/optabs.h
  460fed94230230ee1afb607142c60ed7  gcc/optc-gen.awk
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8062,8068 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! cc34c6df96810211691cd15421d90e4e  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
! 08cce9345f15edd390d2a2fdcd98bf34  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** ece87744c4e664bf39922d9937465df1  gcc/te
*** 36547,36552 ****
--- 36547,36553 ----
  a374b3675317752237cc478b2e662a04  gcc/testsuite/gcc.c-torture/compile/pr115277.c
  0385d5805cb6d90dc8a17f2f44d3450e  gcc/testsuite/gcc.c-torture/compile/pr117358.c
  6d7416e999725c0f023c4322893b1214  gcc/testsuite/gcc.c-torture/compile/pr118501.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
*************** de366240409b1c3413cd274333487fb7  gcc/te
*** 105576,105581 ****
--- 105577,105583 ----
  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
*************** a418f2a12bc2c1ec76cd9ee5444af0f5  gcc/te
*** 108318,108324 ****
  a27ad08178b52070e08d7c22e2387cef  gcc/testsuite/lib/scanwpaipa.exp
  dbc2129f79274a41f1128a281f81019b  gcc/testsuite/lib/target-libpath.exp
  c103f8a73343128b0e916a2296fc1ac1  gcc/testsuite/lib/target-supports-dg.exp
! 381c9133a853f74465dd0b51a589085d  gcc/testsuite/lib/target-supports.exp
  d84983886d0708605af864226f6beac0  gcc/testsuite/lib/target-utils.exp
  64f7537fc29d3ab37e44b5aaf37c5fb4  gcc/testsuite/lib/timeout-dg.exp
  75cfa45901d445df376345935b79fa37  gcc/testsuite/lib/timeout.exp
--- 108320,108326 ----
  a27ad08178b52070e08d7c22e2387cef  gcc/testsuite/lib/scanwpaipa.exp
  dbc2129f79274a41f1128a281f81019b  gcc/testsuite/lib/target-libpath.exp
  c103f8a73343128b0e916a2296fc1ac1  gcc/testsuite/lib/target-supports-dg.exp
! 2ba283f83489466553a049b75a3f7ea6  gcc/testsuite/lib/target-supports.exp
  d84983886d0708605af864226f6beac0  gcc/testsuite/lib/target-utils.exp
  64f7537fc29d3ab37e44b5aaf37c5fb4  gcc/testsuite/lib/timeout-dg.exp
  75cfa45901d445df376345935b79fa37  gcc/testsuite/lib/timeout.exp
*************** d828e38384c506bf5e7d5a3c02725a37  libssp
*** 123817,123823 ****
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! 803719ac7e819aab396f7492fd47118e  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 123819,123825 ----
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! cc96d24ec2d1410d133bb2127342528f  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** a0df6d15b0b61f28637877eac9b32416  libstd
*** 125255,125261 ****
  406d5b03cbe8429f45aec26c93455b4d  libstdc++-v3/include/std/stop_token
  a638d14f025bfe69de610cd67bd7be1c  libstdc++-v3/include/std/streambuf
  e656fe3f99236050e70b771efe8cdbb3  libstdc++-v3/include/std/string
! f057f3e7d23b182c23975269002a6874  libstdc++-v3/include/std/string_view
  9320934590547a708c259f9365f20d69  libstdc++-v3/include/std/syncstream
  ea3475b6634d2e3d92998c1122691d82  libstdc++-v3/include/std/system_error
  d5da6c002707c25c3a0b22aa5845de07  libstdc++-v3/include/std/text_encoding
--- 125257,125263 ----
  406d5b03cbe8429f45aec26c93455b4d  libstdc++-v3/include/std/stop_token
  a638d14f025bfe69de610cd67bd7be1c  libstdc++-v3/include/std/streambuf
  e656fe3f99236050e70b771efe8cdbb3  libstdc++-v3/include/std/string
! 40afcc5770400c2aa183a2e3a0c244a9  libstdc++-v3/include/std/string_view
  9320934590547a708c259f9365f20d69  libstdc++-v3/include/std/syncstream
  ea3475b6634d2e3d92998c1122691d82  libstdc++-v3/include/std/system_error
  d5da6c002707c25c3a0b22aa5845de07  libstdc++-v3/include/std/text_encoding
diff -Nrcpad gcc-14-20260227/gcc/ChangeLog gcc-14-20260306/gcc/ChangeLog
*** gcc-14-20260227/gcc/ChangeLog	Fri Feb 27 22:32:05 2026
--- gcc-14-20260306/gcc/ChangeLog	Fri Mar  6 22:32:05 2026
***************
*** 1,3 ****
--- 1,23 ----
+ 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  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-14-20260227/gcc/DATESTAMP gcc-14-20260306/gcc/DATESTAMP
*** gcc-14-20260227/gcc/DATESTAMP	Fri Feb 27 22:32:05 2026
--- gcc-14-20260306/gcc/DATESTAMP	Fri Mar  6 22:32:05 2026
***************
*** 1 ****
! 20260227
--- 1 ----
! 20260306
diff -Nrcpad gcc-14-20260227/gcc/ada/ChangeLog gcc-14-20260306/gcc/ada/ChangeLog
*** gcc-14-20260227/gcc/ada/ChangeLog	Fri Feb 27 22:32:05 2026
--- gcc-14-20260306/gcc/ada/ChangeLog	Fri Mar  6 22:32:05 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-14-20260227/gcc/ada/gcc-interface/decl.cc gcc-14-20260306/gcc/ada/gcc-interface/decl.cc
*** gcc-14-20260227/gcc/ada/gcc-interface/decl.cc	Fri Feb 27 22:32:05 2026
--- gcc-14-20260306/gcc/ada/gcc-interface/decl.cc	Fri Mar  6 22:32:05 2026
*************** typedef struct vinfo
*** 8060,8066 ****
  
     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
--- 8060,8066 ----
  
     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
*** 8177,8183 ****
        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;
--- 8177,8183 ----
        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
*** 8226,8240 ****
        /* 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
--- 8226,8244 ----
        /* 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
*** 8281,8297 ****
  	     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.  */
--- 8285,8301 ----
  	     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-14-20260227/gcc/config/loongarch/loongarch.cc gcc-14-20260306/gcc/config/loongarch/loongarch.cc
*** gcc-14-20260227/gcc/config/loongarch/loongarch.cc	Fri Feb 27 22:32:06 2026
--- gcc-14-20260306/gcc/config/loongarch/loongarch.cc	Fri Mar  6 22:32:06 2026
*************** loongarch_expand_vector_init_same (rtx t
*** 9963,9978 ****
  	}
      }
  
!   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)
      {
--- 9963,9969 ----
  	}
      }
  
!   temp = force_reg (imode, same);
  
    switch (vmode)
      {
diff -Nrcpad gcc-14-20260227/gcc/optabs.cc gcc-14-20260306/gcc/optabs.cc
*** gcc-14-20260227/gcc/optabs.cc	Fri Feb 27 22:32:07 2026
--- gcc-14-20260306/gcc/optabs.cc	Fri Mar  6 22:32:07 2026
*************** force_expand_binop (machine_mode mode, o
*** 421,429 ****
    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)
--- 421,429 ----
    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
*** 1622,1636 ****
        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)
  	    {
--- 1622,1646 ----
        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-14-20260227/gcc/testsuite/ChangeLog gcc-14-20260306/gcc/testsuite/ChangeLog
*** gcc-14-20260227/gcc/testsuite/ChangeLog	Fri Feb 27 22:32:07 2026
--- gcc-14-20260306/gcc/testsuite/ChangeLog	Fri Mar  6 22:32:08 2026
***************
*** 1,3 ****
--- 1,33 ----
+ 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-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  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	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-14-20260227/gcc/testsuite/gcc.c-torture/compile/pr124250.c gcc-14-20260306/gcc/testsuite/gcc.c-torture/compile/pr124250.c
*** gcc-14-20260227/gcc/testsuite/gcc.c-torture/compile/pr124250.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260306/gcc/testsuite/gcc.c-torture/compile/pr124250.c	Fri Mar  6 22:32:10 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-14-20260227/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads gcc-14-20260306/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads
*** gcc-14-20260227/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads	Thu Jan  1 00:00:00 1970
--- gcc-14-20260306/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads	Fri Mar  6 22:32:16 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-14-20260227/gcc/testsuite/lib/target-supports.exp gcc-14-20260306/gcc/testsuite/lib/target-supports.exp
*** gcc-14-20260227/gcc/testsuite/lib/target-supports.exp	Fri Feb 27 22:32:13 2026
--- gcc-14-20260306/gcc/testsuite/lib/target-supports.exp	Fri Mar  6 22:32:16 2026
*************** proc add_options_for_arm_v8_3a_fp16_comp
*** 13009,13015 ****
  
  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"
--- 13009,13015 ----
  
  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-14-20260227/libstdc++-v3/ChangeLog gcc-14-20260306/libstdc++-v3/ChangeLog
*** gcc-14-20260227/libstdc++-v3/ChangeLog	Fri Feb 27 22:32:14 2026
--- gcc-14-20260306/libstdc++-v3/ChangeLog	Fri Mar  6 22:32:17 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 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-26  Tomasz Kamiński  <tkaminsk@redhat.com>
  
  	PR libstdc++/123875
diff -Nrcpad gcc-14-20260227/libstdc++-v3/include/std/string_view gcc-14-20260306/libstdc++-v3/include/std/string_view
*** gcc-14-20260227/libstdc++-v3/include/std/string_view	Fri Feb 27 22:32:15 2026
--- gcc-14-20260306/libstdc++-v3/include/std/string_view	Fri Mar  6 22:32:18 2026
*************** _GLIBCXX_END_NAMESPACE_VERSION
*** 906,911 ****
  
  #include <bits/string_view.tcc>
  
! #endif // __cplusplus <= 201402L
  
! #endif // _GLIBCXX_EXPERIMENTAL_STRING_VIEW
--- 906,911 ----
  
  #include <bits/string_view.tcc>
  
! #endif // C++17
  
! #endif // _GLIBCXX_STRING_VIEW
