diff -Nrcpad gcc-15-20260404/LAST_UPDATED gcc-15-20260411/LAST_UPDATED
*** gcc-15-20260404/LAST_UPDATED	Sat Apr  4 22:32:20 2026
--- gcc-15-20260411/LAST_UPDATED	Sat Apr 11 22:32:21 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision 8a9cf3a8ebd83f1c34b2f757b22a929a1d98ef0e
--- 1 ----
! Obtained from git: releases/gcc-15 revision fd8897236ff204a16e04b65e234bba1e62b8856a
diff -Nrcpad gcc-15-20260404/MD5SUMS gcc-15-20260411/MD5SUMS
*** gcc-15-20260404/MD5SUMS	Sat Apr  4 22:32:24 2026
--- gcc-15-20260411/MD5SUMS	Sat Apr 11 22:32:26 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260404.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
--- 1,5 ----
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260411.tar.xz tarball.
  #
  # Besides verifying that all files in the tarball were correctly expanded,
  # it also can be used to determine if any files have changed since the
*************** d32239bcb673463ab874e80d47fae504  COPYIN
*** 25,31 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 63eb06c2fed0946b455c73a3a95423b6  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 690a3e976fa9d2f8f8e0f7775e5ff43e  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
*************** a22e70b3f29292d0e628450f4bb11e62  fixinc
*** 514,520 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 94e9d5163dd35c6dca4fcb715b0c0041  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 514,520 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 8e8179ee5736ae4784db99c9e56788cb  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 551,557 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 417465608efab1dafe68b962952d28dc  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 551,557 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! a3d4af595c5f12607abf409e2b159c6d  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** ec6799501b2eb2923d5de6a66169dbd2  gcc/ON
*** 563,569 ****
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! bf6c539d2cca33c0a7c5b257bae0acfb  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 563,569 ----
  cd96bf34cb76c97f86704a59b9ddb18a  gcc/acinclude.m4
  18db4664d7e31002aac43ebcf20e075f  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! fce1819f1acf810c9d8d27cc759632b2  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** c32b79cba61a5b6f930702390ccb4a7e  gcc/ad
*** 778,784 ****
  689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
  9dda196327513bf2ff43b720e183d830  gcc/ada/exp_ch5.adb
  3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 29f18c15c209409cda6cdb874da96691  gcc/ada/exp_ch6.adb
  c22c79787fe7516adb5a4c55613fb6ab  gcc/ada/exp_ch6.ads
  356896e905fa10471e94e6ed528670a1  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
--- 778,784 ----
  689dbf89ad9d44a03b54f8ce05455a31  gcc/ada/exp_ch4.ads
  9dda196327513bf2ff43b720e183d830  gcc/ada/exp_ch5.adb
  3564a044f1e9954ffdd8d3a48643fff9  gcc/ada/exp_ch5.ads
! 2fa9560c122a8f5f8cd30af4e8fec94f  gcc/ada/exp_ch6.adb
  c22c79787fe7516adb5a4c55613fb6ab  gcc/ada/exp_ch6.ads
  356896e905fa10471e94e6ed528670a1  gcc/ada/exp_ch7.adb
  31ee5e50c565d4788d9b794acb5bfebb  gcc/ada/exp_ch7.ads
*************** fb8ce448fc18100b7ab3696a970cefef  gcc/ad
*** 2590,2598 ****
  d7ef7e182a1e37222a10286b201abda7  gcc/ada/libgnat/s-scaval.ads
  8de14d068ceff95cf4226f50bcfe6a69  gcc/ada/libgnat/s-scaval__128.adb
  faf834df5906c5c44a11bf2e1714010c  gcc/ada/libgnat/s-scaval__128.ads
! 360a0e644022a2ea5c4c1a658e454b7c  gcc/ada/libgnat/s-secsta.adb
  c357811accaff09385431aded29b40aa  gcc/ada/libgnat/s-secsta.ads
! 677f7165ecde0a07422fe01be0e28a48  gcc/ada/libgnat/s-secsta__cheri.adb
  f3707f4d20aaf91eaf7ae4cbf0c0885c  gcc/ada/libgnat/s-sequio.adb
  63640562aa4ba92f5b0c26c9ab31bde5  gcc/ada/libgnat/s-sequio.ads
  26cec890209604c8977bd0d2e5a3dd93  gcc/ada/libgnat/s-shabig.ads
--- 2590,2598 ----
  d7ef7e182a1e37222a10286b201abda7  gcc/ada/libgnat/s-scaval.ads
  8de14d068ceff95cf4226f50bcfe6a69  gcc/ada/libgnat/s-scaval__128.adb
  faf834df5906c5c44a11bf2e1714010c  gcc/ada/libgnat/s-scaval__128.ads
! e26657d87c48dc2013170b7d82a93f88  gcc/ada/libgnat/s-secsta.adb
  c357811accaff09385431aded29b40aa  gcc/ada/libgnat/s-secsta.ads
! 9aebf4026339b6b995ff14d36133cde7  gcc/ada/libgnat/s-secsta__cheri.adb
  f3707f4d20aaf91eaf7ae4cbf0c0885c  gcc/ada/libgnat/s-sequio.adb
  63640562aa4ba92f5b0c26c9ab31bde5  gcc/ada/libgnat/s-sequio.ads
  26cec890209604c8977bd0d2e5a3dd93  gcc/ada/libgnat/s-shabig.ads
*************** bdc5f6caf56fd0411faf705e9c32ccd4  gcc/co
*** 4947,4953 ****
  7439c310d1c94dcd962b3e1c3cd5d462  gcc/config/riscv/riscv-vector-builtins-shapes.cc
  92a4d3a592ebef60b5ed8a2c0963b75a  gcc/config/riscv/riscv-vector-builtins-shapes.h
  8bb44ae09faa0c992fb3f5abd38f63db  gcc/config/riscv/riscv-vector-builtins-types.def
! 695bc3a1e41cd33383e659fcb08033c4  gcc/config/riscv/riscv-vector-builtins.cc
  d5729696e4e1e43d59d9a0a80bc8e837  gcc/config/riscv/riscv-vector-builtins.def
  e689fde027c44b52f074bd7c02361a6d  gcc/config/riscv/riscv-vector-builtins.h
  3ab2c03f8df3835afe50fe4842b35c33  gcc/config/riscv/riscv-vector-costs.cc
--- 4947,4953 ----
  7439c310d1c94dcd962b3e1c3cd5d462  gcc/config/riscv/riscv-vector-builtins-shapes.cc
  92a4d3a592ebef60b5ed8a2c0963b75a  gcc/config/riscv/riscv-vector-builtins-shapes.h
  8bb44ae09faa0c992fb3f5abd38f63db  gcc/config/riscv/riscv-vector-builtins-types.def
! 76666f96958b7f31de0214778544f54d  gcc/config/riscv/riscv-vector-builtins.cc
  d5729696e4e1e43d59d9a0a80bc8e837  gcc/config/riscv/riscv-vector-builtins.def
  e689fde027c44b52f074bd7c02361a6d  gcc/config/riscv/riscv-vector-builtins.h
  3ab2c03f8df3835afe50fe4842b35c33  gcc/config/riscv/riscv-vector-costs.cc
*************** f51037a9e437f8e9ce7215b2da5ad4e2  gcc/co
*** 4956,4963 ****
  e67a32ac377a0e247ed24db0833b46e6  gcc/config/riscv/riscv-vsetvl.cc
  16b7359c0b12895c0d7452fc89879a1a  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! 1a011f293eabcb0e39ea297e45b16e66  gcc/config/riscv/riscv.cc
! 1153302a8d65cedebba8e1a3f67931b2  gcc/config/riscv/riscv.h
  e0f559ad59aa7daada8d2a405d8ea9d8  gcc/config/riscv/riscv.md
  c799356a57b52ab91ff324ab22516fba  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
--- 4956,4963 ----
  e67a32ac377a0e247ed24db0833b46e6  gcc/config/riscv/riscv-vsetvl.cc
  16b7359c0b12895c0d7452fc89879a1a  gcc/config/riscv/riscv-vsetvl.def
  7082a18dbfc574d47bf71f4d50dd30f9  gcc/config/riscv/riscv-zicfilp.cc
! 5a510cd5c5ea3f3d498a83a7840e2abf  gcc/config/riscv/riscv.cc
! ca16cdb10e634d6cfa172d8a447f3053  gcc/config/riscv/riscv.h
  e0f559ad59aa7daada8d2a405d8ea9d8  gcc/config/riscv/riscv.md
  c799356a57b52ab91ff324ab22516fba  gcc/config/riscv/riscv.opt
  d1d34490d8b53ec20d70ed9e2e56e3ab  gcc/config/riscv/riscv.opt.urls
*************** a9c3cddee4e237141062720b72fe38cd  gcc/co
*** 5501,5507 ****
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 88d8e3103a784d94a721de60fff675bb  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5501,5507 ----
  5d31df44fc0a5b17beb74ce0ff38e214  gcc/coroutine-passes.cc
  2a5216aefb9cdf4b270ef8e599cc794f  gcc/coverage.cc
  722fb5fda78e55c5af5da72cad78751f  gcc/coverage.h
! 78f634098463a767ffd5f691802e6b3a  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** c2a7409e57253e5d9bfd8ce29fb85212  gcc/cp
*** 5581,5594 ****
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  8a43dc7eb02c2c19d4faa7344f490b26  gcc/cp/method.cc
! 0202bfe8a0fb4ace4573a0b354dea0a9  gcc/cp/module.cc
  64b5a4c1348e34deeccb9fe56f746027  gcc/cp/name-lookup.cc
  9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  eae2e1338eefdbc34a442a4f5e164277  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! a8921c44ca26c68398160eea82789934  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
--- 5581,5594 ----
  6c77b1fab5f6d146677090285a202a50  gcc/cp/mapper-client.h
  44e22b51797f89c9da996523a6d97f1c  gcc/cp/mapper-resolver.cc
  8a43dc7eb02c2c19d4faa7344f490b26  gcc/cp/method.cc
! 52b813d42712667bf960ce4034dd1f29  gcc/cp/module.cc
  64b5a4c1348e34deeccb9fe56f746027  gcc/cp/name-lookup.cc
  9644410086c3beb90033e77613e9d1a7  gcc/cp/name-lookup.h
  e7fe06956aada61bcaae5168ad47a9c1  gcc/cp/operators.def
  813c253a000ee20d8d6598f56edc400e  gcc/cp/optimize.cc
  eae2e1338eefdbc34a442a4f5e164277  gcc/cp/parser.cc
  e8a3a03873c6294ff25a783941b8d8af  gcc/cp/parser.h
! 91cd31f11aabe14007fafaffa9f6d864  gcc/cp/pt.cc
  a121c0a45933b618832614be1fbfd5c7  gcc/cp/ptree.cc
  318c5e4a338363a8183b4a01222aa800  gcc/cp/rtti.cc
  a4930c49ed8f9e6b019399bd1faf86d0  gcc/cp/search.cc
*************** a798cdca802a57ffa3473ab610b37c86  gcc/fo
*** 6061,6067 ****
  c93bd28b3de1f9c783e16fc6ec4aab32  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 494a05a22f4d4d3f1a2906a023560164  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6061,6067 ----
  c93bd28b3de1f9c783e16fc6ec4aab32  gcc/fold-const.cc
  f23dec03425a07611492fa2c061cd7d2  gcc/fold-const.h
  cd4e6baf5d162fbd41160606055f8297  gcc/fold-mem-offsets.cc
! 792dce8984e516bb5329ea18745450d7  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** bd08c55098f00394b9922e6163c27b92  gcc/fo
*** 6115,6121 ****
  594106f4945aba24162f5490e0fec580  gcc/fortran/gfortran.h
  7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
! 086a97ad7c8abc7e4d0b631f1d625ed2  gcc/fortran/interface.cc
  e80f8d5e01bd73d525ea93cef3a40a2d  gcc/fortran/intrinsic.cc
  cf346cfc6814f9a773f9f0ee705ab3aa  gcc/fortran/intrinsic.h
  5a25603bd6939073616d56ff5c8de9cc  gcc/fortran/intrinsic.texi
--- 6115,6121 ----
  594106f4945aba24162f5490e0fec580  gcc/fortran/gfortran.h
  7ec4df43fc3e2bbc14dd583bdd6483a5  gcc/fortran/gfortran.texi
  af66ab40a5434219772b76ad10035e45  gcc/fortran/gfortranspec.cc
! a4984dc9bf03940afba552ffc09ccf12  gcc/fortran/interface.cc
  e80f8d5e01bd73d525ea93cef3a40a2d  gcc/fortran/intrinsic.cc
  cf346cfc6814f9a773f9f0ee705ab3aa  gcc/fortran/intrinsic.h
  5a25603bd6939073616d56ff5c8de9cc  gcc/fortran/intrinsic.texi
*************** a4f5f15bbfd3cf3b780e3a8875ebf0df  gcc/fo
*** 6154,6163 ****
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  6866300c032ec0247d520a77be27d9fa  gcc/fortran/trans-decl.cc
! 7dd66a99562b6cf73c8bab65a22829dc  gcc/fortran/trans-expr.cc
! 8ba8fa53a4179a343767efc9ef4e17be  gcc/fortran/trans-intrinsic.cc
  a26cd103074d9ae2f87ac35ba1b90970  gcc/fortran/trans-io.cc
! d61eaeb7f04155dde37d6f463894181b  gcc/fortran/trans-openmp.cc
  03aafb32bf3170c38549a2536ebb7e4c  gcc/fortran/trans-stmt.cc
  3e46866176ab0bac5fb67ed27515535d  gcc/fortran/trans-stmt.h
  b798d7499d8f9c9573d942f87340af9e  gcc/fortran/trans-types.cc
--- 6154,6163 ----
  d555f911945a83db335013815934e941  gcc/fortran/trans-const.cc
  857805820c2a6ac77d2652c610d23de8  gcc/fortran/trans-const.h
  6866300c032ec0247d520a77be27d9fa  gcc/fortran/trans-decl.cc
! e435a86044cda4f0c9d080ccce6c6cf7  gcc/fortran/trans-expr.cc
! 2fc2e705f2020d62f54715e4698b69d6  gcc/fortran/trans-intrinsic.cc
  a26cd103074d9ae2f87ac35ba1b90970  gcc/fortran/trans-io.cc
! 861633525188f39f6eac2e6673146d9f  gcc/fortran/trans-openmp.cc
  03aafb32bf3170c38549a2536ebb7e4c  gcc/fortran/trans-stmt.cc
  3e46866176ab0bac5fb67ed27515535d  gcc/fortran/trans-stmt.h
  b798d7499d8f9c9573d942f87340af9e  gcc/fortran/trans-types.cc
*************** c81003797329cf68441e2bed5e76c252  gcc/ho
*** 6442,6448 ****
  260dd898f6b9809f71a292b793d67324  gcc/hw-doloop.h
  4769eb51982f8ccb12764424698b464f  gcc/hwint.cc
  8826410aae6a5efbb3d335e5e3dceed4  gcc/hwint.h
! 84c7eedfe3c354dd8d0463bfac91b3e1  gcc/ifcvt.cc
  1d252ebba03aa858df6822a8b59e1d4e  gcc/ifcvt.h
  55413f67957a351f7ca1b0a8a2f69a7c  gcc/inchash.cc
  f380ce65b15eedb6d55a9848beb1ec3b  gcc/inchash.h
--- 6442,6448 ----
  260dd898f6b9809f71a292b793d67324  gcc/hw-doloop.h
  4769eb51982f8ccb12764424698b464f  gcc/hwint.cc
  8826410aae6a5efbb3d335e5e3dceed4  gcc/hwint.h
! 2fa5304f721833a530128d54b668c4d4  gcc/ifcvt.cc
  1d252ebba03aa858df6822a8b59e1d4e  gcc/ifcvt.h
  55413f67957a351f7ca1b0a8a2f69a7c  gcc/inchash.cc
  f380ce65b15eedb6d55a9848beb1ec3b  gcc/inchash.h
*************** b3a965e425e6cf7888319667faf58da9  gcc/sy
*** 8448,8454 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 84efa61900a37c792ae4d71b310ba791  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8448,8454 ----
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 2a5871b6812637e1edc298862077c790  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** ae3e1959f85f05c9ec509a6dbdbe24ca  gcc/te
*** 20780,20785 ****
--- 20780,20786 ----
  d8c0c733385ca64144f09cf94dbfc159  gcc/testsuite/g++.dg/cpp1z/nontype6.C
  478af4b2682b8500b6d04a7190ab9e4b  gcc/testsuite/g++.dg/cpp1z/nontype6a.C
  1a73a13a161c05eab6182bb64cba004b  gcc/testsuite/g++.dg/cpp1z/nontype7.C
+ ad7260377d53bd5be2c8dfecf32c3fc2  gcc/testsuite/g++.dg/cpp1z/nontype9.C
  03ca05bf2eccb98d95222a2435a3d9ed  gcc/testsuite/g++.dg/cpp1z/pr110216.C
  86d3c074d77c88bd7ef317faea9d2968  gcc/testsuite/g++.dg/cpp1z/pr115440.C
  e668ace19a2b0d8946e0e19fd8317af1  gcc/testsuite/g++.dg/cpp1z/pr78771.C
*************** e20c87111262a5e61bd6b3d5b3c21beb  gcc/te
*** 22087,22092 ****
--- 22088,22095 ----
  cf4951735fc79d21719a1d9d147e601f  gcc/testsuite/g++.dg/cpp2a/lambda-targ22.C
  cda34ab516f0f3b749efab4ba8f525af  gcc/testsuite/g++.dg/cpp2a/lambda-targ22a.C
  c9c401dee234950a35f6baa7697a4559  gcc/testsuite/g++.dg/cpp2a/lambda-targ23.C
+ 5891843d160f32e907903a257a0ac85a  gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C
+ 2974766b277ea1141793386ea16ee705  gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C
  d948ecca981f7c5de5ca48afc987ea36  gcc/testsuite/g++.dg/cpp2a/lambda-targ2a.C
  096118fef57f992a05319e3b6f8ba6a7  gcc/testsuite/g++.dg/cpp2a/lambda-targ3.C
  21c4749dcabd9a286db03db935f9cd86  gcc/testsuite/g++.dg/cpp2a/lambda-targ4.C
*************** a8636939c5d030916bbdc239d5e9e9a3  gcc/te
*** 26290,26295 ****
--- 26293,26300 ----
  040be8991ebd5f345ea015fd8710afd5  gcc/testsuite/g++.dg/modules/auto-5_c.C
  b68df902c6a54181691939a43b2744d7  gcc/testsuite/g++.dg/modules/auto-6_a.H
  427dcd6424cdaf1a044b4b2d5267cbf7  gcc/testsuite/g++.dg/modules/auto-6_b.C
+ 9a7f1ce87583e6e392c76f4f6b195369  gcc/testsuite/g++.dg/modules/auto-8_a.H
+ 572d615e2c38b83d9a12eb7f97ed3dd6  gcc/testsuite/g++.dg/modules/auto-8_b.C
  53bbe2f7c4d5079131e5a6dea8da20db  gcc/testsuite/g++.dg/modules/bad-mapper-1.C
  429207e0eb777b4a43a566e8777f6503  gcc/testsuite/g++.dg/modules/bad-mapper-2.C
  457c206081cc6757683b25dc791287cd  gcc/testsuite/g++.dg/modules/bad-mapper-3.C
*************** c46255bb51de7ad96b62c94e9c472cb4  gcc/te
*** 26605,26610 ****
--- 26610,26616 ----
  c60ce9cb77aee4deb3090704e1db970f  gcc/testsuite/g++.dg/modules/export-5_a.C
  475cd1f0fba2791b43a510dd62919021  gcc/testsuite/g++.dg/modules/export-5_b.C
  301c08d49a4d86740c0af5dc3a234f66  gcc/testsuite/g++.dg/modules/export-6.C
+ d629c3101bb6dd6c09df3fcd36e2121a  gcc/testsuite/g++.dg/modules/export-7.C
  72f93a05f3b46d53e36617fe0e02c955  gcc/testsuite/g++.dg/modules/extern-tpl-1_a.H
  3315098b4e8445874ea0c80fd4fb9568  gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
  af71a71f12f25f2b3cb5a86a955b562b  gcc/testsuite/g++.dg/modules/extern-tpl-1_c.C
*************** ad4492ce734ab625ca31a8dcc2cfe939  gcc/te
*** 26858,26863 ****
--- 26864,26872 ----
  276da43d466a2829c1bdbe61d568e6cc  gcc/testsuite/g++.dg/modules/late-ret-3_c.C
  c5775cba25f4ad0346ebb8c37187fb17  gcc/testsuite/g++.dg/modules/late-ret-4_a.H
  58a30a7fa14cc33fd5e58e740b7a646d  gcc/testsuite/g++.dg/modules/late-ret-4_b.C
+ 540a7794ac65049e5e060f5f388c645b  gcc/testsuite/g++.dg/modules/late-ret-5.h
+ 9546e757881037efb96360ffd0010275  gcc/testsuite/g++.dg/modules/late-ret-5_a.H
+ d49297c2f37e3449a56153f151e162f3  gcc/testsuite/g++.dg/modules/late-ret-5_b.C
  739350acfa3eb5d0429706893705d31b  gcc/testsuite/g++.dg/modules/lazy-1_a.C
  874867dd9f2863a33cff5a80f9a8c6fa  gcc/testsuite/g++.dg/modules/lazy-1_b.C
  5ad3883c603e1646226b91fad2ac09e3  gcc/testsuite/g++.dg/modules/leg-merge-1_a.H
*************** fce3f558aeb8001c53b2a58bdd35b90c  gcc/te
*** 27153,27158 ****
--- 27162,27171 ----
  29e61ee340b5bc3a7d8a0ba7a9b97160  gcc/testsuite/g++.dg/modules/noexcept-3_c.C
  3352ecf52d4c372d9299b5562e3d2bc1  gcc/testsuite/g++.dg/modules/noexcept-4_a.H
  1f41c550595320f883deb0c9cafc27d7  gcc/testsuite/g++.dg/modules/noexcept-4_b.C
+ f607f8896343cb10bfe1c533ab9b3f28  gcc/testsuite/g++.dg/modules/noexcept-5.h
+ 2a6066ee8de5da718d523238d43c0045  gcc/testsuite/g++.dg/modules/noexcept-5_a.C
+ 7df3f08ca2357d94302931ed7331bc7d  gcc/testsuite/g++.dg/modules/noexcept-5_b.C
+ 2a252bbd723530e61e33b6df1e1c2bfc  gcc/testsuite/g++.dg/modules/noexcept-5_c.C
  5267120dfe33094309707a439761d2ad  gcc/testsuite/g++.dg/modules/ns-alias-1_a.C
  5c1f7c01d38a7bbf2a7cb1627d2269cb  gcc/testsuite/g++.dg/modules/ns-alias-1_b.C
  35b6f149929214b0f06a476383cbce84  gcc/testsuite/g++.dg/modules/ns-alias-1_c.C
*************** a2656a59d00f50e3a24dc4e71bfb3973  gcc/te
*** 38891,38896 ****
--- 38904,38910 ----
  9b56cc2b8b8b471730e0b14ce4b78300  gcc/testsuite/gcc.c-torture/compile/pr103813.c
  4a6f867d2a09bace8b7a324f6a4f5237  gcc/testsuite/gcc.c-torture/compile/pr104327.c
  43abe0671a6ea621a4ca89fda41e49b8  gcc/testsuite/gcc.c-torture/compile/pr104499.c
+ acee4f72cc5b1f29df02485de18a69c0  gcc/testsuite/gcc.c-torture/compile/pr105192.c
  b8c09513cab59ca8f22d38e515f50fa8  gcc/testsuite/gcc.c-torture/compile/pr105234.c
  112c17f5638bc2cf5c04c9e917943218  gcc/testsuite/gcc.c-torture/compile/pr105247.c
  9477024f0d6e7d41ab0ee7d8ab3d3e58  gcc/testsuite/gcc.c-torture/compile/pr106030.c
*************** c4d85f1a0ac2c091e026cf0d052e2f21  gcc/te
*** 55476,55483 ****
  fc8efeaf2ed7c9bba5d4f1717e7e356b  gcc/testsuite/gcc.dg/tree-ssa/forwprop-38.c
  260a7d066794f7642a568e403fb5e5d4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c
  cb909e7812f73f90414b63042c95d199  gcc/testsuite/gcc.dg/tree-ssa/forwprop-4.c
! eb894750e8c2c762096d861a6009f51a  gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
! a7f663adfd228e0c28c58bd9894c4b57  gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
  d56422e63543fcf4bf4b78d825c534da  gcc/testsuite/gcc.dg/tree-ssa/forwprop-5.c
  0f6dc2b3b3469af9cd27d5b5cd97353c  gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
  a9096c4b5b756bdc9dcc196398730d73  gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
--- 55490,55497 ----
  fc8efeaf2ed7c9bba5d4f1717e7e356b  gcc/testsuite/gcc.dg/tree-ssa/forwprop-38.c
  260a7d066794f7642a568e403fb5e5d4  gcc/testsuite/gcc.dg/tree-ssa/forwprop-39.c
  cb909e7812f73f90414b63042c95d199  gcc/testsuite/gcc.dg/tree-ssa/forwprop-4.c
! de0d5a27a8224396ca0f19ef47a34440  gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
! b37bc1a875a42a06f975ad9f2fd0cfe6  gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
  d56422e63543fcf4bf4b78d825c534da  gcc/testsuite/gcc.dg/tree-ssa/forwprop-5.c
  0f6dc2b3b3469af9cd27d5b5cd97353c  gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
  a9096c4b5b756bdc9dcc196398730d73  gcc/testsuite/gcc.dg/tree-ssa/forwprop-7.c
*************** c4778a5d167ea622bf99df287c4bd701  gcc/te
*** 55494,55501 ****
  c177f823491b23ed671dd72cae6bdd38  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
  981ec8a8f9969e2f4fb9ade9b962de95  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
  5ae2c5d6d98bb28c830c4edfe000bf66  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
! 90512bbeacddcca66fd3984243eb5137  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
! 8cb7818e3e640f1d01eb6c6cb43f1975  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
  05e95b989cfdf6357a178aa625f98417  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c
  c700544c3e68a401546cefbdad359728  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-33.c
  955e41ee303f67ec226ec41283fd05af  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-34.c
--- 55508,55515 ----
  c177f823491b23ed671dd72cae6bdd38  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
  981ec8a8f9969e2f4fb9ade9b962de95  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
  5ae2c5d6d98bb28c830c4edfe000bf66  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
! acf55a2a50daef94fee7e4893c59907f  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
! 32868b3ca203b17bb1a2fcb3daaec66b  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
  05e95b989cfdf6357a178aa625f98417  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c
  c700544c3e68a401546cefbdad359728  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-33.c
  955e41ee303f67ec226ec41283fd05af  gcc/testsuite/gcc.dg/tree-ssa/gen-vect-34.c
*************** df707465bb7e4b000207abad1e61b5e2  gcc/te
*** 58019,58025 ****
  00ebbce7dff85c1103b133cb02ef7fc7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
  005c2fcc6a33e2f2e3160f2d41f80ea9  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
  59528ce01adb89a3254370b6e4775877  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
! 27913b4773f2c29692c33dfc232be411  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
  be8d0bd6699017c7caaca7b550b1ffbe  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
  12056b4bb025a055ab0b31784ca370c7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
  4f0b37f5423ec8aff3036781000b82e0  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
--- 58033,58039 ----
  00ebbce7dff85c1103b133cb02ef7fc7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c
  005c2fcc6a33e2f2e3160f2d41f80ea9  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c
  59528ce01adb89a3254370b6e4775877  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c
! a84e480c43ff803e618e80cd3f8efbd3  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
  be8d0bd6699017c7caaca7b550b1ffbe  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c
  12056b4bb025a055ab0b31784ca370c7  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c
  4f0b37f5423ec8aff3036781000b82e0  gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c
*************** ad7292efdc490279906e7c95bdda09d7  gcc/te
*** 69420,69426 ****
  c65022a81cf8898ea37c82f9a6fe227f  gcc/testsuite/gcc.target/arm/acle/stc2l.c
  fc648f69779c2ae9f4075ca8aed84b4f  gcc/testsuite/gcc.target/arm/acle/stcl.c
  040dfdd8abd27c81f014da36e605a1ca  gcc/testsuite/gcc.target/arm/addr-modes-float.c
! e83f97202504a386d4e913ce29128f75  gcc/testsuite/gcc.target/arm/addr-modes-int.c
  d21ea73439704c16e82e0898ae8bc79e  gcc/testsuite/gcc.target/arm/addr-modes.h
  c99e8c6f6d97bb7edb8dc7d1102978c7  gcc/testsuite/gcc.target/arm/aes-fuse-1.c
  ad025c91232cb7114b15020e9a7c7aaa  gcc/testsuite/gcc.target/arm/aes-fuse-2.c
--- 69434,69440 ----
  c65022a81cf8898ea37c82f9a6fe227f  gcc/testsuite/gcc.target/arm/acle/stc2l.c
  fc648f69779c2ae9f4075ca8aed84b4f  gcc/testsuite/gcc.target/arm/acle/stcl.c
  040dfdd8abd27c81f014da36e605a1ca  gcc/testsuite/gcc.target/arm/addr-modes-float.c
! b604cc7251da4bfb8a20a095cd4444c8  gcc/testsuite/gcc.target/arm/addr-modes-int.c
  d21ea73439704c16e82e0898ae8bc79e  gcc/testsuite/gcc.target/arm/addr-modes.h
  c99e8c6f6d97bb7edb8dc7d1102978c7  gcc/testsuite/gcc.target/arm/aes-fuse-1.c
  ad025c91232cb7114b15020e9a7c7aaa  gcc/testsuite/gcc.target/arm/aes-fuse-2.c
*************** ed8f53ad845cace075e82259961588c1  gcc/te
*** 69838,69847 ****
  07838a70a70c703269fa0783335a34b7  gcc/testsuite/gcc.target/arm/ivopts-5.c
  371c001d833d940cd40d8aa3fee9915d  gcc/testsuite/gcc.target/arm/ivopts-orig_biv-inc.c
  c4e0098d92012d398b34de432c7f9cba  gcc/testsuite/gcc.target/arm/ivopts.c
! 629878f590b6027b463fdc14a2b3bd9f  gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
  a38561d69fa262860777d4da466d538e  gcc/testsuite/gcc.target/arm/ldrd-strd-offset.c
  02b9352efc9d3dded38ac3a6281bcdd1  gcc/testsuite/gcc.target/arm/ldrd-strd-pair-1.c
! cd5d776718748bd9e5c15d1b763fac4a  gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
  3b99d425390b2c010e9f67c320c6651b  gcc/testsuite/gcc.target/arm/lob.h
  30eb8bf7f61ddb2c4d5226a9bb14e1c7  gcc/testsuite/gcc.target/arm/lob1.c
  21a0d38f913fade2adb9df1b375a0b15  gcc/testsuite/gcc.target/arm/lob2.c
--- 69852,69861 ----
  07838a70a70c703269fa0783335a34b7  gcc/testsuite/gcc.target/arm/ivopts-5.c
  371c001d833d940cd40d8aa3fee9915d  gcc/testsuite/gcc.target/arm/ivopts-orig_biv-inc.c
  c4e0098d92012d398b34de432c7f9cba  gcc/testsuite/gcc.target/arm/ivopts.c
! f34b883201d67907215163e81a1e647d  gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
  a38561d69fa262860777d4da466d538e  gcc/testsuite/gcc.target/arm/ldrd-strd-offset.c
  02b9352efc9d3dded38ac3a6281bcdd1  gcc/testsuite/gcc.target/arm/ldrd-strd-pair-1.c
! b6d21b184b9363ec63310029743b3ec8  gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
  3b99d425390b2c010e9f67c320c6651b  gcc/testsuite/gcc.target/arm/lob.h
  30eb8bf7f61ddb2c4d5226a9bb14e1c7  gcc/testsuite/gcc.target/arm/lob1.c
  21a0d38f913fade2adb9df1b375a0b15  gcc/testsuite/gcc.target/arm/lob2.c
*************** bf821309d2cd93b8c0d6b0704742bc45  gcc/te
*** 69854,69860 ****
  045075d4c4f653f51cab15b6c12b3e09  gcc/testsuite/gcc.target/arm/long-calls-3.c
  856b2cad766c5a53d737088d9056031b  gcc/testsuite/gcc.target/arm/long-calls-4.c
  bda0b982c40bee2fd28b1750fa6bc2bf  gcc/testsuite/gcc.target/arm/lp1189445.c
! b4f8ad85c07f7be61a90747a85bd0be4  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
  8d549d0367ca6688329df1257420972a  gcc/testsuite/gcc.target/arm/lto/lto.exp
  fd9597acaf90b4fc0a611739248cecea  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c
  636cbd6b191957f3f94b3734e71688a5  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_1.c
--- 69868,69874 ----
  045075d4c4f653f51cab15b6c12b3e09  gcc/testsuite/gcc.target/arm/long-calls-3.c
  856b2cad766c5a53d737088d9056031b  gcc/testsuite/gcc.target/arm/long-calls-4.c
  bda0b982c40bee2fd28b1750fa6bc2bf  gcc/testsuite/gcc.target/arm/lp1189445.c
! 907fdd46667ce02cd530e6e361337e71  gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
  8d549d0367ca6688329df1257420972a  gcc/testsuite/gcc.target/arm/lto/lto.exp
  fd9597acaf90b4fc0a611739248cecea  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_0.c
  636cbd6b191957f3f94b3734e71688a5  gcc/testsuite/gcc.target/arm/lto/pr61123-enum-size_1.c
*************** ad889dc702c92663961bc564b883d787  gcc/te
*** 73126,73132 ****
  05c3589a49c42a1f66dba99c2e67575f  gcc/testsuite/gcc.target/arm/volatile-bitfields-2.c
  f0d030e6fbffef2383334d1424090ccf  gcc/testsuite/gcc.target/arm/volatile-bitfields-3.c
  56d8ff7bdf563dcd918699bd8ae01ee9  gcc/testsuite/gcc.target/arm/volatile-bitfields-4.c
! ff14f375f3415d01a476840f37b062b0  gcc/testsuite/gcc.target/arm/vrinta-ce.c
  22c159438f9959b6666b395d5c6aecbe  gcc/testsuite/gcc.target/arm/vrintaf32.c
  c9f286d71ee58c4562f8ce595d9435f7  gcc/testsuite/gcc.target/arm/vrintaf64.c
  7ae924766d744675519935afb228f3db  gcc/testsuite/gcc.target/arm/vrintmf32.c
--- 73140,73146 ----
  05c3589a49c42a1f66dba99c2e67575f  gcc/testsuite/gcc.target/arm/volatile-bitfields-2.c
  f0d030e6fbffef2383334d1424090ccf  gcc/testsuite/gcc.target/arm/volatile-bitfields-3.c
  56d8ff7bdf563dcd918699bd8ae01ee9  gcc/testsuite/gcc.target/arm/volatile-bitfields-4.c
! 76aa87f069cd2a3471fd342b14dd01ec  gcc/testsuite/gcc.target/arm/vrinta-ce.c
  22c159438f9959b6666b395d5c6aecbe  gcc/testsuite/gcc.target/arm/vrintaf32.c
  c9f286d71ee58c4562f8ce595d9435f7  gcc/testsuite/gcc.target/arm/vrintaf64.c
  7ae924766d744675519935afb228f3db  gcc/testsuite/gcc.target/arm/vrintmf32.c
*************** b09906ea02ce8406cdd3e27bb94de042  gcc/te
*** 101204,101209 ****
--- 101218,101224 ----
  f82e9b9c0fd2496c70490c91bc661d8b  gcc/testsuite/gfortran.dg/c_f_pointer_tests_9.f90
  d4987bd92136fbe1dc0dbed4d878bc35  gcc/testsuite/gfortran.dg/c_f_tests_driver.c
  6225c3ed3e9774c1780dabafdb403bbb  gcc/testsuite/gfortran.dg/c_funloc_tests.f03
+ 50477914f8343ce12f792f525c61b042  gcc/testsuite/gfortran.dg/c_funloc_tests_10.f90
  e3d7c198fc7009b223f98b2e4884b462  gcc/testsuite/gfortran.dg/c_funloc_tests_2.f03
  98e3aa16d995b23cb7838243c47d7edf  gcc/testsuite/gfortran.dg/c_funloc_tests_3.f03
  4e9d85f4aad841105271457e917b0066  gcc/testsuite/gfortran.dg/c_funloc_tests_3_funcs.c
*************** e3d7c198fc7009b223f98b2e4884b462  gcc/te
*** 101211,101218 ****
  369aef7f75f5b20a85f41e161e1ffb04  gcc/testsuite/gfortran.dg/c_funloc_tests_4_driver.c
  c667584e20b0f824467db7ec4e3b9343  gcc/testsuite/gfortran.dg/c_funloc_tests_5.f03
  65b5cc5ca9373288fd99f49ba472e18f  gcc/testsuite/gfortran.dg/c_funloc_tests_6.f90
! 50f4b315c9bd0e25bc32f9dd348dd475  gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90
  59490e9c85587d64c753922197bc3806  gcc/testsuite/gfortran.dg/c_funloc_tests_8.f90
  f8f8342ffbfc860b3fd25bf3bb1a89b1  gcc/testsuite/gfortran.dg/c_funptr_1.f90
  3fc97d796867c00b63bcdccb04232885  gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90
  4b6d52265411683cdb8530282a8dff39  gcc/testsuite/gfortran.dg/c_kind_int128_test1.f03
--- 101226,101234 ----
  369aef7f75f5b20a85f41e161e1ffb04  gcc/testsuite/gfortran.dg/c_funloc_tests_4_driver.c
  c667584e20b0f824467db7ec4e3b9343  gcc/testsuite/gfortran.dg/c_funloc_tests_5.f03
  65b5cc5ca9373288fd99f49ba472e18f  gcc/testsuite/gfortran.dg/c_funloc_tests_6.f90
! c584b712c310fcef8e2418ef0145cf8a  gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90
  59490e9c85587d64c753922197bc3806  gcc/testsuite/gfortran.dg/c_funloc_tests_8.f90
+ 885a61e43f249cb0957e72eed77a6de3  gcc/testsuite/gfortran.dg/c_funloc_tests_9.f90
  f8f8342ffbfc860b3fd25bf3bb1a89b1  gcc/testsuite/gfortran.dg/c_funptr_1.f90
  3fc97d796867c00b63bcdccb04232885  gcc/testsuite/gfortran.dg/c_funptr_1_mod.f90
  4b6d52265411683cdb8530282a8dff39  gcc/testsuite/gfortran.dg/c_kind_int128_test1.f03
*************** b05969f53054593dd395b4ea04ad9c70  gcc/te
*** 103201,103206 ****
--- 103217,103224 ----
  b8f902f76eb78d41248d3f43e7203c3e  gcc/testsuite/gfortran.dg/generic_33.f90
  4705e58dd699635bea41b395496c1088  gcc/testsuite/gfortran.dg/generic_34.f90
  37cd6187e808ee365884bcbc55152cbf  gcc/testsuite/gfortran.dg/generic_35.f90
+ 2ecee9dd67a37d46386d24fb1f25af74  gcc/testsuite/gfortran.dg/generic_36-1.f90
+ a5bbbc17d24a1ce19bfca4527daacdab  gcc/testsuite/gfortran.dg/generic_36-2.f90
  a5a419e931b944ccee23f03064f3067a  gcc/testsuite/gfortran.dg/generic_4.f90
  6b638ae392f7e94c1592d0efbc053876  gcc/testsuite/gfortran.dg/generic_5.f90
  dc5927a86c1c614c2ff8285c60cf86f9  gcc/testsuite/gfortran.dg/generic_6.f90
*************** fd931b02506b83f0422f0faed5da5c1e  gcc/te
*** 103374,103379 ****
--- 103392,103398 ----
  09ea63acb5c4c7a47cc2d19532460132  gcc/testsuite/gfortran.dg/goacc/pr104717.f90
  7e7fc3d088115060da170794a58be703  gcc/testsuite/gfortran.dg/goacc/pr109622-5.f90
  1455640e85064b6a149025dca753e059  gcc/testsuite/gfortran.dg/goacc/pr109622-6.f90
+ 25e0ac1a3686ba9ae8a974d05f23ebf5  gcc/testsuite/gfortran.dg/goacc/pr120723.f90
  3cdf23868f01623770b84c1bd05da5a3  gcc/testsuite/gfortran.dg/goacc/pr71704.f90
  2ff86b408ebb7a6e4fa041f1ea4a5204  gcc/testsuite/gfortran.dg/goacc/pr72715.f90
  dff0c4a3dcd2aac51063c6e05c6d4665  gcc/testsuite/gfortran.dg/goacc/pr72743.f90
*************** add67b8a04a202421f2564cbcbcdbc88  gcc/te
*** 110973,110978 ****
--- 110992,111000 ----
  59299ad44fc7c1448bdc355f64dda579  gcc/testsuite/gnat.dg/aggr34_pkg2.adb
  564b8aed71e56ea8798f32904183e4cf  gcc/testsuite/gnat.dg/aggr34_pkg2.ads
  dc8fcab04675e97bd3b1a9cc9ea62b81  gcc/testsuite/gnat.dg/aggr34_pkg3.ads
+ de08963200919efd0d17eb3a00430d13  gcc/testsuite/gnat.dg/aggr35.adb
+ 437905f29fbe199a1751c27f0bd4d394  gcc/testsuite/gnat.dg/aggr35_pkg.adb
+ f43b0a38be6632f578965e09556359d0  gcc/testsuite/gnat.dg/aggr35_pkg.ads
  35168b6dce753ec723ff0dcf21d977d0  gcc/testsuite/gnat.dg/aggr4.adb
  a12ec40d7ebc1ab08b05b0d1f6a57bc4  gcc/testsuite/gnat.dg/aggr7.adb
  39fba9f7f4870b15e9c37bcf9a358858  gcc/testsuite/gnat.dg/aggr8.adb
*************** eb1595e729e2eaac81c7ffe330d8f24e  gcc/te
*** 115754,115760 ****
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! b781878b88c72915c8f534c8c765df50  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
--- 115776,115782 ----
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 15f81355b5cc4fc37c807f3af7bc937c  gcc/testsuite/lib/target-supports.exp
  cfe4a2f0a83382048de060dc6669cbb9  gcc/testsuite/lib/target-utils.exp
  e45ee1a35539730bd823a310ad306ded  gcc/testsuite/lib/timeout-dg.exp
  b755c82fb5ee43ef6c852f23fbdc8704  gcc/testsuite/lib/timeout.exp
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132377,132383 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! c79cbdd855b500df38315eec4d0bfdb0  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 132399,132405 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 6f0d1e8b9469fcd51ed2bfa4f095fdd0  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** e03c583ee7c5891df1c7b190275435c9  libstd
*** 133799,133805 ****
  0f1bf0fdfc91c5159496ce06fc478adc  libstdc++-v3/include/std/print
  317c818ab1030cf117c8d8ef03df06aa  libstdc++-v3/include/std/queue
  01746ff9db8573f15b943b0c36cce6a8  libstdc++-v3/include/std/random
! e5f5a518f9ac990695882278e1955777  libstdc++-v3/include/std/ranges
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
  7d864de507d428ace2b6886ab9bb2610  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
--- 133821,133827 ----
  0f1bf0fdfc91c5159496ce06fc478adc  libstdc++-v3/include/std/print
  317c818ab1030cf117c8d8ef03df06aa  libstdc++-v3/include/std/queue
  01746ff9db8573f15b943b0c36cce6a8  libstdc++-v3/include/std/random
! 64901a5efdd2a96eed5da3fd3b378da8  libstdc++-v3/include/std/ranges
  a28bf4bed6789b61535d4b05ff48ba76  libstdc++-v3/include/std/ratio
  7d864de507d428ace2b6886ab9bb2610  libstdc++-v3/include/std/regex
  1bad2aed72c4537e7f08d24c1bf7d375  libstdc++-v3/include/std/scoped_allocator
diff -Nrcpad gcc-15-20260404/gcc/ChangeLog gcc-15-20260411/gcc/ChangeLog
*** gcc-15-20260404/gcc/ChangeLog	Sat Apr  4 22:32:05 2026
--- gcc-15-20260411/gcc/ChangeLog	Sat Apr 11 22:32:07 2026
***************
*** 1,3 ****
--- 1,26 ----
+ 2026-04-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-04-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/105192
+ 	* ifcvt.cc (find_if_header): Don't attempt to use ctrap expander
+ 	after reload.
+ 
+ 2026-04-07  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	Backported from master:
+ 	2026-04-07  Robin Dapp  <rdapp@oss.qualcomm.com>
+ 
+ 	PR target/124613
+ 	* config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher):
+ 	Add riscv_registering_builtins.
+ 	(rvv_switcher::~rvv_switcher): Set riscv_registering_builtins to
+ 	false.
+ 	* config/riscv/riscv.cc (riscv_vector_mode_supported_p): Use
+ 	riscv_registering_builtins.
+ 	* config/riscv/riscv.h: Declare.
+ 
  2026-04-01  Wu Haotian  <rigoligo03@gmail.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260404/gcc/DATESTAMP gcc-15-20260411/gcc/DATESTAMP
*** gcc-15-20260404/gcc/DATESTAMP	Sat Apr  4 22:32:06 2026
--- gcc-15-20260411/gcc/DATESTAMP	Sat Apr 11 22:32:07 2026
***************
*** 1 ****
! 20260404
--- 1 ----
! 20260411
diff -Nrcpad gcc-15-20260404/gcc/ada/ChangeLog gcc-15-20260411/gcc/ada/ChangeLog
*** gcc-15-20260404/gcc/ada/ChangeLog	Sat Apr  4 22:32:06 2026
--- gcc-15-20260411/gcc/ada/ChangeLog	Sat Apr 11 22:32:07 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Use a constant return
+ 	object when the simple return is rewritten as an extended one.
+ 	* libgnat/s-secsta.adb (SS_Allocate): Raise Storage_Error if the
+ 	requested size is negative.
+ 	* libgnat/s-secsta__cheri.adb (SS_Allocate): Likewise.
+ 
  2026-03-23  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/124607
diff -Nrcpad gcc-15-20260404/gcc/ada/exp_ch6.adb gcc-15-20260411/gcc/ada/exp_ch6.adb
*** gcc-15-20260404/gcc/ada/exp_ch6.adb	Sat Apr  4 22:32:06 2026
--- gcc-15-20260411/gcc/ada/exp_ch6.adb	Sat Apr 11 22:32:07 2026
*************** package body Exp_Ch6 is
*** 6704,6710 ****
        --
        --  into
        --
!       --    return _anonymous_ : <return_subtype> := <expression>
  
        --  The expansion produced by Expand_N_Extended_Return_Statement will
        --  contain simple return statements (for example, a block containing
--- 6704,6710 ----
        --
        --  into
        --
!       --    return _anonymous_ : constant <return_subtype> := <expression>
  
        --  The expansion produced by Expand_N_Extended_Return_Statement will
        --  contain simple return statements (for example, a block containing
*************** package body Exp_Ch6 is
*** 6736,6741 ****
--- 6736,6742 ----
              Obj_Decl : constant Node_Id :=
                           Make_Object_Declaration (Loc,
                             Defining_Identifier => Make_Temporary (Loc, 'R'),
+                            Constant_Present    => True,
                             Object_Definition   => Subtype_Ind,
                             Expression          => Relocate_Node (Exp));
  
diff -Nrcpad gcc-15-20260404/gcc/ada/libgnat/s-secsta.adb gcc-15-20260411/gcc/ada/libgnat/s-secsta.adb
*** gcc-15-20260404/gcc/ada/libgnat/s-secsta.adb	Sat Apr  4 22:32:06 2026
--- gcc-15-20260411/gcc/ada/libgnat/s-secsta.adb	Sat Apr 11 22:32:07 2026
*************** package body System.Secondary_Stack is
*** 635,649 ****
           Padding := Alignment;
        end if;
  
        --  Round the requested size (plus the needed padding in case of
        --  over-alignment) up to the nearest multiple of the default
        --  alignment to ensure efficient access and that the next available
        --  Byte is always aligned on the default alignement value.
  
-       --  It should not be possible to request an allocation of negative
-       --  size.
- 
-       pragma Assert (Storage_Size >= 0);
        Mem_Size := Round_Up (Storage_Size + Padding);
  
        if Sec_Stack_Dynamic then
--- 635,651 ----
           Padding := Alignment;
        end if;
  
+       --  Raise Storage_Error if the size has overflowed
+ 
+       if Storage_Size < 0 then
+          raise Storage_Error with "object too large";
+       end if;
+ 
        --  Round the requested size (plus the needed padding in case of
        --  over-alignment) up to the nearest multiple of the default
        --  alignment to ensure efficient access and that the next available
        --  Byte is always aligned on the default alignement value.
  
        Mem_Size := Round_Up (Storage_Size + Padding);
  
        if Sec_Stack_Dynamic then
diff -Nrcpad gcc-15-20260404/gcc/ada/libgnat/s-secsta__cheri.adb gcc-15-20260411/gcc/ada/libgnat/s-secsta__cheri.adb
*** gcc-15-20260404/gcc/ada/libgnat/s-secsta__cheri.adb	Sat Apr  4 22:32:06 2026
--- gcc-15-20260411/gcc/ada/libgnat/s-secsta__cheri.adb	Sat Apr 11 22:32:07 2026
*************** package body System.Secondary_Stack is
*** 664,673 ****
           Over_Align_Padding := Alignment;
        end if;
  
!       --  It should not be possible to request an allocation of negative
!       --  size.
  
!       pragma Assert (Storage_Size >= 0);
  
        --  Round the requested size (plus the needed padding in case of
        --  over-alignment) to ensure that the CHERI bounds length will be
--- 664,674 ----
           Over_Align_Padding := Alignment;
        end if;
  
!       --  Raise Storage_Error if the size has overflowed
  
!       if Storage_Size < 0 then
!          raise Storage_Error with "object too large";
!       end if;
  
        --  Round the requested size (plus the needed padding in case of
        --  over-alignment) to ensure that the CHERI bounds length will be
diff -Nrcpad gcc-15-20260404/gcc/config/riscv/riscv-vector-builtins.cc gcc-15-20260411/gcc/config/riscv/riscv-vector-builtins.cc
*** gcc-15-20260404/gcc/config/riscv/riscv-vector-builtins.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/config/riscv/riscv-vector-builtins.cc	Sat Apr 11 22:32:08 2026
*************** rvv_switcher::rvv_switcher (bool pollute
*** 3221,3226 ****
--- 3221,3231 ----
        riscv_option_override ();
      }
  
+   /* Allow all vector modes during builtin registration so that
+      vector_mode_supported_p does not reject fractional LMUL modes
+      for xtheadvector.  */
+   riscv_registering_builtins = true;
+ 
    /* Set have_regs_of_mode before targetm.init_builtins ().  */
    memcpy (m_old_have_regs_of_mode, have_regs_of_mode,
  	  sizeof (have_regs_of_mode));
*************** rvv_switcher::rvv_switcher (bool pollute
*** 3240,3245 ****
--- 3245,3252 ----
  
  rvv_switcher::~rvv_switcher ()
  {
+   riscv_registering_builtins = false;
+ 
    /* Recover back have_regs_of_mode.  */
    memcpy (have_regs_of_mode, m_old_have_regs_of_mode,
  	  sizeof (have_regs_of_mode));
diff -Nrcpad gcc-15-20260404/gcc/config/riscv/riscv.cc gcc-15-20260411/gcc/config/riscv/riscv.cc
*** gcc-15-20260404/gcc/config/riscv/riscv.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/config/riscv/riscv.cc	Sat Apr 11 22:32:08 2026
*************** poly_uint16 riscv_vector_chunks;
*** 340,345 ****
--- 340,348 ----
  /* The number of bytes in a vector chunk.  */
  unsigned riscv_bytes_per_vector_chunk;
  
+ /* Whether we are currently registering builtins.  */
+ bool riscv_registering_builtins;
+ 
  /* Index R is the smallest register class that contains register R.  */
  const enum reg_class riscv_regno_to_class[FIRST_PSEUDO_REGISTER] = {
    GR_REGS,	GR_REGS,	GR_REGS,	GR_REGS,
*************** static bool
*** 11728,11734 ****
  riscv_vector_mode_supported_p (machine_mode mode)
  {
    if (TARGET_VECTOR)
!     return riscv_v_ext_mode_p (mode);
  
    return false;
  }
--- 11731,11747 ----
  riscv_vector_mode_supported_p (machine_mode mode)
  {
    if (TARGET_VECTOR)
!     {
!       /* Avoid fractional LMUL modes for xtheadvector with the exception
! 	 of builtin registration time.  During registration, all modes
! 	 must be available so the order and numbering is consistent,
! 	 see PR123279.  */
!       if (TARGET_XTHEADVECTOR && !riscv_registering_builtins
! 	  && maybe_lt (GET_MODE_SIZE (mode), BYTES_PER_RISCV_VECTOR))
! 	return false;
! 
!       return riscv_v_ext_mode_p (mode);
!     }
  
    return false;
  }
diff -Nrcpad gcc-15-20260404/gcc/config/riscv/riscv.h gcc-15-20260411/gcc/config/riscv/riscv.h
*** gcc-15-20260404/gcc/config/riscv/riscv.h	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/config/riscv/riscv.h	Sat Apr 11 22:32:08 2026
*************** extern bool riscv_user_wants_strict_alig
*** 1192,1197 ****
--- 1192,1198 ----
  extern unsigned riscv_stack_boundary;
  extern unsigned riscv_bytes_per_vector_chunk;
  extern poly_uint16 riscv_vector_chunks;
+ extern bool riscv_registering_builtins;
  extern poly_int64 riscv_v_adjust_nunits (enum machine_mode, int);
  extern poly_int64 riscv_v_adjust_nunits (machine_mode, bool, int, int);
  extern poly_int64 riscv_v_adjust_precision (enum machine_mode, int);
diff -Nrcpad gcc-15-20260404/gcc/cp/ChangeLog gcc-15-20260411/gcc/cp/ChangeLog
*** gcc-15-20260404/gcc/cp/ChangeLog	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/cp/ChangeLog	Sat Apr 11 22:32:08 2026
***************
*** 1,3 ****
--- 1,62 ----
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123700
+ 	* pt.cc (dependent_opaque_alias_p): Return true for a
+ 	template-id typedef with a lambda targ.
+ 
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123529
+ 	PR c++/98930
+ 	* pt.cc (has_value_dependent_address): Correct context
+ 	dependence check for a static local variable.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/118630
+ 	* module.cc (depset::hash::add_dependency): Correct entry point
+ 	corection for recursive clusters.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124735
+ 	* module.cc (trees_in::is_matching_decl): Handle importing
+ 	undeduced auto when existing is already deduced.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124781
+ 	* module.cc (set_originating_module): Add a function comment,
+ 	only set attachment/exporting for entities with non-NULL
+ 	DECL_CONTEXT.
+ 	(check_module_decl_linkage): Use decl_anon_ns_mem_p instead of
+ 	decl_internal_context_p.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124785
+ 	* module.cc (trees_in::is_matching_decl): Narrow condition for
+ 	when noexcept propagation occurs; assert that we don't propagate
+ 	noexcept-specs for TEMPLATE_DECLs.
+ 
  2026-04-02  Nathaniel Shead  <nathanieloshead@gmail.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260404/gcc/cp/module.cc gcc-15-20260411/gcc/cp/module.cc
*** gcc-15-20260404/gcc/cp/module.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/cp/module.cc	Sat Apr 11 22:32:08 2026
*************** trees_in::is_matching_decl (tree existin
*** 12246,12257 ****
        tree d_spec = TYPE_RAISES_EXCEPTIONS (d_type);
        if (DECL_MAYBE_DELETED (e_inner) || DEFERRED_NOEXCEPT_SPEC_P (e_spec))
  	{
! 	  if (!DEFERRED_NOEXCEPT_SPEC_P (d_spec)
  	      || (UNEVALUATED_NOEXCEPT_SPEC_P (e_spec)
  		  && !UNEVALUATED_NOEXCEPT_SPEC_P (d_spec)))
  	    {
  	      dump (dumper::MERGE)
  		&& dump ("Propagating instantiated noexcept to %N", existing);
  	      TREE_TYPE (existing) = d_type;
  
  	      /* Propagate to existing clones.  */
--- 12246,12259 ----
        tree d_spec = TYPE_RAISES_EXCEPTIONS (d_type);
        if (DECL_MAYBE_DELETED (e_inner) || DEFERRED_NOEXCEPT_SPEC_P (e_spec))
  	{
! 	  if (!(DECL_MAYBE_DELETED (d_inner)
! 		|| DEFERRED_NOEXCEPT_SPEC_P (d_spec))
  	      || (UNEVALUATED_NOEXCEPT_SPEC_P (e_spec)
  		  && !UNEVALUATED_NOEXCEPT_SPEC_P (d_spec)))
  	    {
  	      dump (dumper::MERGE)
  		&& dump ("Propagating instantiated noexcept to %N", existing);
+ 	      gcc_checking_assert (existing == e_inner);
  	      TREE_TYPE (existing) = d_type;
  
  	      /* Propagate to existing clones.  */
*************** trees_in::is_matching_decl (tree existin
*** 12277,12283 ****
  
        /* Similarly if EXISTING has an undeduced return type, but DECL's
  	 is already deduced.  */
!       if (undeduced_auto_decl (existing) && !undeduced_auto_decl (decl))
  	{
  	  dump (dumper::MERGE)
  	    && dump ("Propagating deduced return type to %N", existing);
--- 12279,12287 ----
  
        /* Similarly if EXISTING has an undeduced return type, but DECL's
  	 is already deduced.  */
!       bool e_undeduced = undeduced_auto_decl (existing);
!       bool d_undeduced = undeduced_auto_decl (decl);
!       if (e_undeduced && !d_undeduced)
  	{
  	  dump (dumper::MERGE)
  	    && dump ("Propagating deduced return type to %N", existing);
*************** trees_in::is_matching_decl (tree existin
*** 12285,12290 ****
--- 12289,12296 ----
  	  DECL_SAVED_AUTO_RETURN_TYPE (existing) = TREE_TYPE (e_type);
  	  TREE_TYPE (existing) = change_return_type (TREE_TYPE (d_type), e_type);
  	}
+       else if (d_undeduced && !e_undeduced)
+ 	/* EXISTING was deduced, leave it alone.  */;
        else if (type_uses_auto (d_ret)
  	       && !same_type_p (TREE_TYPE (d_type), TREE_TYPE (e_type)))
  	{
*************** depset::hash::add_dependency (depset *de
*** 14280,14288 ****
       details.  */
    if (writing_merge_key)
      {
!       dep->set_flag_bit<DB_MAYBE_RECURSIVE_BIT> ();
!       if (!current->is_maybe_recursive ())
  	current->set_flag_bit<DB_ENTRY_BIT> ();
      }
  
    if (dep->is_unreached ())
--- 14286,14295 ----
       details.  */
    if (writing_merge_key)
      {
!       if (!dep->is_maybe_recursive () && !current->is_maybe_recursive ())
  	current->set_flag_bit<DB_ENTRY_BIT> ();
+       dep->set_flag_bit<DB_MAYBE_RECURSIVE_BIT> ();
+       current->set_flag_bit<DB_MAYBE_RECURSIVE_BIT> ();
      }
  
    if (dep->is_unreached ())
*************** set_defining_module_for_partial_spec (tr
*** 20885,20896 ****
      vec_safe_push (partial_specializations, decl);
  }
  
  void
  set_originating_module (tree decl, bool friend_p ATTRIBUTE_UNUSED)
  {
    set_instantiating_module (decl);
  
!   if (!DECL_NAMESPACE_SCOPE_P (decl))
      return;
  
    gcc_checking_assert (friend_p || decl == get_originating_module_decl (decl));
--- 20892,20909 ----
      vec_safe_push (partial_specializations, decl);
  }
  
+ /* Record that DECL is declared in this TU, and note attachment and
+    exporting for namespace-scope entities.  FRIEND_P is true if
+    this is a friend declaration.  */
+ 
  void
  set_originating_module (tree decl, bool friend_p ATTRIBUTE_UNUSED)
  {
    set_instantiating_module (decl);
  
!   /* DECL_CONTEXT may not be set yet when we're called for
!      non-namespace-scope entities.  */
!   if (!DECL_CONTEXT (decl) || !DECL_NAMESPACE_SCOPE_P (decl))
      return;
  
    gcc_checking_assert (friend_p || decl == get_originating_module_decl (decl));
*************** check_module_decl_linkage (tree decl)
*** 20943,20949 ****
  	 internal namespace as exporting a declaration with internal
  	 linkage, as this would also implicitly export the internal
  	 linkage namespace.  */
!       if (decl_internal_context_p (decl))
  	{
  	  error_at (DECL_SOURCE_LOCATION (decl),
  		    "exporting declaration %qD declared in unnamed namespace",
--- 20956,20962 ----
  	 internal namespace as exporting a declaration with internal
  	 linkage, as this would also implicitly export the internal
  	 linkage namespace.  */
!       if (decl_anon_ns_mem_p (decl))
  	{
  	  error_at (DECL_SOURCE_LOCATION (decl),
  		    "exporting declaration %qD declared in unnamed namespace",
diff -Nrcpad gcc-15-20260404/gcc/cp/pt.cc gcc-15-20260411/gcc/cp/pt.cc
*** gcc-15-20260404/gcc/cp/pt.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/cp/pt.cc	Sat Apr 11 22:32:08 2026
*************** dependent_alias_template_spec_p (const_t
*** 6825,6830 ****
--- 6825,6838 ----
  bool
  dependent_opaque_alias_p (const_tree t)
  {
+   auto any_lambda_targ_p = [] (tree args)
+     {
+       for (tree arg : tree_vec_range (args))
+ 	if (TREE_CODE (arg) == LAMBDA_EXPR)
+ 	  return true;
+       return false;
+     };
+ 
    return (TYPE_P (t)
  	  && typedef_variant_p (t)
  	  && (any_dependent_type_attributes_p (DECL_ATTRIBUTES
*************** dependent_opaque_alias_p (const_tree t)
*** 6835,6841 ****
  		 alias would incorrectly yield a distinct lambda type.  */
  	      || (TREE_CODE (t) == DECLTYPE_TYPE
  		  && TREE_CODE (DECLTYPE_TYPE_EXPR (t)) == LAMBDA_EXPR
! 		  && !typedef_variant_p (DECL_ORIGINAL_TYPE (TYPE_NAME (t))))));
  }
  
  /* Return the number of innermost template parameters in TMPL.  */
--- 6843,6859 ----
  		 alias would incorrectly yield a distinct lambda type.  */
  	      || (TREE_CODE (t) == DECLTYPE_TYPE
  		  && TREE_CODE (DECLTYPE_TYPE_EXPR (t)) == LAMBDA_EXPR
! 		  && !typedef_variant_p (DECL_ORIGINAL_TYPE (TYPE_NAME (t))))
! 	      /* Also treat an alias to A<lambda> as opaque so that it doesn't
! 		 "leak" into a deeper template context which would cause us to
! 		 over substitute into the lambda.  */
! 	      /* FIXME These lambda checks don't recognize deeply nested lambda
! 		 subexpressions, and we can't use walk_tree here because it's
! 		 slow.  Maybe a tree flag indicating typedef opaqueness?  */
! 	      || (TYPE_TEMPLATE_INFO (t)
! 		  && PRIMARY_TEMPLATE_P (TYPE_TI_TEMPLATE (t))
! 		  && any_lambda_targ_p (INNERMOST_TEMPLATE_ARGS
! 					(TYPE_TI_ARGS (t))))));
  }
  
  /* Return the number of innermost template parameters in TMPL.  */
*************** has_value_dependent_address (tree op)
*** 7066,7072 ****
        if (VAR_P (op)
  	  && TREE_STATIC (op)
  	  && TREE_CODE (ctx) == FUNCTION_DECL
! 	  && type_dependent_expression_p (ctx))
  	return true;
      }
  
--- 7084,7091 ----
        if (VAR_P (op)
  	  && TREE_STATIC (op)
  	  && TREE_CODE (ctx) == FUNCTION_DECL
! 	  && DECL_TEMPLATE_INFO (ctx)
! 	  && any_dependent_template_arguments_p (DECL_TI_ARGS (ctx)))
  	return true;
      }
  
diff -Nrcpad gcc-15-20260404/gcc/fortran/ChangeLog gcc-15-20260411/gcc/fortran/ChangeLog
*** gcc-15-20260404/gcc/fortran/ChangeLog	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/fortran/ChangeLog	Sat Apr 11 22:32:08 2026
***************
*** 1,3 ****
--- 1,42 ----
+ 2026-04-06  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-04-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/66973
+ 	* interface.cc (gfc_compare_actual_formal): Check that C_LOC and
+ 	C_FUNLOC from ISO_C_BINDING as actual argument are passed to a
+ 	dummy argument of matching type C_PTR/C_FUNPTR.
+ 
+ 2026-04-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-04-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/124652
+ 	* trans-expr.cc (gfc_conv_procedure_call): Do not clobber a
+ 	procedure pointer intent(out) argument.
+ 	* trans-intrinsic.cc (conv_isocbinding_function): When passing to
+ 	C_FUNLOC a procedure pointer that is a dummy, dereference it.
+ 
+ 2026-04-05  Kirill Chilikin  <chilikin.k@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-03  Kirill Chilikin  <chilikin.k@gmail.com>
+ 
+ 	PR fortran/117303
+ 	* trans-intrinsic.cc (conv_isocbinding_function):
+ 	Assign the reference returned by C_FUNLOC to a variable.
+ 
+ 2026-04-05  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-20  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/120723
+ 	* trans-openmp.cc (gfc_trans_omp_clauses): Handle bare scalar
+ 	OpenACC attach/detach clauses without pointer-mapping nodes.
+ 
  2026-04-02  Christopher Albert  <albert@tugraz.at>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260404/gcc/fortran/interface.cc gcc-15-20260411/gcc/fortran/interface.cc
*** gcc-15-20260404/gcc/fortran/interface.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/fortran/interface.cc	Sat Apr 11 22:32:08 2026
*************** gfc_compare_actual_formal (gfc_actual_ar
*** 4024,4029 ****
--- 4024,4051 ----
  	  goto match;
  	}
  
+       /* C_LOC/C_FUNLOC from ISO_C_BINDING as actual argument can only be
+ 	 passed to a dummy argument of matching type C_PTR/C_FUNPTR.  */
+       if (a->expr->expr_type == EXPR_FUNCTION
+ 	  && a->expr->ts.type == BT_VOID
+ 	  && a->expr->symtree->n.sym
+ 	  && a->expr->symtree->n.sym->from_intmod == INTMOD_ISO_C_BINDING
+ 	  && (f->sym->ts.type != BT_DERIVED
+ 	      || f->sym->ts.u.derived->from_intmod != INTMOD_ISO_C_BINDING
+ 	      || !((a->expr->symtree->n.sym->intmod_sym_id == ISOCBINDING_FUNLOC
+ 		    && f->sym->ts.u.derived->intmod_sym_id == ISOCBINDING_FUNPTR)
+ 		   || (a->expr->symtree->n.sym->intmod_sym_id == ISOCBINDING_LOC
+ 		       && f->sym->ts.u.derived->intmod_sym_id == ISOCBINDING_PTR))))
+ 	{
+ 	  if (where)
+ 	    gfc_error ("ISO_C_BINDING function actual argument at %L "
+ 		       "requires dummy argument %qs to have a matching "
+ 		       "type from ISO_C_BINDING",
+ 		       &a->expr->where,f->sym->name);
+ 	  ok = false;
+ 	  goto match;
+ 	}
+ 
      match:
        if (a == actual)
  	na = i;
diff -Nrcpad gcc-15-20260404/gcc/fortran/trans-expr.cc gcc-15-20260411/gcc/fortran/trans-expr.cc
*** gcc-15-20260404/gcc/fortran/trans-expr.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/fortran/trans-expr.cc	Sat Apr 11 22:32:08 2026
*************** gfc_conv_procedure_call (gfc_se * se, gf
*** 7335,7340 ****
--- 7335,7341 ----
  				  && !e->ts.u.derived->attr.alloc_comp
  				  && !e->ts.u.derived->attr.pdt_type
  				  && !gfc_is_finalizable (e->ts.u.derived, NULL)))
+ 			  && e->ts.type != BT_PROCEDURE
  			  && !sym->attr.elemental)
  			{
  			  tree var;
diff -Nrcpad gcc-15-20260404/gcc/fortran/trans-intrinsic.cc gcc-15-20260411/gcc/fortran/trans-intrinsic.cc
*** gcc-15-20260404/gcc/fortran/trans-intrinsic.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/fortran/trans-intrinsic.cc	Sat Apr 11 22:32:08 2026
*************** conv_isocbinding_function (gfc_se *se, g
*** 9677,9683 ****
        se->expr = gfc_evaluate_now (se->expr, &se->pre);
      }
    else if (expr->value.function.isym->id == GFC_ISYM_C_FUNLOC)
!     gfc_conv_expr_reference (se, arg->expr);
    else if (expr->value.function.isym->id == GFC_ISYM_C_ASSOCIATED)
      {
        gfc_se arg1se;
--- 9677,9693 ----
        se->expr = gfc_evaluate_now (se->expr, &se->pre);
      }
    else if (expr->value.function.isym->id == GFC_ISYM_C_FUNLOC)
!     {
!       gfc_conv_expr_reference (se, arg->expr);
!       if (arg->expr->symtree->n.sym->attr.proc_pointer
! 	  && arg->expr->symtree->n.sym->attr.dummy)
! 	se->expr = build_fold_indirect_ref_loc (input_location, se->expr);
!       /* The code below is necessary to create a reference from the calling
! 	 subprogram to the argument of C_FUNLOC() in the call graph.
! 	 Please see PR 117303 for more details. */
!       se->expr = convert (pvoid_type_node, se->expr);
!       se->expr = gfc_evaluate_now (se->expr, &se->pre);
!     }
    else if (expr->value.function.isym->id == GFC_ISYM_C_ASSOCIATED)
      {
        gfc_se arg1se;
diff -Nrcpad gcc-15-20260404/gcc/fortran/trans-openmp.cc gcc-15-20260411/gcc/fortran/trans-openmp.cc
*** gcc-15-20260404/gcc/fortran/trans-openmp.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/fortran/trans-openmp.cc	Sat Apr 11 22:32:08 2026
*************** gfc_trans_omp_clauses (stmtblock_t *bloc
*** 4257,4262 ****
--- 4257,4270 ----
  				       != BT_VOID))))
  		    {
  		      tree orig_decl = decl;
+ 		      bool bare_attach_detach
+ 			= (openacc
+ 			   && (n->u.map.op == OMP_MAP_ATTACH
+ 			       || n->u.map.op == OMP_MAP_DETACH)
+ 			   && !GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl))
+ 			   && !(POINTER_TYPE_P (TREE_TYPE (decl))
+ 				&& GFC_DESCRIPTOR_TYPE_P (TREE_TYPE
+ 							  (TREE_TYPE (decl)))));
  
  		      /* For nonallocatable, nonpointer arrays, a temporary
  			 variable is generated, but this one is only defined if
*************** gfc_trans_omp_clauses (stmtblock_t *bloc
*** 4281,4286 ****
--- 4289,4306 ----
  							     cond, tmp,
  							     NULL_TREE));
  			}
+ 		      /* Bare OpenACC attach/detach on scalar pointer-like
+ 			 variables wants a single attach operation on the
+ 			 pointer itself, not a standalone pointer-mapping
+ 			 node.  Component and descriptor cases have dedicated
+ 			 handling below; this covers the plain scalar path.  */
+ 		      if (bare_attach_detach)
+ 			{
+ 			  decl = build_fold_indirect_ref (decl);
+ 			  OMP_CLAUSE_DECL (node) = build_fold_addr_expr (decl);
+ 			  OMP_CLAUSE_SIZE (node) = size_zero_node;
+ 			  goto finalize_map_clause;
+ 			}
  		      /* For descriptor types, the unmapping happens below.  */
  		      if (op != EXEC_OMP_TARGET_EXIT_DATA
  			  || !GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (decl)))
diff -Nrcpad gcc-15-20260404/gcc/ifcvt.cc gcc-15-20260411/gcc/ifcvt.cc
*** gcc-15-20260404/gcc/ifcvt.cc	Sat Apr  4 22:32:07 2026
--- gcc-15-20260411/gcc/ifcvt.cc	Sat Apr 11 22:32:08 2026
*************** find_if_header (basic_block test_bb, int
*** 4952,4958 ****
        && cond_exec_find_if_block (&ce_info))
      goto success;
  
!   if (targetm.have_trap ()
        && optab_handler (ctrap_optab, word_mode) != CODE_FOR_nothing
        && find_cond_trap (test_bb, then_edge, else_edge))
      goto success;
--- 4952,4958 ----
        && cond_exec_find_if_block (&ce_info))
      goto success;
  
!   if (!reload_completed && targetm.have_trap ()
        && optab_handler (ctrap_optab, word_mode) != CODE_FOR_nothing
        && find_cond_trap (test_bb, then_edge, else_edge))
      goto success;
diff -Nrcpad gcc-15-20260404/gcc/testsuite/ChangeLog gcc-15-20260411/gcc/testsuite/ChangeLog
*** gcc-15-20260404/gcc/testsuite/ChangeLog	Sat Apr  4 22:32:08 2026
--- gcc-15-20260411/gcc/testsuite/ChangeLog	Sat Apr 11 22:32:09 2026
***************
*** 1,3 ****
--- 1,216 ----
+ 2026-04-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-04-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/105192
+ 	* gcc.c-torture/compile/pr105192.c: New test.
+ 
+ 2026-04-08  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	Backported from master:
+ 	2026-04-02  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	PR target/124705
+ 	* gcc.dg/tree-ssa/gen-vect-26.c: Disable loop peeling check for
+ 	arm*-*-.
+ 	* gcc.dg/tree-ssa/gen-vect-28.c: Likewise.
+ 
+ 2026-04-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-04-01  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR target/124705
+ 	* gcc.dg/tree-ssa/gen-vect-26.c: Disable loop peeling check for
+ 	arm-none-eabi.
+ 	* gcc.dg/tree-ssa/gen-vect-28.c: Likewise.
+ 
+ 2026-04-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-04-01  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR testsuite/93080
+ 	* gcc.dg/tree-ssa/forwprop-40.c: Xfail for arm_mve.
+ 	* gcc.dg/tree-ssa/forwprop-41.c: Likewise.
+ 
+ 2026-04-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-03-02  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* gcc.target/arm/addr-modes-int.c: Drop additional option
+ 	-march=armv7-a.
+ 
+ 2026-04-08  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	Backported from master:
+ 	2026-01-31  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* gcc.dg/vect/complex/fast-math-complex-mls-half-float.c:
+ 	Don't expect COMPLEX_ADD_ROT270.
+ 
+ 2026-04-08  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	Backported from master:
+ 	2025-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* lib/target-supports.exp
+ 	(check_effective_target_arm_v8_vfp_ok_nocache): New.
+ 	(check_effective_target_arm_v8_vfp_ok): Call the above helper, and
+ 	use global flags.
+ 	(add_options_for_arm_v8_vfp): Use et_arm_v8_vfp_flags.
+ 	* gcc.target/arm/lceil-vcvt_1.c: Remove -march=armv8-a.
+ 	* gcc.target/arm/lfloor-vcvt_1.c: Likewise.
+ 	* gcc.target/arm/lround-vcvt_1.c: Likewise.
+ 	* gcc.target/arm/vrinta-ce.c: Likewise.
+ 
+ 2026-04-08  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	Backported from master:
+ 	2026-02-03  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	* lib/target-supports.exp
+ 	(check_effective_target_arm_neon_ok_nocache): Add "-mcpu=unset
+ 	-march=armv7-a+simd -mfpu=auto" to the list.
+ 
+ 2026-04-08  Richard Earnshaw  <rearnsha@arm.com>
+ 
+ 	Backported from master:
+ 	2026-01-29  Richard Earnshaw  <rearnsha@arm.com>
+ 		    Artemiy Volkov  <artemiy.volkov@arm.com>
+ 
+ 	* lib/target-supports.exp:
+ 	(check_effective_target_arm_v8_3a_complex_neon_ok_nocache):
+ 	Split and fill in arm and aarch64 compile options.  Remove the
+ 	cpu_unset variable.
+ 	(check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): Likewise.
+ 	(check_effective_target_arm_v8_3a_fp16_complex_neon_ok_nocache):
+ 	Likewise.
+ 	(check_effective_target_arm_neon_ok_nocache): Rework to use
+ 	-mfpu=auto.
+ 	(check_effective_target_arm_neon_fp16_ok_nocache): Likewise.
+ 
+ 2026-04-08  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	Backported from master:
+ 	2025-09-01  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* lib/target-supports.exp
+ 	(check_effective_target_arm_neon_ok_nocache): Remove arm32 check.
+ 	Add istarget arm*-*-* check.
+ 	(check_effective_target_arm_neon_fp16_ok_nocache): Likewise.
+ 	(check_effective_target_arm_neon_softfp_fp16_ok_nocache): Likewise.
+ 	(check_effective_target_arm_v8_neon_ok_nocache): Likewise.
+ 	(check_effective_target_arm_neonv2_ok_nocache): Likewise.
+ 	(check_effective_target_vect_pack_trunc): Remove istarget arm*-*-*
+ 	check.
+ 	(check_effective_target_vect_unpack): Likewise.
+ 	(check_effective_target_vect_condition): Likewise.
+ 	(check_effective_target_vect_cond_mixed): Likewise.
+ 	(available_vector_sizes): Likewise.
+ 
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123700
+ 	* g++.dg/cpp2a/lambda-targ24.C: New test.
+ 	* g++.dg/cpp2a/lambda-targ24a.C: New test.
+ 
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123529
+ 	PR c++/98930
+ 	* g++.dg/cpp1z/nontype9.C: New test.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/118630
+ 	* g++.dg/modules/late-ret-5.h: New test.
+ 	* g++.dg/modules/late-ret-5_a.H: New test.
+ 	* g++.dg/modules/late-ret-5_b.C: New test.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124735
+ 	* g++.dg/modules/auto-8_a.H: New test.
+ 	* g++.dg/modules/auto-8_b.C: New test.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124781
+ 	* g++.dg/modules/export-7.C: New test.
+ 
+ 2026-04-07  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124785
+ 	* g++.dg/modules/noexcept-5.h: New test.
+ 	* g++.dg/modules/noexcept-5_a.C: New test.
+ 	* g++.dg/modules/noexcept-5_b.C: New test.
+ 	* g++.dg/modules/noexcept-5_c.C: New test.
+ 
+ 2026-04-06  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-04-04  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/66973
+ 	* gfortran.dg/generic_36-1.f90: New test.
+ 	* gfortran.dg/generic_36-2.f90: New test.
+ 
+ 2026-04-05  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	Backported from master:
+ 	2026-04-03  Harald Anlauf  <anlauf@gmx.de>
+ 
+ 	PR fortran/124652
+ 	* gfortran.dg/c_funloc_tests_10.f90: New test.
+ 
+ 2026-04-05  Kirill Chilikin  <chilikin.k@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-03  Kirill Chilikin  <chilikin.k@gmail.com>
+ 
+ 	PR fortran/117303
+ 	* gfortran.dg/c_funloc_tests_7.f90:
+ 	Updated test due to changed code generation.
+ 	* gfortran.dg/c_funloc_tests_9.f90: New test.
+ 
+ 2026-04-05  Christopher Albert  <albert@tugraz.at>
+ 
+ 	Backported from master:
+ 	2026-03-20  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/120723
+ 	* gfortran.dg/goacc/pr120723.f90: New test.
+ 
+ 2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/aggr35_pkg.adb: Pass -gnatws.
+ 
+ 2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/aggr35.adb: New test.
+ 	* gnat.dg/aggr35_pkg.ads, gnat.dg/aggr35_pkg.adb: New helper.
+ 
  2026-04-03  Christopher Albert  <albert@tugraz.at>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/cpp1z/nontype9.C gcc-15-20260411/gcc/testsuite/g++.dg/cpp1z/nontype9.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/cpp1z/nontype9.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/cpp1z/nontype9.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/123529
+ // { dg-do compile { target c++17 } }
+ 
+ template<int* P>
+ void f();
+ 
+ template<class T>
+ struct A {
+   static void g() {
+     static int i;
+     f<&i>();
+   }
+ };
+ 
+ template struct A<char>;
+ template struct A<int>;
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C gcc-15-20260411/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/123700
+ // { dg-do compile { target c++20 } }
+ 
+ template<class> constexpr int zero = 0;
+ template<auto> struct Type;
+ 
+ int outer(auto) {
+   using inner = Type<[](auto) {}>;
+   return [](auto) { return zero<inner>; }(0);
+ }
+ 
+ int main() { outer(0.0); }
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C gcc-15-20260411/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/123700
+ // { dg-do compile { target c++20 } }
+ // A version of lambda-targ24.C where zero is a class instead of variable
+ // template.
+ 
+ template<class> struct zero { };
+ template<auto> struct Type;
+ 
+ auto outer(auto) {
+   using inner = Type<[](auto) {}>;
+   return [](auto) { return zero<inner>{}; }(0);
+ }
+ 
+ int main() { outer(0.0); }
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/auto-8_a.H gcc-15-20260411/gcc/testsuite/g++.dg/modules/auto-8_a.H
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/auto-8_a.H	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/auto-8_a.H	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124735
+ // { dg-additional-options "-fmodule-header" }
+ // { dg-module-cmi {} }
+ 
+ struct S {
+   auto foo();
+ };
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/auto-8_b.C gcc-15-20260411/gcc/testsuite/g++.dg/modules/auto-8_b.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/auto-8_b.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/auto-8_b.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/124735
+ // { dg-additional-options "-fmodules" }
+ 
+ struct S {
+   auto foo();
+ };
+ 
+ auto S::foo() { return 123; }
+ auto pfn = &S::foo;
+ 
+ import "auto-8_a.H";
+ 
+ int main() {
+   return S{}.foo() != 123;
+ }
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/export-7.C gcc-15-20260411/gcc/testsuite/g++.dg/modules/export-7.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/export-7.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/export-7.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/124781
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi foo }
+ 
+ export module foo;
+ export using xx = decltype([] {
+   using yy = int;
+   int abc = 123;
+ }());
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/late-ret-5.h gcc-15-20260411/gcc/testsuite/g++.dg/modules/late-ret-5.h
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/late-ret-5.h	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/late-ret-5.h	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/118630
+ 
+ namespace test1 {
+   template <typename> decltype([]{}) a();
+ }
+ 
+ namespace test2 {
+   template <typename T> struct invoke_result {};
+   template <typename T> struct foo {};
+ 
+   template <typename T>
+   auto b(T&& arg) -> foo<invoke_result<decltype(arg)>> {
+     invoke_result<decltype(arg)> a;
+     return {};
+   }
+ }
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/late-ret-5_a.H gcc-15-20260411/gcc/testsuite/g++.dg/modules/late-ret-5_a.H
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/late-ret-5_a.H	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/late-ret-5_a.H	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/118630
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodule-header" }
+ // { dg-module-cmi {} }
+ 
+ #include "late-ret-5.h"
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/late-ret-5_b.C gcc-15-20260411/gcc/testsuite/g++.dg/modules/late-ret-5_b.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/late-ret-5_b.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/late-ret-5_b.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/118630
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules -fno-module-lazy" }
+ 
+ #include "late-ret-5.h"
+ import "late-ret-5_a.H";
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5.h gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5.h
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5.h	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5.h	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,4 ----
+ // PR c++/124785
+ template <typename T> struct Iterator {
+   constexpr friend auto operator<=>(const Iterator&, const Iterator&) = default;
+ };
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5_a.C gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5_a.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5_a.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5_a.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124785
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi M:A }
+ 
+ export module M:A;
+ #include "noexcept-5.h"
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5_b.C gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5_b.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5_b.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5_b.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124785
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi M:B }
+ 
+ export module M:B;
+ #include "noexcept-5.h"
diff -Nrcpad gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5_c.C gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5_c.C
*** gcc-15-20260404/gcc/testsuite/g++.dg/modules/noexcept-5_c.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/g++.dg/modules/noexcept-5_c.C	Sat Apr 11 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/124785
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules -fdump-lang-module-alias" }
+ // { dg-module-cmi M }
+ 
+ export module M;
+ export import :A;
+ export import :B;
+ 
+ // The noexcept-specifiers are equivalent, no need to merge.
+ // { dg-final { scan-lang-dump-not {Propagating instantiated noexcept} module } }
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.c-torture/compile/pr105192.c gcc-15-20260411/gcc/testsuite/gcc.c-torture/compile/pr105192.c
*** gcc-15-20260404/gcc/testsuite/gcc.c-torture/compile/pr105192.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gcc.c-torture/compile/pr105192.c	Sat Apr 11 22:32:11 2026
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-additional-options "-fno-if-conversion -fharden-compares" } */
+ 
+ int a, b;
+ 
+ void
+ foo (void)
+ {
+   b = a % 0 > 0;
+ }
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
*** gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c	Sat Apr  4 22:32:11 2026
--- gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c	Sat Apr 11 22:32:11 2026
*************** vector int g(vector int a)
*** 10,14 ****
    return a;
  }
  
! /* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 0 "optimized" { xfail s390_mvx } } } Xfail: PR114802 */
! /* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" { xfail s390_mvx } } } Xfail: PR114802 */
--- 10,14 ----
    return a;
  }
  
! /* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 0 "optimized" { xfail { arm_mve || s390_mvx } } } } Xfail: PR114802 */
! /* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" { xfail { arm_mve || s390_mvx } } } } Xfail: PR114802 */
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
*** gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c	Sat Apr  4 22:32:11 2026
--- gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c	Sat Apr 11 22:32:11 2026
*************** vector int g(vector int a, int c)
*** 11,16 ****
    return a;
  }
  
! /* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 1 "optimized" { xfail s390_mvx } } } Xfail PR114802 */
! /* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" { xfail s390_mvx } } } Xfail PR114802 */
  /* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 0 "optimized" } } */
--- 11,16 ----
    return a;
  }
  
! /* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 1 "optimized" { xfail { arm_mve || s390_mvx } } } } Xfail PR114802 */
! /* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" { xfail { arm_mve || s390_mvx } } } } Xfail PR114802 */
  /* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 0 "optimized" } } */
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
*** gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c	Sat Apr  4 22:32:11 2026
--- gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c	Sat Apr 11 22:32:11 2026
*************** int main ()
*** 32,36 ****
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { avr-*-* pru-*-* } } } } } */
  /* IBM Z does not require special alignment for vectorization.  */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target { ! { avr-*-* pru-*-* s390*-*-* } } } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! { avr-*-* pru-*-* s390*-*-* } } } } } */
--- 32,36 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { avr-*-* pru-*-* } } } } } */
  /* IBM Z does not require special alignment for vectorization.  */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target { ! { arm*-*-* avr-*-* pru-*-* s390*-*-* } } } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! { arm*-*-* avr-*-* pru-*-* s390*-*-* } } } } } */
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
*** gcc-15-20260404/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c	Sat Apr  4 22:32:11 2026
--- gcc-15-20260411/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c	Sat Apr 11 22:32:11 2026
*************** int main (void)
*** 40,44 ****
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { avr-*-* pru-*-* } } } } } */
  /* IBM Z does not require special alignment for vectorization.  */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target { ! { avr-*-* pru-*-* s390*-*-* } } } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! { avr-*-* pru-*-* s390*-*-* } } } } } */
--- 40,44 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { avr-*-* pru-*-* } } } } } */
  /* IBM Z does not require special alignment for vectorization.  */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target { ! { arm*-*-* avr-*-* pru-*-* s390*-*-* } } } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! { arm*-*-* avr-*-* pru-*-* s390*-*-* } } } } } */
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c gcc-15-20260411/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c
*** gcc-15-20260404/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c	Sat Apr  4 22:32:11 2026
--- gcc-15-20260411/gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c	Sat Apr 11 22:32:12 2026
***************
*** 7,12 ****
  #define TYPE _Float16
  #define N 200
  #include "complex-mls-template.c"
! /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
--- 7,16 ----
  #define TYPE _Float16
  #define N 200
  #include "complex-mls-template.c"
! /* COMPLEX_ADD_ROT270 is no longer recognized in fms_elemconjsnd.
!    The COMPLEX_EXPR that prevented reassoc from changing X - (Y + Z)
!    into (X + (-Y)) + (-Z) has been removed since the introduction of
!    DCE at the end of cplxlower1.  */
! /* { dg-final { scan-tree-dump "Found COMPLEX_ADD_ROT270" "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS_CONJ" "vect" } } */
  /* { dg-final { scan-tree-dump "Found COMPLEX_FMS" "vect" } } */
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.target/arm/addr-modes-int.c gcc-15-20260411/gcc/testsuite/gcc.target/arm/addr-modes-int.c
*** gcc-15-20260404/gcc/testsuite/gcc.target/arm/addr-modes-int.c	Sat Apr  4 22:32:12 2026
--- gcc-15-20260411/gcc/testsuite/gcc.target/arm/addr-modes-int.c	Sat Apr 11 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -march=armv7-a" } */
  /* { dg-require-effective-target arm_neon_ok } */
  /* { dg-add-options arm_neon } */
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2" } */
  /* { dg-require-effective-target arm_neon_ok } */
  /* { dg-add-options arm_neon } */
  
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c gcc-15-20260411/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c
*** gcc-15-20260404/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c	Sat Apr  4 22:32:12 2026
--- gcc-15-20260411/gcc/testsuite/gcc.target/arm/lceil-vcvt_1.c	Sat Apr 11 22:32:13 2026
***************
*** 1,7 ****
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2 -march=armv8-a" } */
  /* { dg-add-options arm_v8_vfp } */
  
  int
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2" } */
  /* { dg-add-options arm_v8_vfp } */
  
  int
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c gcc-15-20260411/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c
*** gcc-15-20260404/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c	Sat Apr  4 22:32:12 2026
--- gcc-15-20260411/gcc/testsuite/gcc.target/arm/lfloor-vcvt_1.c	Sat Apr 11 22:32:13 2026
***************
*** 1,7 ****
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2 -march=armv8-a" } */
  /* { dg-add-options arm_v8_vfp } */
  
  int
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2" } */
  /* { dg-add-options arm_v8_vfp } */
  
  int
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c gcc-15-20260411/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c
*** gcc-15-20260404/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c	Sat Apr  4 22:32:12 2026
--- gcc-15-20260411/gcc/testsuite/gcc.target/arm/lround-vcvt_1.c	Sat Apr 11 22:32:13 2026
***************
*** 1,7 ****
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2 -march=armv8-a -ffast-math" } */
  /* { dg-add-options arm_v8_vfp } */
  
  int
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2 -ffast-math" } */
  /* { dg-add-options arm_v8_vfp } */
  
  int
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gcc.target/arm/vrinta-ce.c gcc-15-20260411/gcc/testsuite/gcc.target/arm/vrinta-ce.c
*** gcc-15-20260404/gcc/testsuite/gcc.target/arm/vrinta-ce.c	Sat Apr  4 22:32:12 2026
--- gcc-15-20260411/gcc/testsuite/gcc.target/arm/vrinta-ce.c	Sat Apr 11 22:32:13 2026
***************
*** 1,7 ****
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2 -marm -march=armv8-a" } */
  /* { dg-add-options arm_v8_vfp } */
  
  double foo (double a)
--- 1,7 ----
  /* { dg-do compile } */
  /* { dg-skip-if "-mpure-code supports M-profile only" { *-*-* } { "-mpure-code" } } */
  /* { dg-require-effective-target arm_v8_vfp_ok } */
! /* { dg-options "-O2 -marm" } */
  /* { dg-add-options arm_v8_vfp } */
  
  double foo (double a)
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gfortran.dg/c_funloc_tests_10.f90 gcc-15-20260411/gcc/testsuite/gfortran.dg/c_funloc_tests_10.f90
*** gcc-15-20260404/gcc/testsuite/gfortran.dg/c_funloc_tests_10.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gfortran.dg/c_funloc_tests_10.f90	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,86 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/124652 - passing a procedure pointer to c_funloc
+ !
+ ! Contributed by Damian Rouson
+ 
+ program proc_ptr_demo
+   use iso_c_binding
+   implicit none
+ 
+   ! Define an interface for the type of procedure we are pointing to
+   abstract interface
+      function compute_interface(x) result(res) bind(c)
+        use iso_c_binding
+        real(c_float), intent(in), value :: x
+        real(c_float)                    :: res
+      end function compute_interface
+   end interface
+ 
+   ! Procedure pointers
+   procedure(compute_interface), pointer :: original_ptr => null()
+   procedure(compute_interface), pointer :: restored_ptr => null()
+   type(c_funptr) :: c_address
+   real(c_float)  :: expect
+ 
+   expect = square_it (5.0)
+   ! Point to our actual function
+   original_ptr => square_it
+   if (original_ptr (5.0) /= expect) stop 1
+ 
+   ! Convert pointers "inline"
+   c_address = c_funloc (square_it)
+   call c_f_procpointer(c_address, restored_ptr)
+   if (.not. associated (original_ptr, restored_ptr)) stop 2
+   if (restored_ptr (5.0) /= expect) stop 3
+ 
+   c_address = c_funloc (original_ptr)
+   call c_f_procpointer (c_address, restored_ptr)
+   if (.not. associated (original_ptr, restored_ptr)) stop 4
+   if (restored_ptr (5.0) /= expect) stop 5
+ 
+   ! Call contained subroutines to perform the C conversion logic
+   call round_trip_conversion_proc (square_it, restored_ptr)
+   if (.not. associated (original_ptr, restored_ptr)) stop 6
+   if (restored_ptr (5.0) /= expect) stop 7
+ 
+   call round_trip_conversion_proc (original_ptr, restored_ptr)
+   if (.not. associated (original_ptr, restored_ptr)) stop 8
+   if (restored_ptr (5.0) /= expect) stop 9
+ 
+   ! The following used to fail
+   call round_trip_conversion_ptr (square_it, restored_ptr)
+   if (.not. associated (original_ptr, restored_ptr)) stop 10
+   if (restored_ptr (5.0) /= expect) stop 11
+ 
+   call round_trip_conversion_ptr (original_ptr, restored_ptr)
+   if (.not. associated (original_ptr, restored_ptr)) stop 12
+   if (restored_ptr (5.0) /= expect) stop 13
+ 
+ contains
+ 
+   subroutine round_trip_conversion_proc (proc_in, fptr_out)
+     procedure(compute_interface)                       :: proc_in
+     procedure(compute_interface), pointer, intent(out) :: fptr_out
+     type(c_funptr) :: c_address
+ !   print *, proc_in(1.0)
+     c_address = c_funloc (proc_in)
+     call c_f_procpointer (c_address, fptr_out)
+   end subroutine round_trip_conversion_proc
+ 
+   subroutine round_trip_conversion_ptr (fptr_in, fptr_out)
+     procedure(compute_interface), pointer, intent(in)  :: fptr_in
+     procedure(compute_interface), pointer, intent(out) :: fptr_out
+     type(c_funptr) :: c_address_s
+ !   print *, fptr_in(2.0)
+     c_address_s = c_funloc (fptr_in)
+     call c_f_procpointer (c_address_s, fptr_out)
+   end subroutine round_trip_conversion_ptr
+ 
+   function square_it (x) result(res) bind(c)
+     real(c_float), intent(in), value :: x
+     real(c_float)                    :: res
+     res = x * x
+   end function square_it
+ 
+ end program
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90 gcc-15-20260411/gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90
*** gcc-15-20260404/gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90	Sat Apr  4 22:32:13 2026
--- gcc-15-20260411/gcc/testsuite/gfortran.dg/c_funloc_tests_7.f90	Sat Apr 11 22:32:15 2026
*************** cfp = c_funloc (noCsub)
*** 16,21 ****
  call c_f_procpointer (cfp, fint)
  end
  
! ! { dg-final { scan-tree-dump-times "cfp =\[^;\]+ nocsub;" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "fint =\[^;\]+ cfp;" 1 "original" } }
  
--- 16,21 ----
  call c_f_procpointer (cfp, fint)
  end
  
! ! { dg-final { scan-tree-dump-times "D.\[0-9\]* =\[^;\]+ nocsub;" 1 "original" } }
  ! { dg-final { scan-tree-dump-times "fint =\[^;\]+ cfp;" 1 "original" } }
  
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gfortran.dg/c_funloc_tests_9.f90 gcc-15-20260411/gcc/testsuite/gfortran.dg/c_funloc_tests_9.f90
*** gcc-15-20260404/gcc/testsuite/gfortran.dg/c_funloc_tests_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gfortran.dg/c_funloc_tests_9.f90	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,34 ----
+ ! { dg-do link }
+ ! { dg-options "-O1 -flto" }
+ ! PR 117303
+ 
+ MODULE M1
+   USE, INTRINSIC :: ISO_C_BINDING
+ 
+   TYPE T
+     TYPE(C_FUNPTR) FUNPTR
+   END TYPE
+ 
+   TYPE(T), POINTER :: T_POINTER
+ 
+ CONTAINS
+ 
+   SUBROUTINE SET_FUNPTR(F)
+     TYPE(C_FUNPTR), INTENT(IN) :: F
+     T_POINTER%FUNPTR = F
+   END SUBROUTINE
+ 
+   SUBROUTINE S1() BIND(C)
+   END SUBROUTINE
+ 
+ END MODULE
+ 
+ PROGRAM TEST
+   USE M1
+   INTEGER(C_INTPTR_T) I
+   ALLOCATE(T_POINTER)
+   ! There was no reference from TEST to S1 in the call graph,
+   ! resulting in undefined-reference error with link-time optimization.
+   CALL SET_FUNPTR(C_FUNLOC(S1))
+   PRINT *, TRANSFER(T_POINTER%FUNPTR, I)
+ END PROGRAM
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gfortran.dg/generic_36-1.f90 gcc-15-20260411/gcc/testsuite/gfortran.dg/generic_36-1.f90
*** gcc-15-20260404/gcc/testsuite/gfortran.dg/generic_36-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gfortran.dg/generic_36-1.f90	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,68 ----
+ ! { dg-do compile }
+ !
+ ! PR fortran/66973 - resolution of generic interface with TYPE(C_PTR)
+ 
+ MODULE H5T
+   USE ISO_C_BINDING, only: C_LOC,    C_PTR,    C_NULL_PTR, &
+                            C_FUNLOC, C_FUNPTR, C_NULL_FUNPTR
+   IMPLICIT NONE
+   public :: pickone, cnt, test1
+   public :: C_LOC, C_PTR, C_NULL_PTR, C_FUNLOC, C_FUNPTR, C_NULL_FUNPTR
+   private
+ 
+   INTERFACE pickone
+      MODULE PROCEDURE pick_f03    ! order matters for the test!
+      MODULE PROCEDURE pick_funptr
+      MODULE PROCEDURE pick_f90
+   END INTERFACE
+ 
+   integer :: cnt(3) = 0
+ 
+ CONTAINS
+ 
+   SUBROUTINE pick_f90(int_value)
+     IMPLICIT NONE
+     INTEGER, INTENT(IN) :: int_value
+     PRINT*,'Inside pick_f90'
+     cnt(1) = cnt(1) + 1
+   END SUBROUTINE pick_f90
+ 
+   SUBROUTINE pick_f03(value)
+     IMPLICIT NONE
+     TYPE(C_PTR), INTENT(IN) :: value
+     PRINT*,'Inside pick_f03'
+     cnt(2) = cnt(2) + 1
+   END SUBROUTINE pick_f03
+ 
+   SUBROUTINE pick_funptr(addr)
+     IMPLICIT NONE
+     TYPE(C_FUNPTR), INTENT(IN) :: addr
+     PRINT*,'Inside pick_funptr'
+     cnt(3) = cnt(3) + 1
+   END SUBROUTINE pick_funptr
+ 
+   subroutine test1 ()
+     integer      :: intval
+     REAL, TARGET :: val
+     type(c_ptr)  :: ptr
+     type(c_funptr) :: funptr
+     procedure(), pointer :: indirect => null()
+     cnt = 0
+     CALL pickone(intval)
+ !   print *, cnt
+     if (any (cnt /= [1,0,0])) stop 1
+     cnt = 0
+     CALL pickone(ptr)
+     CALL pickone(c_null_ptr)
+     CALL pickone(C_LOC(val))
+ !   print *, cnt
+     if (any (cnt /= [0,3,0])) stop 2
+     cnt = 0
+     CALL pickone(funptr)
+     CALL pickone(c_null_funptr)
+     CALL pickone(C_FUNLOC(indirect))
+ !   print *, cnt
+     if (any (cnt /= [0,0,3])) stop 3
+   end subroutine test1
+ 
+ END MODULE H5T
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gfortran.dg/generic_36-2.f90 gcc-15-20260411/gcc/testsuite/gfortran.dg/generic_36-2.f90
*** gcc-15-20260404/gcc/testsuite/gfortran.dg/generic_36-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gfortran.dg/generic_36-2.f90	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ ! { dg-compile-aux-modules "generic_36-1.f90" }
+ ! { dg-additional-sources generic_36-1.f90 }
+ ! { dg-additional-options "-O2" }
+ !
+ ! PR fortran/66973 - resolution of generic interface with TYPE(C_PTR)
+ 
+ PROGRAM main
+   USE H5T, only: pickone, cnt, test1,            &
+                  c_loc, c_ptr, c_null_ptr,       &
+                  c_funloc, c_funptr, c_null_funptr
+   IMPLICIT NONE
+   integer      :: intval
+   REAL, TARGET :: val
+   type(c_ptr)  :: ptr
+   type(c_funptr) :: funptr
+   procedure(), pointer :: indirect => null()
+   cnt = 0
+   call test1
+   cnt = 0
+   CALL pickone(intval)
+ ! print *, cnt
+   if (any (cnt /= [1,0,0])) stop 11
+   cnt = 0
+   CALL pickone(ptr)
+   CALL pickone(c_null_ptr)
+   CALL pickone(C_LOC(val))
+ ! print *, cnt
+   if (any (cnt /= [0,3,0])) stop 12
+   cnt = 0
+   CALL pickone(funptr)
+   CALL pickone(c_null_funptr)
+   CALL pickone(C_FUNLOC(indirect))
+ ! print *, cnt
+   if (any (cnt /= [0,0,3])) stop 13
+ END PROGRAM main
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gfortran.dg/goacc/pr120723.f90 gcc-15-20260411/gcc/testsuite/gfortran.dg/goacc/pr120723.f90
*** gcc-15-20260404/gcc/testsuite/gfortran.dg/goacc/pr120723.f90	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gfortran.dg/goacc/pr120723.f90	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fdump-tree-original" }
+ !
+ ! PR fortran/120723 - scalar OpenACC attach/detach must not lower through a
+ ! standalone pointer-mapping node.
+ 
+ implicit none (type, external)
+ integer, pointer :: a, b(:)
+ integer, allocatable :: c, d(:)
+ 
+ ! Scalar pointer and allocatable items used to ICE here.
+ !$acc enter data attach(a, c)
+ !$acc enter data attach(b, d)
+ !$acc exit data detach(a, c)
+ !$acc exit data detach(b, d)
+ 
+ ! { dg-final { scan-tree-dump-times "(?n)#pragma acc enter data map\\(attach:a \\\[bias: 0\\\]\\) map\\(attach:c \\\[bias: 0\\\]\\);$" 1 "original" } }
+ ! { dg-final { scan-tree-dump-times "(?n)#pragma acc exit data map\\(detach:a \\\[bias: 0\\\]\\) map\\(detach:c \\\[bias: 0\\\]\\);$" 1 "original" } }
+ 
+ end
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gnat.dg/aggr35.adb gcc-15-20260411/gcc/testsuite/gnat.dg/aggr35.adb
*** gcc-15-20260404/gcc/testsuite/gnat.dg/aggr35.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gnat.dg/aggr35.adb	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,30 ----
+ -- { dg-do run }
+ -- { dg-options "-gnatws" }
+ 
+ with Aggr35_Pkg; use Aggr35_Pkg;
+ 
+ procedure Aggr35 is
+ begin
+ 
+   declare
+   begin
+     Proc1;
+     raise Program_Error with "unreachable code";
+   exception
+     when Storage_Error =>null;
+   end;
+ 
+   Proc2;
+ 
+   declare
+   begin
+     Proc3 (Func1 (32));
+     raise Program_Error with "unreachable code";
+   exception
+     when Storage_Error =>null;
+   end;
+ 
+   Proc3 (Func2 (32));
+ 
+   Proc3 (Func3 (32));
+ end;
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gnat.dg/aggr35_pkg.adb gcc-15-20260411/gcc/testsuite/gnat.dg/aggr35_pkg.adb
*** gcc-15-20260404/gcc/testsuite/gnat.dg/aggr35_pkg.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gnat.dg/aggr35_pkg.adb	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,32 ----
+ -- { dg-options "-gnatws" }
+ 
+ package body Aggr35_Pkg is
+ 
+   procedure Proc1 is
+     R : Rec := (D => 32, Data => (others => 0)); -- mutable => too large
+   begin
+     null;
+   end;
+ 
+   procedure Proc2 is
+     R : constant Rec := (D => 32, Data => (others => 0)); -- immutable
+   begin
+     null;
+   end;
+ 
+   function Func1 (D : Storage_Offset) return Rec is
+   begin
+     return R : Rec := (D => D, Data => (others => 0)); -- mutable => too large
+   end;
+ 
+   function Func2 (D : Storage_Offset) return Rec is
+   begin
+     return R : constant Rec := (D => D, Data => (others => 0)); -- immutable
+   end;
+ 
+   function Func3 (D : Storage_Offset) return Rec is
+   begin
+     return (D => D, Data => (others => 0)); -- immutable
+   end;
+ 
+ end Aggr35_Pkg;
diff -Nrcpad gcc-15-20260404/gcc/testsuite/gnat.dg/aggr35_pkg.ads gcc-15-20260411/gcc/testsuite/gnat.dg/aggr35_pkg.ads
*** gcc-15-20260404/gcc/testsuite/gnat.dg/aggr35_pkg.ads	Thu Jan  1 00:00:00 1970
--- gcc-15-20260411/gcc/testsuite/gnat.dg/aggr35_pkg.ads	Sat Apr 11 22:32:15 2026
***************
*** 0 ****
--- 1,21 ----
+ with System.Storage_Elements; use System.Storage_Elements;
+ 
+ package Aggr35_Pkg is
+ 
+   type Rec (D : Storage_Offset := 64) is record
+     Data : Storage_Array (0 .. D);
+   end record;
+ 
+   procedure Proc1;
+ 
+   procedure Proc2;
+ 
+   procedure Proc3 (R : Rec) is null;
+ 
+   function Func1 (D : Storage_Offset) return Rec;
+ 
+   function Func2 (D : Storage_Offset) return Rec;
+ 
+   function Func3 (D : Storage_Offset) return Rec;
+ 
+ end Aggr35_Pkg;
diff -Nrcpad gcc-15-20260404/gcc/testsuite/lib/target-supports.exp gcc-15-20260411/gcc/testsuite/lib/target-supports.exp
*** gcc-15-20260404/gcc/testsuite/lib/target-supports.exp	Sat Apr  4 22:32:14 2026
--- gcc-15-20260411/gcc/testsuite/lib/target-supports.exp	Sat Apr 11 22:32:15 2026
*************** proc check_effective_target_arm_vfp3_ok
*** 5062,5079 ****
  
  # Return 1 if this is an ARM target supporting -mfpu=fp-armv8
  # -mfloat-abi=softfp.
! proc check_effective_target_arm_v8_vfp_ok {} {
!     if { [check_effective_target_arm32] } {
! 	return [check_no_compiler_messages arm_v8_vfp_ok object {
! 	  int foo (void)
! 	  {
! 	     __asm__ volatile ("vrinta.f32.f32 s0, s0");
! 	     return 0;
! 	  }
! 	} "-mfpu=fp-armv8 -mfloat-abi=softfp"]
!     } else {
! 	return 0
      }
  }
  
  # Return 1 if this is an ARM target supporting -mfpu=vfp
--- 5062,5100 ----
  
  # Return 1 if this is an ARM target supporting -mfpu=fp-armv8
  # -mfloat-abi=softfp.
! proc check_effective_target_arm_v8_vfp_ok_nocache {} {
!     global et_arm_v8_vfp_flags
!     set et_arm_v8_vfp_flags ""
!     foreach flags {
! 	""
! 	"-mfloat-abi=softfp"
! 	"-mcpu=unset -march=armv8-a+simd -mfpu=auto"
! 	"-mcpu=unset -march=armv8-a+simd -mfpu=auto -mfloat-abi=softfp"
!     } {
! 	if { [check_no_compiler_messages_nocache arm_v8_vfp_ok object {
! 	    #if __ARM_ARCH < 8
! 	    #error not armv8 or later
! 	    #endif
! 	    #if __ARM_ARCH_PROFILE == 'M'
! 	    #error incompatible profile
! 	    #endif
! 	    int foo (void)
! 	    {
! 		__asm__ volatile ("vrinta.f32.f32 s0, s0");
! 		return 0;
! 	    }
! 	} "$flags"] } {
! 	    set et_arm_v8_vfp_flags "$flags"
! 	    return 1
! 	}
      }
+ 
+     return 0
+ }
+ 
+ proc check_effective_target_arm_v8_vfp_ok { } {
+     return [check_cached_effective_target arm_v8_vfp_ok \
+ 		check_effective_target_arm_v8_vfp_ok_nocache]
  }
  
  # Return 1 if this is an ARM target supporting -mfpu=vfp
*************** proc add_options_for_arm_v8_vfp { flags
*** 5348,5354 ****
      if { ! [check_effective_target_arm_v8_vfp_ok] } {
  	return "$flags"
      }
!     return "$flags -mfpu=fp-armv8 -mfloat-abi=softfp"
  }
  
  proc add_options_for_arm_v8_neon { flags } {
--- 5369,5376 ----
      if { ! [check_effective_target_arm_v8_vfp_ok] } {
  	return "$flags"
      }
!     global et_arm_v8_vfp_flags
!     return "$flags $et_arm_v8_vfp_flags"
  }
  
  proc add_options_for_arm_v8_neon { flags } {
*************** proc add_options_for_arm_vfp3 { flags }
*** 5427,5451 ****
  # best options to add.
  
  proc check_effective_target_arm_neon_ok_nocache { } {
      global et_arm_neon_flags
      set et_arm_neon_flags ""
!     if { [check_effective_target_arm32] } {
! 	foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon" "-mfpu=neon -mfloat-abi=softfp" "-mfpu=neon -mfloat-abi=softfp -mcpu=unset -march=armv7-a" "-mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard" "-mfpu=neon -mfloat-abi=hard -mcpu=unset -march=armv7-a"} {
! 	    if { [check_no_compiler_messages_nocache arm_neon_ok object {
! 		#include <arm_neon.h>
! 		int dummy;
! 		#ifndef __ARM_NEON__
! 		#error not NEON
! 		#endif
! 		/* Avoid the case where a test adds -mfpu=neon, but the toolchain is
! 		   configured for -mcpu=arm926ej-s, for example.  */
! 		#if __ARM_ARCH < 7 || __ARM_ARCH_PROFILE == 'M'
! 		#error Architecture does not support NEON.
! 		#endif
! 	    } "$flags"] } {
! 		set et_arm_neon_flags $flags
! 		return 1
! 	    }
  	}
      }
  
--- 5449,5483 ----
  # best options to add.
  
  proc check_effective_target_arm_neon_ok_nocache { } {
+     if { ![istarget arm*-*-*] } {
+ 	return 0
+     }
      global et_arm_neon_flags
      set et_arm_neon_flags ""
!     foreach flags {
! 	""
! 	"-mcpu=unset -march=armv7-a+simd -mfpu=auto"
! 
! 	"-mfloat-abi=softfp"
! 	"-mfloat-abi=softfp -mcpu=unset -march=armv7-a+simd -mfpu=auto"
! 
! 	"-mfloat-abi=hard"
! 	"-mfloat-abi=hard -mcpu=unset -march=armv7-a+simd -mfpu=auto"
!     } {
! 	if { [check_no_compiler_messages_nocache arm_neon_ok object {
! 	    #include <arm_neon.h>
! 	    int dummy;
! 	    #ifndef __ARM_NEON__
! 	    #error not NEON
! 	    #endif
! 	    /* Avoid the case where a test adds -mfpu=neon, but the toolchain is
! 	    configured for -mcpu=arm926ej-s, for example.  */
! 	    #if __ARM_ARCH < 7 || __ARM_ARCH_PROFILE == 'M'
! 	    #error Architecture does not support NEON.
! 	    #endif
! 	} "$flags"] } {
! 	    set et_arm_neon_flags $flags
! 	    return 1
  	}
      }
  
*************** proc check_effective_target_arm_neon_fp1
*** 5631,5655 ****
      global et_arm_neon_fp16_flags
      global et_arm_neon_flags
      set et_arm_neon_fp16_flags ""
!     if { [check_effective_target_arm32]
! 	 && [check_effective_target_arm_neon_ok] } {
! 	foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-fp16"
! 		       "-mfpu=neon-fp16 -mfloat-abi=softfp"
! 		       "-mfp16-format=ieee"
! 		       "-mfloat-abi=softfp -mfp16-format=ieee"
! 		       "-mfpu=neon-fp16 -mfp16-format=ieee"
! 		       "-mfpu=neon-fp16 -mfloat-abi=softfp -mfp16-format=ieee"} {
! 	    if { [check_no_compiler_messages_nocache arm_neon_fp16_ok object {
! 		#include "arm_neon.h"
! 		float16x4_t
! 		foo (float32x4_t arg)
! 		{
! 		  return vcvt_f16_f32 (arg);
! 		}
! 	    } "$et_arm_neon_flags $flags"] } {
! 		set et_arm_neon_fp16_flags [concat $et_arm_neon_flags $flags]
! 		return 1
  	    }
  	}
      }
  
--- 5663,5694 ----
      global et_arm_neon_fp16_flags
      global et_arm_neon_flags
      set et_arm_neon_fp16_flags ""
!     foreach flags {
! 	""
! 	"-mfp16-format=ieee"
! 	"-mcpu=unset -march=armv7-a+simd+vfpv3-fp16 -mfpu=auto"
! 	"-mcpu=unset -march=armv7-a+simd+vfpv3-fp16 -mfpu=auto -mfp16-format=ieee"
! 
! 	"-mfloat-abi=softfp"
! 	"-mfloat-abi=softfp -mfp16-format=ieee"
! 	"-mcpu=unset -march=armv7-a+simd+vfpv3-fp16 -mfpu=auto -mfloat-abi=softfp"
! 	"-mcpu=unset -march=armv7-a+simd+vfpv3-fp16 -mfpu=auto -mfloat-abi=softfp -mfp16-format=ieee"
! 
! 	"-mfloat-abi=hard"
! 	"-mfloat-abi=hard -mfp16-format=ieee"
! 	"-mcpu=unset -march=armv7-a+simd+vfpv3-fp16 -mfpu=auto -mfloat-abi=hard"
! 	"-mcpu=unset -march=armv7-a+simd+vfpv3-fp16 -mfpu=auto -mfloat-abi=hard -mfp16-format=ieee"
!     } {
! 	if { [check_no_compiler_messages_nocache arm_neon_fp16_ok object {
! 	    #include "arm_neon.h"
! 	    float16x4_t
! 	    foo (float32x4_t arg)
! 	    {
! 		return vcvt_f16_f32 (arg);
  	    }
+ 	} "$flags"] } {
+ 	    set et_arm_neon_fp16_flags $flags
+ 	    return 1
  	}
      }
  
*************** proc check_effective_target_arm_neon_sof
*** 5670,5677 ****
      global et_arm_neon_softfp_fp16_flags
      global et_arm_neon_flags
      set et_arm_neon_softfp_fp16_flags ""
!     if { [check_effective_target_arm32]
! 	 && [check_effective_target_arm_neon_ok] } {
  	foreach flags {"-mfpu=neon-fp16 -mfloat-abi=softfp"
  		       "-mfpu=neon-fp16 -mfloat-abi=softfp -mfp16-format=ieee"} {
  	    if { [check_no_compiler_messages_nocache arm_neon_softfp_fp16_ok object {
--- 5709,5715 ----
      global et_arm_neon_softfp_fp16_flags
      global et_arm_neon_flags
      set et_arm_neon_softfp_fp16_flags ""
!     if { [check_effective_target_arm_neon_ok] } {
  	foreach flags {"-mfpu=neon-fp16 -mfloat-abi=softfp"
  		       "-mfpu=neon-fp16 -mfloat-abi=softfp -mfp16-format=ieee"} {
  	    if { [check_no_compiler_messages_nocache arm_neon_softfp_fp16_ok object {
*************** proc check_effective_target_arm_fp16_non
*** 5814,5835 ****
  proc check_effective_target_arm_v8_neon_ok_nocache { } {
      global et_arm_v8_neon_flags
      set et_arm_v8_neon_flags ""
!     if { [check_effective_target_arm32] } {
! 	foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-fp-armv8" "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} {
! 	    if { [check_no_compiler_messages_nocache arm_v8_neon_ok object {
! 		#if __ARM_ARCH < 8
! 		#error not armv8 or later
! 		#endif
! 		#include "arm_neon.h"
! 		void
! 		foo ()
! 		{
! 		  __asm__ volatile ("vrintn.f32 q0, q0");
! 		}
! 	    } "$flags -mcpu=unset -march=armv8-a"] } {
! 		set et_arm_v8_neon_flags $flags
! 		return 1
  	    }
  	}
      }
  
--- 5852,5871 ----
  proc check_effective_target_arm_v8_neon_ok_nocache { } {
      global et_arm_v8_neon_flags
      set et_arm_v8_neon_flags ""
!     foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-fp-armv8" "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} {
! 	if { [check_no_compiler_messages_nocache arm_v8_neon_ok object {
! 	    #if __ARM_ARCH < 8
! 	    #error not armv8 or later
! 	    #endif
! 	    #include "arm_neon.h"
! 	    void
! 	    foo ()
! 	    {
! 		__asm__ volatile ("vrintn.f32 q0, q0");
  	    }
+ 	} "$flags -mcpu=unset -march=armv8-a"] } {
+ 	    set et_arm_v8_neon_flags $flags
+ 	    return 1
  	}
      }
  
*************** proc check_effective_target_arm_neonv2_o
*** 5850,5857 ****
      global et_arm_neonv2_flags
      global et_arm_neon_flags
      set et_arm_neonv2_flags ""
!     if { [check_effective_target_arm32]
! 	 && [check_effective_target_arm_neon_ok] } {
  	foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-vfpv4" "-mfpu=neon-vfpv4 -mfloat-abi=softfp"} {
  	    if { [check_no_compiler_messages_nocache arm_neonv2_ok object {
  		#include "arm_neon.h"
--- 5886,5892 ----
      global et_arm_neonv2_flags
      global et_arm_neon_flags
      set et_arm_neonv2_flags ""
!     if { [check_effective_target_arm_neon_ok] } {
  	foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-vfpv4" "-mfpu=neon-vfpv4 -mfloat-abi=softfp"} {
  	    if { [check_no_compiler_messages_nocache arm_neonv2_ok object {
  		#include "arm_neon.h"
*************** proc check_effective_target_arm_v8_2a_fp
*** 6718,6734 ****
  	return 0;
      }
  
      # Iterate through sets of options to find the compiler flags that
      # need to be added to the -march option.
!     foreach flags {"" "-mfpu=neon-fp-armv8" "-mfloat-abi=softfp" \
! 		       "-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} {
  	if { [check_no_compiler_messages_nocache \
  		  arm_v8_2a_fp16_neon_ok object {
! 	    #if !defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
! 	    #error "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC not defined"
! 	    #endif
! 	} "$flags -mcpu=unset -march=armv8.2-a+fp16"] } {
! 	    set et_arm_v8_2a_fp16_neon_flags "$flags -mcpu=unset -march=armv8.2-a+fp16"
  	    return 1
  	}
      }
--- 6753,6792 ----
  	return 0;
      }
  
+     if { [istarget arm*-*-*] } {
+ 	set flag_opts {
+ 	    ""
+ 	    "-mfp16-format=ieee"
+ 	    "-mcpu=unset -march=armv8.2-a+fp16 -mfpu=auto"
+ 	    "-mcpu=unset -march=armv8.2-a+fp16 -mfpu=auto -mfp16-format=ieee"
+ 
+ 	    "-mfloat-abi=softfp"
+ 	    "-mfloat-abi=softfp -mfp16-format=ieee"
+ 	    "-mcpu=unset -march=armv8.2-a+fp16 -mfpu=auto -mfloat-abi=softfp"
+ 	    "-mcpu=unset -march=armv8.2-a+fp16 -mfpu=auto -mfloat-abi=softfp -mfp16-format=ieee"
+ 
+ 	    "-mfloat-abi=hard"
+ 	    "-mfloat-abi=hard -mfp16-format=ieee"
+ 	    "-mcpu=unset -march=armv8.2-a+fp16 -mfpu=auto -mfloat-abi=hard"
+ 	    "-mcpu=unset -march=armv8.2-a+fp16 -mfpu=auto -mfloat-abi=hard -mfp16-format=ieee"
+ 	}
+     } else {
+ 	set flag_opts {
+ 	    ""
+ 	    "-march=armv8.2-a+fp16"
+ 	}
+     }
+ 
      # Iterate through sets of options to find the compiler flags that
      # need to be added to the -march option.
!     foreach flags $flag_opts {
  	if { [check_no_compiler_messages_nocache \
  		  arm_v8_2a_fp16_neon_ok object {
! 		      #if !defined (__ARM_FEATURE_FP16_VECTOR_ARITHMETIC)
! 		      #error "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC not defined"
! 		      #endif
! 		  } "$flags"] } {
! 	    set et_arm_v8_2a_fp16_neon_flags "$flags"
  	    return 1
  	}
      }
*************** proc check_effective_target_vect_pack_tr
*** 8745,8751 ****
        expr { [istarget powerpc*-*-*]
  	     || [check_effective_target_x86]
  	     || [istarget aarch64*-*-*]
! 	     || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
  		 && [check_effective_target_arm_little_endian])
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
--- 8803,8809 ----
        expr { [istarget powerpc*-*-*]
  	     || [check_effective_target_x86]
  	     || [istarget aarch64*-*-*]
! 	     || ([check_effective_target_arm_neon_ok]
  		 && [check_effective_target_arm_little_endian])
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
*************** proc check_effective_target_vect_unpack
*** 8771,8777 ****
  	     || [istarget aarch64*-*-*]
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
! 	     || ([istarget arm*-*-*] && [check_effective_target_arm_neon_ok]
  		 && [check_effective_target_arm_little_endian])
  	     || ([istarget s390*-*-*]
  		 && [check_effective_target_s390_vx])
--- 8829,8835 ----
  	     || [istarget aarch64*-*-*]
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
! 	     || ([check_effective_target_arm_neon_ok]
  		 && [check_effective_target_arm_little_endian])
  	     || ([istarget s390*-*-*]
  		 && [check_effective_target_s390_vx])
*************** proc check_effective_target_vect_conditi
*** 9458,9465 ****
  	     || [check_effective_target_x86]
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
! 	     || ([istarget arm*-*-*]
! 		 && [check_effective_target_arm_neon_ok])
  	     || ([istarget s390*-*-*]
  		 && [check_effective_target_s390_vx])
  	     || [istarget amdgcn-*-*]
--- 9516,9522 ----
  	     || [check_effective_target_x86]
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
! 	     || [check_effective_target_arm_neon_ok]
  	     || ([istarget s390*-*-*]
  		 && [check_effective_target_s390_vx])
  	     || [istarget amdgcn-*-*]
*************** proc check_effective_target_vect_cond_mi
*** 9477,9484 ****
        expr { [check_effective_target_x86]
  	     || [istarget aarch64*-*-*]
  	     || [istarget powerpc*-*-*]
! 	     || ([istarget arm*-*-*]
! 		 && [check_effective_target_arm_neon_ok])
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
  	     || ([istarget s390*-*-*]
--- 9534,9540 ----
        expr { [check_effective_target_x86]
  	     || [istarget aarch64*-*-*]
  	     || [istarget powerpc*-*-*]
! 	     || [check_effective_target_arm_neon_ok]
  	     || ([istarget mips*-*-*]
  		 && [et-is-effective-target mips_msa])
  	     || ([istarget s390*-*-*]
*************** proc available_vector_sizes { } {
*** 9659,9666 ****
  	    lappend result [aarch64_sve_bits]
  	}
  	lappend result 128 64
!     } elseif { [istarget arm*-*-*]
! 		&& [check_effective_target_arm_neon_ok] } {
  	lappend result 128 64
      } elseif { [check_effective_target_x86] } {
  	if { [check_avx_available] && ![check_prefer_avx128] } {
--- 9715,9721 ----
  	    lappend result [aarch64_sve_bits]
  	}
  	lappend result 128 64
!     } elseif { [check_effective_target_arm_neon_ok] } {
  	lappend result 128 64
      } elseif { [check_effective_target_x86] } {
  	if { [check_avx_available] && ![check_prefer_avx128] } {
*************** proc check_effective_target_arm_v8_3a_co
*** 13439,13454 ****
  	return 0;
      }
  
      # Iterate through sets of options to find the compiler flags that
      # need to be added to the -march option.
!     foreach flags {"" "-mfloat-abi=softfp -mfpu=auto" "-mfloat-abi=hard -mfpu=auto"} {
  	if { [check_no_compiler_messages_nocache \
  		  arm_v8_3a_complex_neon_ok assembly {
  	    #if !defined (__ARM_FEATURE_COMPLEX)
  	    #error "__ARM_FEATURE_COMPLEX not defined"
  	    #endif
! 	} "$flags -mcpu=unset -march=armv8.3-a"] } {
! 	    set et_arm_v8_3a_complex_neon_flags "$flags -mcpu=unset -march=armv8.3-a"
  	    return 1;
  	}
      }
--- 13494,13520 ----
  	return 0;
      }
  
+     if { [istarget arm*-*-*] } {
+ 	set flag_opts {
+ 	    ""
+ 	    "-mcpu=unset -march=armv8.3-a+simd"
+ 	    "-mfloat-abi=softfp -mfpu=auto -mcpu=unset -march=armv8.3-a+simd"
+ 	    "-mfloat-abi=hard -mfpu=auto -mcpu=unset -march=armv8.3-a+simd"
+ 	}
+     } else {
+ 	set flag_opts { "" "-march=armv8.3-a" }
+     }
+ 
      # Iterate through sets of options to find the compiler flags that
      # need to be added to the -march option.
!     foreach flags $flag_opts {
  	if { [check_no_compiler_messages_nocache \
  		  arm_v8_3a_complex_neon_ok assembly {
  	    #if !defined (__ARM_FEATURE_COMPLEX)
  	    #error "__ARM_FEATURE_COMPLEX not defined"
  	    #endif
! 	} "$flags"] } {
! 	    set et_arm_v8_3a_complex_neon_flags "$flags"
  	    return 1;
  	}
      }
*************** proc check_effective_target_arm_v8_3a_fp
*** 13481,13497 ****
  	return 0;
      }
  
      # Iterate through sets of options to find the compiler flags that
      # need to be added to the -march option.
!     foreach flags {"" "-mfloat-abi=softfp -mfpu=auto" "-mfloat-abi=hard -mfpu=auto"} {
  	if { [check_no_compiler_messages_nocache \
  		  arm_v8_3a_fp16_complex_neon_ok assembly {
  	    #if !defined (__ARM_FEATURE_COMPLEX)
  	    #error "__ARM_FEATURE_COMPLEX not defined"
  	    #endif
! 	} "$flags -mcpu=unset -march=armv8.3-a+fp16"] } {
! 	    set et_arm_v8_3a_fp16_complex_neon_flags \
! 			"$flags -mcpu=unset -march=armv8.3-a+fp16"
  	    return 1;
  	}
      }
--- 13547,13573 ----
  	return 0;
      }
  
+     if { [istarget arm*-*-*] } {
+ 	set flag_opts {
+ 	    ""
+ 	    "-mfpu=auto -mcpu=unset -march=armv8.3-a+fp16+simd"
+ 	    "-mfloat-abi=softfp -mfpu=auto -mcpu=unset -march=armv8.3-a+fp16+simd"
+ 	    "-mfloat-abi=hard -mfpu=auto -mcpu=unset -march=armv8.3-a+fp16+simd"
+ 	}
+     } else {
+ 	set flag_opts { "" "-march=armv8.3-a+fp16" }
+     }
+ 
      # Iterate through sets of options to find the compiler flags that
      # need to be added to the -march option.
!     foreach flags $flag_opts {
  	if { [check_no_compiler_messages_nocache \
  		  arm_v8_3a_fp16_complex_neon_ok assembly {
  	    #if !defined (__ARM_FEATURE_COMPLEX)
  	    #error "__ARM_FEATURE_COMPLEX not defined"
  	    #endif
! 	} "$flags"] } {
! 	    set et_arm_v8_3a_fp16_complex_neon_flags "$flags"
  	    return 1;
  	}
      }
diff -Nrcpad gcc-15-20260404/libstdc++-v3/ChangeLog gcc-15-20260411/libstdc++-v3/ChangeLog
*** gcc-15-20260404/libstdc++-v3/ChangeLog	Sat Apr  4 22:32:16 2026
--- gcc-15-20260411/libstdc++-v3/ChangeLog	Sat Apr 11 22:32:17 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-04-02  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/std/ranges (zip_view::size): Uglify 'sizes'
+ 	parameter.
+ 
  2026-03-31  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260404/libstdc++-v3/include/std/ranges gcc-15-20260411/libstdc++-v3/include/std/ranges
*** gcc-15-20260404/libstdc++-v3/include/std/ranges	Sat Apr  4 22:32:16 2026
--- gcc-15-20260411/libstdc++-v3/include/std/ranges	Sat Apr 11 22:32:17 2026
*************** namespace views::__adaptor
*** 4691,4708 ****
      constexpr auto
      size() requires (sized_range<_Vs> && ...)
      {
!       return std::apply([](auto... sizes) {
! 	using _CT = __detail::__make_unsigned_like_t<common_type_t<decltype(sizes)...>>;
! 	return ranges::min({_CT(sizes)...});
        }, __detail::__tuple_transform(ranges::size, _M_views));
      }
  
      constexpr auto
      size() const requires (sized_range<const _Vs> && ...)
      {
!       return std::apply([](auto... sizes) {
! 	using _CT = __detail::__make_unsigned_like_t<common_type_t<decltype(sizes)...>>;
! 	return ranges::min({_CT(sizes)...});
        }, __detail::__tuple_transform(ranges::size, _M_views));
      }
    };
--- 4691,4708 ----
      constexpr auto
      size() requires (sized_range<_Vs> && ...)
      {
!       return std::apply([](auto... __sizes) {
! 	using _CT = __detail::__make_unsigned_like_t<common_type_t<decltype(__sizes)...>>;
! 	return ranges::min({_CT(__sizes)...});
        }, __detail::__tuple_transform(ranges::size, _M_views));
      }
  
      constexpr auto
      size() const requires (sized_range<const _Vs> && ...)
      {
!       return std::apply([](auto... __sizes) {
! 	using _CT = __detail::__make_unsigned_like_t<common_type_t<decltype(__sizes)...>>;
! 	return ranges::min({_CT(__sizes)...});
        }, __detail::__tuple_transform(ranges::size, _M_views));
      }
    };
