diff -Nrcpad gcc-14-20260320/LAST_UPDATED gcc-14-20260327/LAST_UPDATED
*** gcc-14-20260320/LAST_UPDATED	Fri Mar 20 22:32:20 2026
--- gcc-14-20260327/LAST_UPDATED	Fri Mar 27 22:32:21 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-14 revision 50e6b9ae944d6eace32edb59c7e18597f3f2f2d7
--- 1 ----
! Obtained from git: releases/gcc-14 revision 8463c3454cb1eb7637e12ca7992262c421e616d8
diff -Nrcpad gcc-14-20260320/MD5SUMS gcc-14-20260327/MD5SUMS
*** gcc-14-20260320/MD5SUMS	Fri Mar 20 22:32:25 2026
--- gcc-14-20260327/MD5SUMS	Fri Mar 27 22:32:25 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-14-20260320.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-20260327.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
! ed007d1e7fcbfbe4e0a8dac01ddb21b9  LAST_UPDATED
  1671040823f8eb8436a06fdd18065e02  MAINTAINERS
  304c3887135aefa27c21292ec585b0a3  Makefile.def
  8dd93fbf2e32bcbd2faba10e3b8ba2b0  Makefile.in
--- 23,29 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 08573d98bbbd32d7a3a671e163a973ec  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
! 8b72fa9c1a46ecf72dd6929883e91645  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
! 2e01267a9d4b366d26cece6620eab583  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
! 0090223b01e97000f5c36b70a1c8efb6  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
! b9bf14ce3772a1f07adf3ba09d529919  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
! f63e2f0eb790ae2020e1dc330b9bc4df  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
! a448c081e48e3217d537d887ac05d889  gcc/ada/ChangeLog
  683be0b07dc4f64f118fd5e8ae9cb30d  gcc/ada/ChangeLog-2001
  7aff25efb203be4136b8776cdc812956  gcc/ada/ChangeLog-2002
  cd2379152000f40157d349018fb9364d  gcc/ada/ChangeLog-2003
*************** aecb842d76fc399f8fc370849a9d9129  gcc/ad
*** 2900,2906 ****
  fde7a59c931876f5221d8c088f4e9cb9  gcc/ada/sem_disp.ads
  3ed683f4141f83ceb764aef056e360ac  gcc/ada/sem_dist.adb
  744cc764c9e676171c6c9c2a7b7540e6  gcc/ada/sem_dist.ads
! a5f55e174ef43a753e3e9e06ea83a917  gcc/ada/sem_elab.adb
  2b5599a6b9e36d4947b2cc6f89c3aa2c  gcc/ada/sem_elab.ads
  456bc69903dc6e1c39ca009d24433f2f  gcc/ada/sem_elim.adb
  75977e6ca2d3fa68e4c675ddb42ddcf2  gcc/ada/sem_elim.ads
--- 2900,2906 ----
  fde7a59c931876f5221d8c088f4e9cb9  gcc/ada/sem_disp.ads
  3ed683f4141f83ceb764aef056e360ac  gcc/ada/sem_dist.adb
  744cc764c9e676171c6c9c2a7b7540e6  gcc/ada/sem_dist.ads
! e654e57c26c32d3464c4ffb7e9ec71f7  gcc/ada/sem_elab.adb
  2b5599a6b9e36d4947b2cc6f89c3aa2c  gcc/ada/sem_elab.ads
  456bc69903dc6e1c39ca009d24433f2f  gcc/ada/sem_elim.adb
  75977e6ca2d3fa68e4c675ddb42ddcf2  gcc/ada/sem_elim.ads
*************** fb5f673cea6166ff90878e05bfa7dfe0  gcc/bu
*** 3149,3155 ****
  c3a52074158c4bcb100e638fcd471649  gcc/builtins.cc
  7bc731b65a1287130883ea830f32b347  gcc/builtins.def
  7fad42491d4a625f93bf21a7e2fb37de  gcc/builtins.h
! bfd92f0c86f02ee5ab16e1bae674506b  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  5c99106819e8051c3581d5098616d0dd  gcc/c-family/c-ada-spec.cc
  ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
--- 3149,3155 ----
  c3a52074158c4bcb100e638fcd471649  gcc/builtins.cc
  7bc731b65a1287130883ea830f32b347  gcc/builtins.def
  7fad42491d4a625f93bf21a7e2fb37de  gcc/builtins.h
! fbecf775eb788ffce53298d5bab7094e  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  5c99106819e8051c3581d5098616d0dd  gcc/c-family/c-ada-spec.cc
  ba22e0144578c7dbcaa1887e6fd6046c  gcc/c-family/c-ada-spec.h
*************** f509ae019760fb711e40cefd2283fb1a  gcc/fi
*** 5871,5880 ****
  4832215f7646ad49b3833ee7b2e3a035  gcc/flags.h
  f6cf52e81c3175f2874b197050a59478  gcc/fold-const-call.cc
  dce7dac7e905ada28c6563d930b531eb  gcc/fold-const-call.h
! 090850db6c719557b18e35fafc041a4c  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 3ee8101bbf4e8ff7d383e2597dc9567c  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
--- 5871,5880 ----
  4832215f7646ad49b3833ee7b2e3a035  gcc/flags.h
  f6cf52e81c3175f2874b197050a59478  gcc/fold-const-call.cc
  dce7dac7e905ada28c6563d930b531eb  gcc/fold-const-call.h
! b954a317257afa3149e46a5bce58d9c2  gcc/fold-const.cc
  62f9c541bc34eb653f289ecd29c7848a  gcc/fold-const.h
  5cce8057cb6a40c0ce23fcd6497d35c0  gcc/fold-mem-offsets.cc
! 9e1cd9369cd544e76791fcbdcde727b4  gcc/fortran/ChangeLog
  3330102ad3a0217cba963be6b5eefd58  gcc/fortran/ChangeLog-2002
  d000ab985b1eeb1ad5749f98b8fef99f  gcc/fortran/ChangeLog-2003
  bf42f94f0c51dcc7d8051cc7fda1efdc  gcc/fortran/ChangeLog-2004
*************** a0bad1c11baa50813a82d72f738f0872  gcc/fo
*** 5959,5971 ****
  2a03d2f225a240270c75c372fe988eef  gcc/fortran/symbol.cc
  74785cb703ffef31c77a2efb99685bb4  gcc/fortran/target-memory.cc
  d418319a23a87a1e1e8054eaeb5d527b  gcc/fortran/target-memory.h
! 3a2932a73962feb8fc16c9635ac928a6  gcc/fortran/trans-array.cc
  c0fda053eecaf4f55c32d4fe8c8db3e5  gcc/fortran/trans-array.h
  700878379c55cdec457b83a922d93699  gcc/fortran/trans-common.cc
  c420f80da3e0e794311a9b90c49abce5  gcc/fortran/trans-const.cc
  5644e20cd4aa0324875834a377cf89a4  gcc/fortran/trans-const.h
  a13796bc19ee899957fa78d9652f5ff5  gcc/fortran/trans-decl.cc
! 21a44c257ad7cf25a62a230c8e619afb  gcc/fortran/trans-expr.cc
  50146a04d803fafbc56c31ef04c375c3  gcc/fortran/trans-intrinsic.cc
  9bfdb89867309e2ece2578749f55ece8  gcc/fortran/trans-io.cc
  be2abe61b914863c8dce5e37cb7f1491  gcc/fortran/trans-openmp.cc
--- 5959,5971 ----
  2a03d2f225a240270c75c372fe988eef  gcc/fortran/symbol.cc
  74785cb703ffef31c77a2efb99685bb4  gcc/fortran/target-memory.cc
  d418319a23a87a1e1e8054eaeb5d527b  gcc/fortran/target-memory.h
! d0ac931c193ddb2158ee0a8a5b52d53a  gcc/fortran/trans-array.cc
  c0fda053eecaf4f55c32d4fe8c8db3e5  gcc/fortran/trans-array.h
  700878379c55cdec457b83a922d93699  gcc/fortran/trans-common.cc
  c420f80da3e0e794311a9b90c49abce5  gcc/fortran/trans-const.cc
  5644e20cd4aa0324875834a377cf89a4  gcc/fortran/trans-const.h
  a13796bc19ee899957fa78d9652f5ff5  gcc/fortran/trans-decl.cc
! 90f7c06ed08717b69d8ee3e4952f5e39  gcc/fortran/trans-expr.cc
  50146a04d803fafbc56c31ef04c375c3  gcc/fortran/trans-intrinsic.cc
  9bfdb89867309e2ece2578749f55ece8  gcc/fortran/trans-io.cc
  be2abe61b914863c8dce5e37cb7f1491  gcc/fortran/trans-openmp.cc
*************** f9608e9005487c369e6c38949ab36fa1  gcc/m2
*** 7419,7425 ****
  d24a84209a835c9cd933ec6c0cd756a2  gcc/machmode.h
  db4aa18553273d5e513c430bdea3d79a  gcc/main.cc
  a209940893eb5d9d9edc9f1e0fa3a88d  gcc/make-unique.h
! b085b7fcc3399a995c080688c7742d37  gcc/match.pd
  3eb7fce4670eed35821ef049a1488347  gcc/mcf.cc
  258cf9819c6a00e19b88c5a07c9b8991  gcc/mem-stats-traits.h
  b9810957b2a5920aa47c04774895c26b  gcc/mem-stats.h
--- 7419,7425 ----
  d24a84209a835c9cd933ec6c0cd756a2  gcc/machmode.h
  db4aa18553273d5e513c430bdea3d79a  gcc/main.cc
  a209940893eb5d9d9edc9f1e0fa3a88d  gcc/make-unique.h
! 3b8775dd7c853d2830326f205788cf7c  gcc/match.pd
  3eb7fce4670eed35821ef049a1488347  gcc/mcf.cc
  258cf9819c6a00e19b88c5a07c9b8991  gcc/mem-stats-traits.h
  b9810957b2a5920aa47c04774895c26b  gcc/mem-stats.h
*************** e8a9eb01b9451a357155e7152df1c669  gcc/ta
*** 8062,8068 ****
  a05663c52c607143c607d3ecf1391979  gcc/targhooks.cc
  51d240e574a3f9ecec346d64a04ac634  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 03322ff77b2b33962690587184b30f8f  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
! ff2d0bee12ed0ed7c7d450ab36f64c77  gcc/testsuite/ChangeLog
  862f04afbd87da2cc6bc432c3f28430f  gcc/testsuite/ChangeLog-1993-2007
  029a5d8dacd25eb5d4711452ac448e5b  gcc/testsuite/ChangeLog-2008
  13ac28c41d51b66b4ec40dba6bd50f39  gcc/testsuite/ChangeLog-2009
*************** e23df6b1422011499b9a500d2bf25add  gcc/te
*** 50596,50601 ****
--- 50596,50603 ----
  d41266e6594db1994e416e7a7353751e  gcc/testsuite/gcc.dg/torture/pr121370.c
  949a4a95ad545289488a204b883b05d6  gcc/testsuite/gcc.dg/torture/pr121844.c
  d4560440fd7b3647f8780537a59e4716  gcc/testsuite/gcc.dg/torture/pr122188.c
+ 555e199e2c16f6c135742459dd2921b3  gcc/testsuite/gcc.dg/torture/pr123175-1.c
+ a57694d59f86b331962949b865331a14  gcc/testsuite/gcc.dg/torture/pr123175-2.c
  ea90221ab80b5c3561ffc7665d2a343a  gcc/testsuite/gcc.dg/torture/pr123645-1.c
  c6c07c813f67e0f94f1352f2810dfcff  gcc/testsuite/gcc.dg/torture/pr123645-2.c
  50838f4736657229a26dc1b011faf8d3  gcc/testsuite/gcc.dg/torture/pr123864.c
*************** c89f320f0f14a7fa8638f6b38a20ed26  gcc/te
*** 54524,54529 ****
--- 54526,54532 ----
  69a1c3531ab884c6c7e1fbc875e956bc  gcc/testsuite/gcc.dg/variable-sized-type-flex-array.c
  7f29aa4616378fb72f7fab614907128d  gcc/testsuite/gcc.dg/varpool-1.c
  d8ef65c736eef2f4a9994c6a87ebda95  gcc/testsuite/gcc.dg/vec-andxor1.c
+ 11a469ba8b98572d9d2160543b95ce39  gcc/testsuite/gcc.dg/vec-perm-lower.c
  f15a087d2d1b7f1cc41a5b0473154ebc  gcc/testsuite/gcc.dg/vect/O-pr46167.c
  6830ebc59ec37676c0ffa608cbbf0dbf  gcc/testsuite/gcc.dg/vect/O1-pr33854.c
  7f512dc347a6a290aad93ca27e40d3cf  gcc/testsuite/gcc.dg/vect/O1-pr41008.c
*************** fc2eb8ac52faed5fba0a017b858d4ae4  gcc/te
*** 64324,64329 ****
--- 64327,64333 ----
  4036d83a59b4adcf9e8a4cf5a291d22e  gcc/testsuite/gcc.target/aarch64/torture/pr111677.c
  8ba6cf5317762b2b89350d4f652efa53  gcc/testsuite/gcc.target/aarch64/torture/pr116564.c
  d03b2f46140f14ae9b2101813aec3525  gcc/testsuite/gcc.target/aarch64/torture/pr121772.c
+ 164477999ab21aa17183a55d49bb0d71  gcc/testsuite/gcc.target/aarch64/torture/pr124491.c
  5266ac107a73e3ee1d1f44e1cda7d9f2  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c
  9c3416db2fc04c3f91b03ecae15e943e  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c
  df55bfe2c1ce46074b19b4566cedeef4  gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c
*************** aadce1b09e2a4d220805726af0c7f109  gcc/te
*** 98808,98813 ****
--- 98812,98818 ----
  7a5b7a18d621b5e1b9d04b73e259ddd4  gcc/testsuite/gfortran.dg/pr104849.f90
  35a7804825dacf412e34e3f973b467f1  gcc/testsuite/gfortran.dg/pr104908.f90
  a5bb6d9b844f014490dab5e87b60244c  gcc/testsuite/gfortran.dg/pr105152.f90
+ 472e7c3181a65bf922fc24aa4a286685  gcc/testsuite/gfortran.dg/pr105168.f90
  ff052278fd65d5823600af4550f5eae7  gcc/testsuite/gfortran.dg/pr105205.f90
  22283af469347d85bd1fe4dae42939a3  gcc/testsuite/gfortran.dg/pr105230.f90
  378daada767aa1db75aafa59274616a9  gcc/testsuite/gfortran.dg/pr105456-nmlr.f90
*************** c409953e60b511d0f73cda8df16bc1dc  gcc/te
*** 98914,98919 ****
--- 98919,98925 ----
  02812eb85d61bb134c890f0a34cc8511  gcc/testsuite/gfortran.dg/pr117819.f90
  d8b2b1281d8bcf0eb181e2643ffb6265  gcc/testsuite/gfortran.dg/pr117820.f90
  dcb4fe6d926f672dd118a4a8ec9b6625  gcc/testsuite/gfortran.dg/pr118640.f90
+ 86ed735b34078d76c3e00aee11815c32  gcc/testsuite/gfortran.dg/pr119273.f90
  8f53cbad5581d72a5d0420f900cee217  gcc/testsuite/gfortran.dg/pr120191_1.f90
  4787146fc7e8109511f0d22d056e2127  gcc/testsuite/gfortran.dg/pr120191_2.f90
  05457962d41eef6a41a3de889144d78a  gcc/testsuite/gfortran.dg/pr120191_3.f90
*************** da22f29f94ebe295441ccc41597913b0  gcc/te
*** 104412,104417 ****
--- 104418,104426 ----
  29969c1ad7978ac871e75cd3b2d99efd  gcc/testsuite/gnat.dg/generic_inst14_pkg.ads
  bfa8ba450e641250f8eccf95997dd260  gcc/testsuite/gnat.dg/generic_inst2.adb
  063cf5c93b1a85bf617a62be0da63bdb  gcc/testsuite/gnat.dg/generic_inst2.ads
+ 9754b7078322105e191275ecef261619  gcc/testsuite/gnat.dg/generic_inst20-sub.adb
+ 0681c30c9efac88d67f6a19fb0a024db  gcc/testsuite/gnat.dg/generic_inst20.adb
+ c840150e814260285b976366030a3845  gcc/testsuite/gnat.dg/generic_inst20.ads
  2faefd507420ceafdccad8d472e66202  gcc/testsuite/gnat.dg/generic_inst2_c.ads
  1997a63f7761d0c3157019f91d059346  gcc/testsuite/gnat.dg/generic_inst3.adb
  ec082cac4cc6410759efb287bf918b11  gcc/testsuite/gnat.dg/generic_inst3_kafka_lib-topic.ads
*************** c46ee145b917a2cc00062d238597ff66  gcc/tr
*** 110676,110682 ****
  e52dd1666766e097473010a395e05b72  gcc/tree-switch-conversion.h
  03789f646e5ebafcb6d1b5d6976fb0db  gcc/tree-tailcall.cc
  7c2d603160e6cc66d6f331c03cbd63e4  gcc/tree-vect-data-refs.cc
! baa0d7c2a79888b8d490ef9ea9bf876b  gcc/tree-vect-generic.cc
  a5c65c0281a1b6faf6652682936ae74e  gcc/tree-vect-loop-manip.cc
  5ab16abcaa74517dbcd6d173698c07d2  gcc/tree-vect-loop.cc
  43f6f3fee20eb715fd451bf19e9bfd4c  gcc/tree-vect-patterns.cc
--- 110685,110691 ----
  e52dd1666766e097473010a395e05b72  gcc/tree-switch-conversion.h
  03789f646e5ebafcb6d1b5d6976fb0db  gcc/tree-tailcall.cc
  7c2d603160e6cc66d6f331c03cbd63e4  gcc/tree-vect-data-refs.cc
! d118b2d044875c26f314d37ff24df105  gcc/tree-vect-generic.cc
  a5c65c0281a1b6faf6652682936ae74e  gcc/tree-vect-loop-manip.cc
  5ab16abcaa74517dbcd6d173698c07d2  gcc/tree-vect-loop.cc
  43f6f3fee20eb715fd451bf19e9bfd4c  gcc/tree-vect-patterns.cc
*************** d828e38384c506bf5e7d5a3c02725a37  libssp
*** 123928,123934 ****
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! 44a414f9b7878ded9c45611d3e098da3  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 123937,123943 ----
  7bb3c32ba0a48d1cf785305e1b783eb6  libssp/strncpy-chk.c
  a19c79c1d86436e86b0fee41e6cf6b15  libssp/vsnprintf-chk.c
  145156e880b03115b393070d0ed37be3  libssp/vsprintf-chk.c
! b7c602ba24f0273c0afa0f48c0f437ac  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
diff -Nrcpad gcc-14-20260320/gcc/ChangeLog gcc-14-20260327/gcc/ChangeLog
*** gcc-14-20260320/gcc/ChangeLog	Fri Mar 20 22:32:05 2026
--- gcc-14-20260327/gcc/ChangeLog	Fri Mar 27 22:32:05 2026
***************
*** 1,3 ****
--- 1,51 ----
+ 2026-03-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-13  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123573
+ 	* fold-const.cc (fold_vec_perm): Actually check, not assert,
+ 	that input and output vector element numbers agree.
+ 	* match.pd (vec_perm @0 @1 @2): Make sure element numbers
+ 	are the same when folding to an input vector and wrap that
+ 	inside a VIEW_CONVERT_EXPR.
+ 
+ 2026-03-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123175
+ 	* match.pd (vec_perm @0 @1 @2): Fixup for inputs having a
+ 	different number of elements than the result.
+ 	* tree-vect-generic.cc (lower_vec_perm): Likewise.
+ 
+ 2026-03-25  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Backported from master:
+ 	2024-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* tree-vect-generic.cc (lower_vec_perm): Use output vector size instead
+ 	of input vector when determining output nunits.
+ 
+ 2026-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-03-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119532
+ 	* tree-tailcall.cc (process_assignment): FAIL for fixed-point
+ 	typed functions.
+ 
+ 2026-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/120182
+ 	* dse.cc (canon_address): Constant addresses have no
+ 	separate store group.
+ 
  2026-03-17  Alice Carlotti  <alice.carlotti@arm.com>
  
  	* config/aarch64/aarch64-sve2.md (@aarch64_pred_revd<mode>):
diff -Nrcpad gcc-14-20260320/gcc/DATESTAMP gcc-14-20260327/gcc/DATESTAMP
*** gcc-14-20260320/gcc/DATESTAMP	Fri Mar 20 22:32:05 2026
--- gcc-14-20260327/gcc/DATESTAMP	Fri Mar 27 22:32:05 2026
***************
*** 1 ****
! 20260320
--- 1 ----
! 20260327
diff -Nrcpad gcc-14-20260320/gcc/ada/ChangeLog gcc-14-20260327/gcc/ada/ChangeLog
*** gcc-14-20260320/gcc/ada/ChangeLog	Fri Mar 20 22:32:05 2026
--- gcc-14-20260327/gcc/ada/ChangeLog	Fri Mar 27 22:32:06 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-03-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/124607
+ 	* sem_elab.adb (Has_Body.Find_Body): Fix thinko.
+ 
  2026-03-14  Matthias Klose  <doko@gcc.gnu.org>
  
  	PR ada/107475
diff -Nrcpad gcc-14-20260320/gcc/ada/sem_elab.adb gcc-14-20260327/gcc/ada/sem_elab.adb
*** gcc-14-20260320/gcc/ada/sem_elab.adb	Fri Mar 20 22:32:05 2026
--- gcc-14-20260327/gcc/ada/sem_elab.adb	Fri Mar 27 22:32:06 2026
*************** package body Sem_Elab is
*** 9903,9909 ****
                 --  The corresponding subunit was previously loaded
  
                 if Present (Lib_Unit) then
!                   return Lib_Unit;
  
                 --  Otherwise attempt to load the corresponding subunit
  
--- 9903,9909 ----
                 --  The corresponding subunit was previously loaded
  
                 if Present (Lib_Unit) then
!                   return Proper_Body (Unit (Lib_Unit));
  
                 --  Otherwise attempt to load the corresponding subunit
  
diff -Nrcpad gcc-14-20260320/gcc/c-family/ChangeLog gcc-14-20260327/gcc/c-family/ChangeLog
*** gcc-14-20260320/gcc/c-family/ChangeLog	Fri Mar 20 22:32:06 2026
--- gcc-14-20260327/gcc/c-family/ChangeLog	Fri Mar 27 22:32:06 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-12-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR c/123156
+ 	* c-common.cc (c_build_shufflevector): Use ssizetype for the
+ 	permute vector element type.
+ 
  2026-03-15  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260320/gcc/fold-const.cc gcc-14-20260327/gcc/fold-const.cc
*** gcc-14-20260320/gcc/fold-const.cc	Fri Mar 20 22:32:06 2026
--- gcc-14-20260327/gcc/fold-const.cc	Fri Mar 27 22:32:07 2026
*************** fold_vec_perm (tree type, tree arg0, tre
*** 10985,10995 ****
  
    /* For fall back case, we want to ensure we have VLS vectors
       with equal length.  */
!   if (!sel.length ().is_constant (&nelts))
      return NULL_TREE;
  
-   gcc_assert (known_eq (sel.length (),
- 			TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0))));
    tree *in_elts = XALLOCAVEC (tree, nelts * 2);
    if (!vec_cst_ctor_to_array (arg0, nelts, in_elts)
        || !vec_cst_ctor_to_array (arg1, nelts, in_elts + nelts))
--- 10985,10994 ----
  
    /* For fall back case, we want to ensure we have VLS vectors
       with equal length.  */
!   if (!sel.length ().is_constant (&nelts)
!       || !known_eq (sel.length (), TYPE_VECTOR_SUBPARTS (TREE_TYPE (arg0))))
      return NULL_TREE;
  
    tree *in_elts = XALLOCAVEC (tree, nelts * 2);
    if (!vec_cst_ctor_to_array (arg0, nelts, in_elts)
        || !vec_cst_ctor_to_array (arg1, nelts, in_elts + nelts))
diff -Nrcpad gcc-14-20260320/gcc/fortran/ChangeLog gcc-14-20260327/gcc/fortran/ChangeLog
*** gcc-14-20260320/gcc/fortran/ChangeLog	Fri Mar 20 22:32:06 2026
--- gcc-14-20260327/gcc/fortran/ChangeLog	Fri Mar 27 22:32:07 2026
***************
*** 1,3 ****
--- 1,24 ----
+ 2026-03-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/119273
+ 	* trans-array.cc (expr_contains_impure_fcn): New function.
+ 	(gfc_expr_contains_impure_fcn): New function calling above fcn.
+ 	(array_bound_check_elemental): Add indexse pre-block to se pre.
+ 	Warn if the index expression contains a function not declared
+ 	to be pure.
+ 
+ 2026-03-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/105168
+ 	* trans-expr.cc (gfc_conv_class_to_class): If the argument expr
+ 	is not a variable use the parent tree if that is a class.
+ 	(gfc_conv_procedure_call): If the argument expression is not a
+ 	variable, shift the bounds to give unity lbounds.
+ 	(gfc_trans_arrayfunc_assign): Return NULL_TREE instead of NULL.
+ 
  2026-03-19  Mikael Morin  <morin-mikael@orange.fr>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260320/gcc/fortran/trans-array.cc gcc-14-20260327/gcc/fortran/trans-array.cc
*** gcc-14-20260320/gcc/fortran/trans-array.cc	Fri Mar 20 22:32:06 2026
--- gcc-14-20260327/gcc/fortran/trans-array.cc	Fri Mar 27 22:32:07 2026
*************** trans_array_bound_check (gfc_se * se, gf
*** 3664,3669 ****
--- 3664,3692 ----
  }
  
  
+ /* Helper functions to detect impure functions in an expression.  */
+ 
+ static const char *impure_name = NULL;
+ static bool
+ expr_contains_impure_fcn (gfc_expr *e, gfc_symbol* sym ATTRIBUTE_UNUSED,
+ 	 int* g ATTRIBUTE_UNUSED)
+ {
+   if (e && e->expr_type == EXPR_FUNCTION
+       && !gfc_pure_function (e, &impure_name)
+       && !gfc_implicit_pure_function (e))
+     return true;
+ 
+   return false;
+ }
+ 
+ static bool
+ gfc_expr_contains_impure_fcn (gfc_expr *e)
+ {
+   impure_name = NULL;
+   return gfc_traverse_expr (e, NULL, &expr_contains_impure_fcn, 0);
+ }
+ 
+ 
  /* Generate code for bounds checking for elemental dimensions.  */
  
  static void
*************** array_bound_check_elemental (gfc_se * se
*** 3686,3695 ****
--- 3709,3725 ----
  		{
  		  if (ar->dimen_type[dim] == DIMEN_ELEMENT)
  		    {
+ 		      if (gfc_expr_contains_impure_fcn (ar->start[dim]))
+ 			gfc_warning_now (0, "Bounds checking of the elemental "
+ 					 "index at %L will cause two calls to "
+ 					 "%qs, which is not declared to be "
+ 					 "PURE or is not implicitly pure.",
+ 					 &ar->start[dim]->where, impure_name);
  		      gfc_se indexse;
  		      gfc_init_se (&indexse, NULL);
  		      gfc_conv_expr_type (&indexse, ar->start[dim],
  					  gfc_array_index_type);
+ 		      gfc_add_block_to_block (&se->pre, &indexse.pre);
  		      trans_array_bound_check (se, ss, indexse.expr, dim,
  					       &ar->where,
  					       ar->as->type != AS_ASSUMED_SIZE
diff -Nrcpad gcc-14-20260320/gcc/fortran/trans-expr.cc gcc-14-20260327/gcc/fortran/trans-expr.cc
*** gcc-14-20260320/gcc/fortran/trans-expr.cc	Fri Mar 20 22:32:06 2026
--- gcc-14-20260327/gcc/fortran/trans-expr.cc	Fri Mar 27 22:32:07 2026
*************** gfc_conv_class_to_class (gfc_se *parmse,
*** 1174,1179 ****
--- 1174,1193 ----
    stmtblock_t block;
    bool full_array = false;
  
+   /* If this is the data field of a class temporary, the class expression
+      can be obtained and returned directly.  */
+   if (e->expr_type != EXPR_VARIABLE
+       && TREE_CODE (parmse->expr) == COMPONENT_REF
+       && !GFC_CLASS_TYPE_P (TREE_TYPE (parmse->expr))
+       && GFC_CLASS_TYPE_P (TREE_TYPE (TREE_OPERAND (parmse->expr, 0))))
+     {
+       parmse->expr = TREE_OPERAND (parmse->expr, 0);
+       if (!VAR_P (parmse->expr))
+ 	parmse->expr = gfc_evaluate_now (parmse->expr, &parmse->pre);
+       parmse->expr = gfc_build_addr_expr (NULL_TREE, parmse->expr);
+       return;
+     }
+ 
    gfc_init_block (&block);
  
    class_ref = NULL;
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 7190,7195 ****
--- 7204,7219 ----
  	      gfc_init_block (&class_se.pre);
  	      gfc_init_block (&class_se.post);
  
+ 	      if (e->expr_type != EXPR_VARIABLE)
+ 		{
+ 		  int n;
+ 		  /* Set the bounds and offset correctly.  */
+ 		  for (n = 0; n < e->rank; n++)
+ 		    gfc_conv_shift_descriptor_lbound (&class_se.pre,
+ 						      class_se.expr,
+ 						      n, gfc_index_one_node);
+ 		}
+ 
  	      /* The conversion does not repackage the reference to a class
  	         array - _data descriptor.  */
  	      gfc_conv_class_to_class (&class_se, e, fsym->ts, false,
*************** gfc_trans_arrayfunc_assign (gfc_expr * e
*** 11430,11435 ****
--- 11454,11464 ----
    gfc_symbol *sym = expr1->symtree->n.sym;
    bool finalizable =  gfc_may_be_finalized (expr1->ts);
  
+   /* If the symbol is host associated and has not been referenced in its name
+      space, it might be lacking a backend_decl and vtable.  */
+   if (sym->backend_decl == NULL_TREE)
+     return NULL_TREE;
+ 
    if (arrayfunc_assign_needs_temporary (expr1, expr2))
      return NULL;
  
diff -Nrcpad gcc-14-20260320/gcc/match.pd gcc-14-20260327/gcc/match.pd
*** gcc-14-20260320/gcc/match.pd	Fri Mar 20 22:32:07 2026
--- gcc-14-20260327/gcc/match.pd	Fri Mar 27 22:32:07 2026
*************** and,
*** 9859,9871 ****
      {
        /* Create a vec_perm_indices for the integer vector.  */
        poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
        bool single_arg = (op0 == op1);
!       vec_perm_indices sel (builder, single_arg ? 1 : 2, nelts);
      }
!     (if (sel.series_p (0, 1, 0, 1))
!      { op0; }
!      (if (sel.series_p (0, 1, nelts, 1))
!       { op1; }
        (with
         {
           if (!single_arg)
--- 9859,9872 ----
      {
        /* Create a vec_perm_indices for the integer vector.  */
        poly_uint64 nelts = TYPE_VECTOR_SUBPARTS (type);
+       poly_uint64 nelts_in = TYPE_VECTOR_SUBPARTS (TREE_TYPE (op0));
        bool single_arg = (op0 == op1);
!       vec_perm_indices sel (builder, single_arg ? 1 : 2, nelts_in);
      }
!     (if (known_eq (nelts, nelts_in) && sel.series_p (0, 1, 0, 1))
!      (view_convert @0)
!      (if (known_eq (nelts, nelts_in) && sel.series_p (0, 1, nelts_in, 1))
!       (view_convert @1)
        (with
         {
           if (!single_arg)
*************** and,
*** 9877,9883 ****
  	         op0 = op1;
  	         sel.rotate_inputs (1);
  	       }
! 	     else if (known_ge (poly_uint64 (sel[0]), nelts))
  	       {
  	         std::swap (op0, op1);
  	         sel.rotate_inputs (1);
--- 9878,9884 ----
  	         op0 = op1;
  	         sel.rotate_inputs (1);
  	       }
! 	     else if (known_ge (poly_uint64 (sel[0]), nelts_in))
  	       {
  	         std::swap (op0, op1);
  	         sel.rotate_inputs (1);
*************** and,
*** 9912,9917 ****
--- 9913,9919 ----
  	      in that case.  But only if the vector mode is supported,
  	      otherwise this is invalid GIMPLE.  */
  	   if (op_mode != BLKmode
+ 	       && known_eq (nelts, nelts_in)
  	       && (TREE_CODE (cop0) == VECTOR_CST
  		   || TREE_CODE (cop0) == CONSTRUCTOR
  		   || TREE_CODE (cop1) == VECTOR_CST
diff -Nrcpad gcc-14-20260320/gcc/testsuite/ChangeLog gcc-14-20260327/gcc/testsuite/ChangeLog
*** gcc-14-20260320/gcc/testsuite/ChangeLog	Fri Mar 20 22:32:07 2026
--- gcc-14-20260327/gcc/testsuite/ChangeLog	Fri Mar 27 22:32:08 2026
***************
*** 1,3 ****
--- 1,75 ----
+ 2026-03-25  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR middle-end/124491
+ 	* gcc.target/aarch64/torture/pr124491.c: New test.
+ 
+ 2026-03-25  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-12  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/123175
+ 	* gcc.dg/torture/pr123175-1.c: New testcase.
+ 	* gcc.dg/torture/pr123175-2.c: Likewise.
+ 
+ 2026-03-25  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	Backported from master:
+ 	2024-10-18  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* gcc.dg/vec-perm-lower.c: New test.
+ 
+ 2026-03-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	Backported from master:
+ 	2026-03-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/119273
+ 	* gfortran.dg/pr119273.f90: New test.
+ 
+ 2026-03-25  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/105168
+ 	* gfortran.dg/pr105168.f90: New test.
+ 
+ 2026-03-23  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/generic_inst20.ads, gnat.dg/generic_inst20.adb: New test.
+ 	* gnat.dg/generic_inst20-sub.adb: New helper.
+ 
+ 2026-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-03-31  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/119532
+ 	* gcc.dg/torture/pr119532.c: New testcase.
+ 
+ 2026-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-05-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR rtl-optimization/120182
+ 	* gcc.dg/torture/pr120182.c: New testcase.
+ 
+ 2026-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-01-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR testsuite/123353
+ 	PR c/123156
+ 	* gcc.dg/torture/builtin-shufflevector-pr123156.c: Require le.
+ 
+ 2026-03-20  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2025-12-18  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR c/123156
+ 	* gcc.dg/torture/builtin-shufflevector-pr123156.c: New testcase.
+ 
  2026-03-19  Mikael Morin  <morin-mikael@orange.fr>
  
  	Backported from master:
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gcc.dg/torture/pr123175-1.c gcc-14-20260327/gcc/testsuite/gcc.dg/torture/pr123175-1.c
*** gcc-14-20260320/gcc/testsuite/gcc.dg/torture/pr123175-1.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gcc.dg/torture/pr123175-1.c	Fri Mar 27 22:32:12 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fgimple" } */
+ 
+ typedef int v4si __attribute__((vector_size(16)));
+ typedef int v2si __attribute__((vector_size(8)));
+ typedef char v4qi __attribute__((vector_size(4)));
+ 
+ v4si res;
+ v2si a;
+ v2si b;
+ 
+ void __attribute__((noipa)) __GIMPLE() foo ()
+ {
+   v2si a_;
+   v2si b_;
+   v4si res_;
+   a_ = a;
+   b_ = b;
+   res_ = __VEC_PERM (a_, b_, _Literal (v4qi) { 0, 1, 2, 3 });
+   res = res_;
+ }
+ 
+ int main()
+ {
+   a = (v2si){ 4, 3 };
+   b = (v2si){ 2, 1 };
+   foo ();
+   if (res[0] != 4 || res[1] != 3 || res[2] != 2 || res[3] != 1)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gcc.dg/torture/pr123175-2.c gcc-14-20260327/gcc/testsuite/gcc.dg/torture/pr123175-2.c
*** gcc-14-20260320/gcc/testsuite/gcc.dg/torture/pr123175-2.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gcc.dg/torture/pr123175-2.c	Fri Mar 27 22:32:12 2026
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do run } */
+ /* { dg-additional-options "-fgimple" } */
+ 
+ typedef int v4si __attribute__((vector_size(16)));
+ typedef int v2si __attribute__((vector_size(8)));
+ typedef char v4qi __attribute__((vector_size(4)));
+ 
+ v4si res;
+ v2si a;
+ v2si b;
+ 
+ void __attribute__((noipa)) __GIMPLE() foo ()
+ {
+   v2si a_;
+   v2si b_;
+   v4si res_;
+   a_ = a;
+   b_ = b;
+   res_ = __VEC_PERM (a_, b_, _Literal (v4qi) { 0, 2, 2, 1 });
+   res = res_;
+ }
+ 
+ int main()
+ {
+   a = (v2si){ 4, 3 };
+   b = (v2si){ 2, 1 };
+   foo ();
+   if (res[0] != 4 || res[1] != 2 || res[2] != 2 || res[3] != 3)
+     __builtin_abort ();
+   return 0;
+ }
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gcc.dg/vec-perm-lower.c gcc-14-20260327/gcc/testsuite/gcc.dg/vec-perm-lower.c
*** gcc-14-20260320/gcc/testsuite/gcc.dg/vec-perm-lower.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gcc.dg/vec-perm-lower.c	Fri Mar 27 22:32:12 2026
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fgimple -O2" } */
+ 
+ typedef char v8qi __attribute__ ((vector_size (8)));
+ typedef char v16qi __attribute__ ((vector_size (16)));
+ 
+ v16qi __GIMPLE (ssa)
+ foo (v8qi a, v8qi b)
+ {
+   v16qi _5;
+ 
+   __BB(2):
+   _5 = __VEC_PERM (a, b, _Literal (unsigned char [[gnu::vector_size(16)]]) { _Literal (unsigned char) 0, _Literal (unsigned char) 16, _Literal (unsigned char) 1, _Literal (unsigned char) 17, _Literal (unsigned char) 2, _Literal (unsigned char) 18, _Literal (unsigned char) 3, _Literal (unsigned char) 19, _Literal (unsigned char) 4, _Literal (unsigned char) 20, _Literal (unsigned char) 5, _Literal (unsigned char) 21, _Literal (unsigned char) 6, _Literal (unsigned char) 22, _Literal (unsigned char) 7, _Literal (unsigned char) 23 });
+   return _5;
+ 
+ }
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c gcc-14-20260327/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c
*** gcc-14-20260320/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gcc.target/aarch64/torture/pr124491.c	Fri Mar 27 22:32:13 2026
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-march=armv8.2-a+sve -msve-vector-bits=256" } */
+ #include <arm_sve.h>
+ svint64_t foo(long x, long y) {
+   return svdupq_n_s64(x, y);
+ }
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gfortran.dg/pr105168.f90 gcc-14-20260327/gcc/testsuite/gfortran.dg/pr105168.f90
*** gcc-14-20260320/gcc/testsuite/gfortran.dg/pr105168.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gfortran.dg/pr105168.f90	Fri Mar 27 22:32:14 2026
***************
*** 0 ****
--- 1,38 ----
+ ! { dg-do run }
+ ! Test fix for PR105168, in which nterface mapping was failing with CLASS 'x'
+ ! and parentheses around the actual argument.
+ !
+ ! Contributed by Gerhard Steinmetz  <gscfq@t-online.de>
+ !
+ module m
+    type t
+       integer :: a
+    contains
+       final :: final_t
+    end type
+    integer :: cntr = 0
+ contains
+    function f(x, factor) result(z)
+       class(t) :: x(:) ! Worked, with or without parentheses if s/CLASS/TYPE/
+       type(t) :: z(2)
+       integer :: factor
+       z = x            ! Seg fault here
+       z%a = factor * z%a
+    end
+    impure elemental subroutine final_t (arg)
+       type (t), intent(in) :: arg
+       cntr = cntr + 1
+    end subroutine
+ end module
+ program p
+    use m
+    class(t), allocatable :: y(:), z(:)
+    y = [t(2),t(4)]
+    allocate (t :: z(2))
+    z = f((y), 1)          ! Failed even with parentheses removed
+    if (any(z%a /= [2,4])) stop 1
+    z = f(y, 2)            ! Failed but now OK
+    if (any (z%a /= [4,8])) stop 2
+    deallocate (y, z)
+    if (cntr /= 16) stop 3 ! 6 for each assignment and 4 for deallocation
+ end
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gfortran.dg/pr119273.f90 gcc-14-20260327/gcc/testsuite/gfortran.dg/pr119273.f90
*** gcc-14-20260320/gcc/testsuite/gfortran.dg/pr119273.f90	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gfortran.dg/pr119273.f90	Fri Mar 27 22:32:14 2026
***************
*** 0 ****
--- 1,70 ----
+ ! { dg-do compile }
+ ! { dg-options "-fdump-tree-original -fcheck=bounds" }
+ !
+ ! Test the fix forPR119273, which caused false bounds check errors.
+ !
+ ! Contributed by Jingwei Xing  <xingjingwei666@gmail.com>
+ !
+ module test_module
+     type :: test_type_father
+         integer :: val
+     contains
+         procedure :: test_function3
+     end type test_type_father
+ 
+     type, extends(test_type_father) :: test_type_child
+     contains
+         procedure :: test_function1
+     end type test_type_child
+ 
+     integer :: ii
+ 
+     contains
+     function test_function1(a) result(out)
+         class(test_type_child), intent(in) :: a
+         integer :: out
+         ii = a%val  ! Make this function implicitly impure.
+         out = a%val
+     end function
+     pure function test_function2(a) result(out)
+         type(test_type_child), intent(in) :: a
+         integer :: out
+         out = a%val
+     end function
+     pure function test_function3(a) result(out)
+         class(test_type_father), intent(in) :: a
+         integer :: out
+         out = a%val
+     end function
+ end module
+ 
+ program test
+     use test_module
+     implicit none
+     type(test_type_child) :: a
+     type(test_type_father) :: b
+     class(test_type_child), allocatable :: c
+     integer, target :: temp_int(1,1)
+     integer, pointer :: d(:)
+     a%val = 0
+     associate(temp => temp_int(:,a%test_function1() + 1)) ! { dg-warning "is not implicitly pure" }
+     end associate
+     a%val = 1
+     associate(temp => temp_int(:,test_function2(a)))
+     end associate
+     b%val = 1
+     associate(temp => temp_int(:,b%test_function3()))
+     end associate
+     associate(temp => temp_int(:,test_function3(b)))
+     end associate
+     allocate (c, source = a)
+     associate(temp => temp_int(:,c%test_function1())) ! { dg-warning "is not implicitly pure" }
+     end associate
+ 
+ ! Demonstrate that this bug was not specific to the ASSOCIATE statement but,
+ ! rather to it being a pointer assignment, when the selector is a variable.
+     d => temp_int(:,a%test_function1()) ! { dg-warning "is not implicitly pure" }
+ 
+ end program test
+ ! Test for the missing vptr assignments to the class actual temporaries.
+ ! { dg-final { scan-tree-dump-times "class..._vptr =" 8 "original" } }
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gnat.dg/generic_inst20-sub.adb gcc-14-20260327/gcc/testsuite/gnat.dg/generic_inst20-sub.adb
*** gcc-14-20260320/gcc/testsuite/gnat.dg/generic_inst20-sub.adb	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gnat.dg/generic_inst20-sub.adb	Fri Mar 27 22:32:15 2026
***************
*** 0 ****
--- 1,14 ----
+ -- { dg-excess-errors "cannot generate code" }
+ 
+ separate (Generic_Inst20)
+ 
+ package body Sub is
+    function F return Boolean is
+    begin
+       return True;
+    end F;
+    generic
+    package G is
+    end G;
+    package I is new G;
+ end Sub;
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gnat.dg/generic_inst20.adb gcc-14-20260327/gcc/testsuite/gnat.dg/generic_inst20.adb
*** gcc-14-20260320/gcc/testsuite/gnat.dg/generic_inst20.adb	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gnat.dg/generic_inst20.adb	Fri Mar 27 22:32:15 2026
***************
*** 0 ****
--- 1,5 ----
+ -- { dg-do compile }
+ 
+ package body Generic_Inst20 is
+    package body Sub is separate;
+ end Generic_Inst20;
diff -Nrcpad gcc-14-20260320/gcc/testsuite/gnat.dg/generic_inst20.ads gcc-14-20260327/gcc/testsuite/gnat.dg/generic_inst20.ads
*** gcc-14-20260320/gcc/testsuite/gnat.dg/generic_inst20.ads	Thu Jan  1 00:00:00 1970
--- gcc-14-20260327/gcc/testsuite/gnat.dg/generic_inst20.ads	Fri Mar 27 22:32:15 2026
***************
*** 0 ****
--- 1,6 ----
+ package Generic_Inst20 is
+    pragma Elaborate_Body;
+    package Sub is
+       function F return Boolean;
+    end Sub;
+ end Generic_Inst20;
diff -Nrcpad gcc-14-20260320/gcc/tree-vect-generic.cc gcc-14-20260327/gcc/tree-vect-generic.cc
*** gcc-14-20260320/gcc/tree-vect-generic.cc	Fri Mar 20 22:32:15 2026
--- gcc-14-20260327/gcc/tree-vect-generic.cc	Fri Mar 27 22:32:15 2026
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1506,1516 ****
    tree mask = gimple_assign_rhs3 (stmt);
    tree vec0 = gimple_assign_rhs1 (stmt);
    tree vec1 = gimple_assign_rhs2 (stmt);
    tree vect_type = TREE_TYPE (vec0);
    tree mask_type = TREE_TYPE (mask);
    tree vect_elt_type = TREE_TYPE (vect_type);
    tree mask_elt_type = TREE_TYPE (mask_type);
!   unsigned HOST_WIDE_INT elements;
    vec<constructor_elt, va_gc> *v;
    tree constr, t, si, i_val;
    tree vec0tmp = NULL_TREE, vec1tmp = NULL_TREE, masktmp = NULL_TREE;
--- 1506,1517 ----
    tree mask = gimple_assign_rhs3 (stmt);
    tree vec0 = gimple_assign_rhs1 (stmt);
    tree vec1 = gimple_assign_rhs2 (stmt);
+   tree res_vect_type = TREE_TYPE (gimple_assign_lhs (stmt));
    tree vect_type = TREE_TYPE (vec0);
    tree mask_type = TREE_TYPE (mask);
    tree vect_elt_type = TREE_TYPE (vect_type);
    tree mask_elt_type = TREE_TYPE (mask_type);
!   unsigned HOST_WIDE_INT elements, in_elements;
    vec<constructor_elt, va_gc> *v;
    tree constr, t, si, i_val;
    tree vec0tmp = NULL_TREE, vec1tmp = NULL_TREE, masktmp = NULL_TREE;
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1518,1524 ****
    location_t loc = gimple_location (gsi_stmt (*gsi));
    unsigned i;
  
!   if (!TYPE_VECTOR_SUBPARTS (vect_type).is_constant (&elements))
      return;
  
    if (TREE_CODE (mask) == SSA_NAME)
--- 1519,1526 ----
    location_t loc = gimple_location (gsi_stmt (*gsi));
    unsigned i;
  
!   if (!TYPE_VECTOR_SUBPARTS (res_vect_type).is_constant (&elements)
!       || !TYPE_VECTOR_SUBPARTS (vect_type).is_constant (&in_elements))
      return;
  
    if (TREE_CODE (mask) == SSA_NAME)
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1534,1540 ****
    if (TREE_CODE (mask) == VECTOR_CST
        && tree_to_vec_perm_builder (&sel_int, mask))
      {
!       vec_perm_indices indices (sel_int, 2, elements);
        machine_mode vmode = TYPE_MODE (vect_type);
        tree lhs_type = TREE_TYPE (gimple_assign_lhs (stmt));
        machine_mode lhs_mode = TYPE_MODE (lhs_type);
--- 1536,1542 ----
    if (TREE_CODE (mask) == VECTOR_CST
        && tree_to_vec_perm_builder (&sel_int, mask))
      {
!       vec_perm_indices indices (sel_int, 2, in_elements);
        machine_mode vmode = TYPE_MODE (vect_type);
        tree lhs_type = TREE_TYPE (gimple_assign_lhs (stmt));
        machine_mode lhs_mode = TYPE_MODE (lhs_type);
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1621,1630 ****
  	  unsigned HOST_WIDE_INT index;
  
  	  index = TREE_INT_CST_LOW (i_val);
! 	  if (!tree_fits_uhwi_p (i_val) || index >= elements)
! 	    i_val = build_int_cst (mask_elt_type, index & (elements - 1));
  
!           if (two_operand_p && (index & elements) != 0)
  	    t = vector_element (gsi, vec1, i_val, &vec1tmp);
  	  else
  	    t = vector_element (gsi, vec0, i_val, &vec0tmp);
--- 1623,1632 ----
  	  unsigned HOST_WIDE_INT index;
  
  	  index = TREE_INT_CST_LOW (i_val);
! 	  if (!tree_fits_uhwi_p (i_val) || index >= in_elements)
! 	    i_val = build_int_cst (mask_elt_type, index & (in_elements - 1));
  
! 	  if (two_operand_p && (index & in_elements) != 0)
  	    t = vector_element (gsi, vec1, i_val, &vec1tmp);
  	  else
  	    t = vector_element (gsi, vec0, i_val, &vec0tmp);
*************** lower_vec_perm (gimple_stmt_iterator *gs
*** 1678,1686 ****
      }
  
    if (constant_p)
!     constr = build_vector_from_ctor (vect_type, v);
    else
!     constr = build_constructor (vect_type, v);
    gimple_assign_set_rhs_from_tree (gsi, constr);
    update_stmt (gsi_stmt (*gsi));
  }
--- 1680,1688 ----
      }
  
    if (constant_p)
!     constr = build_vector_from_ctor (res_vect_type, v);
    else
!     constr = build_constructor (res_vect_type, v);
    gimple_assign_set_rhs_from_tree (gsi, constr);
    update_stmt (gsi_stmt (*gsi));
  }
diff -Nrcpad gcc-14-20260320/libstdc++-v3/ChangeLog gcc-14-20260327/libstdc++-v3/ChangeLog
*** gcc-14-20260320/libstdc++-v3/ChangeLog	Fri Mar 20 22:32:17 2026
--- gcc-14-20260327/libstdc++-v3/ChangeLog	Fri Mar 27 22:32:17 2026
***************
*** 1,3 ****
--- 1,19 ----
+ 2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* src/c++20/tzdb.cc [_AIX]: Change #ifndef to #ifdef.
+ 
+ 2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-03-20  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/124568
+ 	* testsuite/24_iterators/istreambuf_iterator/105580.cc: Add
+ 	no_pch option.
+ 
  2026-03-16  Tomasz Kamiński  <tkaminsk@redhat.com>
  
  	Backported from master:
