diff -Nrcpad gcc-15-20260221/LAST_UPDATED gcc-15-20260228/LAST_UPDATED
*** gcc-15-20260221/LAST_UPDATED	Sat Feb 21 22:32:19 2026
--- gcc-15-20260228/LAST_UPDATED	Sat Feb 28 22:32:22 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-15 revision c3823ed4bb066ca4dd13be502f45b463a6bf3d1b
--- 1 ----
! Obtained from git: releases/gcc-15 revision ba99b94208670193f3b4d852e668d8b8b07754ac
diff -Nrcpad gcc-15-20260221/MD5SUMS gcc-15-20260228/MD5SUMS
*** gcc-15-20260221/MD5SUMS	Sat Feb 21 22:32:24 2026
--- gcc-15-20260228/MD5SUMS	Sat Feb 28 22:32:26 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-15-20260221.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-20260228.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
! a057c76705bae6fa54040b8468d80129  LAST_UPDATED
  9d2cf5b58292c2e8b0804d3eafc2d6f3  MAINTAINERS
  b714b83dd28679b75c5fd3e619d35956  Makefile.def
  9d0808afc70085c5ca8d45062fc59689  Makefile.in
--- 25,31 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! b4227b631eec49fbbd74b6e4363e23d3  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
! d48f4159c7158e3d2e5d4cfc177b7910  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
! 3008503bffbe11237b7d73b861a5e336  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
! ab1443b93c1aca1b9359b526dbda72cb  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
! 8bf62f7a89d06e4ee2190474a27b3d6d  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
! 6a5be47402d8a17f0ab034cb3408a9e0  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
! d128812613dd261834392b0b828d995c  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** fdb9382a8288a3a5b805910a0a3615e8  gcc/ad
*** 833,839 ****
  576d7463667fc4c859a05f9e19146427  gcc/ada/fname-uf.ads
  ec7cf235c00294fe67198b9bf264f3d9  gcc/ada/fname.adb
  5ef403dc7e6540ad58ec4ccec10de65c  gcc/ada/fname.ads
! 4decfd15ca027a2185a7bff75e36ff6f  gcc/ada/freeze.adb
  0cfb73b82bc6277eb801329c392229d2  gcc/ada/freeze.ads
  94e87c9cab4c338fd7a9cd7f89adbc90  gcc/ada/frontend.adb
  6f776be1d84e9d8c996b576c19a4349f  gcc/ada/frontend.ads
--- 833,839 ----
  576d7463667fc4c859a05f9e19146427  gcc/ada/fname-uf.ads
  ec7cf235c00294fe67198b9bf264f3d9  gcc/ada/fname.adb
  5ef403dc7e6540ad58ec4ccec10de65c  gcc/ada/fname.ads
! 5224ada998eff38699baf2b81d28e64a  gcc/ada/freeze.adb
  0cfb73b82bc6277eb801329c392229d2  gcc/ada/freeze.ads
  94e87c9cab4c338fd7a9cd7f89adbc90  gcc/ada/frontend.adb
  6f776be1d84e9d8c996b576c19a4349f  gcc/ada/frontend.ads
*************** b5542229d5cce6dd4fff7dc4ba8e789b  gcc/ad
*** 846,852 ****
  9225a8cf7f4c37e1ac2c83d2916a1bdf  gcc/ada/gcc-interface/ada.h
  910c4ca7f1543916fa6923fa18e926e0  gcc/ada/gcc-interface/config-lang.in
  27a97efc2691bb0e500931269e932bee  gcc/ada/gcc-interface/cuintp.cc
! 8fca78975db7b17ddd18c2ddf77f1647  gcc/ada/gcc-interface/decl.cc
  fa1feb51010fc73b933487acbdcf85e8  gcc/ada/gcc-interface/gadaint.h
  846fe3bd3db6658b85769bf0216e74fb  gcc/ada/gcc-interface/gigi.h
  8c3391ec25d2f8a3e26b0553d537d3e2  gcc/ada/gcc-interface/lang-specs.h
--- 846,852 ----
  9225a8cf7f4c37e1ac2c83d2916a1bdf  gcc/ada/gcc-interface/ada.h
  910c4ca7f1543916fa6923fa18e926e0  gcc/ada/gcc-interface/config-lang.in
  27a97efc2691bb0e500931269e932bee  gcc/ada/gcc-interface/cuintp.cc
! a197221d170e1cc91ca638ac5f849238  gcc/ada/gcc-interface/decl.cc
  fa1feb51010fc73b933487acbdcf85e8  gcc/ada/gcc-interface/gadaint.h
  846fe3bd3db6658b85769bf0216e74fb  gcc/ada/gcc-interface/gigi.h
  8c3391ec25d2f8a3e26b0553d537d3e2  gcc/ada/gcc-interface/lang-specs.h
*************** abd831e54ebd759115e62d420bdb5c2f  gcc/ad
*** 2910,2918 ****
  3bf01e026b494a442389a5d3541785b8  gcc/ada/seh_init.c
  b0607745e568ea27d4cb1091a13ee2ce  gcc/ada/sem.adb
  afaa0a52de285d1aad9c58b79b424a1f  gcc/ada/sem.ads
! 1013b2dcde9a39a33410d786ae3128a5  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! 5117d2afaf1213276b078ba84a5ead3c  gcc/ada/sem_attr.adb
  bfe4748123d415f6eb13d89a585468f1  gcc/ada/sem_attr.ads
  4a02c8331cea42852aa409345905ab04  gcc/ada/sem_aux.adb
  3f6d12eb2d9c7a6a829eaf2bda0535a5  gcc/ada/sem_aux.ads
--- 2910,2918 ----
  3bf01e026b494a442389a5d3541785b8  gcc/ada/seh_init.c
  b0607745e568ea27d4cb1091a13ee2ce  gcc/ada/sem.adb
  afaa0a52de285d1aad9c58b79b424a1f  gcc/ada/sem.ads
! baccd15153822f6fbc278d313cf492fd  gcc/ada/sem_aggr.adb
  d9e9e67a1e6554ab3bc7e11269dd3763  gcc/ada/sem_aggr.ads
! fd9b5fc36ee037edcbc5d5bb784d5d45  gcc/ada/sem_attr.adb
  bfe4748123d415f6eb13d89a585468f1  gcc/ada/sem_attr.ads
  4a02c8331cea42852aa409345905ab04  gcc/ada/sem_aux.adb
  3f6d12eb2d9c7a6a829eaf2bda0535a5  gcc/ada/sem_aux.ads
*************** e364f4e3ae92066699cc93a8f7b828c1  gcc/ad
*** 2924,2936 ****
  14c23ddb8ce8f7ab6478f3aff202d2bf  gcc/ada/sem_ch10.ads
  5980a02146588bf0e31ced2382290670  gcc/ada/sem_ch11.adb
  1b6f89866a5d427002df059be3847d62  gcc/ada/sem_ch11.ads
! 04b649db1974330f13d4f8fde0553b4a  gcc/ada/sem_ch12.adb
  b0a3315dce9de8e3bbbb3682c8b0e2ff  gcc/ada/sem_ch12.ads
! 8300ae607c9ffce3d49730cb8d259c95  gcc/ada/sem_ch13.adb
  24bb91233702860aa2a308e59ba7cb6a  gcc/ada/sem_ch13.ads
  14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
  2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! 5c4cd4fb6b50f17df11a7eb313d1dba0  gcc/ada/sem_ch3.adb
  5fd10023b617fc61dce7c2801674285d  gcc/ada/sem_ch3.ads
  d662b1429926c70cce061f8c0b6ec5fb  gcc/ada/sem_ch4.adb
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
--- 2924,2936 ----
  14c23ddb8ce8f7ab6478f3aff202d2bf  gcc/ada/sem_ch10.ads
  5980a02146588bf0e31ced2382290670  gcc/ada/sem_ch11.adb
  1b6f89866a5d427002df059be3847d62  gcc/ada/sem_ch11.ads
! ce35c489ed70449ba1be2a5edceeeb70  gcc/ada/sem_ch12.adb
  b0a3315dce9de8e3bbbb3682c8b0e2ff  gcc/ada/sem_ch12.ads
! 15eb4c6e6a36d1557dba3f2a571d4519  gcc/ada/sem_ch13.adb
  24bb91233702860aa2a308e59ba7cb6a  gcc/ada/sem_ch13.ads
  14326c522718c8cb8415b13a79c07972  gcc/ada/sem_ch2.adb
  2471d629be4739ff5135aa87a2ec9166  gcc/ada/sem_ch2.ads
! 41680984c5abf31afd3d60fbb33a3daa  gcc/ada/sem_ch3.adb
  5fd10023b617fc61dce7c2801674285d  gcc/ada/sem_ch3.ads
  d662b1429926c70cce061f8c0b6ec5fb  gcc/ada/sem_ch4.adb
  adba03aae1f439b9e9db8cea05d8e03f  gcc/ada/sem_ch4.ads
*************** e8e79e2a818321d7816e27eed8d17404  gcc/ad
*** 2962,2969 ****
  bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
  e194b17ba1df97f90ca61f6de49c194f  gcc/ada/sem_prag.adb
  3d4cec1697839c758bf4ee78035143d3  gcc/ada/sem_prag.ads
! 4cbcb93e569fe509da6c28638f2794f8  gcc/ada/sem_res.adb
! bb01f11ceaa352a8b99f95fcbcfe97d9  gcc/ada/sem_res.ads
  28d33ede4288814374d1909847798c7d  gcc/ada/sem_scil.adb
  db6f5a37bd59fd83ff3286e71ab985fe  gcc/ada/sem_scil.ads
  224e89cdc39291b2a52f3e96e76cc3aa  gcc/ada/sem_smem.adb
--- 2962,2969 ----
  bcb22deebc83b966e7be367087d9fd7b  gcc/ada/sem_mech.ads
  e194b17ba1df97f90ca61f6de49c194f  gcc/ada/sem_prag.adb
  3d4cec1697839c758bf4ee78035143d3  gcc/ada/sem_prag.ads
! 9f49ff013339b22f5d76832f13feabd4  gcc/ada/sem_res.adb
! 386c8b0cca974dd440238f8859677a5f  gcc/ada/sem_res.ads
  28d33ede4288814374d1909847798c7d  gcc/ada/sem_scil.adb
  db6f5a37bd59fd83ff3286e71ab985fe  gcc/ada/sem_scil.ads
  224e89cdc39291b2a52f3e96e76cc3aa  gcc/ada/sem_smem.adb
*************** c69ef27c10b319a5443289af516f40b8  gcc/co
*** 4414,4420 ****
  dfcc88ca848e0510d6a048cef812a984  gcc/config/loongarch/gnu-user.h
  0214c19eeeeb90d46d358333d5381814  gcc/config/loongarch/la464.md
  2da06c6340275c1c0670ab82a7252f77  gcc/config/loongarch/larchintrin.h
! 4830ca1092bcb0c0c3701f524a11a0f7  gcc/config/loongarch/lasx.md
  64deba47bb6c4537af9a962db8e160d1  gcc/config/loongarch/lasxintrin.h
  a11605122c3f864d3527acf829c67179  gcc/config/loongarch/linux.h
  cdbdbcd41c06dc52f5c87bed89e0cf37  gcc/config/loongarch/loongarch-builtins.cc
--- 4414,4420 ----
  dfcc88ca848e0510d6a048cef812a984  gcc/config/loongarch/gnu-user.h
  0214c19eeeeb90d46d358333d5381814  gcc/config/loongarch/la464.md
  2da06c6340275c1c0670ab82a7252f77  gcc/config/loongarch/larchintrin.h
! 53d67be06907a90f1726d9625189483f  gcc/config/loongarch/lasx.md
  64deba47bb6c4537af9a962db8e160d1  gcc/config/loongarch/lasxintrin.h
  a11605122c3f864d3527acf829c67179  gcc/config/loongarch/linux.h
  cdbdbcd41c06dc52f5c87bed89e0cf37  gcc/config/loongarch/loongarch-builtins.cc
*************** d3ad067b1fa15bbce42fd3cc4499966e  gcc/co
*** 4438,4453 ****
  688cd325dbeb853413435f029e712cb2  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! 912b9ce1ad68e7aa4a8ba5a52d608c1e  gcc/config/loongarch/loongarch.cc
  cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
  20d6419804da0f3e740614d707d5918d  gcc/config/loongarch/loongarch.md
  bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
  264f23ee79258ff82bda293d093dd06b  gcc/config/loongarch/loongarch.opt.urls
! 062b7b5552d6a6640631f79b43b8ad3c  gcc/config/loongarch/lsx.md
  429434e5f1e9f9afc839f4409102d5ea  gcc/config/loongarch/lsxintrin.h
  5a232a75001e3db7ee3e491afdfae629  gcc/config/loongarch/musl.h
! e357122938174e9f48e1036cb67c8a21  gcc/config/loongarch/predicates.md
! 468b837ce19b0f35429b1fdbe902ebb9  gcc/config/loongarch/simd.md
  8dd632424d9d78f36a7f6de524c32142  gcc/config/loongarch/sync.md
  e2aad9f2fd1ee2a4668948f381da109c  gcc/config/loongarch/t-linux
  4143126e9ad08f12c1a4555c0f87948d  gcc/config/loongarch/t-loongarch
--- 4438,4453 ----
  688cd325dbeb853413435f029e712cb2  gcc/config/loongarch/loongarch-str.h
  a8cd9a4a3d712802475e91e0ec9a3274  gcc/config/loongarch/loongarch-target-attr.cc
  f539c2da7e8d7a3ef7c741bceee19eed  gcc/config/loongarch/loongarch-tune.h
! d37c435059e37a3b006473d0a4ae9030  gcc/config/loongarch/loongarch.cc
  cac7a4f19361731647870d2210078a9e  gcc/config/loongarch/loongarch.h
  20d6419804da0f3e740614d707d5918d  gcc/config/loongarch/loongarch.md
  bcc951e237d5501fc2acd6ef3141724c  gcc/config/loongarch/loongarch.opt
  264f23ee79258ff82bda293d093dd06b  gcc/config/loongarch/loongarch.opt.urls
! 6ba577cf829032a7c9669bad45925ce9  gcc/config/loongarch/lsx.md
  429434e5f1e9f9afc839f4409102d5ea  gcc/config/loongarch/lsxintrin.h
  5a232a75001e3db7ee3e491afdfae629  gcc/config/loongarch/musl.h
! 82cdf7a02d52d9186aaaa604c5c78138  gcc/config/loongarch/predicates.md
! 3dd4f7354bd890432c899e064e486f06  gcc/config/loongarch/simd.md
  8dd632424d9d78f36a7f6de524c32142  gcc/config/loongarch/sync.md
  e2aad9f2fd1ee2a4668948f381da109c  gcc/config/loongarch/t-linux
  4143126e9ad08f12c1a4555c0f87948d  gcc/config/loongarch/t-loongarch
*************** c98feb0a43876ed3ef2fca3c8448e8f8  gcc/do
*** 5997,6003 ****
  ee33d902cd60afae792843ff15ad6706  gcc/doc/portability.texi
  8489e4a02a5daa1d1ae726383b330653  gcc/doc/rtl.texi
  bd20fd07c5ee8f444bf1d3f5e64e066a  gcc/doc/service.texi
! ccde67b04662bf2e19de064bb7380743  gcc/doc/sourcebuild.texi
  14e3ed780980c4fff09173b869e850ed  gcc/doc/standards.texi
  bcede1ca08c149d6b7a9ad7cfc846f85  gcc/doc/tm.texi
  06d0869eb2bec892f989f31bcd7da233  gcc/doc/tm.texi.in
--- 5997,6003 ----
  ee33d902cd60afae792843ff15ad6706  gcc/doc/portability.texi
  8489e4a02a5daa1d1ae726383b330653  gcc/doc/rtl.texi
  bd20fd07c5ee8f444bf1d3f5e64e066a  gcc/doc/service.texi
! e533ea3217cf514ef3509a5b5b516edb  gcc/doc/sourcebuild.texi
  14e3ed780980c4fff09173b869e850ed  gcc/doc/standards.texi
  bcede1ca08c149d6b7a9ad7cfc846f85  gcc/doc/tm.texi
  06d0869eb2bec892f989f31bcd7da233  gcc/doc/tm.texi.in
*************** d34323b4d6fe1da82a9a4c157463d875  gcc/gc
*** 6183,6189 ****
  7554533cf646554f951ac05ad4609005  gcc/gcc-urlifier.cc
  3ba51d67080efcd8791ea2eaf4103d72  gcc/gcc-urlifier.def
  7e2f3c81fe7c2381b433886ab2914fa7  gcc/gcc-urlifier.h
! 7ca1dc6e8d0934977e6df717c0fbe13c  gcc/gcc.cc
  265ae8f124014a92ca7dee798d9c2b46  gcc/gcc.h
  d66e80f2ea9c1b6754479c999040b857  gcc/gcov-counter.def
  c4e07547b91be991d1bed6c22015cec2  gcc/gcov-dump.cc
--- 6183,6189 ----
  7554533cf646554f951ac05ad4609005  gcc/gcc-urlifier.cc
  3ba51d67080efcd8791ea2eaf4103d72  gcc/gcc-urlifier.def
  7e2f3c81fe7c2381b433886ab2914fa7  gcc/gcc-urlifier.h
! 5f3d65144b12ff2db93c2ea064f3c257  gcc/gcc.cc
  265ae8f124014a92ca7dee798d9c2b46  gcc/gcc.h
  d66e80f2ea9c1b6754479c999040b857  gcc/gcov-counter.def
  c4e07547b91be991d1bed6c22015cec2  gcc/gcov-dump.cc
*************** dfa3caf86a8bb6ea08cabdee56e570e9  gcc/lt
*** 6659,6665 ****
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
  78ea6d3e135322dfe8157d78aba82074  gcc/lto-streamer.h
  8b0a37984ce6cc6e0b1e0651b05742d0  gcc/lto-wrapper.cc
! 3061b823c0198372cd9fc8a05776ebe1  gcc/lto/ChangeLog
  e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lto/Make-lang.in
  705d8eaa74b456d79367c2c42b7a2fef  gcc/lto/common.cc
  3d201b30f0538a8cfddc450739b1c8c5  gcc/lto/common.h
--- 6659,6665 ----
  8caf9a68892d64dc294b20c27291b749  gcc/lto-streamer.cc
  78ea6d3e135322dfe8157d78aba82074  gcc/lto-streamer.h
  8b0a37984ce6cc6e0b1e0651b05742d0  gcc/lto-wrapper.cc
! 7a72fe9b92b828d6e219c8b73a7618b8  gcc/lto/ChangeLog
  e33b56ae6d73ecb6b658dd2ffff4202a  gcc/lto/Make-lang.in
  705d8eaa74b456d79367c2c42b7a2fef  gcc/lto/common.cc
  3d201b30f0538a8cfddc450739b1c8c5  gcc/lto/common.h
*************** e09c982f34fcc53d88fb9b974a77d569  gcc/lt
*** 6674,6680 ****
  3b697054907d273bdcb6e5026d3bc875  gcc/lto/lto-object.cc
  38c04a0ddda1a5a40c7fffc7079b0b21  gcc/lto/lto-partition.cc
  6bdee5523aaa6e7091e15f5270e1ef9f  gcc/lto/lto-partition.h
! 1fe27a12b5a9b027b47f819c6e23ed1c  gcc/lto/lto-symtab.cc
  37534ae509993637d7af9690433de15c  gcc/lto/lto-symtab.h
  b153638c23972a22ca31986c1b49348d  gcc/lto/lto-tree.h
  e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lto/lto.cc
--- 6674,6680 ----
  3b697054907d273bdcb6e5026d3bc875  gcc/lto/lto-object.cc
  38c04a0ddda1a5a40c7fffc7079b0b21  gcc/lto/lto-partition.cc
  6bdee5523aaa6e7091e15f5270e1ef9f  gcc/lto/lto-partition.h
! 7e83a0d015bcebc4943fb8ad514adf47  gcc/lto/lto-symtab.cc
  37534ae509993637d7af9690433de15c  gcc/lto/lto-symtab.h
  b153638c23972a22ca31986c1b49348d  gcc/lto/lto-tree.h
  e44c0bf9cc0411d7bd57c6585eb6d0e4  gcc/lto/lto.cc
*************** b3a965e425e6cf7888319667faf58da9  gcc/sy
*** 8448,8454 ****
  b4bbfe8a8f62eed5c75429762e88d324  gcc/targhooks.cc
  ae57260b8b60d8b8dfaef3556c3ac5e5  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 51551e32be6fd777ae372d4c3ba4fc99  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
! 634006414afd4c65de26fa6354fa1d7c  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** cbee807af28f014c203c54ab80ff50a2  gcc/te
*** 26083,26089 ****
  eb989cca62b61ae260c43eec2e863f53  gcc/testsuite/g++.dg/lto/pr60150_1.C
  4545a0f5287e3787b44c5f09c746b2c5  gcc/testsuite/g++.dg/lto/pr60336_0.C
  539839d2d7b449fce8fb3b3226460f52  gcc/testsuite/g++.dg/lto/pr60567_0.C
! b0b88b6e1ea73332e8af7ec97db10850  gcc/testsuite/g++.dg/lto/pr62026_0.C
  c3c4967cb8c2c452928945c0ccd6989d  gcc/testsuite/g++.dg/lto/pr63166_0.ii
  0b63c925f1273abcd9e9c38bcd437701  gcc/testsuite/g++.dg/lto/pr63166_1.ii
  55437e8d287eedf3fff9dd4b6ab2781a  gcc/testsuite/g++.dg/lto/pr63270.h
--- 26083,26089 ----
  eb989cca62b61ae260c43eec2e863f53  gcc/testsuite/g++.dg/lto/pr60150_1.C
  4545a0f5287e3787b44c5f09c746b2c5  gcc/testsuite/g++.dg/lto/pr60336_0.C
  539839d2d7b449fce8fb3b3226460f52  gcc/testsuite/g++.dg/lto/pr60567_0.C
! d83b76394d1651189b5ec0a02fe0bd15  gcc/testsuite/g++.dg/lto/pr62026_0.C
  c3c4967cb8c2c452928945c0ccd6989d  gcc/testsuite/g++.dg/lto/pr63166_0.ii
  0b63c925f1273abcd9e9c38bcd437701  gcc/testsuite/g++.dg/lto/pr63166_1.ii
  55437e8d287eedf3fff9dd4b6ab2781a  gcc/testsuite/g++.dg/lto/pr63270.h
*************** d35c4ba42a40c90525ba6fdc0e2639be  gcc/te
*** 26424,26429 ****
--- 26424,26430 ----
  c0ef2b8d52cd62eb091cd6a8355a3f55  gcc/testsuite/g++.dg/modules/cpp-19.C
  d3b0a55e79b15e865f383cb22a8e75f3  gcc/testsuite/g++.dg/modules/cpp-20.C
  eca303993798718fc515fd54bb62d96e  gcc/testsuite/g++.dg/modules/cpp-21.C
+ 7b2d478b271e3d3ac206d81d2418ad36  gcc/testsuite/g++.dg/modules/cpp-22.C
  7df70a1a3701f4e80b19b9464ac25c08  gcc/testsuite/g++.dg/modules/cpp-2_a.H
  783ab638033bc17058b529268c3f6d93  gcc/testsuite/g++.dg/modules/cpp-2_b.H
  e1048ef57be07983f84fafa8dc76318c  gcc/testsuite/g++.dg/modules/cpp-2_c.C
*************** c26c19c6753e65db02ae97efd8a54af2  gcc/te
*** 31559,31570 ****
  e425d7fc584cf8535f3eee565f58f091  gcc/testsuite/g++.dg/tls/init-1.C
  ec6c7e65d57e2a70cb1a6852131a0f16  gcc/testsuite/g++.dg/tls/init-2.C
  e9afa7cf1ac751d2df40286607549ef0  gcc/testsuite/g++.dg/tls/locations1.C
! 2a8c59f8866b77fe70f624e3d722097d  gcc/testsuite/g++.dg/tls/pr102496-1.C
  abc37af969d1e3eb6c154521bc4614aa  gcc/testsuite/g++.dg/tls/pr102496-2.C
  7e8484ec05c7aa22b9de8e440eb62ad6  gcc/testsuite/g++.dg/tls/pr102642.C
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
! f4ebaa2e9bc5b065a4c81b1ec15efe2c  gcc/testsuite/g++.dg/tls/pr77285-1.C
  f1ca461838c5ae75f6825f6cd92ae307  gcc/testsuite/g++.dg/tls/pr77285-2.C
  4db79bd63ba94ab802fb63629928af1d  gcc/testsuite/g++.dg/tls/pr79288.C
  eaa257e5d01462b4484236d4e40a6e81  gcc/testsuite/g++.dg/tls/pr85400.C
--- 31560,31571 ----
  e425d7fc584cf8535f3eee565f58f091  gcc/testsuite/g++.dg/tls/init-1.C
  ec6c7e65d57e2a70cb1a6852131a0f16  gcc/testsuite/g++.dg/tls/init-2.C
  e9afa7cf1ac751d2df40286607549ef0  gcc/testsuite/g++.dg/tls/locations1.C
! a3c6e48df168850652cb297ec24efd8d  gcc/testsuite/g++.dg/tls/pr102496-1.C
  abc37af969d1e3eb6c154521bc4614aa  gcc/testsuite/g++.dg/tls/pr102496-2.C
  7e8484ec05c7aa22b9de8e440eb62ad6  gcc/testsuite/g++.dg/tls/pr102642.C
  abcd9d688bd97352cf2201ae04eb0bcd  gcc/testsuite/g++.dg/tls/pr66808.C
  5b67d09a03c0a87ddd8fb4065b354311  gcc/testsuite/g++.dg/tls/pr69000.C
! 0ceb6a01aeecd4ce8dd293985c91a3de  gcc/testsuite/g++.dg/tls/pr77285-1.C
  f1ca461838c5ae75f6825f6cd92ae307  gcc/testsuite/g++.dg/tls/pr77285-2.C
  4db79bd63ba94ab802fb63629928af1d  gcc/testsuite/g++.dg/tls/pr79288.C
  eaa257e5d01462b4484236d4e40a6e81  gcc/testsuite/g++.dg/tls/pr85400.C
*************** aa928203aafdb1f6793fe73d77390fc9  gcc/te
*** 37339,37345 ****
  2db1f141b171b343da3bcd8a1f111fd8  gcc/testsuite/g++.target/aarch64/vect-simd-clone-1.C
  f89c5da906414e7c52ffb7bb0ab2b800  gcc/testsuite/g++.target/aarch64/vect_cmp-1.C
  cd7f71199c7444b1ce9488ac14f59b43  gcc/testsuite/g++.target/arm/arm.exp
! 99b5cde1aa5ba8d3c40ce3af92ef40f5  gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C
  1be043d5daf902730f5c770ee4bbe8f1  gcc/testsuite/g++.target/arm/bti_thunk.C
  e64278e516f7ebae5481e326b54f28dd  gcc/testsuite/g++.target/arm/cde_mve.C
  817f6b8bbc13fc92c8ffbe3bcaf7963d  gcc/testsuite/g++.target/arm/interference.C
--- 37340,37346 ----
  2db1f141b171b343da3bcd8a1f111fd8  gcc/testsuite/g++.target/aarch64/vect-simd-clone-1.C
  f89c5da906414e7c52ffb7bb0ab2b800  gcc/testsuite/g++.target/aarch64/vect_cmp-1.C
  cd7f71199c7444b1ce9488ac14f59b43  gcc/testsuite/g++.target/arm/arm.exp
! d0eaacd5173a9a25d7ce41b86ccf8153  gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C
  1be043d5daf902730f5c770ee4bbe8f1  gcc/testsuite/g++.target/arm/bti_thunk.C
  e64278e516f7ebae5481e326b54f28dd  gcc/testsuite/g++.target/arm/cde_mve.C
  817f6b8bbc13fc92c8ffbe3bcaf7963d  gcc/testsuite/g++.target/arm/interference.C
*************** d23060d9617d607793c74626be7479fe  gcc/te
*** 43106,43112 ****
  1fa3c19e4371898a9f78cb50d95028b8  gcc/testsuite/gcc.dg/analyzer/write-to-function-1.c
  6ec959b42308e02f8a893a9efaf86d98  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-2.c
  57fc075c8dbac107e616b70295049b4b  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-3.c
! 4ad6acd95f4f163ad0a0d3d4599de6ee  gcc/testsuite/gcc.dg/analyzer/zlib-3.c
  f879ebf85b514c5e20431d11da89e21f  gcc/testsuite/gcc.dg/analyzer/zlib-6.c
  82d2d50559f8da5c45335800f5d3273e  gcc/testsuite/gcc.dg/analyzer/zlib-6a.c
  9a236d4e4079496d64daed78574cc006  gcc/testsuite/gcc.dg/and-1.c
--- 43107,43113 ----
  1fa3c19e4371898a9f78cb50d95028b8  gcc/testsuite/gcc.dg/analyzer/write-to-function-1.c
  6ec959b42308e02f8a893a9efaf86d98  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-2.c
  57fc075c8dbac107e616b70295049b4b  gcc/testsuite/gcc.dg/analyzer/write-to-string-literal-3.c
! a2f12a816ca655be9b0789f90e836135  gcc/testsuite/gcc.dg/analyzer/zlib-3.c
  f879ebf85b514c5e20431d11da89e21f  gcc/testsuite/gcc.dg/analyzer/zlib-6.c
  82d2d50559f8da5c45335800f5d3273e  gcc/testsuite/gcc.dg/analyzer/zlib-6a.c
  9a236d4e4079496d64daed78574cc006  gcc/testsuite/gcc.dg/and-1.c
*************** a7add68c69c48bffecd543855bc97366  gcc/te
*** 48474,48479 ****
--- 48475,48482 ----
  313b5ef23d14915b2a6f61b519f95205  gcc/testsuite/gcc.dg/lto/attr-weakref-1_0.c
  8c3a2c4fa0f190c6d2749b5524ab98c4  gcc/testsuite/gcc.dg/lto/attr-weakref-1_1.c
  5a674e54883d5de8ea06860e38b0cd2e  gcc/testsuite/gcc.dg/lto/attr-weakref-1_2.c
+ 18e88a9f17f78b46c1ce166e48f8d785  gcc/testsuite/gcc.dg/lto/attr-weakref-2_0.c
+ 7e33f6cf523487191171fa66361dc197  gcc/testsuite/gcc.dg/lto/attr-weakref-2_1.c
  77a8ef1bedade751008154d0c1ea49c8  gcc/testsuite/gcc.dg/lto/c-compatible-types-1_0.c
  2efe9845bc7f2a94bdb6da1ddfe698fc  gcc/testsuite/gcc.dg/lto/c-compatible-types-1_1.c
  fd5005c6fbb07e4f27713809ef1f5759  gcc/testsuite/gcc.dg/lto/chkp-privatize-1_1.c
*************** acf1fac916847c2064b8d2bbb6535828  gcc/te
*** 83593,83599 ****
  754f11f1533603a4d550b593afc0c673  gcc/testsuite/gcc.target/loongarch/pr121634.c
  d1eee63ffd26f53d2b788cb0eb55f5a6  gcc/testsuite/gcc.target/loongarch/pr121875.c
  1dd25b33f6fd8d4c4dc750865d86f404  gcc/testsuite/gcc.target/loongarch/pr121906.c
! 4fb67de6ceaa4d3d0dfff318541b470b  gcc/testsuite/gcc.target/loongarch/pr122097.c
  0626ac54385b7d00394be7a0b09850a1  gcc/testsuite/gcc.target/loongarch/pr122695-1.c
  fb640df1e5eb969859e5c360f608dec4  gcc/testsuite/gcc.target/loongarch/pr122695-2.c
  1eac553341d725c6e59615b593aedb0d  gcc/testsuite/gcc.target/loongarch/pragma-push-pop.c
--- 83596,83602 ----
  754f11f1533603a4d550b593afc0c673  gcc/testsuite/gcc.target/loongarch/pr121634.c
  d1eee63ffd26f53d2b788cb0eb55f5a6  gcc/testsuite/gcc.target/loongarch/pr121875.c
  1dd25b33f6fd8d4c4dc750865d86f404  gcc/testsuite/gcc.target/loongarch/pr121906.c
! 51927631f78916e06162754b5c3d24fd  gcc/testsuite/gcc.target/loongarch/pr122097.c
  0626ac54385b7d00394be7a0b09850a1  gcc/testsuite/gcc.target/loongarch/pr122695-1.c
  fb640df1e5eb969859e5c360f608dec4  gcc/testsuite/gcc.target/loongarch/pr122695-2.c
  1eac553341d725c6e59615b593aedb0d  gcc/testsuite/gcc.target/loongarch/pragma-push-pop.c
*************** a4f83930fb87bd91e5bb42db50c8d318  gcc/te
*** 112447,112452 ****
--- 112450,112456 ----
  c0f68295e348ad36a641d8edeff2cfc6  gcc/testsuite/gnat.dg/prot9_pkg1.ads
  4cd15245a3399652865b3c6a9daf87ad  gcc/testsuite/gnat.dg/prot9_pkg2.ads
  8b9d81034e4a3268cbc4aae764775fd9  gcc/testsuite/gnat.dg/prot_def.adb
+ 00f160c0176ca352cbe49cfb9735cb39  gcc/testsuite/gnat.dg/protected_deref1.adb
  ca3a0803b3696ed0b41f6d8cbb5b962b  gcc/testsuite/gnat.dg/protected_func.adb
  f010d95f371dbccc1be8c51d48eb4db5  gcc/testsuite/gnat.dg/protected_func.ads
  ce1ec39ed99de56ced45d8b9f86bc85a  gcc/testsuite/gnat.dg/protected_null.adb
*************** a3aeba60c0c92acaa70248375acbbdbb  gcc/te
*** 112619,112624 ****
--- 112623,112629 ----
  60ca8801e0e8eccd8fec16ac238b860c  gcc/testsuite/gnat.dg/specs/aggr1.ads
  32d247327e117ebc5575470ee0186869  gcc/testsuite/gnat.dg/specs/aggr10.ads
  b7160b72842f69638428bd8734f6ed79  gcc/testsuite/gnat.dg/specs/aggr11.ads
+ 7ead03d52ff6c05100ffd07ad0a17bcd  gcc/testsuite/gnat.dg/specs/aggr12.ads
  fe82e660f7a4e411f57c2b234839d4c8  gcc/testsuite/gnat.dg/specs/aggr2.ads
  5742258b0ea3fc3e05f71406d1b1322b  gcc/testsuite/gnat.dg/specs/aggr3.ads
  c8246a5026bc2feaf77f0681b54b41ea  gcc/testsuite/gnat.dg/specs/aggr3_pkg.ads
*************** bac1e8c2c28486c2dacd74f69ad37ca6  gcc/te
*** 112731,112736 ****
--- 112736,112742 ----
  1d6fe3d382f738feda5c7c3faea04614  gcc/testsuite/gnat.dg/specs/lto3_pkg2.ads
  bd5a6ea89b23bd5629784ef6f9f822ab  gcc/testsuite/gnat.dg/specs/machine_attribute.ads
  b1a7d26ec14c2e4b30e7f5732498d30e  gcc/testsuite/gnat.dg/specs/mutably_tagged1.ads
+ 348317dec7fec51cad1a52676c67e983  gcc/testsuite/gnat.dg/specs/mutably_tagged2.ads
  a573c4fbee048b518c86be4ea7e21d27  gcc/testsuite/gnat.dg/specs/no_streams.ads
  d470d680d139ab860f9207e4c6a63125  gcc/testsuite/gnat.dg/specs/noinline1.ads
  750425a1e2a00ca741c599016cfcbb7b  gcc/testsuite/gnat.dg/specs/noinline3.ads
*************** de366240409b1c3413cd274333487fb7  gcc/te
*** 112827,112832 ****
--- 112833,112839 ----
  67001591d13a2654ac5b7435e121cb10  gcc/testsuite/gnat.dg/specs/unchecked_convert2.ads
  a013922e8c147a09784a5aca21aa3a65  gcc/testsuite/gnat.dg/specs/unchecked_union1.ads
  fbc11dba24887c4af40c8660f7168a67  gcc/testsuite/gnat.dg/specs/unchecked_union2.ads
+ bc8a00cafe93a77626f7d163fb369bcf  gcc/testsuite/gnat.dg/specs/unchecked_union3.ads
  c8cf8a4c8db78f809bd3550ca820e6a5  gcc/testsuite/gnat.dg/specs/universal_fixed.ads
  956da2e940d0e7706607f91ce39d70ad  gcc/testsuite/gnat.dg/specs/variant_part.ads
  12e2e0159b45a86a40c49bc020048d43  gcc/testsuite/gnat.dg/specs/varsize_return.ads
*************** eb1595e729e2eaac81c7ffe330d8f24e  gcc/te
*** 115596,115602 ****
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 704a7c72bdbdde647a940c46c3a75b4b  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
--- 115603,115609 ----
  f7940f4f8c24d9f0bf4d062473f55777  gcc/testsuite/lib/scanwpaipa.exp
  23e89ca46b182663a4139064b179545f  gcc/testsuite/lib/target-libpath.exp
  d9a6726c38c578e1cd46631ee7f92d0a  gcc/testsuite/lib/target-supports-dg.exp
! 3317d86edf19ccc68350284cab1c7e2b  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
*************** cffdeae41b78da05839b193e90188f55  libcod
*** 118512,118518 ****
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  c94add0032978604acf65591bb86d2d6  libcody/server.cc
! 9cbc48b9bb76aeb3d26782ac2984304f  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  e80a909ca87015a009bee9588bb84a64  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
--- 118519,118525 ----
  6419dfc879387358e95288142e569914  libcody/packet.cc
  688ece05c8b9d378b3df186808162e76  libcody/resolver.cc
  c94add0032978604acf65591bb86d2d6  libcody/server.cc
! c1e502d249fb930c1fa7a67a220449d7  libcpp/ChangeLog
  2bd831b17997584e38305782cebe6948  libcpp/ChangeLog.jit
  e80a909ca87015a009bee9588bb84a64  libcpp/Makefile.in
  b07c7863f0e7ad4e6a0915d66fc9e582  libcpp/aclocal.m4
*************** b07c7863f0e7ad4e6a0915d66fc9e582  libcpp
*** 118524,118530 ****
  ea784e8b4e934b5966c1fa9ff3767729  libcpp/directives.cc
  02aef9903cbb33fe0e3146b5a9af1332  libcpp/errors.cc
  edcd9f141150c148f5c5c9584a446394  libcpp/expr.cc
! ce74c78c2cb27bcdeac8a9b0400712cd  libcpp/files.cc
  97faf9e969cb255f2a2a91e0e7ac3c32  libcpp/generated_cpp_wcwidth.h
  c496c50691c37464e0aacc985cc3ab1e  libcpp/identifiers.cc
  c6d289f358b723bb4db062b5dbb25cb9  libcpp/include/cpplib.h
--- 118531,118537 ----
  ea784e8b4e934b5966c1fa9ff3767729  libcpp/directives.cc
  02aef9903cbb33fe0e3146b5a9af1332  libcpp/errors.cc
  edcd9f141150c148f5c5c9584a446394  libcpp/expr.cc
! fb29c78e67c6e7533d6c02ec00a1961e  libcpp/files.cc
  97faf9e969cb255f2a2a91e0e7ac3c32  libcpp/generated_cpp_wcwidth.h
  c496c50691c37464e0aacc985cc3ab1e  libcpp/identifiers.cc
  c6d289f358b723bb4db062b5dbb25cb9  libcpp/include/cpplib.h
*************** ac88522f7fec46badcd2623d11a4b61e  libcpp
*** 118535,118541 ****
  d516a30568fd33a5e69be4374f27812f  libcpp/include/symtab.h
  3f05e522dd9325c9807fc4f662533f7b  libcpp/init.cc
  a0d37c297f3d462529b502a4e1bd2378  libcpp/internal.h
! f8244960014eef467c6c06a22e72feac  libcpp/lex.cc
  afb53d91467e0952508a757742351dd6  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
  9ca45c4c9e1829d625f4cc03b82debd1  libcpp/macro.cc
--- 118542,118548 ----
  d516a30568fd33a5e69be4374f27812f  libcpp/include/symtab.h
  3f05e522dd9325c9807fc4f662533f7b  libcpp/init.cc
  a0d37c297f3d462529b502a4e1bd2378  libcpp/internal.h
! 02b3ef58149f98b4ee65cc5ea226ae24  libcpp/lex.cc
  afb53d91467e0952508a757742351dd6  libcpp/line-map.cc
  46a07100f95f5e354c7e25cd19d26884  libcpp/location-example.txt
  9ca45c4c9e1829d625f4cc03b82debd1  libcpp/macro.cc
*************** d680e7307fb59fe24f8431e179191f16  libssp
*** 132218,132224 ****
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 71ddb68ce1dc9cf8b7b6b56dab079157  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 132225,132231 ----
  534c3fb4a88e5c1f70db35c12b7742c3  libssp/vsnprintf-chk.c
  34daeb04a522ee796098df4446d6ce61  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 4f59f4216b5ef70deae58d0d9983968a  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** b08a39f51d72ac622e2e5e257ae3897b  libstd
*** 132894,132900 ****
  c2f5862787920c2fc07b4f499e362a00  libstdc++-v3/include/bits/alloc_traits.h
  c124f049cd4f41ebcf3bbfd04df17cf5  libstdc++-v3/include/bits/allocated_ptr.h
  d18c16b3c9c3ab2e7d487de90ec27d17  libstdc++-v3/include/bits/allocator.h
! a65f3932e944795c8e78b00d2e7f11a0  libstdc++-v3/include/bits/atomic_base.h
  7c88fbee1dffec663e740720882b5344  libstdc++-v3/include/bits/atomic_futex.h
  c2ed9b9ed62b02a5aba9733f5b376172  libstdc++-v3/include/bits/atomic_timed_wait.h
  4aec94297e365e5a284c252c0a72d1e5  libstdc++-v3/include/bits/atomic_wait.h
--- 132901,132907 ----
  c2f5862787920c2fc07b4f499e362a00  libstdc++-v3/include/bits/alloc_traits.h
  c124f049cd4f41ebcf3bbfd04df17cf5  libstdc++-v3/include/bits/allocated_ptr.h
  d18c16b3c9c3ab2e7d487de90ec27d17  libstdc++-v3/include/bits/allocator.h
! 77b77324133ff41213284fbe1fa43f73  libstdc++-v3/include/bits/atomic_base.h
  7c88fbee1dffec663e740720882b5344  libstdc++-v3/include/bits/atomic_futex.h
  c2ed9b9ed62b02a5aba9733f5b376172  libstdc++-v3/include/bits/atomic_timed_wait.h
  4aec94297e365e5a284c252c0a72d1e5  libstdc++-v3/include/bits/atomic_wait.h
*************** f1cc3238df41adc204bc4f90accc63f3  libstd
*** 133596,133602 ****
  9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
! 850809e77d5451e71320247626527833  libstdc++-v3/include/std/atomic
  4f32c26cb6bb867bc482113b2f4a9eb1  libstdc++-v3/include/std/barrier
  2a2983a946c8ff2f85e6ee4fedaafdc7  libstdc++-v3/include/std/bit
  a2b26793e4e6009d6ffdd683cc309894  libstdc++-v3/include/std/bitset
--- 133603,133609 ----
  9eb208714fb55de6cfffb684575b47e3  libstdc++-v3/include/std/algorithm
  d891b88417c6426b21aee63c74ec4e98  libstdc++-v3/include/std/any
  d434b6703454e6fece0bb6ab907894d5  libstdc++-v3/include/std/array
! 9965af220c6b7a21abee5e715a7414e3  libstdc++-v3/include/std/atomic
  4f32c26cb6bb867bc482113b2f4a9eb1  libstdc++-v3/include/std/barrier
  2a2983a946c8ff2f85e6ee4fedaafdc7  libstdc++-v3/include/std/bit
  a2b26793e4e6009d6ffdd683cc309894  libstdc++-v3/include/std/bitset
*************** b5add270eb89557e0c8d61fa1ace86e7  libstd
*** 141395,141400 ****
--- 141402,141408 ----
  8b7b0b498791a603f2f537f3d5035766  libstdc++-v3/testsuite/29_atomics/atomic/cons/trivial.cc
  0501a49acdbeebdf5bc829c9b499f09f  libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc
  d4c98a94a0ffda92bd76d6f6dfdf9760  libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
+ 681f32c88b23086d76f165a9e1487576  libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
  952bd3c7bb4ba837b698e7f8d43b280f  libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc
  f9b2d6d78dc44c7b8285a07ef1cd9521  libstdc++-v3/testsuite/29_atomics/atomic/lock_free_aliases.cc
  467103d8d6f668882b30ac0653e0cd90  libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc
*************** a11647f0a7197b8bca75ec68b5130c4d  libstd
*** 141440,141445 ****
--- 141448,141454 ----
  867a677947829787048e19ca55ac4223  libstdc++-v3/testsuite/29_atomics/atomic_float/requirements_cxx23.cc
  b765e7275b7fa1a7aaa78ec19d83f8f2  libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
  d3adedcb21c25a0282b31ce1181cbd83  libstdc++-v3/testsuite/29_atomics/atomic_float/wait_notify.cc
+ 25faa0b8cab947a81054c74813773331  libstdc++-v3/testsuite/29_atomics/atomic_float/zero_padding.cc
  133286452aebb9434cb1ec964820b1fc  libstdc++-v3/testsuite/29_atomics/atomic_integral/60940.cc
  6275533b1e69b1592edebc928f8d7210  libstdc++-v3/testsuite/29_atomics/atomic_integral/65147.cc
  a5fcec06638ffc2ee576a3828e54d5a2  libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/assign_neg.cc
diff -Nrcpad gcc-15-20260221/gcc/ChangeLog gcc-15-20260228/gcc/ChangeLog
*** gcc-15-20260221/gcc/ChangeLog	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ChangeLog	Sat Feb 28 22:32:05 2026
***************
*** 1,3 ****
--- 1,53 ----
+ 2026-02-26  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Revert:
+ 	2025-11-08  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/122097
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_const_vector_same_bytes_p): Add processing for
+ 	floating-point vector data.
+ 
+ 2026-02-26  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	Backported from master:
+ 	2026-02-03  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	* config/loongarch/predicates.md (const_vector_neg_fp_operand):
+ 	New define_predicate.
+ 	(reg_or_vector_neg_fp_operand): New define_predicate.
+ 	* config/loongarch/lasx.md (copysign<mode>3): Remove.
+ 	(xorsign<mode>3): Remove.
+ 	* config/loongarch/lsx.md (copysign<mode>3): Remove.
+ 	(@xorsign<mode>3): Remove.
+ 	* config/loongarch/simd.md (copysign<mode>3): New define_expand.
+ 	(@xorsign<mode>3): New define_expand.
+ 	(and<mode>3): Only allow IVEC instead of ALLVEC.
+ 	(ior<mode>3): Likewise.
+ 	(xor<mode>3): Likewise.
+ 	* config/loongarch/loongarch.cc (loongarch_print_operand): No
+ 	longer allow floating-point vector constants for %V.
+ 	(loongarch_const_vector_bitimm_set_p): Always return false for
+ 	floating-point vector constants.
+ 	(loongarch_build_signbit_mask): Factor out force_reg.
+ 	(loongarch_emit_swrsqrtsf): Use integer vector mode instead of
+ 	floating-point vector mode when masking zero inputs.
+ 
+ 2026-02-25  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	Backported from master:
+ 	2025-06-02  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* doc/sourcebuild.texi (tls_link): Add documentation.
+ 
+ 2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/120974
+ 	* gcc.cc (join_spec_func): Escape special characters.
+ 
  2026-02-19  Vladimir N. Makarov  <vmakarov@redhat.com>
  
  	PR target/121571
diff -Nrcpad gcc-15-20260221/gcc/DATESTAMP gcc-15-20260228/gcc/DATESTAMP
*** gcc-15-20260221/gcc/DATESTAMP	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/DATESTAMP	Sat Feb 28 22:32:05 2026
***************
*** 1 ****
! 20260221
--- 1 ----
! 20260227
diff -Nrcpad gcc-15-20260221/gcc/ada/ChangeLog gcc-15-20260228/gcc/ada/ChangeLog
*** gcc-15-20260221/gcc/ada/ChangeLog	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/ChangeLog	Sat Feb 28 22:32:05 2026
***************
*** 1,3 ****
--- 1,18 ----
+ 2026-02-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/124226
+ 	* sem_res.adb (Resolve_Implicit_Dereference): Move declaration to...
+ 	* sem_res.ads (Resolve_Implicit_Dereference): ...here.
+ 	* sem_attr.adb (Resolve_Attribute) <Attribute_Access>: Also call
+ 	Resolve_Implicit_Dereference when resolving a protected operation.
+ 
+ 2026-02-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	PR ada/124224
+ 	* sem_aggr.adb (Resolve_Container_Aggregate): Minor tweaks.
+ 	(Resolve_Iterated_Association): Compute Typ on all paths.
+ 
  2026-02-20  Eric Botcazou  <ebotcazou@adacore.com>
  
  	* libgnat/s-stposu.adb (Finalize_Pool): Pass a local copy of the
diff -Nrcpad gcc-15-20260221/gcc/ada/freeze.adb gcc-15-20260228/gcc/ada/freeze.adb
*** gcc-15-20260221/gcc/ada/freeze.adb	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/freeze.adb	Sat Feb 28 22:32:05 2026
*************** package body Freeze is
*** 7355,7360 ****
--- 7355,7369 ----
  
           elsif Ekind (E) in E_Record_Type | E_Record_Subtype then
              if not In_Generic_Scope (E) then
+                --  If this is a class-wide equivalent type for a non-interface
+                --  root type, freeze the root type.
+ 
+                if Is_Class_Wide_Equivalent_Type (E)
+                  and then Present (Parent_Subtype (E))
+                then
+                   Freeze_And_Append (Parent_Subtype (E), N, Result);
+                end if;
+ 
                 Freeze_Record_Type (E);
              end if;
  
diff -Nrcpad gcc-15-20260221/gcc/ada/gcc-interface/decl.cc gcc-15-20260228/gcc/ada/gcc-interface/decl.cc
*** gcc-15-20260221/gcc/ada/gcc-interface/decl.cc	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/gcc-interface/decl.cc	Sat Feb 28 22:32:05 2026
*************** typedef struct vinfo
*** 8217,8223 ****
  
     DEBUG_INFO is true if we need to write debug information about the type.
  
!    IN_VARIANT is true if the componennt list is that of a variant.
  
     FIRST_FREE_POS, if nonzero, is the first (lowest) free field position in
     the outer record type down to this variant level.  It is nonzero only if
--- 8217,8223 ----
  
     DEBUG_INFO is true if we need to write debug information about the type.
  
!    IN_VARIANT is true if the component list is that of a variant.
  
     FIRST_FREE_POS, if nonzero, is the first (lowest) free field position in
     the outer record type down to this variant level.  It is nonzero only if
*************** components_to_record (Node_Id gnat_compo
*** 8334,8340 ****
        tree gnu_union_type;
        tree this_first_free_pos, gnu_variant_list = NULL_TREE;
        bool union_field_needs_strict_alignment = false;
!       bool innermost_variant_level = true;
        auto_vec <vinfo_t, 16> variant_types;
        vinfo_t *gnu_variant;
        unsigned int variants_align = 0;
--- 8334,8340 ----
        tree gnu_union_type;
        tree this_first_free_pos, gnu_variant_list = NULL_TREE;
        bool union_field_needs_strict_alignment = false;
!       bool innermost_of_unchecked_union = false;
        auto_vec <vinfo_t, 16> variant_types;
        vinfo_t *gnu_variant;
        unsigned int variants_align = 0;
*************** components_to_record (Node_Id gnat_compo
*** 8383,8397 ****
        /* For an unchecked union with a fixed part, we need to compute whether
  	 we are at the innermost level of the variant part.  */
        if (unchecked_union && gnu_field_list)
! 	for (variant = First_Non_Pragma (Variants (gnat_variant_part));
! 	     Present (variant);
! 	     variant = Next_Non_Pragma (variant))
! 	  if (Present (Component_List (variant))
! 	      && Present (Variant_Part (Component_List (variant))))
! 	    {
! 	      innermost_variant_level = false;
! 	      break;
! 	    }
  
        /* We build the variants in two passes.  The bulk of the work is done in
  	 the first pass, that is to say translating the GNAT nodes, building
--- 8383,8401 ----
        /* For an unchecked union with a fixed part, we need to compute whether
  	 we are at the innermost level of the variant part.  */
        if (unchecked_union && gnu_field_list)
! 	{
! 	  innermost_of_unchecked_union = true;
! 
! 	  for (variant = First_Non_Pragma (Variants (gnat_variant_part));
! 	       Present (variant);
! 	       variant = Next_Non_Pragma (variant))
! 	    if (Present (Component_List (variant))
! 		&& Present (Variant_Part (Component_List (variant))))
! 	      {
! 		innermost_of_unchecked_union = false;
! 		break;
! 	      }
! 	}
  
        /* We build the variants in two passes.  The bulk of the work is done in
  	 the first pass, that is to say translating the GNAT nodes, building
*************** components_to_record (Node_Id gnat_compo
*** 8438,8454 ****
  	     the outer variant, so as to flatten the rep-ed layout as much as
  	     possible, the reason being that we cannot do any flattening when
  	     a subtype statically selects a variant later on, for example for
! 	     an aggregate.  */
  	  has_rep
  	    = components_to_record (Component_List (variant), gnat_record_type,
! 				    NULL_TREE, gnu_variant_type, packed,
  				    definition, !all_rep_and_size, all_rep,
  				    unchecked_union, true, needs_xv_encodings,
  				    true, this_first_free_pos,
  				    (all_rep || this_first_free_pos)
! 				    && !(unchecked_union
! 				         && gnu_field_list
! 					 && innermost_variant_level)
  				    ? NULL : &gnu_rep_list);
  
  	  /* Translate the qualifier and annotate the GNAT node.  */
--- 8442,8458 ----
  	     the outer variant, so as to flatten the rep-ed layout as much as
  	     possible, the reason being that we cannot do any flattening when
  	     a subtype statically selects a variant later on, for example for
! 	     an aggregate; in that case, we force a packed layout because the
! 	     moved fields may overlap with packed bit-fields.  */
  	  has_rep
  	    = components_to_record (Component_List (variant), gnat_record_type,
! 				    NULL_TREE, gnu_variant_type, packed ||
! 				    (all_rep && innermost_of_unchecked_union),
  				    definition, !all_rep_and_size, all_rep,
  				    unchecked_union, true, needs_xv_encodings,
  				    true, this_first_free_pos,
  				    (all_rep || this_first_free_pos)
! 				    && !innermost_of_unchecked_union
  				    ? NULL : &gnu_rep_list);
  
  	  /* Translate the qualifier and annotate the GNAT node.  */
diff -Nrcpad gcc-15-20260221/gcc/ada/sem_aggr.adb gcc-15-20260228/gcc/ada/sem_aggr.adb
*** gcc-15-20260221/gcc/ada/sem_aggr.adb	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/sem_aggr.adb	Sat Feb 28 22:32:06 2026
*************** package body Sem_Aggr is
*** 3790,3796 ****
        --  a subtype indication or an iterator specification that determines
        --  an element type.
  
!       Asp   : constant Node_Id := Find_Value_Of_Aspect (Typ, Aspect_Aggregate);
  
        Empty_Subp          : Node_Id := Empty;
        Add_Named_Subp      : Node_Id := Empty;
--- 3790,3796 ----
        --  a subtype indication or an iterator specification that determines
        --  an element type.
  
!       Asp : constant Node_Id := Find_Value_Of_Aspect (Typ, Aspect_Aggregate);
  
        Empty_Subp          : Node_Id := Empty;
        Add_Named_Subp      : Node_Id := Empty;
*************** package body Sem_Aggr is
*** 3807,3813 ****
           Key_Type  : Entity_Id;
           Elmt_Type : Entity_Id)
        is
!          Loc           : constant Source_Ptr := Sloc (N);
           Choice        : Node_Id;
           Copy          : Node_Id;
           Ent           : Entity_Id;
--- 3807,3814 ----
           Key_Type  : Entity_Id;
           Elmt_Type : Entity_Id)
        is
!          Loc : constant Source_Ptr := Sloc (N);
! 
           Choice        : Node_Id;
           Copy          : Node_Id;
           Ent           : Entity_Id;
*************** package body Sem_Aggr is
*** 3938,3944 ****
                and then Present (Key_Type)
                and then Base_Type (Entity (Choice)) = Base_Type (Key_Type)
              then
!                null;
  
              elsif Is_Object_Reference (Choice) then
                 declare
--- 3939,3945 ----
                and then Present (Key_Type)
                and then Base_Type (Entity (Choice)) = Base_Type (Key_Type)
              then
!                Typ := Entity (Choice);
  
              elsif Is_Object_Reference (Choice) then
                 declare
*************** package body Sem_Aggr is
*** 3950,3962 ****
                        Reverse_Present     => Reverse_Present (Comp),
                        Iterator_Filter     => Empty,
                        Subtype_Indication  => Empty);
                 begin
                    Set_Iterator_Specification (Comp, I_Spec);
                    Set_Defining_Identifier (Comp, Empty);
- 
                    Resolve_Iterated_Association (Comp, Key_Type, Elmt_Type);
-                   --  Recursive call to expand association as iterator_spec
- 
                    return;
                 end;
  
--- 3951,3963 ----
                        Reverse_Present     => Reverse_Present (Comp),
                        Iterator_Filter     => Empty,
                        Subtype_Indication  => Empty);
+ 
                 begin
+                   --  Recurse to expand association as iterator_spec
+ 
                    Set_Iterator_Specification (Comp, I_Spec);
                    Set_Defining_Identifier (Comp, Empty);
                    Resolve_Iterated_Association (Comp, Key_Type, Elmt_Type);
                    return;
                 end;
  
*************** package body Sem_Aggr is
*** 3968,3975 ****
                 Typ := Etype (Choice);  --  assume unique for now
              end if;
  
!             Loop_Param_Id :=
!               Defining_Identifier (Comp);
  
              Id_Name := Chars (Loop_Param_Id);
           end if;
--- 3969,3975 ----
                 Typ := Etype (Choice);  --  assume unique for now
              end if;
  
!             Loop_Param_Id := Defining_Identifier (Comp);
  
              Id_Name := Chars (Loop_Param_Id);
           end if;
*************** package body Sem_Aggr is
*** 3978,3986 ****
           --  visible in the expression for the component, and needed for its
           --  analysis.
  
!          Id := Make_Defining_Identifier (Sloc (Comp), Id_Name);
!          Ent := New_Internal_Entity (E_Loop,
!                   Current_Scope, Sloc (Comp), 'L');
           Set_Etype  (Ent, Standard_Void_Type);
           Set_Parent (Ent, Parent (Comp));
           Push_Scope (Ent);
--- 3978,3985 ----
           --  visible in the expression for the component, and needed for its
           --  analysis.
  
!          Id  := Make_Defining_Identifier (Sloc (Comp), Id_Name);
!          Ent := New_Internal_Entity (E_Loop, Current_Scope, Sloc (Comp), 'L');
           Set_Etype  (Ent, Standard_Void_Type);
           Set_Parent (Ent, Parent (Comp));
           Push_Scope (Ent);
*************** package body Sem_Aggr is
*** 4082,4093 ****
                    Comp : Node_Id := First (Component_Associations (N));
                 begin
                    while Present (Comp) loop
!                      if Nkind (Comp) in
!                        N_Iterated_Component_Association |
!                        N_Iterated_Element_Association
                       then
!                         Resolve_Iterated_Association
!                           (Comp, Empty, Elmt_Type);
                       else
                          Error_Msg_N ("illegal component association "
                            & "for unnamed container aggregate", Comp);
--- 4081,4090 ----
                    Comp : Node_Id := First (Component_Associations (N));
                 begin
                    while Present (Comp) loop
!                      if Nkind (Comp) in N_Iterated_Component_Association
!                                       | N_Iterated_Element_Association
                       then
!                         Resolve_Iterated_Association (Comp, Empty, Elmt_Type);
                       else
                          Error_Msg_N ("illegal component association "
                            & "for unnamed container aggregate", Comp);
*************** package body Sem_Aggr is
*** 4143,4154 ****
  
                    Analyze_And_Resolve (Expression (Comp), Elmt_Type);
  
!                elsif Nkind (Comp) in
!                  N_Iterated_Component_Association |
!                  N_Iterated_Element_Association
                 then
!                   Resolve_Iterated_Association
!                     (Comp, Key_Type, Elmt_Type);
                 end if;
  
                 Next (Comp);
--- 4140,4149 ----
  
                    Analyze_And_Resolve (Expression (Comp), Elmt_Type);
  
!                elsif Nkind (Comp) in N_Iterated_Component_Association
!                                    | N_Iterated_Element_Association
                 then
!                   Resolve_Iterated_Association (Comp, Key_Type, Elmt_Type);
                 end if;
  
                 Next (Comp);
*************** package body Sem_Aggr is
*** 4203,4211 ****
                          Analyze_And_Resolve (Expression (Comp), Comp_Type);
                       end if;
  
!                   elsif Nkind (Comp) in
!                     N_Iterated_Component_Association |
!                     N_Iterated_Element_Association
                    then
                       Resolve_Iterated_Association
                         (Comp, Index_Type, Comp_Type);
--- 4198,4205 ----
                          Analyze_And_Resolve (Expression (Comp), Comp_Type);
                       end if;
  
!                   elsif Nkind (Comp) in N_Iterated_Component_Association
!                                       | N_Iterated_Element_Association
                    then
                       Resolve_Iterated_Association
                         (Comp, Index_Type, Comp_Type);
diff -Nrcpad gcc-15-20260221/gcc/ada/sem_attr.adb gcc-15-20260228/gcc/ada/sem_attr.adb
*** gcc-15-20260221/gcc/ada/sem_attr.adb	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/sem_attr.adb	Sat Feb 28 22:32:06 2026
*************** package body Sem_Attr is
*** 11620,11625 ****
--- 11620,11626 ----
                 end if;
  
                 Resolve (Prefix (P));
+                Resolve_Implicit_Dereference (Prefix (P));
  
                 if not Is_Overloaded (P) then
                    Generate_Reference (Entity (Selector_Name (P)), P);
diff -Nrcpad gcc-15-20260221/gcc/ada/sem_ch12.adb gcc-15-20260228/gcc/ada/sem_ch12.adb
*** gcc-15-20260221/gcc/ada/sem_ch12.adb	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/sem_ch12.adb	Sat Feb 28 22:32:06 2026
*************** package body Sem_Ch12 is
*** 2596,2615 ****
                 if Ekind (Etype (Match)) /= E_Void
                   and then Is_Mutably_Tagged_Type (Etype (Match))
                 then
-                   --  The declaration of the CW-equivalent type of a mutably
-                   --  tagged type is analyzed when the tagged type is frozen.
- 
-                   if Nkind (I_Node) /= N_Formal_Package_Declaration
-                     and then Ekind (Defining_Identifier (Assoc.An_Formal)) /=
-                                                               E_Incomplete_Type
-                   then
-                      Freeze_Before (I_Node, Root_Type (Etype (Match)));
-                   end if;
- 
                    Rewrite (Match, New_Occurrence_Of
                      (Class_Wide_Equivalent_Type
                        (Etype (Match)), Sloc (Match)));
- 
                    Analyze (Match);
                 end if;
  
--- 2596,2604 ----
diff -Nrcpad gcc-15-20260221/gcc/ada/sem_ch13.adb gcc-15-20260228/gcc/ada/sem_ch13.adb
*** gcc-15-20260221/gcc/ada/sem_ch13.adb	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/sem_ch13.adb	Sat Feb 28 22:32:06 2026
*************** package body Sem_Ch13 is
*** 7121,7137 ****
                             Set_Class_Wide_Equivalent_Type (Etyp,
                               Make_CW_Equivalent_Type (Etyp, Empty, Actions));
  
!                            --  Add a Compile_Time_Error sizing check as a hint
!                            --  to the backend.
  
!                            Append_To (Actions,
!                              Make_CW_Size_Compile_Check
!                                (Etype (Etyp), U_Ent));
  
!                            --  Set the expansion to occur during freezing when
!                            --  everything is analyzed
  
!                            Append_Freeze_Actions (Etyp, Actions);
  
                             Set_Is_Mutably_Tagged_Type (Etyp);
                          end;
--- 7121,7137 ----
                             Set_Class_Wide_Equivalent_Type (Etyp,
                               Make_CW_Equivalent_Type (Etyp, Empty, Actions));
  
!                            --  Insert its declaration immediately after that of
!                            --  the root type.
  
!                            Insert_Actions_After
!                              (Declaration_Node (Etype (Etyp)), Actions);
  
!                            --  Add a Compile_Time_Error size check for the root
!                            --  type at the freeze point.
  
!                            Append_Freeze_Action (Etype (Etyp),
!                              Make_CW_Size_Compile_Check (Etype (Etyp), U_Ent));
  
                             Set_Is_Mutably_Tagged_Type (Etyp);
                          end;
diff -Nrcpad gcc-15-20260221/gcc/ada/sem_ch3.adb gcc-15-20260228/gcc/ada/sem_ch3.adb
*** gcc-15-20260221/gcc/ada/sem_ch3.adb	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/sem_ch3.adb	Sat Feb 28 22:32:06 2026
*************** package body Sem_Ch3 is
*** 17998,18009 ****
  
                    Insert_List_After_And_Analyze (N, Actions);
  
!                   --  Add a Compile_Time_Error sizing check as a hint
!                   --  to the backend since we don't know the true size of
!                   --  anything at this point.
  
!                   Append_Freeze_Actions (T,
!                     New_List (Make_CW_Size_Compile_Check (T, Root_Class_Typ)));
                 end if;
              end if;
           end;
--- 17998,18007 ----
  
                    Insert_List_After_And_Analyze (N, Actions);
  
!                   --  Add a Compile_Time_Error size check at the freeze point
  
!                   Append_Freeze_Action (T,
!                     Make_CW_Size_Compile_Check (T, Root_Class_Typ));
                 end if;
              end if;
           end;
diff -Nrcpad gcc-15-20260221/gcc/ada/sem_res.adb gcc-15-20260228/gcc/ada/sem_res.adb
*** gcc-15-20260221/gcc/ada/sem_res.adb	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/sem_res.adb	Sat Feb 28 22:32:06 2026
*************** package body Sem_Res is
*** 278,289 ****
     --  is the context type, which is used when the operation is a protected
     --  function with no arguments, and the return value is indexed.
  
-    procedure Resolve_Implicit_Dereference (P : Node_Id);
-    --  Called when P is the prefix of an indexed component, or of a selected
-    --  component, or of a slice. If P is of an access type, we unconditionally
-    --  rewrite it as an explicit dereference. This ensures that the expander
-    --  and the code generator have a fully explicit tree to work with.
- 
     procedure Resolve_Intrinsic_Operator (N : Node_Id; Typ : Entity_Id);
     --  A call to a user-defined intrinsic operator is rewritten as a call to
     --  the corresponding predefined operator, with suitable conversions. Note
--- 278,283 ----
diff -Nrcpad gcc-15-20260221/gcc/ada/sem_res.ads gcc-15-20260228/gcc/ada/sem_res.ads
*** gcc-15-20260221/gcc/ada/sem_res.ads	Sat Feb 21 22:32:05 2026
--- gcc-15-20260228/gcc/ada/sem_res.ads	Sat Feb 28 22:32:06 2026
*************** package Sem_Res is
*** 133,138 ****
--- 133,144 ----
     --  own type. For now we assume that the prefix cannot be overloaded and
     --  the name of the entry plays no role in the resolution.
  
+    procedure Resolve_Implicit_Dereference (P : Node_Id);
+    --  Called when P is the prefix of an indexed component, or of a selected
+    --  component, or of a slice. If P is of an access type, we unconditionally
+    --  rewrite it as an explicit dereference. This ensures that the expander
+    --  and the code generator have a fully explicit tree to work with.
+ 
     procedure Resolve_Membership_Equality (N : Node_Id; Typ : Entity_Id);
     --  Resolve the equality operator in an individual membership test
  
diff -Nrcpad gcc-15-20260221/gcc/config/loongarch/lasx.md gcc-15-20260228/gcc/config/loongarch/lasx.md
*** gcc-15-20260221/gcc/config/loongarch/lasx.md	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/config/loongarch/lasx.md	Sat Feb 28 22:32:06 2026
***************
*** 2636,2694 ****
    [(set_attr "type" "simd_int_arith")
     (set_attr "mode" "<MODE>")])
  
- (define_expand "copysign<mode>3"
-   [(set (match_dup 4)
- 	(and:FLASX
- 	  (not:FLASX (match_dup 3))
- 	  (match_operand:FLASX 1 "register_operand")))
-    (set (match_dup 5)
- 	(and:FLASX (match_dup 3)
- 		   (match_operand:FLASX 2 "reg_or_vector_same_val_operand")))
-    (set (match_operand:FLASX 0 "register_operand")
- 	(ior:FLASX (match_dup 4) (match_dup 5)))]
-   "ISA_HAS_LASX"
- {
-   /* copysign (x, -1) should instead be expanded as setting the sign
-      bit.  */
-   if (!REG_P (operands[2]))
-     {
-       rtx op2_elt = unwrap_const_vec_duplicate (operands[2]);
-       if (GET_CODE (op2_elt) == CONST_DOUBLE
- 	  && real_isneg (CONST_DOUBLE_REAL_VALUE (op2_elt)))
- 	{
- 	  rtx n = GEN_INT (8 * GET_MODE_SIZE (<UNITMODE>mode) - 1);
- 	  operands[0] = lowpart_subreg (<VIMODE256>mode, operands[0],
- 					<MODE>mode);
- 	  operands[1] = lowpart_subreg (<VIMODE256>mode, operands[1],
- 					<MODE>mode);
- 	  emit_insn (gen_lasx_xvbitseti_<lasxfmt> (operands[0],
- 						   operands[1], n));
- 	  DONE;
- 	}
-     }
- 
-   operands[2] = force_reg (<MODE>mode, operands[2]);
-   operands[3] = loongarch_build_signbit_mask (<MODE>mode, 1, 0);
- 
-   operands[4] = gen_reg_rtx (<MODE>mode);
-   operands[5] = gen_reg_rtx (<MODE>mode);
- })
- 
- (define_expand "xorsign<mode>3"
-   [(set (match_dup 4)
-     (and:FLASX (match_dup 3)
-         (match_operand:FLASX 2 "register_operand")))
-    (set (match_operand:FLASX 0 "register_operand")
-     (xor:FLASX (match_dup 4)
-          (match_operand:FLASX 1 "register_operand")))]
-   "ISA_HAS_LASX"
- {
-   operands[3] = loongarch_build_signbit_mask (<MODE>mode, 1, 0);
- 
-   operands[4] = gen_reg_rtx (<MODE>mode);
- })
- 
- 
  (define_insn "absv4df2"
    [(set (match_operand:V4DF 0 "register_operand" "=f")
  	(abs:V4DF (match_operand:V4DF 1 "register_operand" "f")))]
--- 2636,2641 ----
diff -Nrcpad gcc-15-20260221/gcc/config/loongarch/loongarch.cc gcc-15-20260228/gcc/config/loongarch/loongarch.cc
*** gcc-15-20260221/gcc/config/loongarch/loongarch.cc	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/config/loongarch/loongarch.cc	Sat Feb 28 22:32:06 2026
*************** loongarch_const_vector_bitimm_set_p (rtx
*** 1722,1749 ****
        && (GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT
  	  || GET_MODE_CLASS (mode) == MODE_VECTOR_INT))
      {
!       unsigned HOST_WIDE_INT val;
! 
!       if (GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
! 	{
! 	  rtx val_s = CONST_VECTOR_ELT (op, 0);
! 	  const REAL_VALUE_TYPE *x = CONST_DOUBLE_REAL_VALUE (val_s);
! 	  if (GET_MODE (val_s) == DFmode)
! 	    {
! 	      long tmp[2];
! 	      REAL_VALUE_TO_TARGET_DOUBLE (*x, tmp);
! 	      val = (unsigned HOST_WIDE_INT) tmp[1] << 32 | tmp[0];
! 	    }
! 	  else
! 	    {
! 	      long tmp;
! 	      REAL_VALUE_TO_TARGET_SINGLE (*x, tmp);
! 	      val = (unsigned HOST_WIDE_INT) tmp;
! 	    }
! 	}
!       else
! 	val = UINTVAL (CONST_VECTOR_ELT (op, 0));
! 
        int vlog2 = exact_log2 (val & GET_MODE_MASK (GET_MODE_INNER (mode)));
  
        if (vlog2 != -1)
--- 1722,1728 ----
        && (GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT
  	  || GET_MODE_CLASS (mode) == MODE_VECTOR_INT))
      {
!       unsigned HOST_WIDE_INT val = UINTVAL (CONST_VECTOR_ELT (op, 0));
        int vlog2 = exact_log2 (val & GET_MODE_MASK (GET_MODE_INNER (mode)));
  
        if (vlog2 != -1)
*************** loongarch_const_vector_same_bytes_p (rtx
*** 1835,1861 ****
  
    first = CONST_VECTOR_ELT (op, 0);
    bytes = GET_MODE_UNIT_SIZE (mode);
! 
!   if (GET_MODE_CLASS (mode) == MODE_VECTOR_FLOAT)
!     {
!       rtx val_s = CONST_VECTOR_ELT (op, 0);
!       const REAL_VALUE_TYPE *x = CONST_DOUBLE_REAL_VALUE (val_s);
!       if (GET_MODE (val_s) == DFmode)
! 	{
! 	  long tmp[2];
! 	  REAL_VALUE_TO_TARGET_DOUBLE (*x, tmp);
! 	  val = (unsigned HOST_WIDE_INT) tmp[1] << 32 | tmp[0];
! 	}
!       else
! 	{
! 	  long tmp;
! 	  REAL_VALUE_TO_TARGET_SINGLE (*x, tmp);
! 	  val = (unsigned HOST_WIDE_INT) tmp;
! 	}
!     }
!   else
!     val = UINTVAL (first);
! 
    first_byte = val & 0xff;
    for (i = 1; i < bytes; i++)
      {
--- 1814,1820 ----
  
    first = CONST_VECTOR_ELT (op, 0);
    bytes = GET_MODE_UNIT_SIZE (mode);
!   val = INTVAL (first);
    first_byte = val & 0xff;
    for (i = 1; i < bytes; i++)
      {
*************** loongarch_print_operand (FILE *file, rtx
*** 6483,6517 ****
  	{
  	  machine_mode mode = GET_MODE_INNER (GET_MODE (op));
  	  rtx val_s = CONST_VECTOR_ELT (op, 0);
! 	  unsigned HOST_WIDE_INT val;
! 
! 	  if (GET_MODE_CLASS (mode) == MODE_FLOAT)
  	    {
! 	      const REAL_VALUE_TYPE *x = CONST_DOUBLE_REAL_VALUE (val_s);
! 	      if (GET_MODE (val_s) == DFmode)
! 		{
! 		  long tmp[2];
! 		  REAL_VALUE_TO_TARGET_DOUBLE (*x, tmp);
! 		  val = (unsigned HOST_WIDE_INT) (tmp[1] << 32 | tmp[0]);
! 		}
! 	      else
  		{
! 		  long tmp;
! 		  REAL_VALUE_TO_TARGET_SINGLE (*x, tmp);
! 		  val = (unsigned HOST_WIDE_INT) tmp;
  		}
  	    }
- 	  else
- 	    val = UINTVAL (val_s);
- 
- 	  int vlog2 = exact_log2 (val & GET_MODE_MASK (mode));
- 	  if (vlog2 != -1)
- 	    fprintf (file, "%d", vlog2);
- 	  else
- 	    output_operand_lossage ("invalid use of '%%%c'", letter);
  	}
!       else
! 	output_operand_lossage ("invalid use of '%%%c'", letter);
        break;
  
      case 'W':
--- 6442,6459 ----
  	{
  	  machine_mode mode = GET_MODE_INNER (GET_MODE (op));
  	  rtx val_s = CONST_VECTOR_ELT (op, 0);
! 	  if (CONST_INT_P (val_s))
  	    {
! 	      unsigned HOST_WIDE_INT val = UINTVAL (val_s);
! 	      int vlog2 = exact_log2 (val & GET_MODE_MASK (mode));
! 	      if (vlog2 != -1)
  		{
! 		  fprintf (file, "%d", vlog2);
! 		  break;
  		}
  	    }
  	}
!       output_operand_lossage ("invalid use of '%%%c'", letter);
        break;
  
      case 'W':
*************** loongarch_build_signbit_mask (machine_mo
*** 10965,10971 ****
      return force_reg (inner_mode, mask);
  
    v = loongarch_build_const_vector (vec_mode, vect, mask);
!   return force_reg (vec_mode, v);
  }
  
  /* Use rsqrte instruction and Newton-Rhapson to compute the approximation of
--- 10907,10913 ----
      return force_reg (inner_mode, mask);
  
    v = loongarch_build_const_vector (vec_mode, vect, mask);
!   return v;
  }
  
  /* Use rsqrte instruction and Newton-Rhapson to compute the approximation of
*************** void loongarch_emit_swrsqrtsf (rtx res,
*** 11014,11023 ****
        if (VECTOR_MODE_P (mode))
  	{
  	  machine_mode imode = related_int_vector_mode (mode).require ();
! 	  rtx mask = gen_reg_rtx (imode);
! 	  emit_insn (gen_rtx_SET (mask, gen_rtx_NE (imode, a, zero)));
! 	  emit_insn (gen_rtx_SET (x0, gen_rtx_AND (mode, x0,
! 						   gen_lowpart (mode, mask))));
  	}
        else
  	{
--- 10956,10966 ----
        if (VECTOR_MODE_P (mode))
  	{
  	  machine_mode imode = related_int_vector_mode (mode).require ();
! 	  rtx mask = force_reg (imode, gen_rtx_NE (imode, a, zero));
! 	  emit_move_insn (gen_lowpart (imode, x0),
! 			  gen_rtx_AND (imode,
! 				       gen_lowpart (imode, x0),
! 				       mask));
  	}
        else
  	{
diff -Nrcpad gcc-15-20260221/gcc/config/loongarch/lsx.md gcc-15-20260228/gcc/config/loongarch/lsx.md
*** gcc-15-20260221/gcc/config/loongarch/lsx.md	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/config/loongarch/lsx.md	Sat Feb 28 22:32:06 2026
***************
*** 2226,2284 ****
    [(set_attr "type" "simd_int_arith")
     (set_attr "mode" "<MODE>")])
  
- (define_expand "copysign<mode>3"
-   [(set (match_dup 4)
- 	(and:FLSX
- 	  (not:FLSX (match_dup 3))
- 	  (match_operand:FLSX 1 "register_operand")))
-    (set (match_dup 5)
- 	(and:FLSX (match_dup 3)
- 		  (match_operand:FLSX 2 "reg_or_vector_same_val_operand")))
-    (set (match_operand:FLSX 0 "register_operand")
- 	(ior:FLSX (match_dup 4) (match_dup 5)))]
-   "ISA_HAS_LSX"
- {
-   /* copysign (x, -1) should instead be expanded as setting the sign
-      bit.  */
-   if (!REG_P (operands[2]))
-     {
-       rtx op2_elt = unwrap_const_vec_duplicate (operands[2]);
-       if (GET_CODE (op2_elt) == CONST_DOUBLE
- 	  && real_isneg (CONST_DOUBLE_REAL_VALUE (op2_elt)))
- 	{
- 	  rtx n = GEN_INT (8 * GET_MODE_SIZE (<UNITMODE>mode) - 1);
- 	  operands[0] = lowpart_subreg (<VIMODE>mode, operands[0],
- 					<MODE>mode);
- 	  operands[1] = lowpart_subreg (<VIMODE>mode, operands[1],
- 					<MODE>mode);
- 	  emit_insn (gen_lsx_vbitseti_<lsxfmt> (operands[0], operands[1],
- 						n));
- 	  DONE;
- 	}
-     }
- 
-   operands[2] = force_reg (<MODE>mode, operands[2]);
-   operands[3] = loongarch_build_signbit_mask (<MODE>mode, 1, 0);
- 
-   operands[4] = gen_reg_rtx (<MODE>mode);
-   operands[5] = gen_reg_rtx (<MODE>mode);
- })
- 
- (define_expand "@xorsign<mode>3"
-   [(set (match_dup 4)
-     (and:FLSX (match_dup 3)
-         (match_operand:FLSX 2 "register_operand")))
-    (set (match_operand:FLSX 0 "register_operand")
-     (xor:FLSX (match_dup 4)
-          (match_operand:FLSX 1 "register_operand")))]
-   "ISA_HAS_LSX"
- {
-   operands[3] = loongarch_build_signbit_mask (<MODE>mode, 1, 0);
- 
-   operands[4] = gen_reg_rtx (<MODE>mode);
- })
- 
- 
  (define_insn "absv2df2"
    [(set (match_operand:V2DF 0 "register_operand" "=f")
  	(abs:V2DF (match_operand:V2DF 1 "register_operand" "f")))]
--- 2226,2231 ----
diff -Nrcpad gcc-15-20260221/gcc/config/loongarch/predicates.md gcc-15-20260228/gcc/config/loongarch/predicates.md
*** gcc-15-20260221/gcc/config/loongarch/predicates.md	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/config/loongarch/predicates.md	Sat Feb 28 22:32:06 2026
***************
*** 647,652 ****
--- 647,664 ----
    return loongarch_const_vector_same_int_p (op, mode);
  })
  
+ (define_predicate "const_vector_neg_fp_operand"
+   (match_code "const_vector")
+ {
+   machine_mode imode = related_int_vector_mode (mode).require ();
+   rtx mask = loongarch_build_signbit_mask (imode, 1, 0);
+ 
+   op = gen_lowpart (imode, op);
+   return rtx_equal_p (mask,
+ 		      simplify_const_binary_operation (AND, imode, mask,
+ 						       op));
+ })
+ 
  (define_predicate "par_const_vector_shf_set_operand"
    (match_code "parallel")
  {
***************
*** 673,678 ****
--- 685,694 ----
    (ior (match_operand 0 "register_operand")
         (match_operand 0 "const_vector_same_uimm_operand")))
  
+ (define_predicate "reg_or_vector_neg_fp_operand"
+   (ior (match_operand 0 "register_operand")
+        (match_operand 0 "const_vector_neg_fp_operand")))
+ 
  ;; PARALLEL for a vec_select that selects all the even or all the odd
  ;; elements of a vector of MODE.
  (define_special_predicate "vect_par_cnst_even_or_odd_half"
diff -Nrcpad gcc-15-20260221/gcc/config/loongarch/simd.md gcc-15-20260228/gcc/config/loongarch/simd.md
*** gcc-15-20260221/gcc/config/loongarch/simd.md	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/config/loongarch/simd.md	Sat Feb 28 22:32:06 2026
***************
*** 984,993 ****
  })
  
  (define_insn "xor<mode>3"
!   [(set (match_operand:ALLVEC 0 "register_operand" "=f,f,f")
! 	(xor:ALLVEC
! 	  (match_operand:ALLVEC 1 "register_operand" "f,f,f")
! 	  (match_operand:ALLVEC 2 "reg_or_vector_same_val_operand" "f,YC,Urv8")))]
    ""
    "@
     <x>vxor.v\t%<wu>0,%<wu>1,%<wu>2
--- 984,993 ----
  })
  
  (define_insn "xor<mode>3"
!   [(set (match_operand:IVEC 0 "register_operand" "=f,f,f")
! 	(xor:IVEC
! 	  (match_operand:IVEC 1 "register_operand" "f,f,f")
! 	  (match_operand:IVEC 2 "reg_or_vector_same_val_operand" "f,YC,Urv8")))]
    ""
    "@
     <x>vxor.v\t%<wu>0,%<wu>1,%<wu>2
***************
*** 997,1006 ****
     (set_attr "mode" "<MODE>")])
  
  (define_insn "ior<mode>3"
!   [(set (match_operand:ALLVEC 0 "register_operand" "=f,f,f")
! 	(ior:ALLVEC
! 	  (match_operand:ALLVEC 1 "register_operand" "f,f,f")
! 	  (match_operand:ALLVEC 2 "reg_or_vector_same_val_operand" "f,YC,Urv8")))]
    ""
    "@
     <x>vor.v\t%<wu>0,%<wu>1,%<wu>2
--- 997,1006 ----
     (set_attr "mode" "<MODE>")])
  
  (define_insn "ior<mode>3"
!   [(set (match_operand:IVEC 0 "register_operand" "=f,f,f")
! 	(ior:IVEC
! 	  (match_operand:IVEC 1 "register_operand" "f,f,f")
! 	  (match_operand:IVEC 2 "reg_or_vector_same_val_operand" "f,YC,Urv8")))]
    ""
    "@
     <x>vor.v\t%<wu>0,%<wu>1,%<wu>2
***************
*** 1010,1019 ****
     (set_attr "mode" "<MODE>")])
  
  (define_insn "and<mode>3"
!   [(set (match_operand:ALLVEC 0 "register_operand" "=f,f,f")
! 	(and:ALLVEC
! 	  (match_operand:ALLVEC 1 "register_operand" "f,f,f")
! 	  (match_operand:ALLVEC 2 "reg_or_vector_same_val_operand" "f,YZ,Urv8")))]
    ""
  {
    switch (which_alternative)
--- 1010,1019 ----
     (set_attr "mode" "<MODE>")])
  
  (define_insn "and<mode>3"
!   [(set (match_operand:IVEC 0 "register_operand" "=f,f,f")
! 	(and:IVEC
! 	  (match_operand:IVEC 1 "register_operand" "f,f,f")
! 	  (match_operand:IVEC 2 "reg_or_vector_same_val_operand" "f,YZ,Urv8")))]
    ""
  {
    switch (which_alternative)
***************
*** 1022,1048 ****
        return "<x>vand.v\t%<wu>0,%<wu>1,%<wu>2";
      case 1:
        {
! 	rtx elt0 = CONST_VECTOR_ELT (operands[2], 0);
! 	unsigned HOST_WIDE_INT val;
! 	if (GET_MODE_CLASS (<MODE>mode) == MODE_VECTOR_FLOAT)
! 	  {
! 	  const REAL_VALUE_TYPE *x = CONST_DOUBLE_REAL_VALUE (elt0);
! 	  if (GET_MODE (elt0) == DFmode)
! 	    {
! 	      long tmp[2];
! 	      REAL_VALUE_TO_TARGET_DOUBLE (*x, tmp);
! 	      val = ~((unsigned HOST_WIDE_INT) tmp[1] << 32 | tmp[0]);
! 	    }
! 	  else
! 	    {
! 	      long tmp;
! 	      REAL_VALUE_TO_TARGET_SINGLE (*x, tmp);
! 	      val = ~((unsigned HOST_WIDE_INT) tmp);
! 	    }
! 	  }
! 	else
! 	  val = ~UINTVAL (elt0);
! 	operands[2] = loongarch_gen_const_int_vector (<VIMODE>mode, val & (-val));
  	return "<x>vbitclri.%v0\t%<wu>0,%<wu>1,%V2";
        }
      case 2:
--- 1022,1030 ----
        return "<x>vand.v\t%<wu>0,%<wu>1,%<wu>2";
      case 1:
        {
! 	operands[2] = simplify_const_unary_operation (NOT, <MODE>mode,
! 						      operands[2],
! 						      <MODE>mode);
  	return "<x>vbitclri.%v0\t%<wu>0,%<wu>1,%V2";
        }
      case 2:
***************
*** 1054,1059 ****
--- 1036,1087 ----
    [(set_attr "type" "simd_logic,simd_bit,simd_logic")
     (set_attr "mode" "<MODE>")])
  
+ (define_expand "copysign<mode>3"
+   [(match_operand:FVEC 0 "register_operand")
+    (match_operand:FVEC 1 "register_operand")
+    (match_operand:FVEC 2 "reg_or_vector_neg_fp_operand")]
+   ""
+ {
+   machine_mode imode = <VIMODE>mode;
+   rtx op[3], mask = loongarch_build_signbit_mask (imode, 1, 0);
+ 
+   /* Pun the operation into fixed-point bitwise operations.  */
+   for (int i = 0; i < 3; i++)
+     op[i] = lowpart_subreg (imode, operands[i], <MODE>mode);
+ 
+   /* Copysign from a positive const should have been already simplified
+      to abs, ignore the case here.  Copysign from a negative const is
+      a simple vbitset which is an alternative of ior (see above).  */
+   if (const_vector_neg_fp_operand (operands[2], <MODE>mode))
+     emit_insn (gen_ior<vimode>3 (op[0], op[1], mask));
+   else
+     {
+       mask = force_reg (imode, mask);
+       emit_insn (gen_<simd_isa>_<x>vbitsel_<simdfmt_as_i> (op[0], op[1],
+ 							   op[2], mask));
+     }
+ 
+   DONE;
+ })
+ 
+ (define_expand "@xorsign<mode>3"
+   [(match_operand:FVEC 0 "register_operand")
+    (match_operand:FVEC 1 "register_operand")
+    (match_operand:FVEC 2 "register_operand")]
+   ""
+ {
+   machine_mode imode = <VIMODE>mode;
+   rtx op[3];
+ 
+   for (int i = 0; i < 3; i++)
+     op[i] = lowpart_subreg (imode, operands[i], <MODE>mode);
+ 
+   rtx t = loongarch_build_signbit_mask (imode, 1, 0);
+   t = force_reg (imode, simplify_gen_binary (AND, imode, op[2], t));
+   emit_move_insn (op[0], simplify_gen_binary (XOR, imode, op[1], t));
+   DONE;
+ })
+ 
  ; The LoongArch SX Instructions.
  (include "lsx.md")
  
diff -Nrcpad gcc-15-20260221/gcc/doc/sourcebuild.texi gcc-15-20260228/gcc/doc/sourcebuild.texi
*** gcc-15-20260221/gcc/doc/sourcebuild.texi	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/doc/sourcebuild.texi	Sat Feb 28 22:32:07 2026
*************** at plain @option{-O2}.
*** 1975,1980 ****
--- 1975,1983 ----
  @item tls
  Target supports thread-local storage.
  
+ @item tls_link
+ Target supports linking TLS executables.
+ 
  @item tls_native
  Target supports native (rather than emulated) thread-local storage.
  
diff -Nrcpad gcc-15-20260221/gcc/gcc.cc gcc-15-20260228/gcc/gcc.cc
*** gcc-15-20260221/gcc/gcc.cc	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/gcc.cc	Sat Feb 28 22:32:07 2026
*************** find_fortran_preinclude_file (int argc,
*** 11092,11098 ****
    return result;
  }
  
! /* The function takes any number of arguments and joins them together.
  
     This seems to be necessary to build "-fjoined=foo.b" from "-fseparate foo.a"
     with a %{fseparate*:-fjoined=%.b$*} rule without adding undesired spaces:
--- 11092,11099 ----
    return result;
  }
  
! /* The function takes any number of arguments and joins them together,
!    escaping any special characters.
  
     This seems to be necessary to build "-fjoined=foo.b" from "-fseparate foo.a"
     with a %{fseparate*:-fjoined=%.b$*} rule without adding undesired spaces:
*************** find_fortran_preinclude_file (int argc,
*** 11105,11116 ****
  static const char *
  join_spec_func (int argc, const char **argv)
  {
!   if (argc == 1)
!     return argv[0];
!   for (int i = 0; i < argc; ++i)
!     obstack_grow (&obstack, argv[i], strlen (argv[i]));
!   obstack_1grow (&obstack, '\0');
!   return XOBFINISH (&obstack, const char *);
  }
  
  /* If any character in ORIG fits QUOTE_P (_, P), reallocate the string
--- 11106,11120 ----
  static const char *
  join_spec_func (int argc, const char **argv)
  {
!   const char *result = argv[0];
!   if (argc != 1)
!     {
!       for (int i = 0; i < argc; ++i)
! 	obstack_grow (&obstack, argv[i], strlen (argv[i]));
!       obstack_1grow (&obstack, '\0');
!       result = XOBFINISH (&obstack, const char *);
!     }
!   return quote_spec (xstrdup (result));
  }
  
  /* If any character in ORIG fits QUOTE_P (_, P), reallocate the string
diff -Nrcpad gcc-15-20260221/gcc/lto/ChangeLog gcc-15-20260228/gcc/lto/ChangeLog
*** gcc-15-20260221/gcc/lto/ChangeLog	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/lto/ChangeLog	Sat Feb 28 22:32:07 2026
***************
*** 1,3 ****
--- 1,12 ----
+ 2026-02-26  Michal Jires  <mjires@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-01-11  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/121588
+ 	* lto-symtab.cc (lto_symtab_merge_symbols): Set body_removed
+ 	for symbols resolved outside of IR.
+ 
  2025-12-03  Siddhesh Poyarekar  <siddhesh@gotplt.org>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260221/gcc/lto/lto-symtab.cc gcc-15-20260228/gcc/lto/lto-symtab.cc
*** gcc-15-20260221/gcc/lto/lto-symtab.cc	Sat Feb 21 22:32:06 2026
--- gcc-15-20260228/gcc/lto/lto-symtab.cc	Sat Feb 28 22:32:07 2026
*************** lto_symtab_merge_symbols (void)
*** 1040,1045 ****
--- 1040,1046 ----
  		      node->analyzed = node->definition = false;
  		      node->remove_all_references ();
  		    }
+ 		  node->body_removed = true;
  		}
  	      DECL_EXTERNAL (node->decl) = 1;
  	    }
diff -Nrcpad gcc-15-20260221/gcc/testsuite/ChangeLog gcc-15-20260228/gcc/testsuite/ChangeLog
*** gcc-15-20260221/gcc/testsuite/ChangeLog	Sat Feb 21 22:32:07 2026
--- gcc-15-20260228/gcc/testsuite/ChangeLog	Sat Feb 28 22:32:07 2026
***************
*** 1,3 ****
--- 1,58 ----
+ 2026-02-26  Michal Jires  <mjires@suse.cz>
+ 
+ 	Backported from master:
+ 	2026-01-11  Michal Jires  <mjires@suse.cz>
+ 
+ 	PR lto/121588
+ 	* gcc.dg/lto/attr-weakref-2_0.c: New test.
+ 	* gcc.dg/lto/attr-weakref-2_1.c: New test.
+ 
+ 2026-02-25  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/protected_deref1.adb: New test.
+ 
+ 2026-02-25  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	Backported from master:
+ 	2025-06-02  Christophe Lyon  <christophe.lyon@linaro.org>
+ 
+ 	* lib/target-supports.exp (check_effective_target_tls_link): New.
+ 	* g++.dg/tls/pr102496-1.C: Require tls_link.
+ 	* g++.dg/tls/pr77285-1.C: Likewise.
+ 
+ 2026-02-25  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	Backported from master:
+ 	2026-01-21  Alexandre Oliva  <oliva@adacore.com>
+ 
+ 	* g++.dg/lto/pr62026_0.C: Silence -flinker-output warning.
+ 
+ 2026-02-25  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR testsuite/124065
+ 	* gcc.dg/analyzer/zlib-3.c: Drop xfail.
+ 
+ 2026-02-24  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-02-24  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR testsuite/124064
+ 	* g++.target/arm/bfloat_cpp_typecheck.C: Drop xfail.
+ 
+ 2026-02-24  Eric Botcazou  <ebotcazou@adacore.com>
+ 	    Liam Powell  <liam@liampwll.com>
+ 
+ 	* gnat.dg/specs/aggr12.ads: New test.
+ 
+ 2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124153
+ 	* g++.dg/modules/cpp-22.C: New test.
+ 
  2026-02-19  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260221/gcc/testsuite/g++.dg/lto/pr62026_0.C gcc-15-20260228/gcc/testsuite/g++.dg/lto/pr62026_0.C
*** gcc-15-20260221/gcc/testsuite/g++.dg/lto/pr62026_0.C	Sat Feb 21 22:32:08 2026
--- gcc-15-20260228/gcc/testsuite/g++.dg/lto/pr62026_0.C	Sat Feb 28 22:32:08 2026
***************
*** 1,5 ****
--- 1,7 ----
  // { dg-lto-do link }
  // { dg-lto-options {{-flto -O3 -r -Wno-return-type}} }
+ // { dg-extra-ld-options "-flinker-output=nolto-rel" }
+ 
  class C;
  class F {
    virtual C m_fn1();
diff -Nrcpad gcc-15-20260221/gcc/testsuite/g++.dg/modules/cpp-22.C gcc-15-20260228/gcc/testsuite/g++.dg/modules/cpp-22.C
*** gcc-15-20260221/gcc/testsuite/g++.dg/modules/cpp-22.C	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/gcc/testsuite/g++.dg/modules/cpp-22.C	Sat Feb 28 22:32:08 2026
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/124153
+ // { dg-additional-options "-fmodules -fdirectives-only -E" }
+ 
+ // directives-only mode currently does not do error checking.
+ export module hello  // { dg-error "expected ';'" "" { xfail *-*-* } }
+ import world;
diff -Nrcpad gcc-15-20260221/gcc/testsuite/g++.dg/tls/pr102496-1.C gcc-15-20260228/gcc/testsuite/g++.dg/tls/pr102496-1.C
*** gcc-15-20260221/gcc/testsuite/g++.dg/tls/pr102496-1.C	Sat Feb 21 22:32:08 2026
--- gcc-15-20260228/gcc/testsuite/g++.dg/tls/pr102496-1.C	Sat Feb 28 22:32:10 2026
***************
*** 1,6 ****
  // PR c++/102496
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls }
  // { dg-add-options tls }
  // { dg-additional-sources pr102496-2.C }
  
--- 1,6 ----
  // PR c++/102496
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls_link }
  // { dg-add-options tls }
  // { dg-additional-sources pr102496-2.C }
  
diff -Nrcpad gcc-15-20260221/gcc/testsuite/g++.dg/tls/pr77285-1.C gcc-15-20260228/gcc/testsuite/g++.dg/tls/pr77285-1.C
*** gcc-15-20260221/gcc/testsuite/g++.dg/tls/pr77285-1.C	Sat Feb 21 22:32:08 2026
--- gcc-15-20260228/gcc/testsuite/g++.dg/tls/pr77285-1.C	Sat Feb 28 22:32:10 2026
***************
*** 1,5 ****
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls }
  // { dg-add-options tls }
  // { dg-additional-sources pr77285-2.C }
  
--- 1,5 ----
  // { dg-do link { target c++11 } }
! // { dg-require-effective-target tls_link }
  // { dg-add-options tls }
  // { dg-additional-sources pr77285-2.C }
  
diff -Nrcpad gcc-15-20260221/gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C gcc-15-20260228/gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C
*** gcc-15-20260221/gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C	Sat Feb 21 22:32:09 2026
--- gcc-15-20260228/gcc/testsuite/g++.target/arm/bfloat_cpp_typecheck.C	Sat Feb 28 22:32:11 2026
***************
*** 7,14 ****
  
  void foo (void)
  {
!   bfloat16_t (); /* { dg-bogus {invalid conversion to type 'bfloat16_t'} "" { xfail *-*-* } } */
!   bfloat16_t a = bfloat16_t(); /* { dg-bogus {invalid conversion to type 'bfloat16_t'} "" { xfail *-*-* } } */
    bfloat16_t (0x1234); /* { dg-error {invalid conversion to type 'bfloat16_t'} } */
    bfloat16_t (0.1); /* { dg-error {invalid conversion to type 'bfloat16_t'} } */
  }
--- 7,14 ----
  
  void foo (void)
  {
!   bfloat16_t (); /* { dg-bogus {invalid conversion to type 'bfloat16_t'} } */
!   bfloat16_t a = bfloat16_t(); /* { dg-bogus {invalid conversion to type 'bfloat16_t'} } */
    bfloat16_t (0x1234); /* { dg-error {invalid conversion to type 'bfloat16_t'} } */
    bfloat16_t (0.1); /* { dg-error {invalid conversion to type 'bfloat16_t'} } */
  }
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gcc.dg/analyzer/zlib-3.c gcc-15-20260228/gcc/testsuite/gcc.dg/analyzer/zlib-3.c
*** gcc-15-20260221/gcc/testsuite/gcc.dg/analyzer/zlib-3.c	Sat Feb 21 22:32:09 2026
--- gcc-15-20260228/gcc/testsuite/gcc.dg/analyzer/zlib-3.c	Sat Feb 28 22:32:12 2026
*************** static int huft_build(uInt *b, uInt n, u
*** 184,190 ****
        mask = (1 << w) - 1;
        /* The analyzer thinks that h can be -1 here.
           This is probably a false positive. */
!       while ((i & mask) !=  x[h]) { /* { dg-bogus "under-read" "" { xfail *-*-* } } */
          h--;
          w -= l;
          mask = (1 << w) - 1;
--- 184,190 ----
        mask = (1 << w) - 1;
        /* The analyzer thinks that h can be -1 here.
           This is probably a false positive. */
!       while ((i & mask) !=  x[h]) { /* { dg-bogus "under-read" } */
          h--;
          w -= l;
          mask = (1 << w) - 1;
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gcc.dg/lto/attr-weakref-2_0.c gcc-15-20260228/gcc/testsuite/gcc.dg/lto/attr-weakref-2_0.c
*** gcc-15-20260221/gcc/testsuite/gcc.dg/lto/attr-weakref-2_0.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/gcc/testsuite/gcc.dg/lto/attr-weakref-2_0.c	Sat Feb 28 22:32:12 2026
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-lto-do link } */
+ /* { dg-lto-options {{-O2 -flto}} } */
+ 
+ #define __weak __attribute__((__weak__))
+ void __weak other() {}
+ void __weak fn() {}
+ 
+ int main() {
+   fn();
+   other();
+ }
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gcc.dg/lto/attr-weakref-2_1.c gcc-15-20260228/gcc/testsuite/gcc.dg/lto/attr-weakref-2_1.c
*** gcc-15-20260221/gcc/testsuite/gcc.dg/lto/attr-weakref-2_1.c	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/gcc/testsuite/gcc.dg/lto/attr-weakref-2_1.c	Sat Feb 28 22:32:12 2026
***************
*** 0 ****
--- 1,3 ----
+ /* { dg-options {{-fno-lto}} } */
+ 
+ void fn() {}
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gcc.target/loongarch/pr122097.c gcc-15-20260228/gcc/testsuite/gcc.target/loongarch/pr122097.c
*** gcc-15-20260221/gcc/testsuite/gcc.target/loongarch/pr122097.c	Sat Feb 21 22:32:12 2026
--- gcc-15-20260228/gcc/testsuite/gcc.target/loongarch/pr122097.c	Sat Feb 28 22:32:14 2026
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-options "-O3 -mabi=lp64d -mlsx" } */
- /* { dg-final { scan-assembler "vbitseti\.d\t\\\$vr\[0-9\]+,\\\$vr\[0-9\]+,63" } } */
  
  typedef long unsigned int size_t;
  typedef unsigned char simde__mmask8;
--- 1,5 ----
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gnat.dg/protected_deref1.adb gcc-15-20260228/gcc/testsuite/gnat.dg/protected_deref1.adb
*** gcc-15-20260221/gcc/testsuite/gnat.dg/protected_deref1.adb	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/gcc/testsuite/gnat.dg/protected_deref1.adb	Sat Feb 28 22:32:15 2026
***************
*** 0 ****
--- 1,32 ----
+ -- { dg-do run }
+ 
+ with Ada.Text_IO;
+ 
+ procedure Protected_Deref1 is
+ 
+    protected type Fallback_Hit_Counter_Type is
+       procedure Handler;
+    end Fallback_Hit_Counter_Type;
+ 
+    protected body Fallback_Hit_Counter_Type is
+       procedure Handler is
+       begin
+          Ada.Text_IO.Put_Line ("Test");
+       end Handler;
+    end Fallback_Hit_Counter_Type;
+ 
+    Fallback_Hit_Counter : access Fallback_Hit_Counter_Type :=
+      new Fallback_Hit_Counter_Type;
+ 
+    type X is access protected procedure;
+ 
+    A : X := Fallback_Hit_Counter.all.Handler'Access;
+    B : X := Fallback_Hit_Counter.Handler'Access;
+ 
+ begin
+    A.all;
+    B.all;
+    if A /= B then
+       raise Program_Error;
+    end if;
+ end;
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gnat.dg/specs/aggr12.ads gcc-15-20260228/gcc/testsuite/gnat.dg/specs/aggr12.ads
*** gcc-15-20260221/gcc/testsuite/gnat.dg/specs/aggr12.ads	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/gcc/testsuite/gnat.dg/specs/aggr12.ads	Sat Feb 28 22:32:15 2026
***************
*** 0 ****
--- 1,14 ----
+ -- PR ada/124224
+ -- { dg-do compile }
+ -- { dg-options "-gnat2022" }
+ 
+ with Ada.Containers.Ordered_Maps;
+ 
+ package Aggr12 is
+ 
+   package Maps is new
+     Ada.Containers.Ordered_Maps (Character, Boolean);
+ 
+   M : Maps.Map := [for C in Character => False];
+ 
+ end Aggr12;
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gnat.dg/specs/mutably_tagged2.ads gcc-15-20260228/gcc/testsuite/gnat.dg/specs/mutably_tagged2.ads
*** gcc-15-20260221/gcc/testsuite/gnat.dg/specs/mutably_tagged2.ads	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/gcc/testsuite/gnat.dg/specs/mutably_tagged2.ads	Sat Feb 28 22:32:15 2026
***************
*** 0 ****
--- 1,19 ----
+ -- { dg-do compile }
+ -- { dg-options "-gnatX0" }
+ 
+ generic
+ package Mutably_Tagged2 is
+    generic
+    package Config is
+       type Mutably_Tagged is tagged null record with Size'Class => 128;
+    end Config;
+ 
+    package My_Config is new Config;
+ 
+    generic
+       type T is private;
+    package G is
+    end G;
+ 
+    package My_G is new G (My_Config.Mutably_Tagged'Class);
+ end Mutably_Tagged2;
diff -Nrcpad gcc-15-20260221/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads gcc-15-20260228/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads
*** gcc-15-20260221/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/gcc/testsuite/gnat.dg/specs/unchecked_union3.ads	Sat Feb 28 22:32:15 2026
***************
*** 0 ****
--- 1,80 ----
+ -- { dg-do compile }
+ 
+ with Interfaces;
+ 
+ package Unchecked_Union3 is
+ 
+    type T_CAN_ID is mod 2**29 with
+       Default_Value => 0,
+       Size          => 29;
+ 
+    type T_Node_ID is mod 2**7 with
+       Size          => 7,
+       Default_Value => 0;
+ 
+    type T_Message_Type_ID is new Interfaces.Unsigned_16;
+ 
+    type T_Service_Type_ID is new Interfaces.Unsigned_8;
+ 
+    type T_Priority is mod 2**5 with
+       Size          => 5,
+       Default_Value => 0;
+ 
+    type T_Format_Selector is
+      (CAN_Fields,
+       DroneCAN_Fields);
+ 
+    type T_Frame_Selector is
+      (Message_Frame,
+       Anonymous_Frame,
+       Service_Frame);
+ 
+    type Unsigned_2 is mod 2**2 with
+       Size          => 2,
+       Default_Value => 0;
+ 
+    type Unsigned_14 is mod 2**14 with
+       Size          => 14,
+       Default_Value => 0;
+ 
+    type T_Header (Format_Selector : T_Format_Selector := DroneCAN_Fields;
+       Frame_Selector              : T_Frame_Selector  := Message_Frame) is record
+       case Format_Selector is
+          when CAN_Fields =>
+             CAN_ID : T_CAN_ID;
+ 
+          when DroneCAN_Fields =>
+             Source_Node_ID      : T_Node_ID;
+             Service_Not_Message : Boolean := False;
+             Priority            : T_Priority;
+ 
+             case Frame_Selector is
+                when Message_Frame =>
+                   Message_Type_ID : T_Message_Type_ID;
+                when Anonymous_Frame =>
+                   Message_Type_ID_Lower_Bits : Unsigned_2;
+                   Discriminator              : Unsigned_14;
+                when Service_Frame =>
+                   Destination_Node_ID  : T_Node_ID;
+                   Request_Not_Response : Boolean := False;
+                   Service_Type_ID      : T_Service_Type_ID;
+             end case;
+       end case;
+    end record with
+       Unchecked_Union,
+       Size => 29;
+ 
+    for T_Header use record
+       CAN_ID                     at 0 range  0 .. 28;
+       Source_Node_ID             at 0 range  0 ..  6;
+       Service_Not_Message        at 0 range  7 ..  7;
+       Priority                   at 0 range 24 .. 28;
+       Message_Type_ID            at 0 range  8 .. 23;
+       Message_Type_ID_Lower_Bits at 0 range  8 ..  9;
+       Discriminator              at 0 range 10 .. 23;
+       Destination_Node_ID        at 0 range  8 .. 14;
+       Request_Not_Response       at 0 range 15 .. 15;
+       Service_Type_ID            at 0 range 16 .. 23;
+    end record;
+ 
+ end Unchecked_Union3;
diff -Nrcpad gcc-15-20260221/gcc/testsuite/lib/target-supports.exp gcc-15-20260228/gcc/testsuite/lib/target-supports.exp
*** gcc-15-20260221/gcc/testsuite/lib/target-supports.exp	Sat Feb 21 22:32:13 2026
--- gcc-15-20260228/gcc/testsuite/lib/target-supports.exp	Sat Feb 28 22:32:16 2026
*************** proc check_effective_target_tls {} {
*** 1051,1056 ****
--- 1051,1066 ----
      }]
  }
  
+ # Return 1 if we can link using TLS, 0 otherwise.
+ 
+ proc check_effective_target_tls_link {} {
+     return [check_no_compiler_messages tls_link executable {
+ 	__thread int i;
+ 	int main (void) { return i; }
+ 	void g (int j) { i = j; }
+     }]
+ }
+ 
  # Return 1 if *native* thread local storage (TLS) is supported, 0 otherwise.
  
  proc check_effective_target_tls_native {} {
diff -Nrcpad gcc-15-20260221/libcpp/ChangeLog gcc-15-20260228/libcpp/ChangeLog
*** gcc-15-20260221/libcpp/ChangeLog	Sat Feb 21 22:32:14 2026
--- gcc-15-20260228/libcpp/ChangeLog	Sat Feb 28 22:32:16 2026
***************
*** 1,3 ****
--- 1,21 ----
+ 2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124153
+ 	* lex.cc (cpp_maybe_module_directive): Set in_deferred_pragma
+ 	and eol when we see an unexpected CPP_PRAGMA_EOL.
+ 
+ 2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-02-22  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/119756
+ 	* files.cc (search_path_head): Also treat empty string (stdin)
+ 	as an absolute path.
+ 
  2025-08-08  Jakub Jelinek  <jakub@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260221/libcpp/files.cc gcc-15-20260228/libcpp/files.cc
*** gcc-15-20260221/libcpp/files.cc	Sat Feb 21 22:32:14 2026
--- gcc-15-20260228/libcpp/files.cc	Sat Feb 28 22:32:16 2026
*************** search_path_head (cpp_reader *pfile, con
*** 1092,1098 ****
    cpp_dir *dir;
    _cpp_file *file;
  
!   if (IS_ABSOLUTE_PATH (fname))
      return &pfile->no_search_path;
  
    /* pfile->buffer is NULL when processing an -include command-line flag.  */
--- 1092,1098 ----
    cpp_dir *dir;
    _cpp_file *file;
  
!   if (IS_ABSOLUTE_PATH (fname) || *fname == '\0')
      return &pfile->no_search_path;
  
    /* pfile->buffer is NULL when processing an -include command-line flag.  */
diff -Nrcpad gcc-15-20260221/libcpp/lex.cc gcc-15-20260228/libcpp/lex.cc
*** gcc-15-20260221/libcpp/lex.cc	Sat Feb 21 22:32:14 2026
--- gcc-15-20260228/libcpp/lex.cc	Sat Feb 28 22:32:16 2026
*************** cpp_maybe_module_directive (cpp_reader *
*** 3670,3675 ****
--- 3670,3684 ----
  		      peek->flags |= NO_DOT_COLON;
  		      break;
  		    }
+ 		  else if (peek->type == CPP_PRAGMA_EOL)
+ 		    {
+ 		      /* This is a broken module-directive; undo the clearing
+ 			 of in_deferred_pragma from _cpp_lex_direct so callers
+ 			 don't crash, and make sure we process the EOL again.  */
+ 		      pfile->state.in_deferred_pragma = true;
+ 		      eol = true;
+ 		      break;
+ 		    }
  		  else
  		    break;
  		}
*************** cpp_maybe_module_directive (cpp_reader *
*** 3699,3705 ****
      {
        /* Put the peeked tokens back.  */
        _cpp_backup_tokens_direct (pfile, backup);
!       /* But if the last one was an EOL in the not_module case, forget it.  */
        if (eol)
  	pfile->lookaheads--;
      }
--- 3708,3714 ----
      {
        /* Put the peeked tokens back.  */
        _cpp_backup_tokens_direct (pfile, backup);
!       /* But if the last one was an EOL, forget it.  */
        if (eol)
  	pfile->lookaheads--;
      }
diff -Nrcpad gcc-15-20260221/libstdc++-v3/ChangeLog gcc-15-20260228/libstdc++-v3/ChangeLog
*** gcc-15-20260221/libstdc++-v3/ChangeLog	Sat Feb 21 22:32:15 2026
--- gcc-15-20260228/libstdc++-v3/ChangeLog	Sat Feb 28 22:32:18 2026
***************
*** 1,3 ****
--- 1,19 ----
+ 2026-02-26  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	PR libstdc++/123875
+ 	* include/bits/atomic_base.h (__atomic_impl::__clear_padding):
+ 	Use if constexpr unconditionally.
+ 	(__atomic_float<_Fp>::__atomic_float(_Fp)): Skip __clear_padding
+ 	call for constant evaluation.
+ 	* include/std/atomic (atomic<_Tp>::atomic(_Tp)): Likewise.
+ 	* testsuite/29_atomics/atomic/cons/zero_padding.cc: New test.
+ 	* testsuite/29_atomics/atomic_float/zero_padding.cc: New test.
+ 	(cherry picked from commits
+ 	6b550d69fe7cb62ea6e240ce7a4ba29ce33aa1b1
+ 	682c95b808724e6f876ea709b873ac6771704d7b
+ 	060d7c2a9c1fe16d23d98a74287fdb7c73ddb784
+ 	f3ba5ad088cebe117f857329a35b95d18d97a808)
+ 
  2026-02-10  Jonathan Wakely  <jwakely@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-15-20260221/libstdc++-v3/include/bits/atomic_base.h gcc-15-20260228/libstdc++-v3/include/bits/atomic_base.h
*** gcc-15-20260221/libstdc++-v3/include/bits/atomic_base.h	Sat Feb 21 22:32:15 2026
--- gcc-15-20260228/libstdc++-v3/include/bits/atomic_base.h	Sat Feb 28 22:32:18 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 964,976 ****
  #endif
        }
  
      template<typename _Tp>
        _GLIBCXX_ALWAYS_INLINE _GLIBCXX14_CONSTEXPR _Tp*
        __clear_padding(_Tp& __val) noexcept
        {
  	auto* __ptr = std::__addressof(__val);
  #if __has_builtin(__builtin_clear_padding)
! 	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
  	  __builtin_clear_padding(__ptr);
  #endif
  	return __ptr;
--- 964,979 ----
  #endif
        }
  
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wc++17-extensions"
+ 
      template<typename _Tp>
        _GLIBCXX_ALWAYS_INLINE _GLIBCXX14_CONSTEXPR _Tp*
        __clear_padding(_Tp& __val) noexcept
        {
  	auto* __ptr = std::__addressof(__val);
  #if __has_builtin(__builtin_clear_padding)
! 	if constexpr (__atomic_impl::__maybe_has_padding<_Tp>())
  	  __builtin_clear_padding(__ptr);
  #endif
  	return __ptr;
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 980,988 ****
      template<typename _Tp>
        using _Val = typename remove_volatile<_Tp>::type;
  
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wc++17-extensions"
- 
      template<bool _AtomicRef = false, typename _Tp>
        _GLIBCXX_ALWAYS_INLINE bool
        __compare_exchange(_Tp& __val, _Val<_Tp>& __e, _Val<_Tp>& __i,
--- 983,988 ----
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1314,1320 ****
  
        constexpr
        __atomic_float(_Fp __t) : _M_fp(__t)
!       { __atomic_impl::__clear_padding(_M_fp); }
  
        __atomic_float(const __atomic_float&) = delete;
        __atomic_float& operator=(const __atomic_float&) = delete;
--- 1314,1323 ----
  
        constexpr
        __atomic_float(_Fp __t) : _M_fp(__t)
!       { 
!  	if (!std::__is_constant_evaluated())
! 	  __atomic_impl::__clear_padding(_M_fp);
!       }
  
        __atomic_float(const __atomic_float&) = delete;
        __atomic_float& operator=(const __atomic_float&) = delete;
diff -Nrcpad gcc-15-20260221/libstdc++-v3/include/std/atomic gcc-15-20260228/libstdc++-v3/include/std/atomic
*** gcc-15-20260221/libstdc++-v3/include/std/atomic	Sat Feb 21 22:32:16 2026
--- gcc-15-20260228/libstdc++-v3/include/std/atomic	Sat Feb 28 22:32:18 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 245,251 ****
        {
  #if __cplusplus >= 201402L && __has_builtin(__builtin_clear_padding)
  	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
! 	  __builtin_clear_padding(std::__addressof(_M_i));
  #endif
        }
  
--- 245,252 ----
        {
  #if __cplusplus >= 201402L && __has_builtin(__builtin_clear_padding)
  	if _GLIBCXX17_CONSTEXPR (__atomic_impl::__maybe_has_padding<_Tp>())
! 	  if (!std::__is_constant_evaluated())
! 	    __builtin_clear_padding(std::__addressof(_M_i));
  #endif
        }
  
diff -Nrcpad gcc-15-20260221/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc
*** gcc-15-20260221/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic/cons/zero_padding.cc	Sat Feb 28 22:32:18 2026
***************
*** 0 ****
--- 1,79 ----
+ // { dg-do run { target c++11 } }
+ // { dg-require-atomic-cmpxchg-word "" }
+ // { dg-add-options libatomic }
+ 
+ #include <atomic>
+ #include <cstring>
+ #include <testsuite_hooks.h>
+ 
+ struct TailPadding { int i; char c; };
+ TailPadding ztail{1, 2}; // zeroed-padding
+ constexpr std::atomic<TailPadding> ctail(TailPadding{1,2});
+ std::atomic<TailPadding> gtail(TailPadding{1,2});
+ 
+ struct MidPadding { char c; int x; };
+ MidPadding zmid{1, 2}; // zeroed-padding
+ constexpr std::atomic<MidPadding> cmid(MidPadding{1,2});
+ std::atomic<MidPadding> gmid(MidPadding{1,2});
+ 
+ struct BitPadding { int : 4; int i : 5; int : 4; int j : 5; int : 4;  };
+ BitPadding zbit{1, 2}; // zeroed-padding
+ constexpr std::atomic<BitPadding> cbit(BitPadding{1,2});
+ std::atomic<BitPadding> gbit(BitPadding{1,2});
+ 
+ struct Ctor
+ {
+   Ctor() = default;
+ 
+   constexpr Ctor(char pc, char pi)
+     : c(pc), i(pi)
+   {}
+ 
+   char c;
+   int i;
+ };
+ 
+ Ctor zctor{1, 2}; // zeroed-padding
+ constexpr std::atomic<Ctor> cctor(Ctor{1,2});
+ std::atomic<Ctor> gctor(Ctor{1,2});
+ 
+ template<typename T>
+ void test_struct(std::atomic<T>& g, const T& zp)
+ {
+   T const d{3, 4};
+   T t;
+ 
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( g.compare_exchange_strong(t, d) );
+ 
+   static std::atomic<T> st(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( st.compare_exchange_strong(t, d) );
+ 
+   thread_local std::atomic<T> tl(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( tl.compare_exchange_strong(t, d) );
+ 
+   std::atomic<T> l(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+ #if __cplusplus >= 201402L // Remove once PR114865 is fixed
+   VERIFY( l.compare_exchange_strong(t, d) );
+ #endif
+ 
+   std::atomic<T>* h = new std::atomic<T>(T{1, 2});
+   std::memcpy(&t, &zp, sizeof(T));
+ #if __cplusplus >= 201402L // Remove once PR114865 is fixed
+   VERIFY( h->compare_exchange_strong(t, d) );
+ #endif
+   delete h;
+ 
+   constexpr std::atomic<T> cl(T{1, 2});
+ }
+ 
+ int main()
+ {
+   test_struct(gtail, ztail);
+   test_struct(gmid, zmid);
+   test_struct(gbit, zbit);
+   test_struct(gctor, zctor);
+ }
diff -Nrcpad gcc-15-20260221/libstdc++-v3/testsuite/29_atomics/atomic_float/zero_padding.cc gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic_float/zero_padding.cc
*** gcc-15-20260221/libstdc++-v3/testsuite/29_atomics/atomic_float/zero_padding.cc	Thu Jan  1 00:00:00 1970
--- gcc-15-20260228/libstdc++-v3/testsuite/29_atomics/atomic_float/zero_padding.cc	Sat Feb 28 22:32:18 2026
***************
*** 0 ****
--- 1,45 ----
+ // { dg-do run { target c++20 } }
+ // { dg-require-effective-target libatomic_available }
+ // { dg-additional-options "[atomic_link_flags [get_multilibs]] -latomic" }
+ 
+ #include <atomic>
+ #include <cstring>
+ #include <testsuite_hooks.h>
+ 
+ long double zld(10.5);
+ constexpr std::atomic<long double> cld(10.5);
+ std::atomic<long double> gld(10.5);
+ 
+ template<typename T>
+ void test_floating(std::atomic<T>& g, const T& zp)
+ {
+   T const d = T(7.5);
+   T t;
+ 
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( g.compare_exchange_strong(t, d) );
+ 
+   static std::atomic<T> st(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( st.compare_exchange_strong(t, d) );
+ 
+   thread_local std::atomic<T> tl(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( tl.compare_exchange_strong(t, d) );
+ 
+   std::atomic<T> l(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( l.compare_exchange_strong(t, d) );
+ 
+   std::atomic<T>* h = new std::atomic<T>(T(10.5));
+   std::memcpy(&t, &zp, sizeof(T));
+   VERIFY( h->compare_exchange_strong(t, d) );
+   delete h;
+ 
+   constexpr std::atomic<T> cl(T(10.5));
+ }
+ 
+ int main()
+ {
+   test_floating(gld, zld);
+ }
