diff -Nrcpad gcc-16-20260502/LAST_UPDATED gcc-16-20260509/LAST_UPDATED
*** gcc-16-20260502/LAST_UPDATED	Sat May  2 22:32:19 2026
--- gcc-16-20260509/LAST_UPDATED	Sat May  9 22:32:18 2026
***************
*** 1 ****
! Obtained from git: releases/gcc-16 revision 3cf5f99accf999b26896fff9cdd1e1d6a9b4ad2d
--- 1 ----
! Obtained from git: releases/gcc-16 revision a24661a0d900d563359bba966c47869e2455dfee
diff -Nrcpad gcc-16-20260502/MD5SUMS gcc-16-20260509/MD5SUMS
*** gcc-16-20260502/MD5SUMS	Sat May  2 22:32:24 2026
--- gcc-16-20260509/MD5SUMS	Sat May  9 22:32:23 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260502.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-16-20260509.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
*** 28,34 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! ded9597ca06c321140ad7fbea08bc774  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f887b31894141ddea540ea3a9be02d7e  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
*************** f15bc3c5de22eac0bdd4f611502139a0  gcc/AB
*** 530,536 ****
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! 2f5b0acb53f468ecb47aba1399d36275  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
--- 530,536 ----
  a916467b91076e631dd8edb7424769c7  gcc/COPYING.LIB
  d32239bcb673463ab874e80d47fae504  gcc/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/COPYING3.LIB
! e7aa366170dd61b89e6236f3097182ff  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 568,574 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! b245506a6646bea1f68e21fc91de2b23  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
--- 568,574 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 0b453f6fb61fdd32a447b28b2bb3c530  gcc/DATESTAMP
  d41d8cd98f00b204e9800998ecf8427e  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
*************** c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/RE
*** 580,586 ****
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 7063e647e27854c54d291c3ac165fb26  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 580,586 ----
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 2a1d36f92ec0694513c0812f6663f438  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** fdcf937d10eb74c66b3b50669d912b03  gcc/ad
*** 2128,2134 ****
  ed343cc260715985543aec11ef6c0e97  gcc/ada/libgnat/s-dmotpr.ads
  81e6b5d6249402b660706face26ee723  gcc/ada/libgnat/s-dorepr.adb
  eeb689ab898ae1e92d3b86f4330caa13  gcc/ada/libgnat/s-dorepr__fma.adb
! ad97369a93463344a0a9487704ba3d1a  gcc/ada/libgnat/s-dorepr__freebsd.adb
  1bd2be4b8ab6dc54e831fa0cc0bcd1d6  gcc/ada/libgnat/s-dourea.adb
  3b7e45d8f3fe7a923ad978229464044c  gcc/ada/libgnat/s-dourea.ads
  294b39ca06beec7e2d19b0cc322a8cfa  gcc/ada/libgnat/s-dsaser.ads
--- 2128,2134 ----
  ed343cc260715985543aec11ef6c0e97  gcc/ada/libgnat/s-dmotpr.ads
  81e6b5d6249402b660706face26ee723  gcc/ada/libgnat/s-dorepr.adb
  eeb689ab898ae1e92d3b86f4330caa13  gcc/ada/libgnat/s-dorepr__fma.adb
! ae732e38ee5d20126001ea6e02af7c34  gcc/ada/libgnat/s-dorepr__freebsd.adb
  1bd2be4b8ab6dc54e831fa0cc0bcd1d6  gcc/ada/libgnat/s-dourea.adb
  3b7e45d8f3fe7a923ad978229464044c  gcc/ada/libgnat/s-dourea.ads
  294b39ca06beec7e2d19b0cc322a8cfa  gcc/ada/libgnat/s-dsaser.ads
*************** b63569ecff9557acb7963f14a101bce1  gcc/co
*** 4306,4312 ****
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
  a946b6bbddac6489aa71ea04ff0f4f92  gcc/config/i386/i386.cc
  483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
! 2e28728913155c03c58850abc4d5bbff  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
  b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
  7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
--- 4306,4312 ----
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
  a946b6bbddac6489aa71ea04ff0f4f92  gcc/config/i386/i386.cc
  483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
! 71d4fbaeb19925f76b35a547b3cedb17  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
  b9e680863ab278314c1f2990d2d04fcc  gcc/config/i386/i386.opt.urls
  7570cb8763bf53e7144db7d6cd97f846  gcc/config/i386/i386elf.h
*************** c22e895e5b7e6b98c7223b26982a5d20  gcc/co
*** 4422,4428 ****
  7bfce4f9fdee1dc1db1e668b10d9d8e2  gcc/config/i386/x86-tune-sched-bd.cc
  864e537089cc92c5002cefd76ede977a  gcc/config/i386/x86-tune-sched-core.cc
  67c586fe54bcfe3f719ae50164d063ca  gcc/config/i386/x86-tune-sched.cc
! bcb5f0c90c9b04c1319d89b59faa0d30  gcc/config/i386/x86-tune.def
  75b1f0e8f79cfd04f898a4099aff669d  gcc/config/i386/x86gprintrin.h
  e5335d55cec73bd3270862ccac7a02e8  gcc/config/i386/x86intrin.h
  76f88cf5ac857d392ddb81b244c5b9b0  gcc/config/i386/xm-cygwin.h
--- 4422,4428 ----
  7bfce4f9fdee1dc1db1e668b10d9d8e2  gcc/config/i386/x86-tune-sched-bd.cc
  864e537089cc92c5002cefd76ede977a  gcc/config/i386/x86-tune-sched-core.cc
  67c586fe54bcfe3f719ae50164d063ca  gcc/config/i386/x86-tune-sched.cc
! 44ab9a3e41656609dfe65e4830af6015  gcc/config/i386/x86-tune.def
  75b1f0e8f79cfd04f898a4099aff669d  gcc/config/i386/x86gprintrin.h
  e5335d55cec73bd3270862ccac7a02e8  gcc/config/i386/x86intrin.h
  76f88cf5ac857d392ddb81b244c5b9b0  gcc/config/i386/xm-cygwin.h
*************** f42170d324293ddaaf014bfe990b848b  gcc/co
*** 4541,4548 ****
  dadec2097ca9c4947a49a5766ac8ee89  gcc/config/loongarch/loongarch-str.h
  fc623524d75c7561f85f81615ecad0ac  gcc/config/loongarch/loongarch-target-attr.cc
  3cfb174db8bc99a9361e597a3e9bd35e  gcc/config/loongarch/loongarch-tune.h
! 6f74feee1e5b9636e1df56aa447d09cb  gcc/config/loongarch/loongarch.cc
! 57abfb8c653a24903f61e5cf93ac929f  gcc/config/loongarch/loongarch.h
  1b11d059c390458cbbf8e16a8efa5e6f  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
  387011bb9dde5e25493f3602b2fd17bb  gcc/config/loongarch/loongarch.opt.urls
--- 4541,4548 ----
  dadec2097ca9c4947a49a5766ac8ee89  gcc/config/loongarch/loongarch-str.h
  fc623524d75c7561f85f81615ecad0ac  gcc/config/loongarch/loongarch-target-attr.cc
  3cfb174db8bc99a9361e597a3e9bd35e  gcc/config/loongarch/loongarch-tune.h
! f1fea05446a25ec5fbfc33c701e8ae20  gcc/config/loongarch/loongarch.cc
! 44710020cadd48029a693da29d33aaf0  gcc/config/loongarch/loongarch.h
  1b11d059c390458cbbf8e16a8efa5e6f  gcc/config/loongarch/loongarch.md
  62f9bea81246c3dac622d969dabefc1b  gcc/config/loongarch/loongarch.opt
  387011bb9dde5e25493f3602b2fd17bb  gcc/config/loongarch/loongarch.opt.urls
*************** ea47b9aaff57a2a9d2393ed60a70f379  gcc/co
*** 4924,4930 ****
  0800c027b50e3ddb0bdb4cedbcf57204  gcc/config/or1k/linux.h
  8c4edc2eb61a43fb9f67ceb977f850e1  gcc/config/or1k/or1k-opts.h
  0dc32c21bc6353a22cc723aa5e94e7c4  gcc/config/or1k/or1k-protos.h
! 2c4174f606f2c5ef251b04557a3fefd5  gcc/config/or1k/or1k.cc
  41ea77ba00a7d899c45539f070a4e223  gcc/config/or1k/or1k.h
  a894bd2d205ea28000b59beafbc66a68  gcc/config/or1k/or1k.md
  db353534acb45de5e73096b05454650a  gcc/config/or1k/or1k.opt
--- 4924,4930 ----
  0800c027b50e3ddb0bdb4cedbcf57204  gcc/config/or1k/linux.h
  8c4edc2eb61a43fb9f67ceb977f850e1  gcc/config/or1k/or1k-opts.h
  0dc32c21bc6353a22cc723aa5e94e7c4  gcc/config/or1k/or1k-protos.h
! 9377f178d70af1bc66bc030a50dbe624  gcc/config/or1k/or1k.cc
  41ea77ba00a7d899c45539f070a4e223  gcc/config/or1k/or1k.h
  a894bd2d205ea28000b59beafbc66a68  gcc/config/or1k/or1k.md
  db353534acb45de5e73096b05454650a  gcc/config/or1k/or1k.opt
*************** c5ad0142a191862e3e81ecd3573754b3  gcc/co
*** 5644,5650 ****
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 4a501e8cfa16accc28fb3134a6cd7cf1  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5644,5650 ----
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
  c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 184dd0ace400f3e8149ac3d375927d7b  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** d9b8a76735523ab737e8778b90397d97  gcc/cp
*** 5684,5690 ****
  689c8a6810ac9e15b64d4e745bda0f11  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
! 4a5a02469458f5a17e932ae0133f2ce7  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
  b7c189a1115cf06a041b94bc583174e4  gcc/cp/constexpr.cc
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
--- 5684,5690 ----
  689c8a6810ac9e15b64d4e745bda0f11  gcc/cp/call.cc
  144dd1ae510a7436b569b007470b62da  gcc/cp/cfns.gperf
  39dd4c5a96c7ea132eb3c7ed039a065e  gcc/cp/cfns.h
! 454f3c75a5a8d9c0a8b425ca72add469  gcc/cp/class.cc
  e51f295e858583af5f9cf88b9530adf7  gcc/cp/config-lang.in
  b7c189a1115cf06a041b94bc583174e4  gcc/cp/constexpr.cc
  44493039c741da0cbddb5a8d6d93701a  gcc/cp/constraint.cc
*************** eba8d8a1725223519fba5d4d69afd5c9  gcc/cp
*** 5699,5711 ****
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! a6f75b797a91a72e5d42f363a9415abe  gcc/cp/cp-tree.h
  e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
  0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 1009d05a70574e332ec53043c4e16024  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
--- 5699,5711 ----
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
  ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! 9f45dd7085bfc7c87d5c682b31c5fd82  gcc/cp/cp-tree.h
  e2854dfa428fab45fc41bf58fef71e61  gcc/cp/cp-ubsan.cc
  0f660920514d4f51007f6841a25e3af6  gcc/cp/cvt.cc
  f067718cf3d629084d8347c4e017afd4  gcc/cp/cxx-pretty-print.cc
  1d04eec9859d91686ca501e9221f30ac  gcc/cp/cxx-pretty-print.h
  82a41d873e1c90067158c89e6c1bd4bb  gcc/cp/cxxapi-data.csv
! 18af1f344ba9b278f668588426cda250  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
*************** b9032a113a137533247a90fda508e897  gcc/cp
*** 5720,5733 ****
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 6d1dfdccbfbfe5467a281664d8fbe792  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
  db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 725e82f37177346093a2ad737cdbf2ee  gcc/cp/module.cc
  79b07b3ec2f0827645bcac2f0107f883  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
--- 5720,5733 ----
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  ae7c1d49c3ae546f4a980c3ebc22690d  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 8fd86c1f4d4c6ad011c606d13b312656  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
  54609938d396496c7c5bf3f4cbfddaec  gcc/cp/metafns.gperf
  04fe5bec0bf79fcb3680aec9913ebc29  gcc/cp/metafns.h
  db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 7a054b0a8f2a4e64719fb4f89d284945  gcc/cp/module.cc
  79b07b3ec2f0827645bcac2f0107f883  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
*************** e597ab171ad27c93ec4d074abe445c67  gcc/cp
*** 5736,5748 ****
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
  fdae1d6bf4a94754b894dddec7fe89b8  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 3d6c75c9cd901a73c6fa1a6380a4af53  gcc/cp/reflect.cc
  97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
  9790807578e1c4db5aa20758424fb3ef  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 0036291070f1302b372562c75f48cc5d  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  1e689d5f7a1facc6ce4b51aaa96636aa  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
--- 5736,5748 ----
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
  fdae1d6bf4a94754b894dddec7fe89b8  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! 81b3524c6af67713b5429138777414a4  gcc/cp/reflect.cc
  97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
  9790807578e1c4db5aa20758424fb3ef  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! c9afe2a322d65c7cad632339b6db595d  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
  1e689d5f7a1facc6ce4b51aaa96636aa  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
*************** fe61b2918e14694ac3e0e909cacea80f  gcc/cu
*** 5767,5773 ****
  86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
  cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
  58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! 72f48f47b76c1186974691ec0865658e  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
--- 5767,5773 ----
  86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
  cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
  58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! f51fa179664699984bc7fe6003cb3c65  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
*************** a84c5c8dc5dd34c74b6c874a99718559  gcc/d/
*** 6015,6021 ****
  c91433fbbe79c3e110e263ab981dea5e  gcc/d/runtime.def
  8e6ac7d895e5279ce9a5b93f58cd56b7  gcc/d/toir.cc
  3ae8a62d0c135b91cfa17f45a22ad721  gcc/d/typeinfo.cc
! 61494760545943ca27e7120f53ed4fe8  gcc/d/types.cc
  97d491fba0dd57fe8e4fb67f2c7f8b88  gcc/data-streamer-in.cc
  d1658e0b3a01487789371ee847def1b2  gcc/data-streamer-out.cc
  63245724941a35dfab045b09f88d3ab4  gcc/data-streamer.cc
--- 6015,6021 ----
  c91433fbbe79c3e110e263ab981dea5e  gcc/d/runtime.def
  8e6ac7d895e5279ce9a5b93f58cd56b7  gcc/d/toir.cc
  3ae8a62d0c135b91cfa17f45a22ad721  gcc/d/typeinfo.cc
! a0901b0b96f3f275898ecc131f2585f5  gcc/d/types.cc
  97d491fba0dd57fe8e4fb67f2c7f8b88  gcc/data-streamer-in.cc
  d1658e0b3a01487789371ee847def1b2  gcc/data-streamer-out.cc
  63245724941a35dfab045b09f88d3ab4  gcc/data-streamer.cc
*************** bde53a0a190c3a74b047eb2b53c080eb  gcc/do
*** 6154,6160 ****
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  e7629f6355c3902826e219f4c9bfae3a  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 796fb7b9b100b5c5c650f51ccdc09946  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 6154,6160 ----
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
  e7629f6355c3902826e219f4c9bfae3a  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! fdc0094b84db650f6468c0e6eb10d1cc  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** e8ef831ecab58724c781ef6c239eb959  gcc/gi
*** 6461,6467 ****
  98c92461c94c7a7e1f7c09e62e05167f  gcc/gimple-crc-optimization.cc
  e33888307c479ce11d601ebd8fc8f0af  gcc/gimple-expr.cc
  61721564f913cdbebe438f7c378b316e  gcc/gimple-expr.h
! b75879478fadd54ee34b81fd544b7456  gcc/gimple-fold.cc
  d4285bef3fb661843b5d37c21e759c95  gcc/gimple-fold.h
  109e0f96a9d27a8a25bb73d61b701bbc  gcc/gimple-harden-conditionals.cc
  ebf0fc6c9a10c730d10710fdec206805  gcc/gimple-harden-control-flow.cc
--- 6461,6467 ----
  98c92461c94c7a7e1f7c09e62e05167f  gcc/gimple-crc-optimization.cc
  e33888307c479ce11d601ebd8fc8f0af  gcc/gimple-expr.cc
  61721564f913cdbebe438f7c378b316e  gcc/gimple-expr.h
! 0f4ab5bb52a2106f9c9033539d2be065  gcc/gimple-fold.cc
  d4285bef3fb661843b5d37c21e759c95  gcc/gimple-fold.h
  109e0f96a9d27a8a25bb73d61b701bbc  gcc/gimple-harden-conditionals.cc
  ebf0fc6c9a10c730d10710fdec206805  gcc/gimple-harden-control-flow.cc
*************** b211f0e83f64dd7af1ae1c02e8f6c78f  gcc/gi
*** 6552,6558 ****
  0457fa180975dc23b80618432d5ec93f  gcc/ginclude/tgmath.h
  b7f2d2a1581d62bd760fe18e028954fe  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
! e949ccd61b5eda0115c017b9f638225a  gcc/glimits.h
  decdfd19f1f6cc209eb35ed41eac558a  gcc/go/ChangeLog
  b61d8a2887c33788f322082383ac88a3  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
--- 6552,6558 ----
  0457fa180975dc23b80618432d5ec93f  gcc/ginclude/tgmath.h
  b7f2d2a1581d62bd760fe18e028954fe  gcc/ginclude/unwind-arm-common.h
  8d9ecf0d6ef93c79623ce1d27a32a2cb  gcc/ginclude/varargs.h
! ba1556b5ff5b75df7dcada61b5887f7d  gcc/glimits.h
  decdfd19f1f6cc209eb35ed41eac558a  gcc/go/ChangeLog
  b61d8a2887c33788f322082383ac88a3  gcc/go/Make-lang.in
  60ea054548c83c7f66170073f9f3e74c  gcc/go/README.gcc
*************** b2f9b18f946c2e60e4f6cba0ab2df54e  gcc/pe
*** 7983,7993 ****
  51380e9db88b682bc96a35cc4bce56a5  gcc/plugin.cc
  af6268dd53154434eb4c4d1c299e0ee2  gcc/plugin.def
  5678cfbc9cf98f9e69bee1118c787a42  gcc/plugin.h
! f86da840ceed625d557c25cfcdc7eed6  gcc/po/ChangeLog
  2c2fbc71d2acc1ddfb9fb9501458921b  gcc/po/EXCLUDES
  73ae249e691da38b778718022db3bbde  gcc/po/be.po
  dc880fdf00071de200d0a050acab2d15  gcc/po/da.po
! 1a56f01265925390f8aeeef497e518fe  gcc/po/de.po
  b831e79d9a1e4ff56315068d97004be1  gcc/po/el.po
  746d4a44505d519b4735ec4b98b7f20b  gcc/po/es.po
  7a6d51f7527e21e20156259c98cac705  gcc/po/exgettext
--- 7983,7993 ----
  51380e9db88b682bc96a35cc4bce56a5  gcc/plugin.cc
  af6268dd53154434eb4c4d1c299e0ee2  gcc/plugin.def
  5678cfbc9cf98f9e69bee1118c787a42  gcc/plugin.h
! dec3ab25fcbb48b5a53fc54cfc160523  gcc/po/ChangeLog
  2c2fbc71d2acc1ddfb9fb9501458921b  gcc/po/EXCLUDES
  73ae249e691da38b778718022db3bbde  gcc/po/be.po
  dc880fdf00071de200d0a050acab2d15  gcc/po/da.po
! 526acffad37f45214db44abb7e8c2d64  gcc/po/de.po
  b831e79d9a1e4ff56315068d97004be1  gcc/po/el.po
  746d4a44505d519b4735ec4b98b7f20b  gcc/po/es.po
  7a6d51f7527e21e20156259c98cac705  gcc/po/exgettext
*************** f24751f278bee1ac8dc861467d9f96a3  gcc/ta
*** 8724,8730 ****
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 9a5554768db96b293134c4b7de6806ce  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8724,8730 ----
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 3af77af1cd98447044a4c6be8d1a3e5e  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** ecd6c3a264f38780aaccc0d6aa523f56  gcc/te
*** 33610,33615 ****
--- 33610,33618 ----
  0cf3cad1e66043cd2480d39a3d01277f  gcc/testsuite/g++.dg/modules/attrib-4_b.C
  7abf5ffc0cac815ea0bffa1a3b478856  gcc/testsuite/g++.dg/modules/attrib-5_a.C
  4fe9d03ea9dff9ed0a2c7de2790525ac  gcc/testsuite/g++.dg/modules/attrib-5_b.C
+ e0dd39b60bbd5fc59744d186b4619590  gcc/testsuite/g++.dg/modules/attrib-6_a.C
+ ac046492c63e0ea342bea1840eb3e4e6  gcc/testsuite/g++.dg/modules/attrib-6_b.C
+ 2e473e806fe3f165516330d77914d500  gcc/testsuite/g++.dg/modules/attrib-6_c.C
  81c0c5e828fc012cafc9fa3658ffa887  gcc/testsuite/g++.dg/modules/auto-1.h
  663d15531836052d0d8d248d77c1d985  gcc/testsuite/g++.dg/modules/auto-1_a.H
  fc7a9d18c3b934f3bab09c32f19f3b8d  gcc/testsuite/g++.dg/modules/auto-1_b.C
*************** b66a905fae26f7efc4eaf3f3c60a6b65  gcc/te
*** 34513,34519 ****
  e83f9a9aca70673da8258ca0631a2125  gcc/testsuite/g++.dg/modules/mod-tpl-1_b.C
  ad9ef329572dab16f2d3d5613538cd3f  gcc/testsuite/g++.dg/modules/mod-tpl-2_a.C
  95ab3577dee99f3d59838a96f1cbf4fc  gcc/testsuite/g++.dg/modules/mod-tpl-2_b.C
! ad33ab4d11aa0f19480ef8a7cc915c23  gcc/testsuite/g++.dg/modules/modules.exp
  f49c118362c9a45e801940d0725a767d  gcc/testsuite/g++.dg/modules/mutual-friend.ii
  522ea2d0697f7dd4d211f07fa012628f  gcc/testsuite/g++.dg/modules/namespace-10_a.C
  c4e2bef9f271df6507d07f9534e10fc1  gcc/testsuite/g++.dg/modules/namespace-10_b.C
--- 34516,34522 ----
  e83f9a9aca70673da8258ca0631a2125  gcc/testsuite/g++.dg/modules/mod-tpl-1_b.C
  ad9ef329572dab16f2d3d5613538cd3f  gcc/testsuite/g++.dg/modules/mod-tpl-2_a.C
  95ab3577dee99f3d59838a96f1cbf4fc  gcc/testsuite/g++.dg/modules/mod-tpl-2_b.C
! 487e2f5142ec1969ec2ef56b0656d6a2  gcc/testsuite/g++.dg/modules/modules.exp
  f49c118362c9a45e801940d0725a767d  gcc/testsuite/g++.dg/modules/mutual-friend.ii
  522ea2d0697f7dd4d211f07fa012628f  gcc/testsuite/g++.dg/modules/namespace-10_a.C
  c4e2bef9f271df6507d07f9534e10fc1  gcc/testsuite/g++.dg/modules/namespace-10_b.C
*************** c43e40fe08389dac58e1fabc0937b315  gcc/te
*** 37467,37472 ****
--- 37470,37476 ----
  71a5a17d31dea5a7a7d60fd3b36453dc  gcc/testsuite/g++.dg/reflect/bases_of1.C
  50d204becc5a564d003524bbda54d480  gcc/testsuite/g++.dg/reflect/bases_of2.C
  a3ca02798bae6834626899e3f48626d9  gcc/testsuite/g++.dg/reflect/bases_of3.C
+ f31771b6d142554bef46d22e7ebe37ed  gcc/testsuite/g++.dg/reflect/bases_of4.C
  817512416d8343f0871b4548743aabf7  gcc/testsuite/g++.dg/reflect/bit_cast.C
  118a467750da473b2ad68973e520b6c9  gcc/testsuite/g++.dg/reflect/bit_size_of1.C
  cdfee9c92cd1c39030b9538abaa0bbc0  gcc/testsuite/g++.dg/reflect/bitfield1.C
*************** aa8f04eae840cf292352166e158cfd5c  gcc/te
*** 37676,37681 ****
--- 37680,37686 ----
  2f7952cde0bb918e80b859c86f0f6aed  gcc/testsuite/g++.dg/reflect/init15.C
  8e50886b33b97c105f268ac4464d550c  gcc/testsuite/g++.dg/reflect/init16.C
  d90fcc99ddaeb5505678c7c407e0ab75  gcc/testsuite/g++.dg/reflect/init17.C
+ dabe4ff7939752efdbbb1268dec52d43  gcc/testsuite/g++.dg/reflect/init18.C
  314f62be0110f9e0a46fdc1b7585aebd  gcc/testsuite/g++.dg/reflect/init2.C
  0512b3bdec0b0fd28051477e9423aa67  gcc/testsuite/g++.dg/reflect/init3.C
  d46e1560ddd6be61c86743909c517b4e  gcc/testsuite/g++.dg/reflect/init4.C
*************** b569af91dd7275609d58f4469ba9e826  gcc/te
*** 62591,62596 ****
--- 62596,62604 ----
  92b05cf47c62f81f5220c4a17533fce2  gcc/testsuite/gcc.dg/torture/pr124810.c
  16b777622562135656ac0ab96375cfb5  gcc/testsuite/gcc.dg/torture/pr124868.c
  c2d3ac4b0fce6da2e8aaeaf741803572  gcc/testsuite/gcc.dg/torture/pr124891.c
+ fbe779467ae6f7cb7ee578922f1e8686  gcc/testsuite/gcc.dg/torture/pr125025.c
+ a5b9e215eaee30cede04135bd18b6a59  gcc/testsuite/gcc.dg/torture/pr125153.c
+ f04a0ca1134a2f6b7f28283527f4394b  gcc/testsuite/gcc.dg/torture/pr125185.c
  ded4330fd1cd52783bd9b1761db038ef  gcc/testsuite/gcc.dg/torture/pr16104-1.c
  fc265ee05da2f29f0e92804661cd1f28  gcc/testsuite/gcc.dg/torture/pr17526.c
  01c583edb41b632b835aa892b9c1cb14  gcc/testsuite/gcc.dg/torture/pr17933-1.c
*************** eba056f8fdfc01dd50d19a42ad34bd50  gcc/te
*** 66164,66170 ****
  8754296b236f3b2f6abfa14ca2a80025  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-20.c
  5ccdb84afe4b17b83db35bd3a776f132  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-21.c
  be15956f5f5a8f21ac672a6ca9016095  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-22.c
- 1d6f4a0bcf8f68e346da79304c115731  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-23.c
  f9ec9861cfad29ae5e65f5801dec8b35  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c
  345c2de66411a0afb210e968afaa62c0  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-invalid.c
  31af1b6bef4a6bfebd6ec195519366b8  gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-valid.c
--- 66172,66177 ----
*************** f742c249f29b11f89b622821fd3fb16b  gcc/te
*** 90502,90507 ****
--- 90509,90515 ----
  317da1bafce144f5671a08a96200b001  gcc/testsuite/gcc.target/i386/pr124877-1.c
  ffc68fd0ff2ba113062cd86cae484d7d  gcc/testsuite/gcc.target/i386/pr124877-2.c
  f06caa7312f1bda837e182ee5d6c518e  gcc/testsuite/gcc.target/i386/pr124877-3.c
+ 2452d87d24cd7ed49934ad5aecd255e2  gcc/testsuite/gcc.target/i386/pr125180.c
  8951a1fa31f2d45ef9eacfff6a733f77  gcc/testsuite/gcc.target/i386/pr13366.c
  9a752a4b3b77930d91d3c8b0c8897b90  gcc/testsuite/gcc.target/i386/pr13685.c
  31ead0ee84b382ba03e3561931bc6e40  gcc/testsuite/gcc.target/i386/pr14289-1.c
*************** de83bbcbb03e37b7d3c3619033b6882e  gcc/te
*** 94231,94236 ****
--- 94239,94245 ----
  9b9319e8de39dcffbe873584b20d35a5  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr113033.c
  970835a22a2eef8dad1be6ea6edc6402  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr123521.c
  91b4f4f5d2c5b786b45fad8edab6e2a3  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr123766.c
+ 8145faba4ca1a576747baf7c26fae1a5  gcc/testsuite/gcc.target/loongarch/vector/lasx/pr125057.c
  1eac553341d725c6e59615b593aedb0d  gcc/testsuite/gcc.target/loongarch/vector/lasx/pragma-push-pop.c
  7c1d85beb3eaf3489d693d57eb51dcd2  gcc/testsuite/gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-b.c
  e3b0049caf475cc1fdd98f6d52e6c7ae  gcc/testsuite/gcc.target/loongarch/vector/lasx/rotl-with-xvrotr-d.c
*************** a8ab1fe3de13920929161ff744d0be79  gcc/te
*** 94276,94281 ****
--- 94285,94291 ----
  3ca33073dc5707d30e1c86e7cff80a83  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-frecipe-builtin.c
  08ecc6d7a6749ae690a432b527687be9  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-func-attr-2.c
  7fd4b4d80ef3b95b73b71b66d9e6cd92  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-1.c
+ 8f2519f2a3520149ae9e630b85b6d9d9  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-2.c
  2ff50940f45f70c1c0e511eeb9f27d97  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-pragma-attr-2.c
  21062258537eee99097cccdc4b7c1956  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-divf.c
  2549c56a693f1d0960c7cc8ba86e0067  gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-recip-sqrtf.c
*************** d59f1ded63c010f7c70d8914ff035369  gcc/te
*** 95588,95593 ****
--- 95598,95604 ----
  7fd1bcd610e82d1586aecf6b07e5cabb  gcc/testsuite/gcc.target/or1k/div-mul-2.c
  12ae868dfb598fb35cde9f3deb2aa240  gcc/testsuite/gcc.target/or1k/got-1.c
  cdffa4b9237da98d7598debeadcb29fd  gcc/testsuite/gcc.target/or1k/or1k.exp
+ 586447fae94a7aba8d497d7146120eaa  gcc/testsuite/gcc.target/or1k/pr125155.c
  26536fcae441d001c2a53c21abf56757  gcc/testsuite/gcc.target/or1k/return-1.c
  19a50da79764b52ec4c567f7aac53bdd  gcc/testsuite/gcc.target/or1k/return-2.c
  30571d600ad8e2c620b4c88dd60b22ab  gcc/testsuite/gcc.target/or1k/return-3.c
*************** a45efe7a1d6f8b7f15f7befa3e7b1768  gcc/te
*** 107583,107588 ****
--- 107594,107600 ----
  56c2a0939424aafd465f15ffdd08847b  gcc/testsuite/gdc.dg/pr123798.d
  dd315fdb117d70623ce6b07b3cb8adda  gcc/testsuite/gdc.dg/pr123995.d
  902fe3e7f279d73fc960a4f4cd198bc1  gcc/testsuite/gdc.dg/pr124922.d
+ 0510f96a422a0543d9382a0700a9b0fb  gcc/testsuite/gdc.dg/pr125089.d
  d32aa8ed5ea10931be4ddb5bb9e863d8  gcc/testsuite/gdc.dg/pr89017.d
  53fa8db94d4ca3fc9ba83769733dc0e7  gcc/testsuite/gdc.dg/pr89041.d
  6c316b13f71ea31fcada56b58a41ebd1  gcc/testsuite/gdc.dg/pr89042a.d
*************** f8b96abb98adf78d9bf9645ec4529541  gcc/tr
*** 130971,130977 ****
  73db7c26eb3c2afa63524b388a9849fd  gcc/tree-ssa-loop-ivopts.h
  3b019867aefd4f962c260256d5bed88e  gcc/tree-ssa-loop-manip.cc
  d6013c7f2ea70d40b0d82c53eacccd45  gcc/tree-ssa-loop-manip.h
! dd077208a385ebc47c36426a4208bf7a  gcc/tree-ssa-loop-niter.cc
  722669ffcd66a5eddeeebe77512a22fa  gcc/tree-ssa-loop-niter.h
  a00381a12f6e0a0c69845030d621d615  gcc/tree-ssa-loop-prefetch.cc
  ebf22ffd803f5b75a6819a8b565bcea0  gcc/tree-ssa-loop-split.cc
--- 130983,130989 ----
  73db7c26eb3c2afa63524b388a9849fd  gcc/tree-ssa-loop-ivopts.h
  3b019867aefd4f962c260256d5bed88e  gcc/tree-ssa-loop-manip.cc
  d6013c7f2ea70d40b0d82c53eacccd45  gcc/tree-ssa-loop-manip.h
! 405c4c166c88e24138c7a53991ff1748  gcc/tree-ssa-loop-niter.cc
  722669ffcd66a5eddeeebe77512a22fa  gcc/tree-ssa-loop-niter.h
  a00381a12f6e0a0c69845030d621d615  gcc/tree-ssa-loop-prefetch.cc
  ebf22ffd803f5b75a6819a8b565bcea0  gcc/tree-ssa-loop-split.cc
*************** f9f30b312deca96b11a781af60153767  gcc/tr
*** 131001,131007 ****
  0446a2ea253b8980787fe93568c7836b  gcc/tree-ssa-tail-merge.cc
  4835f0b56bdf88ee25d6d6e08808a7db  gcc/tree-ssa-ter.cc
  ade30359e437d413371ab6bf896f2aa8  gcc/tree-ssa-ter.h
! 937f647b1c97c5dbf05cfad994927673  gcc/tree-ssa-threadbackward.cc
  ad70c411b7d21101dac0ae7123f4d652  gcc/tree-ssa-threadedge.cc
  68901eab6fa42a8561fa69c7ce55bf1d  gcc/tree-ssa-threadedge.h
  88020d1afacf71ef579fbd0ac820aa92  gcc/tree-ssa-threadupdate.cc
--- 131013,131019 ----
  0446a2ea253b8980787fe93568c7836b  gcc/tree-ssa-tail-merge.cc
  4835f0b56bdf88ee25d6d6e08808a7db  gcc/tree-ssa-ter.cc
  ade30359e437d413371ab6bf896f2aa8  gcc/tree-ssa-ter.h
! 4c513039b9c6f19dac425ae61676f4d9  gcc/tree-ssa-threadbackward.cc
  ad70c411b7d21101dac0ae7123f4d652  gcc/tree-ssa-threadedge.cc
  68901eab6fa42a8561fa69c7ce55bf1d  gcc/tree-ssa-threadedge.h
  88020d1afacf71ef579fbd0ac820aa92  gcc/tree-ssa-threadupdate.cc
*************** a423c268d5ba9ac563732fd6d038c572  gcc/tr
*** 131027,131033 ****
  48ab42d8d2d1b36b53266eaaba74549e  gcc/tree-vect-loop.cc
  b65839ac30937104b9a0643233f69538  gcc/tree-vect-patterns.cc
  f4494efe1c7d9f006f6abb9a9be493d2  gcc/tree-vect-slp-patterns.cc
! 5719f60864e5a8f3cb680531418ad4ac  gcc/tree-vect-slp.cc
  1e0a184e5916e9a6e1ace6bb47ebe692  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
--- 131039,131045 ----
  48ab42d8d2d1b36b53266eaaba74549e  gcc/tree-vect-loop.cc
  b65839ac30937104b9a0643233f69538  gcc/tree-vect-patterns.cc
  f4494efe1c7d9f006f6abb9a9be493d2  gcc/tree-vect-slp-patterns.cc
! b1cdd5d148e6bcfc54c99a0a2b9192d9  gcc/tree-vect-slp.cc
  1e0a184e5916e9a6e1ace6bb47ebe692  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 145797,145803 ****
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! cc91c324b2feb75f2eb67436fbfa5c35  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 145809,145815 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! ec487f215e99c8c7e024240e98acdc90  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** bfcbc1fdbf99aa57e07470ca81fd7627  libstd
*** 146033,146039 ****
  015a7bc96be2528c79352941cf0f8da0  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  01fb2b0a0286e9788188d21c40eee93c  libstdc++-v3/doc/doxygen/doxygroups.cc
! 520db39aef0e2a59418132af88b897ed  libstdc++-v3/doc/doxygen/mainpage.html
  9e50e6ed5219a6fa4058265ed4809638  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
  2945717515d4946f0f39628d301ddac6  libstdc++-v3/doc/doxygen/user.cfg.in
--- 146045,146051 ----
  015a7bc96be2528c79352941cf0f8da0  libstdc++-v3/doc/Makefile.in
  3f7ff07f68cc7610addc1921bc125548  libstdc++-v3/doc/doxygen/Intro.3
  01fb2b0a0286e9788188d21c40eee93c  libstdc++-v3/doc/doxygen/doxygroups.cc
! 0afaede288e1533644cb1445cf4ff813  libstdc++-v3/doc/doxygen/mainpage.html
  9e50e6ed5219a6fa4058265ed4809638  libstdc++-v3/doc/doxygen/stdheader.cc
  1273764cd133c402d2d3f22cf2913af5  libstdc++-v3/doc/doxygen/tables.html
  2945717515d4946f0f39628d301ddac6  libstdc++-v3/doc/doxygen/user.cfg.in
*************** e9057d3a64660954bf7134e2fb721b51  libstd
*** 146558,146564 ****
  b745abd5614b31045999aba98b3d30c4  libstdc++-v3/include/bits/random.h
  28c93e0aed9526e3f5092fe17092e92a  libstdc++-v3/include/bits/random.tcc
  3a5b2c90b69b348c27562cf65e40b23f  libstdc++-v3/include/bits/range_access.h
! 0b2a4a5a8552148817067fd04c0dc935  libstdc++-v3/include/bits/ranges_algo.h
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
  be4d83717ac91b3baa833f61b2456293  libstdc++-v3/include/bits/ranges_base.h
  c04d8e83343df391a348af7cf384e792  libstdc++-v3/include/bits/ranges_cmp.h
--- 146570,146576 ----
  b745abd5614b31045999aba98b3d30c4  libstdc++-v3/include/bits/random.h
  28c93e0aed9526e3f5092fe17092e92a  libstdc++-v3/include/bits/random.tcc
  3a5b2c90b69b348c27562cf65e40b23f  libstdc++-v3/include/bits/range_access.h
! 91a3a127b4d8b0d05094dd720c6074ae  libstdc++-v3/include/bits/ranges_algo.h
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
  be4d83717ac91b3baa833f61b2456293  libstdc++-v3/include/bits/ranges_base.h
  c04d8e83343df391a348af7cf384e792  libstdc++-v3/include/bits/ranges_cmp.h
*************** ed462c96f62bdf1b74863ce869094491  libstd
*** 146638,146646 ****
  e068a6cceadc0aec8d8e47311cac3f91  libstdc++-v3/include/bits/this_thread_sleep.h
  a315f61009849bba79498b388f94c177  libstdc++-v3/include/bits/unicode-data.h
  8d7b0008119045f5029e61c141c3c2ff  libstdc++-v3/include/bits/unicode.h
! 3d2b88f1657e6f77a55d546f589e7415  libstdc++-v3/include/bits/uniform_int_dist.h
  966bb21f0f44c4b2b6e713e62aeb90ae  libstdc++-v3/include/bits/unique_lock.h
! a911e8012ebb64890a0e12c16e4345ed  libstdc++-v3/include/bits/unique_ptr.h
  b1052f564f9839906c0d1f1f7a3296ea  libstdc++-v3/include/bits/unordered_map.h
  3e95bc3dafd1a579438226ba448f80e4  libstdc++-v3/include/bits/unordered_set.h
  4fbbeaf99e17abfaf62cec53ac3c9193  libstdc++-v3/include/bits/uses_allocator.h
--- 146650,146658 ----
  e068a6cceadc0aec8d8e47311cac3f91  libstdc++-v3/include/bits/this_thread_sleep.h
  a315f61009849bba79498b388f94c177  libstdc++-v3/include/bits/unicode-data.h
  8d7b0008119045f5029e61c141c3c2ff  libstdc++-v3/include/bits/unicode.h
! cca61b6eab779ef500cceeed96c678a8  libstdc++-v3/include/bits/uniform_int_dist.h
  966bb21f0f44c4b2b6e713e62aeb90ae  libstdc++-v3/include/bits/unique_lock.h
! 722fac3b4af50bc63abc72f7120b80c6  libstdc++-v3/include/bits/unique_ptr.h
  b1052f564f9839906c0d1f1f7a3296ea  libstdc++-v3/include/bits/unordered_map.h
  3e95bc3dafd1a579438226ba448f80e4  libstdc++-v3/include/bits/unordered_set.h
  4fbbeaf99e17abfaf62cec53ac3c9193  libstdc++-v3/include/bits/uses_allocator.h
*************** c0d16a219e2474e2e5ce998569dc7e4c  libstd
*** 149470,149475 ****
--- 149482,149488 ----
  d22e49077a2aa222f8a5c424929064ff  libstdc++-v3/testsuite/20_util/unique_ptr/io/lwg2948.cc
  bb40414adb587ca6cdd1ffd17960c9e2  libstdc++-v3/testsuite/20_util/unique_ptr/lwg2762.cc
  455915dfcf4dc6251c24ac413d3dfcde  libstdc++-v3/testsuite/20_util/unique_ptr/lwg4148.cc
+ 7314924b4534c814fb3127346d74c45f  libstdc++-v3/testsuite/20_util/unique_ptr/lwg4324.cc
  87e06a6a0e860218833fae6dd91e1c1a  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/43183.cc
  376eb786dd68f5c32a230ca8c8e98471  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/48398.cc
  d2648f16a39e71baba3fec77e9979cee  libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc
*************** a7f1585697d061531d68cac8295f80a6  libstd
*** 153284,153289 ****
--- 153297,153303 ----
  87c001c326294949e0306cc2f0d85d1c  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/2.cc
  c7ae41c1c97ad800d4309c931c92c930  libstdc++-v3/testsuite/25_algorithms/rotate_copy/requirements/explicit_instantiation/pod.cc
  4bf5f04c7bbf2d51b6aefaa2593985f3  libstdc++-v3/testsuite/25_algorithms/sample/1.cc
+ 5c77030e1b63f451ec7530c3271fda9d  libstdc++-v3/testsuite/25_algorithms/sample/121919.cc
  6dd04c2f1fcb10e8b113d141c072fbd0  libstdc++-v3/testsuite/25_algorithms/sample/2.cc
  f0ce00c494f09b5d9df5e1352ac7d735  libstdc++-v3/testsuite/25_algorithms/sample/3.cc
  05f00be046ac1aa94845e5e849a35872  libstdc++-v3/testsuite/25_algorithms/sample/81221.cc
*************** f4508e9f1de6dafc3f2e503f335a6b2f  libstd
*** 153338,153343 ****
--- 153352,153358 ----
  8c92fddb51c647f44f4835062b6d3b03  libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc
  ac10b07de50840641fa4ce2ddac1aaa4  libstdc++-v3/testsuite/25_algorithms/shift_right/constrained.cc
  d460ef9b36009a60331e0580c2cf575a  libstdc++-v3/testsuite/25_algorithms/shuffle/1.cc
+ 6a8dc817d37dcb64c6898c996dea800d  libstdc++-v3/testsuite/25_algorithms/shuffle/121919.cc
  b861eef3b28b1368049dafc7ee66a249  libstdc++-v3/testsuite/25_algorithms/shuffle/constrained.cc
  914c77754dc8bc5fcff9aa7c686ccce2  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/2.cc
  ea48c11ed22e4deee094041aa1e7844e  libstdc++-v3/testsuite/25_algorithms/shuffle/requirements/explicit_instantiation/pod.cc
diff -Nrcpad gcc-16-20260502/gcc/ChangeLog gcc-16-20260509/gcc/ChangeLog
*** gcc-16-20260502/gcc/ChangeLog	Sat May  2 22:32:05 2026
--- gcc-16-20260509/gcc/ChangeLog	Sat May  9 22:32:04 2026
***************
*** 1,3 ****
--- 1,102 ----
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125185
+ 	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Guard
+ 	first vect_slp_linearize_chain call.
+ 
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2025-04-30  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120003
+ 	* tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
+ 	Allow block re-use but do not enlarge the path beyond such a
+ 	re-use.
+ 
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR middle-end/125146
+ 	* gimple-fold.cc (fold_stmt_1): Discard stmts in seq
+ 	after failed gimple_simplify as well.
+ 
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125025
+ 	* tree-ssa-loop-niter.cc (number_of_iterations_ne): Avoid
+ 	negation of most negative signed integer.
+ 	(number_of_iterations_lt): Likewise.
+ 
+ 2026-05-06  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120587
+ 	PR target/125155
+ 	* config/or1k/or1k.cc (or1k_hard_regno_mode_ok): Allow condition
+ 	condition flag register in SImode.
+ 
+ 2026-05-06  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	Backported from master:
+ 	2026-05-06  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/125057
+ 	* config/loongarch/loongarch.cc
+ 	(loongarch_split_vector_move): Complete the split condition.
+ 	* config/loongarch/loongarch.h (LSX_REG_RTX_P): Delete.
+ 	(LASX_REG_RTX_P): Delete.
+ 	(GP_REG_RTX_P): Define macro.
+ 
+ 2026-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-06  Richard Biener  <rguenther@suse.de>
+ 
+ 	* config/i386/x86-tune.def (avx512_two_epilogues): Enable
+ 	for m_ZNVER6.
+ 	(avx512_masked_epilogues): Likewise.
+ 
+ 2026-05-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/125180
+ 	* config/i386/i386.md (HI/SI test -> QI test splitter): Punt if
+ 	operands[2] is a volatile MEM.
+ 
+ 2026-05-04  Nathan Myers  <ncm@cantrip.org>
+ 
+ 	Backported from master:
+ 	2026-05-04  Nathan Myers  <ncm@cantrip.org>
+ 
+ 	* doc/invoke.texi: insert "result" in comment text
+ 
+ 2026-05-03  Collin Funk  <collin.funk1@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-05-03  Collin Funk  <collin.funk1@gmail.com>
+ 
+ 	* glimits.h (__STDC_VERSION_LIMITS_H__): Only define the macro
+ 	if it was not already defined.
+ 
+ 2026-05-02  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/125079
+ 	* tree-ssa-strlen.cc (get_string_length): Don't overwrite
+ 	lenstmt variable with another stmt.
+ 
  2026-05-01  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
  	Revert:
diff -Nrcpad gcc-16-20260502/gcc/DATESTAMP gcc-16-20260509/gcc/DATESTAMP
*** gcc-16-20260502/gcc/DATESTAMP	Sat May  2 22:32:05 2026
--- gcc-16-20260509/gcc/DATESTAMP	Sat May  9 22:32:05 2026
***************
*** 1 ****
! 20260502
--- 1 ----
! 20260509
diff -Nrcpad gcc-16-20260502/gcc/ada/ChangeLog gcc-16-20260509/gcc/ada/ChangeLog
*** gcc-16-20260502/gcc/ada/ChangeLog	Sat May  2 22:32:05 2026
--- gcc-16-20260509/gcc/ada/ChangeLog	Sat May  9 22:32:05 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-05-03  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	PR ada/125168
+ 	* libgnat/s-dorepr__freebsd.adb (Two_Prod): Adjust to renaming.
+ 	(Two_Sqr): Likewise.
+ 
  2026-04-30  Eric Botcazou  <ebotcazou@adacore.com>
  
  	PR ada/125044
diff -Nrcpad gcc-16-20260502/gcc/ada/libgnat/s-dorepr__freebsd.adb gcc-16-20260509/gcc/ada/libgnat/s-dorepr__freebsd.adb
*** gcc-16-20260502/gcc/ada/libgnat/s-dorepr__freebsd.adb	Sat May  2 22:32:05 2026
--- gcc-16-20260509/gcc/ada/libgnat/s-dorepr__freebsd.adb	Sat May  9 22:32:05 2026
*************** package body Product is
*** 134,140 ****
        Ahi, Alo, Bhi, Blo, E : Num;
  
     begin
!       if Is_Infinity (P) or else Is_Zero (P) then
           return (P, 0.0);
  
        else
--- 134,140 ----
        Ahi, Alo, Bhi, Blo, E : Num;
  
     begin
!       if Is_Infinity_Or_NaN (P) or else Is_Zero (P) then
           return (P, 0.0);
  
        else
*************** package body Product is
*** 157,163 ****
        Hi, Lo, E : Num;
  
     begin
!       if Is_Infinity (Q) or else Is_Zero (Q) then
           return (Q, 0.0);
  
        else
--- 157,163 ----
        Hi, Lo, E : Num;
  
     begin
!       if Is_Infinity_Or_NaN (Q) or else Is_Zero (Q) then
           return (Q, 0.0);
  
        else
diff -Nrcpad gcc-16-20260502/gcc/config/i386/i386.md gcc-16-20260509/gcc/config/i386/i386.md
*** gcc-16-20260502/gcc/config/i386/i386.md	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/config/i386/i386.md	Sat May  9 22:32:05 2026
***************
*** 12727,12732 ****
--- 12727,12733 ----
     "reload_completed
      && GET_MODE (operands[2]) != QImode
      && (!REG_P (operands[2]) || ANY_QI_REG_P (operands[2]))
+     && !(MEM_P (operands[2]) && MEM_VOLATILE_P (operands[2]))
      && ((ix86_match_ccmode (insn, CCZmode)
  	 && !(INTVAL (operands[3]) & ~255))
  	|| (ix86_match_ccmode (insn, CCNOmode)
diff -Nrcpad gcc-16-20260502/gcc/config/i386/x86-tune.def gcc-16-20260509/gcc/config/i386/x86-tune.def
*** gcc-16-20260502/gcc/config/i386/x86-tune.def	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/config/i386/x86-tune.def	Sat May  9 22:32:05 2026
*************** DEF_TUNE (X86_TUNE_AVX512_MOVE_BY_PIECES
*** 645,656 ****
  /* X86_TUNE_AVX512_TWO_EPILOGUES: Use two vector epilogues for 512-bit
     vectorized loops.  */
  DEF_TUNE (X86_TUNE_AVX512_TWO_EPILOGUES, "avx512_two_epilogues",
! 	  m_ZNVER4 | m_ZNVER5)
  
  /* X86_TUNE_AVX512_MAKED_EPILOGUES: Use two masked vector epilogues
     when fit.  */
  DEF_TUNE (X86_TUNE_AVX512_MASKED_EPILOGUES, "avx512_masked_epilogues",
! 	  m_ZNVER4 | m_ZNVER5)
  
  /*****************************************************************************/
  /*****************************************************************************/
--- 645,656 ----
  /* X86_TUNE_AVX512_TWO_EPILOGUES: Use two vector epilogues for 512-bit
     vectorized loops.  */
  DEF_TUNE (X86_TUNE_AVX512_TWO_EPILOGUES, "avx512_two_epilogues",
! 	  m_ZNVER4 | m_ZNVER5 | m_ZNVER6)
  
  /* X86_TUNE_AVX512_MAKED_EPILOGUES: Use two masked vector epilogues
     when fit.  */
  DEF_TUNE (X86_TUNE_AVX512_MASKED_EPILOGUES, "avx512_masked_epilogues",
! 	  m_ZNVER4 | m_ZNVER5 | m_ZNVER6)
  
  /*****************************************************************************/
  /*****************************************************************************/
diff -Nrcpad gcc-16-20260502/gcc/config/loongarch/loongarch.cc gcc-16-20260509/gcc/config/loongarch/loongarch.cc
*** gcc-16-20260502/gcc/config/loongarch/loongarch.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/config/loongarch/loongarch.cc	Sat May  9 22:32:05 2026
*************** loongarch_split_vector_move (rtx dest, r
*** 5108,5115 ****
    machine_mode mode = GET_MODE (dest);
    bool lsx_p = LSX_SUPPORTED_MODE_P (mode);
  
!   if (FP_REG_RTX_P (dest))
      {
        gcc_assert (!MEM_P (src));
  
        rtx (*gen_vinsgr2vr_d) (rtx, rtx, rtx, rtx);
--- 5108,5144 ----
    machine_mode mode = GET_MODE (dest);
    bool lsx_p = LSX_SUPPORTED_MODE_P (mode);
  
!   if (FP_REG_RTX_P (dest) && GP_REG_RTX_P (src))
      {
+     /* Since the LoongArch architecture has not yet implemented vector
+        parameter passing, the following operations are required when
+        a function returns a vector type that needs to be passed to a
+        vector register.
+ 
+        As shown in the following instruction sequence:
+ 
+        (call_insn 5 6 12 2 (parallel [
+ 	     (set (reg:V2DI 4 $r4)
+ 		  (call (mem:SI (symbol_ref:DI ("bar"))
+ 				(const_int 0 [0])))
+ 		  (clobber (reg:SI 1 $r1)))]))
+        (insn 12 5 7 2 (set (reg:V2DI 32 $f0)
+ 			   (reg:V2DI 4 $r4)))
+ 
+        insn 12 will be split here as follows:
+        (insn 15 5 16 2 (set (reg:V2DI 32 $f0)
+ 			    (vec_merge:V2DI
+ 				(vec_duplicate:V2DI (reg:DI 4 $r4))
+ 				(reg:V2DI 32 $f0)
+ 				(const_int 1 [0x1]))))
+        (insn 16 15 7 2 (set (reg:V2DI 32 $f0)
+ 			    (vec_merge:V2DI
+ 				(vec_duplicate:V2DI (reg:DI 5 $r5 [+8 ]))
+ 				(reg:V2DI 32 $f0)
+ 				(const_int 2 [0x2]))))
+ 
+        This can be reproduced with the test case lsx-mov-2.c.
+      */
        gcc_assert (!MEM_P (src));
  
        rtx (*gen_vinsgr2vr_d) (rtx, rtx, rtx, rtx);
*************** loongarch_split_vector_move (rtx dest, r
*** 5138,5145 ****
  					  GEN_INT (1 << index)));
  	}
      }
!   else if (FP_REG_RTX_P (src))
      {
        gcc_assert (!MEM_P (dest));
  
        rtx (*gen_vpickve2gr_d) (rtx, rtx, rtx);
--- 5167,5178 ----
  					  GEN_INT (1 << index)));
  	}
      }
!   else if (FP_REG_RTX_P (src) && GP_REG_RTX_P (dest))
      {
+       /* Transfer vector data from vector registers to GPRs, generally
+ 	 for vector argument handling.
+ 	 This can be reproduced with the test case lsx-mov-1.c.
+        */
        gcc_assert (!MEM_P (dest));
  
        rtx (*gen_vpickve2gr_d) (rtx, rtx, rtx);
*************** loongarch_split_vector_move (rtx dest, r
*** 5166,5172 ****
  	  emit_insn (gen_vpickve2gr_d (d, new_src, GEN_INT (index)));
  	}
      }
!   else
      {
        /* This part of the code is designed to handle the following situations:
  	 (set (reg:V2DI 4 $r4)
--- 5199,5205 ----
  	  emit_insn (gen_vpickve2gr_d (d, new_src, GEN_INT (index)));
  	}
      }
!   else if (GP_REG_RTX_P (src) && GP_REG_RTX_P (dest))
      {
        /* This part of the code is designed to handle the following situations:
  	 (set (reg:V2DI 4 $r4)
diff -Nrcpad gcc-16-20260502/gcc/config/loongarch/loongarch.h gcc-16-20260509/gcc/config/loongarch/loongarch.h
*** gcc-16-20260502/gcc/config/loongarch/loongarch.h	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/config/loongarch/loongarch.h	Sat May  9 22:32:05 2026
*************** along with GCC; see the file COPYING3.
*** 368,375 ****
    ((unsigned int) ((int) (REGNO) - LASX_REG_FIRST) < LASX_REG_NUM)
  
  #define FP_REG_RTX_P(X) (REG_P (X) && FP_REG_P (REGNO (X)))
! #define LSX_REG_RTX_P(X) (REG_P (X) && LSX_REG_P (REGNO (X)))
! #define LASX_REG_RTX_P(X) (REG_P (X) && LASX_REG_P (REGNO (X)))
  
  /* Select a register mode required for caller save of hard regno REGNO.  */
  #define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
--- 368,374 ----
    ((unsigned int) ((int) (REGNO) - LASX_REG_FIRST) < LASX_REG_NUM)
  
  #define FP_REG_RTX_P(X) (REG_P (X) && FP_REG_P (REGNO (X)))
! #define GP_REG_RTX_P(X) (REG_P (X) && GP_REG_P (REGNO (X)))
  
  /* Select a register mode required for caller save of hard regno REGNO.  */
  #define HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) \
diff -Nrcpad gcc-16-20260502/gcc/config/or1k/or1k.cc gcc-16-20260509/gcc/config/or1k/or1k.cc
*** gcc-16-20260502/gcc/config/or1k/or1k.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/config/or1k/or1k.cc	Sat May  9 22:32:05 2026
*************** or1k_trampoline_init (rtx m_tramp, tree
*** 1389,1398 ****
  static bool
  or1k_hard_regno_mode_ok (unsigned int regno, machine_mode mode)
  {
!   /* For OpenRISC, GENERAL_REGS can hold anything, while
!      FLAG_REGS are really single bits within SP[SR].  */
    if (REGNO_REG_CLASS (regno) == FLAG_REGS)
!     return mode == BImode;
    return true;
  }
  
--- 1389,1399 ----
  static bool
  or1k_hard_regno_mode_ok (unsigned int regno, machine_mode mode)
  {
!   /* For OpenRISC, GENERAL_REGS can hold anything, while FLAG_REGS are
!      really single bits within SP[SR].  Also allow condition flag register
!      in SImode to match or1k_can_change_mode_class.  */
    if (REGNO_REG_CLASS (regno) == FLAG_REGS)
!     return mode == BImode || mode == SImode;
    return true;
  }
  
diff -Nrcpad gcc-16-20260502/gcc/cp/ChangeLog gcc-16-20260509/gcc/cp/ChangeLog
*** gcc-16-20260502/gcc/cp/ChangeLog	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/ChangeLog	Sat May  9 22:32:06 2026
***************
*** 1,3 ****
--- 1,54 ----
+ 2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124770
+ 	* decl.cc (wrapup_namespace_globals): Give the odr-used
+ 	inline variable error only when !DECL_INITIAL.
+ 
+ 2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125206
+ 	* tree.cc (strip_typedefs_expr) <case REFLECT_EXPR>: Always
+ 	return instead of recursing.
+ 
+ 2026-05-06  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-06  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/125179
+ 	* reflect.cc: (consteval_only_type_r): Remove this cp_walk_tree
+ 	callback and replace with ...
+ 	(consteval_only_walker): ... this recursive memoized
+ 	implementation.
+ 	(consteval_only_p): Define in terms of consteval_only_walker.
+ 
+ 2026-05-06  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124957
+ 	* class.cc (check_tag): Set ABI_TAG_INHERITED on the TREE_LIST
+ 	of an inherited tag.  Adjust after ABI_TAG_IMPLICIT renaming.
+ 	* cp-tree.h (ABI_TAG_IMPLICIT): Rename to ...
+ 	(ABI_TAG_NOT_MANGLED): ... this.
+ 	(equal_abi_tags): Adjust forward declaration.
+ 	* mangle.cc (write_unqualified_name): Adjust equal_abi_tags call.
+ 	(sorted_abi_tags): New ignore_inherited_p parameter, for ignoring
+ 	ABI_TAG_INHERITED tags.  Adjust after ABI_TAG_INHERITED renaming.
+ 	(write_abi_tags): Adjust sorted_abi_tags call.
+ 	(equal_abi_tags): New ignore_inherited_p parameter.  Pass it to
+ 	sorted_abi_tags.
+ 	* module.cc (trees_in::check_abi_tags): Pass
+ 	ignore_inherited_p=true to equal_abi_tags iff there's a
+ 	mangled-ness mismatch.
+ 
  2026-05-01  Patrick Palka  <ppalka@redhat.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260502/gcc/cp/class.cc gcc-16-20260509/gcc/cp/class.cc
*** gcc-16-20260502/gcc/cp/class.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/class.cc	Sat May  9 22:32:06 2026
*************** check_tag (tree tag, tree id, tree *tp,
*** 1711,1721 ****
  	  /* Don't inherit this tag multiple times.  */
  	  IDENTIFIER_MARKED (id) = true;
  
  	  if (TYPE_P (p->t))
  	    {
  	      /* Tags inherited from type template arguments are only used
  		 to avoid warnings.  */
! 	      ABI_TAG_IMPLICIT (p->tags) = true;
  	      return;
  	    }
  	  /* For functions and variables we want to warn, too.  */
--- 1711,1722 ----
  	  /* Don't inherit this tag multiple times.  */
  	  IDENTIFIER_MARKED (id) = true;
  
+ 	  ABI_TAG_INHERITED (p->tags) = true;
  	  if (TYPE_P (p->t))
  	    {
  	      /* Tags inherited from type template arguments are only used
  		 to avoid warnings.  */
! 	      ABI_TAG_NOT_MANGLED (p->tags) = true;
  	      return;
  	    }
  	  /* For functions and variables we want to warn, too.  */
diff -Nrcpad gcc-16-20260502/gcc/cp/cp-tree.h gcc-16-20260509/gcc/cp/cp-tree.h
*** gcc-16-20260502/gcc/cp/cp-tree.h	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/cp-tree.h	Sat May  9 22:32:06 2026
*************** extern GTY(()) tree cp_global_trees[CPTI
*** 429,435 ****
        TARGET_EXPR_IMPLICIT_P (in TARGET_EXPR)
        TEMPLATE_PARM_PARAMETER_PACK (in TEMPLATE_PARM_INDEX)
        ATTR_IS_DEPENDENT (in the TREE_LIST for an attribute)
!       ABI_TAG_IMPLICIT (in the TREE_LIST for the argument of abi_tag)
        LAMBDA_CAPTURE_EXPLICIT_P (in a TREE_LIST in LAMBDA_EXPR_CAPTURE_LIST)
        PARENTHESIZED_LIST_P (in the TREE_LIST for a parameter-declaration-list)
        CONSTRUCTOR_IS_DIRECT_INIT (in CONSTRUCTOR)
--- 429,435 ----
        TARGET_EXPR_IMPLICIT_P (in TARGET_EXPR)
        TEMPLATE_PARM_PARAMETER_PACK (in TEMPLATE_PARM_INDEX)
        ATTR_IS_DEPENDENT (in the TREE_LIST for an attribute)
!       ABI_TAG_NOT_MANGLED (in the TREE_LIST for the argument of abi_tag)
        LAMBDA_CAPTURE_EXPLICIT_P (in a TREE_LIST in LAMBDA_EXPR_CAPTURE_LIST)
        PARENTHESIZED_LIST_P (in the TREE_LIST for a parameter-declaration-list)
        CONSTRUCTOR_IS_DIRECT_INIT (in CONSTRUCTOR)
*************** extern GTY(()) tree cp_global_trees[CPTI
*** 480,485 ****
--- 480,486 ----
        BASELINK_FUNCTIONS_MAYBE_INCOMPLETE_P (in BASELINK)
        BIND_EXPR_VEC_DTOR (in BIND_EXPR)
        ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P (in ATOMIC_CONSTR)
+       ABI_TAG_INHERITED (in the TREE_LIST for the argument of abi_tag)
        STATIC_INIT_DECOMP_BASE_P (in the TREE_LIST for {static,tls}_aggregates)
        MUST_NOT_THROW_THROW_P (in MUST_NOT_THROW_EXPR)
        LAMBDA_EXPR_CONST_QUAL_P (in LAMBDA_EXPR)
*************** struct GTY(()) lang_decl {
*** 3962,3969 ****
  #define ATTR_IS_DEPENDENT(NODE) TREE_LANG_FLAG_0 (TREE_LIST_CHECK (NODE))
  
  /* In a TREE_LIST in the argument of attribute abi_tag, indicates that the tag
!    was inherited from a template parameter, not explicitly indicated.  */
! #define ABI_TAG_IMPLICIT(NODE) TREE_LANG_FLAG_0 (TREE_LIST_CHECK (NODE))
  
  /* In a TREE_LIST for a parameter-declaration-list, indicates that all the
     parameters in the list have declarators enclosed in ().  */
--- 3963,3976 ----
  #define ATTR_IS_DEPENDENT(NODE) TREE_LANG_FLAG_0 (TREE_LIST_CHECK (NODE))
  
  /* In a TREE_LIST in the argument of attribute abi_tag, indicates that the tag
!    was inherited from a template parameter, not explicitly indicated.
!    These are not mangled because they're already represented in the mangling
!    of the template argument.  */
! #define ABI_TAG_NOT_MANGLED(NODE) TREE_LANG_FLAG_0 (TREE_LIST_CHECK (NODE))
! 
! /* In a TREE_LIST in the argument of attribute abi_tag, indicates that the tag
!  * was added by check_abi_tags, not explicitly specified.  */
! #define ABI_TAG_INHERITED(NODE) TREE_LANG_FLAG_1 (TREE_LIST_CHECK (NODE))
  
  /* In a TREE_LIST for a parameter-declaration-list, indicates that all the
     parameters in the list have declarators enclosed in ().  */
*************** extern void mangle_module_substitution
*** 9114,9120 ****
  extern int mangle_module_component		(tree id, bool partition);
  extern tree mangle_module_global_init		(int);
  extern unsigned HOST_WIDE_INT range_expr_nelts	(tree);
! extern bool equal_abi_tags			(tree, tree);
  
  /* in dump.cc */
  extern bool cp_dump_tree			(void *, tree);
--- 9121,9127 ----
  extern int mangle_module_component		(tree id, bool partition);
  extern tree mangle_module_global_init		(int);
  extern unsigned HOST_WIDE_INT range_expr_nelts	(tree);
! extern bool equal_abi_tags			(tree, tree, bool);
  
  /* in dump.cc */
  extern bool cp_dump_tree			(void *, tree);
diff -Nrcpad gcc-16-20260502/gcc/cp/decl.cc gcc-16-20260509/gcc/cp/decl.cc
*** gcc-16-20260502/gcc/cp/decl.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/decl.cc	Sat May  9 22:32:06 2026
*************** wrapup_namespace_globals ()
*** 1023,1028 ****
--- 1023,1032 ----
  
  	  if (VAR_P (decl)
  	      && DECL_EXTERNAL (decl)
+ 	      /* We mark consteval-only variables DECL_EXTERNAL, but
+ 		  extern constexpr inline std::meta::info i{};
+ 		 is a definition (the extern is redundant).  */
+ 	      && !DECL_INITIAL (decl)
  	      && DECL_INLINE_VAR_P (decl)
  	      && DECL_ODR_USED (decl))
  	    error_at (DECL_SOURCE_LOCATION (decl),
diff -Nrcpad gcc-16-20260502/gcc/cp/mangle.cc gcc-16-20260509/gcc/cp/mangle.cc
*** gcc-16-20260502/gcc/cp/mangle.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/mangle.cc	Sat May  9 22:32:06 2026
*************** write_unqualified_name (tree decl)
*** 1645,1651 ****
  
  	  if (!G.need_abi_warning
  	      && abi_warn_or_compat_version_crosses (11)
! 	      && !equal_abi_tags (dtags, mtags))
  	    G.need_abi_warning = 1;
  
  	  if (!abi_version_at_least (10))
--- 1645,1651 ----
  
  	  if (!G.need_abi_warning
  	      && abi_warn_or_compat_version_crosses (11)
! 	      && !equal_abi_tags (dtags, mtags, /*ignore_inherited_p=*/false))
  	    G.need_abi_warning = 1;
  
  	  if (!abi_version_at_least (10))
*************** tree_string_cmp (const void *p1, const v
*** 1709,1721 ****
  /* Return the TREE_LIST of TAGS as a sorted VEC.  */
  
  static vec<tree, va_gc> *
! sorted_abi_tags (tree tags)
  {
    vec<tree, va_gc> * vec = make_tree_vector();
  
    for (tree t = tags; t; t = TREE_CHAIN (t))
      {
!       if (ABI_TAG_IMPLICIT (t))
  	continue;
        tree str = TREE_VALUE (t);
        vec_safe_push (vec, str);
--- 1709,1722 ----
  /* Return the TREE_LIST of TAGS as a sorted VEC.  */
  
  static vec<tree, va_gc> *
! sorted_abi_tags (tree tags, bool ignore_inherited_p)
  {
    vec<tree, va_gc> * vec = make_tree_vector();
  
    for (tree t = tags; t; t = TREE_CHAIN (t))
      {
!       if (ABI_TAG_NOT_MANGLED (t)
! 	  || (ignore_inherited_p && ABI_TAG_INHERITED (t)))
  	continue;
        tree str = TREE_VALUE (t);
        vec_safe_push (vec, str);
*************** write_abi_tags (tree tags)
*** 1735,1741 ****
    if (tags == NULL_TREE)
      return;
  
!   vec<tree, va_gc> * vec = sorted_abi_tags (tags);
  
    unsigned i; tree str;
    FOR_EACH_VEC_ELT (*vec, i, str)
--- 1736,1742 ----
    if (tags == NULL_TREE)
      return;
  
!   vec<tree, va_gc> * vec = sorted_abi_tags (tags, /*ignore_inherited_p=*/false);
  
    unsigned i; tree str;
    FOR_EACH_VEC_ELT (*vec, i, str)
*************** write_abi_tags (tree tags)
*** 1751,1760 ****
  /* True iff the TREE_LISTS T1 and T2 of ABI tags are equivalent.  */
  
  bool
! equal_abi_tags (tree t1, tree t2)
  {
!   releasing_vec v1 = sorted_abi_tags (t1);
!   releasing_vec v2 = sorted_abi_tags (t2);
  
    unsigned len1 = v1->length();
    if (len1 != v2->length())
--- 1752,1761 ----
  /* True iff the TREE_LISTS T1 and T2 of ABI tags are equivalent.  */
  
  bool
! equal_abi_tags (tree t1, tree t2, bool ignore_inherited_p)
  {
!   releasing_vec v1 = sorted_abi_tags (t1, ignore_inherited_p);
!   releasing_vec v2 = sorted_abi_tags (t2, ignore_inherited_p);
  
    unsigned len1 = v1->length();
    if (len1 != v2->length())
diff -Nrcpad gcc-16-20260502/gcc/cp/module.cc gcc-16-20260509/gcc/cp/module.cc
*** gcc-16-20260502/gcc/cp/module.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/module.cc	Sat May  9 22:32:06 2026
*************** trees_in::check_abi_tags (tree existing,
*** 12542,12549 ****
        if (dtags)
  	dtags = TREE_VALUE (dtags);
  
!       /* We only error if mangling wouldn't consider the tags equivalent.  */
!       if (!equal_abi_tags (etags, dtags))
  	{
  	  auto_diagnostic_group d;
  	  if (dtags)
--- 12542,12554 ----
        if (dtags)
  	dtags = TREE_VALUE (dtags);
  
!       /* We only error if mangling wouldn't consider the tags equivalent.
! 	 Since tags might have been inherited during mangling, ignore
! 	 inherited tags if there's a mangled-ness mismatch.  */
!       bool ignore_inherited_p
! 	= (DECL_ASSEMBLER_NAME_SET_P (STRIP_TEMPLATE (existing))
! 	   != DECL_ASSEMBLER_NAME_SET_P (STRIP_TEMPLATE (decl)));
!       if (!equal_abi_tags (etags, dtags, ignore_inherited_p))
  	{
  	  auto_diagnostic_group d;
  	  if (dtags)
diff -Nrcpad gcc-16-20260502/gcc/cp/reflect.cc gcc-16-20260509/gcc/cp/reflect.cc
*** gcc-16-20260502/gcc/cp/reflect.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/reflect.cc	Sat May  9 22:32:06 2026
*************** splice (tree refl)
*** 8566,8612 ****
    return refl;
  }
  
! /* A walker for consteval_only_p.  It cannot be a lambda, because we
!    have to call this recursively, sigh.  */
! 
! static tree
! consteval_only_type_r (tree *tp, int *walk_subtrees, void *data)
! {
!   tree t = *tp;
!   /* Types can contain themselves recursively, hence this.  */
!   auto visited = static_cast<hash_set<tree> *>(data);
! 
!   if (!TYPE_P (t))
!     return NULL_TREE;
! 
!   if (REFLECTION_TYPE_P (t))
!     return t;
  
!   if (typedef_variant_p (t))
!     /* Tell cp_walk_subtrees to look through typedefs.  */
!     *walk_subtrees = 2;
  
!   if (RECORD_OR_UNION_TYPE_P (t))
!     {
!       /* Don't walk template arguments; A<info>::type isn't a consteval-only
! 	 type.  */
!       *walk_subtrees = 0;
!       /* So we have to walk the fields manually.  */
!       for (tree member = TYPE_FIELDS (t);
! 	   member; member = DECL_CHAIN (member))
! 	if (TREE_CODE (member) == FIELD_DECL)
! 	  if (tree r = cp_walk_tree (&TREE_TYPE (member),
! 				     consteval_only_type_r, visited, visited))
! 	    return r;
!     }
  
!   return NULL_TREE;
! }
  
! /* True if T is a consteval-only type as per [basic.types.general]:
!    "A type is consteval-only if it is either std::meta::info or a type
!    compounded from a consteval-only type", or something that has
!    a consteval-only type.  */
  
  bool
  consteval_only_p (tree t)
--- 8566,8591 ----
    return refl;
  }
  
! /* A cache of the known boolean result of consteval_only_p_walker::walk
!    for class types.  */
  
! static GTY((cache)) type_tree_cache_map *consteval_only_class_cache;
  
! struct consteval_only_p_walker
! {
!   /* The set of class types we've seen.  */
!   hash_set<tree> class_seen;
!   /* The number of class types we're recursively inside.  */
!   int class_depth = 0;
!   /* True if we've optimistically assumed an already-seen
!      consteval-unknown class type is not consteval.  */
!   bool optimistic_p = false;
  
!   tristate walk (tree);
! };
  
! /* True if T is a consteval-only type as per [basic.types.general]/12,
!    or is a declaration with such a type, or a TREE_VEC thereof.  */
  
  bool
  consteval_only_p (tree t)
*************** consteval_only_p (tree t)
*** 8617,8623 ****
    if (!TYPE_P (t))
      t = TREE_TYPE (t);
  
!   if (!t)
      return false;
  
    if (TREE_CODE (t) == TREE_VEC)
--- 8596,8602 ----
    if (!TYPE_P (t))
      t = TREE_TYPE (t);
  
!   if (!t || t == error_mark_node)
      return false;
  
    if (TREE_CODE (t) == TREE_VEC)
*************** consteval_only_p (tree t)
*** 8639,8647 ****
       which could be consteval-only, depending on T.  */
    t = complete_type (t);
  
!   /* Classes with std::meta::info members are also consteval-only.  */
!   hash_set<tree> visited;
!   return !!cp_walk_tree (&t, consteval_only_type_r, &visited, &visited);
  }
  
  /* A walker for check_out_of_consteval_use_r.  It cannot be a lambda, because
--- 8618,8700 ----
       which could be consteval-only, depending on T.  */
    t = complete_type (t);
  
!   consteval_only_p_walker walker;
!   return walker.walk (t).is_true ();
! }
! 
! /* Recursive workhorse of consteval_only_p.  Returns true if T is definitely
!    consteval-only, false if it's definitely not, and unknown if we saw an
!    incomplete type and therefore don't know.  */
! 
! tristate
! consteval_only_p_walker::walk (tree t)
! {
!   t = TYPE_MAIN_VARIANT (t);
! 
!   if (REFLECTION_TYPE_P (t))
!     return true;
!   else if (INDIRECT_TYPE_P (t))
!     return walk (TREE_TYPE (t));
!   else if (TREE_CODE (t) == ARRAY_TYPE)
!     return walk (TREE_TYPE (t));
!   else if (FUNC_OR_METHOD_TYPE_P (t))
!     {
!       tristate r = walk (TREE_TYPE (t));
!       for (tree parm = TYPE_ARG_TYPES (t);
! 	   parm != NULL_TREE && parm != void_list_node;
! 	   parm = TREE_CHAIN (parm))
! 	{
! 	  if (r.is_true ())
! 	    break;
! 	  r = r || walk (TREE_VALUE (parm));
! 	}
!       return r;
!     }
!   else if (RECORD_OR_UNION_TYPE_P (t))
!     {
!       if (tree *slot = hash_map_safe_get (consteval_only_class_cache, t))
! 	return *slot == boolean_true_node;
! 
!       if (!COMPLETE_TYPE_P (t) && LAMBDA_TYPE_P (t))
! 	/* Defer until we've definitely gone through prune_lambda_captures.  */
! 	return tristate::unknown ();
! 
!       if (class_seen.add (t))
! 	{
! 	  /* Optimistically assume this already seen consteval-unknown class is
! 	     not consteval-only, for sake of mutually recursive classes.  */
! 	  optimistic_p = true;
! 	  return false;
! 	}
!       ++class_depth;
! 
!       tristate r = COMPLETE_TYPE_P (t) ? false : tristate::unknown ();
!       for (tree member = TYPE_FIELDS (t); member; member = DECL_CHAIN (member))
! 	if (TREE_CODE (member) == FIELD_DECL)
! 	  {
! 	    r = r || walk (TREE_TYPE (member));
! 	    if (r.is_true ())
! 	      break;
! 	  }
! 
!       if (r.is_true ())
! 	hash_map_safe_put<hm_ggc> (consteval_only_class_cache,
! 				   t, boolean_true_node);
!       else if (r.is_false ()
! 	       /* The optimistic assumption above is at odds with caching
! 		  'false' results for a nested class type.  */
! 	       && (class_depth == 1 || !optimistic_p))
! 	hash_map_safe_put<hm_ggc> (consteval_only_class_cache,
! 				   t, boolean_false_node);
! 
!       --class_depth;
!       return r;
!     }
!   else if (TYPE_PTRMEM_P (t))
!     return (walk (TYPE_PTRMEM_CLASS_TYPE (t))
! 	    || walk (TYPE_PTRMEM_POINTED_TO_TYPE (t)));
!   else
!     return false;
  }
  
  /* A walker for check_out_of_consteval_use_r.  It cannot be a lambda, because
diff -Nrcpad gcc-16-20260502/gcc/cp/tree.cc gcc-16-20260509/gcc/cp/tree.cc
*** gcc-16-20260502/gcc/cp/tree.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/cp/tree.cc	Sat May  9 22:32:06 2026
*************** strip_typedefs_expr (tree t, bool *remov
*** 2153,2164 ****
  
      case LAMBDA_EXPR:
      case STMT_EXPR:
!       return t;
! 
      case REFLECT_EXPR:
!       /* ^^alias represents the alias itself, not the underlying type.  */
!       if (TYPE_P (REFLECT_EXPR_HANDLE (t)))
! 	return t;
  
      default:
        break;
--- 2153,2161 ----
  
      case LAMBDA_EXPR:
      case STMT_EXPR:
!     /* ^^alias represents the alias itself, not the underlying type.  */
      case REFLECT_EXPR:
!       return t;
  
      default:
        break;
diff -Nrcpad gcc-16-20260502/gcc/d/ChangeLog gcc-16-20260509/gcc/d/ChangeLog
*** gcc-16-20260502/gcc/d/ChangeLog	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/d/ChangeLog	Sat May  9 22:32:06 2026
***************
*** 1,3 ****
--- 1,15 ----
+ 2026-05-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2026-05-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/125089
+ 	* types.cc (finish_aggregate_mode): Explicitly set TYPE_MODE of
+ 	non-POD types here.
+ 	(finish_aggregate_type): Propagate TREE_ADDRESSABLE to all variants.
+ 	(TypeVisitor::visit (TypeStruct *)): Set TREE_ADDRESSABLE before
+ 	visiting struct members.
+ 
  2026-04-30  Release Manager
  
  	* GCC 16.1.0 released.
diff -Nrcpad gcc-16-20260502/gcc/d/types.cc gcc-16-20260509/gcc/d/types.cc
*** gcc-16-20260502/gcc/d/types.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/d/types.cc	Sat May  9 22:32:06 2026
*************** finish_aggregate_mode (tree type)
*** 593,599 ****
  	return;
      }
  
!   compute_record_mode (type);
  
    /* Propagate computed mode to all variants of this aggregate type.  */
    for (tree t = TYPE_MAIN_VARIANT (type); t; t = TYPE_NEXT_VARIANT (t))
--- 593,604 ----
  	return;
      }
  
!   /* Force mode of non-trivially copyable structs to be BLKmode, preventing it
!      from being returned in a register.  */
!   if (TREE_ADDRESSABLE (type))
!     SET_TYPE_MODE (type, BLKmode);
!   else
!     compute_record_mode (type);
  
    /* Propagate computed mode to all variants of this aggregate type.  */
    for (tree t = TYPE_MAIN_VARIANT (type); t; t = TYPE_NEXT_VARIANT (t))
*************** finish_aggregate_type (unsigned structsi
*** 715,720 ****
--- 720,726 ----
        TYPE_PACKED (t) = TYPE_PACKED (type);
        SET_TYPE_ALIGN (t, TYPE_ALIGN (type));
        TYPE_USER_ALIGN (t) = TYPE_USER_ALIGN (type);
+       TREE_ADDRESSABLE (t) = TREE_ADDRESSABLE (type);
      }
  
    /* Complete any other forward-referenced fields of this aggregate type.  */
*************** public:
*** 1236,1241 ****
--- 1242,1253 ----
      TYPE_LANG_SPECIFIC (t->ctype) = build_lang_type (t);
      TYPE_CXX_ODR_P (t->ctype) = 1;
  
+     /* For structs with a user defined postblit, copy constructor, or a
+        destructor, also set TREE_ADDRESSABLE on the type and all variants.
+        This will make the struct be passed around by reference.  */
+     if (!dmd::isPOD (t->sym))
+       TREE_ADDRESSABLE (t->ctype) = 1;
+ 
      if (t->sym->members)
        {
  	/* Must set up the overall size and alignment before determining
*************** public:
*** 1257,1274 ****
  	build_type_decl (t->ctype, t->sym);
  	apply_user_attributes (t->sym, t->ctype);
        }
- 
-     /* For structs with a user defined postblit, copy constructor, or a
-        destructor, also set TREE_ADDRESSABLE on the type and all variants.
-        This will make the struct be passed around by reference.  */
-     if (!dmd::isPOD (t->sym))
-       {
- 	for (tree tv = t->ctype; tv != NULL_TREE; tv = TYPE_NEXT_VARIANT (tv))
- 	  {
- 	    TREE_ADDRESSABLE (tv) = 1;
- 	    SET_TYPE_MODE (tv, BLKmode);
- 	  }
-       }
    }
  
    /* Build a class type.  Whereas structs are value types, classes are
--- 1269,1274 ----
diff -Nrcpad gcc-16-20260502/gcc/doc/invoke.texi gcc-16-20260509/gcc/doc/invoke.texi
*** gcc-16-20260502/gcc/doc/invoke.texi	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/doc/invoke.texi	Sat May  9 22:32:06 2026
*************** void foo (void)
*** 8319,8328 ****
    int f = 0; // No warning, f used
    int g = f = 5;
    (void) g;
!   int h = 0; // No warning, preincrement used
    int i = ++h;
    (void) i;
!   int j = 0; // No warning, postdecrement used
    int k = j--;
    (void) k;
    int l = 0; // No warning, l used
--- 8319,8328 ----
    int f = 0; // No warning, f used
    int g = f = 5;
    (void) g;
!   int h = 0; // No warning, preincrement result used
    int i = ++h;
    (void) i;
!   int j = 0; // No warning, postdecrement result used
    int k = j--;
    (void) k;
    int l = 0; // No warning, l used
diff -Nrcpad gcc-16-20260502/gcc/gimple-fold.cc gcc-16-20260509/gcc/gimple-fold.cc
*** gcc-16-20260502/gcc/gimple-fold.cc	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/gimple-fold.cc	Sat May  9 22:32:06 2026
*************** fold_stmt_1 (gimple_stmt_iterator *gsi,
*** 6850,6863 ****
        gimple_seq seq = NULL;
        gimple_match_op res_op;
        if (gimple_simplify (stmt, &res_op, inplace ? NULL : &seq,
! 			   valueize, valueize))
! 	{
! 	  if (replace_stmt_with_simplification (gsi, &res_op, &seq, inplace,
! 						dce_worklist))
! 	    changed = true;
! 	  else
! 	    gimple_seq_discard (seq);
! 	}
      }
  
    stmt = gsi_stmt (*gsi);
--- 6850,6861 ----
        gimple_seq seq = NULL;
        gimple_match_op res_op;
        if (gimple_simplify (stmt, &res_op, inplace ? NULL : &seq,
! 			   valueize, valueize)
! 	  && replace_stmt_with_simplification (gsi, &res_op, &seq, inplace,
! 					       dce_worklist))
! 	changed = true;
!       else
! 	gimple_seq_discard (seq);
      }
  
    stmt = gsi_stmt (*gsi);
diff -Nrcpad gcc-16-20260502/gcc/glimits.h gcc-16-20260509/gcc/glimits.h
*** gcc-16-20260502/gcc/glimits.h	Sat May  2 22:32:06 2026
--- gcc-16-20260509/gcc/glimits.h	Sat May  9 22:32:06 2026
*************** see the files COPYING3 and COPYING.RUNTI
*** 162,168 ****
  #  define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
  # endif
  
! # define __STDC_VERSION_LIMITS_H__	202311L
  #endif
  
  #endif /* _LIMITS_H___ */
--- 162,170 ----
  #  define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
  # endif
  
! # ifndef __STDC_VERSION_LIMITS_H__
! #  define __STDC_VERSION_LIMITS_H__	202311L
! # endif
  #endif
  
  #endif /* _LIMITS_H___ */
diff -Nrcpad gcc-16-20260502/gcc/po/ChangeLog gcc-16-20260509/gcc/po/ChangeLog
*** gcc-16-20260502/gcc/po/ChangeLog	Sat May  2 22:32:07 2026
--- gcc-16-20260509/gcc/po/ChangeLog	Sat May  9 22:32:06 2026
***************
*** 1,3 ****
--- 1,7 ----
+ 2026-05-05  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* de.po: Update.
+ 
  2026-05-01  Joseph Myers  <josmyers@redhat.com>
  
  	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
diff -Nrcpad gcc-16-20260502/gcc/po/de.po gcc-16-20260509/gcc/po/de.po
*** gcc-16-20260502/gcc/po/de.po	Sat May  2 22:32:07 2026
--- gcc-16-20260509/gcc/po/de.po	Sat May  9 22:32:06 2026
***************
*** 8,17 ****
  # Roland Illig <roland.illig@gmx.de>, 2015, 2017-2026.
  msgid ""
  msgstr ""
! "Project-Id-Version: gcc 16.1-b20260329\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-04-22 17:18+0000\n"
! "PO-Revision-Date: 2026-03-30 21:36+0200\n"
  "Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
  "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
  "Language: de\n"
--- 8,17 ----
  # Roland Illig <roland.illig@gmx.de>, 2015, 2017-2026.
  msgid ""
  msgstr ""
! "Project-Id-Version: gcc 16.1.0\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-04-22 17:18+0000\n"
! "PO-Revision-Date: 2026-05-03 23:11+0200\n"
  "Last-Translator: Roland Illig <roland.illig@gmx.de>\n"
  "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
  "Language: de\n"
*************** msgstr "Umgehung von Erratum 843419 für
*** 5728,5734 ****
  #: config/aarch64/aarch64.opt:108
  #, no-c-format
  msgid "Enable narrowing of 64-bit general purpose register writes to 32-bit when upper 32 bits of the register are unused."
! msgstr ""
  
  #: config/aarch64/aarch64.opt:121
  #, no-c-format
--- 5728,5734 ----
  #: config/aarch64/aarch64.opt:108
  #, no-c-format
  msgid "Enable narrowing of 64-bit general purpose register writes to 32-bit when upper 32 bits of the register are unused."
! msgstr "Einschalten, dass bei Schreibzugriffen auf 64-Bit-Allzweck-Register nur die unteren 32 Bit geschrieben werden, soweit die oberen 32 Bit ungenutzt sind."
  
  #: config/aarch64/aarch64.opt:121
  #, no-c-format
*************** msgstr "Schleifenvektorisierung von Glei
*** 11259,11265 ****
  #: params.opt:1300
  #, no-c-format
  msgid "Enable vectorization of loops that may not be profitable according to the cost model but still perform costing between vector modes."
! msgstr ""
  
  #: params.opt:1304
  #, no-c-format
--- 11259,11265 ----
  #: params.opt:1300
  #, no-c-format
  msgid "Enable vectorization of loops that may not be profitable according to the cost model but still perform costing between vector modes."
! msgstr "Einschalten der Vektorisierung von Schleifen, die nach dem Kostenmodell möglicherweise nicht rentabel sind, aber dennoch eine Kostenberechnung zwischen den Vektormodi durchführen."
  
  #: params.opt:1304
  #, no-c-format
*************** msgid "At global scope:"
*** 22282,22291 ****
  msgstr "Im globalen Gültigkeitsbereich:"
  
  #: cp/reflect.cc:408
- #, fuzzy
- #| msgid "reflect_constant failed"
  msgid "reflect_constant_array failed"
! msgstr "reflect_constant fehlgeschlagen"
  
  #: cp/reflect.cc:424 cp/reflect.cc:659 cp/reflect.cc:4039
  msgid "reflect_constant failed"
--- 22282,22289 ----
  msgstr "Im globalen Gültigkeitsbereich:"
  
  #: cp/reflect.cc:408
  msgid "reflect_constant_array failed"
! msgstr "reflect_constant_array fehlgeschlagen"
  
  #: cp/reflect.cc:424 cp/reflect.cc:659 cp/reflect.cc:4039
  msgid "reflect_constant failed"
*************** msgid "u8identifier_of not representable
*** 22392,22413 ****
  msgstr "u8identifier_of ist nicht in UTF-8 darstellbar"
  
  #: cp/reflect.cc:3777
- #, fuzzy
- #| msgid "identifier_of not representable in ordinary literal encoding"
  msgid "display_string_of not representable in ordinary literal encoding"
! msgstr "identifier_of ist im gewöhnlichen Encoding für Literale nicht darstellbar"
  
  #: cp/reflect.cc:3782
- #, fuzzy
- #| msgid "u8identifier_of not representable in UTF-8"
  msgid "u8display_string_of not representable in UTF-8"
! msgstr "u8identifier_of ist nicht in UTF-8 darstellbar"
  
  #: cp/reflect.cc:3922
- #, fuzzy
- #| msgid "reflection does not represent a type, type alias, variable, function, namespace, enumerator, direct base class relationship, or non-static data member"
  msgid "reflection does not represent a type, type alias, variable, function, function parameter, namespace, enumerator, direct base class relationship, or non-static data member"
! msgstr "Reflexion stellt weder Typ noch Typalias, Variable, Funktion, Namespace, Enumerator, direkte Basisklassenbeziehung oder nicht statisches Datenelement dar"
  
  #: cp/reflect.cc:3935
  msgid "reflection does not represent a complete type or type alias"
--- 22390,22405 ----
  msgstr "u8identifier_of ist nicht in UTF-8 darstellbar"
  
  #: cp/reflect.cc:3777
  msgid "display_string_of not representable in ordinary literal encoding"
! msgstr "display_string_of ist im gewöhnlichen Encoding für Literale nicht darstellbar"
  
  #: cp/reflect.cc:3782
  msgid "u8display_string_of not representable in UTF-8"
! msgstr "u8display_string_of ist nicht in UTF-8 darstellbar"
  
  #: cp/reflect.cc:3922
  msgid "reflection does not represent a type, type alias, variable, function, function parameter, namespace, enumerator, direct base class relationship, or non-static data member"
! msgstr "Reflektion stellt weder Typ noch Typalias, Variable, Funktion, Funktionsparameter, Namespace, Enumerator, direkte Basisklassenbeziehung oder nicht statisches Datenelement dar"
  
  #: cp/reflect.cc:3935
  msgid "reflection does not represent a complete type or type alias"
*************** msgstr "weder Name noch bit_width angege
*** 22487,22493 ****
  
  #: cp/reflect.cc:5997
  msgid "no name and non-empty annotations specified"
! msgstr ""
  
  #: cp/reflect.cc:6003
  msgid "bit_width specified with non-integral and non-enumeration type"
--- 22479,22485 ----
  
  #: cp/reflect.cc:5997
  msgid "no name and non-empty annotations specified"
! msgstr "weder Name noch nichtleere Annotationen angegeben"
  
  #: cp/reflect.cc:6003
  msgid "bit_width specified with non-integral and non-enumeration type"
*************** msgid "bit_width is negative"
*** 22510,22525 ****
  msgstr "bit_width ist negativ"
  
  #: cp/reflect.cc:6026
- #, fuzzy
- #| msgid "alignment specified for type name in cast"
  msgid "name unspecified and type is const"
! msgstr "Ausrichtung für Typnamen in Cast angegeben"
  
  #: cp/reflect.cc:6030
- #, fuzzy
- #| msgid "alignment specified for type name in cast"
  msgid "name unspecified and type is volatile"
! msgstr "Ausrichtung für Typnamen in Cast angegeben"
  
  #: cp/reflect.cc:6038
  msgid "alignment is not power of two"
--- 22502,22513 ----
  msgstr "bit_width ist negativ"
  
  #: cp/reflect.cc:6026
  msgid "name unspecified and type is const"
! msgstr "Name nicht angegeben und Typ ist konstant"
  
  #: cp/reflect.cc:6030
  msgid "name unspecified and type is volatile"
! msgstr "Name nicht angegeben und Typ ist volatil"
  
  #: cp/reflect.cc:6038
  msgid "alignment is not power of two"
*************** msgid "alignment is smaller than alignme
*** 22534,22555 ****
  msgstr "Alignment ist kleiner als alignment_of"
  
  #: cp/reflect.cc:6062
- #, fuzzy
- #| msgid "reflection does not have a type"
  msgid "reflection does not have non-array object type"
! msgstr "Reflektion hat keinen Typen"
  
  #: cp/reflect.cc:6506
- #, fuzzy
- #| msgid "reflection does not represent a type"
  msgid "current scope does not represent a function"
! msgstr "Reflektion repräsentiert keinen Typen"
  
  #: cp/reflect.cc:6526
- #, fuzzy
- #| msgid "reflection does not represent parameter of current function"
  msgid "current scope does not represent a class nor a member function"
! msgstr "Reflektion repräsentiert keinen Parameter der aktuellen Funktion"
  
  #: cp/reflect.cc:6685
  msgid "incomplete parent class"
--- 22522,22537 ----
  msgstr "Alignment ist kleiner als alignment_of"
  
  #: cp/reflect.cc:6062
  msgid "reflection does not have non-array object type"
! msgstr "Reflektion muss einen Objekttypen außer Array haben"
  
  #: cp/reflect.cc:6506
  msgid "current scope does not represent a function"
! msgstr "aktueller Gültigkeitsbereich repräsentiert keine Funktion"
  
  #: cp/reflect.cc:6526
  msgid "current scope does not represent a class nor a member function"
! msgstr "aktueller Gültigkeitsbereich repräsentiert weder eine Klassen- noch eine Memberfunktion"
  
  #: cp/reflect.cc:6685
  msgid "incomplete parent class"
*************** msgid "Somebody asked for the field %s.%
*** 55030,55044 ****
  msgstr "Interner Fehler: Somebody asked for the field %s.%s, which does not exist"
  
  #: cobol/gengen.cc:1276
! #, fuzzy, gcc-internal-format, gfc-internal-format
! #| msgid "%qs is not supported with %qs"
  msgid "%s:%d: Must not call here with %s"
! msgstr "%qs wird mit %qs nicht unterstützt"
  
  #: cobol/gengen.cc:1294
  #, gcc-internal-format, gfc-internal-format
  msgid "%s:%d: Must not call here with non-%s"
! msgstr ""
  
  #: cobol/gengen.cc:2017 cobol/gengen.cc:2070 cobol/gengen.cc:2897
  #: cobol/gengen.cc:2952
--- 55012,55025 ----
  msgstr "Interner Fehler: Somebody asked for the field %s.%s, which does not exist"
  
  #: cobol/gengen.cc:1276
! #, gcc-internal-format, gfc-internal-format
  msgid "%s:%d: Must not call here with %s"
! msgstr "%s:%d: Darf nicht mit %s aufgerufen werden"
  
  #: cobol/gengen.cc:1294
  #, gcc-internal-format, gfc-internal-format
  msgid "%s:%d: Must not call here with non-%s"
! msgstr "%s:%d: Darf nicht mit nicht-%s aufgerufen werden"
  
  #: cobol/gengen.cc:2017 cobol/gengen.cc:2070 cobol/gengen.cc:2897
  #: cobol/gengen.cc:2952
*************** msgid "%qT is not a volatile type"
*** 58018,58027 ****
  msgstr "%qT ist kein %<volatile%>-Typ"
  
  #: cp/constraint.cc:3363
! #, fuzzy, gcc-internal-format
! #| msgid "%qT is not a literal type"
  msgid "%qT is not a structural type"
! msgstr "%qT ist kein literaler Typ"
  
  #: cp/constraint.cc:3367
  #, gcc-internal-format
--- 57999,58007 ----
  msgstr "%qT ist kein %<volatile%>-Typ"
  
  #: cp/constraint.cc:3363
! #, gcc-internal-format
  msgid "%qT is not a structural type"
! msgstr "%qT ist kein struktureller Typ"
  
  #: cp/constraint.cc:3367
  #, gcc-internal-format
*************** msgid "%qs used outside of constant expr
*** 58387,58396 ****
  msgstr "%qs wird außerhalb von konstanten Ausdrücken verwendet"
  
  #: cp/cp-gimplify.cc:999
! #, fuzzy, gcc-internal-format
! #| msgid "expected declaration"
  msgid "unexpected %<std::%s%> declaration"
! msgstr "Deklaration erwartet"
  
  #: cp/cp-gimplify.cc:1317
  #, gcc-internal-format
--- 58367,58375 ----
  msgstr "%qs wird außerhalb von konstanten Ausdrücken verwendet"
  
  #: cp/cp-gimplify.cc:999
! #, gcc-internal-format
  msgid "unexpected %<std::%s%> declaration"
! msgstr "unerwartete Deklaration von %<std::%s%>"
  
  #: cp/cp-gimplify.cc:1317
  #, gcc-internal-format
*************** msgid "unnamed field is neither function
*** 61445,61460 ****
  msgstr "unbenanntes Feld ist weder eine Funktion noch Elementfunktion; kann nicht als %<friend%> deklariert werden"
  
  #: cp/decl.cc:16674
! #, fuzzy, gcc-internal-format
! #| msgid "%qE attribute applied to extern \"C\" declaration %qD"
  msgid "annotation applied to non-defining friend declaration %qD"
! msgstr "Attribut %qE wird auf »extern \"C\"«-Deklaration %qD angewendet"
  
  #: cp/decl.cc:16682
! #, fuzzy, gcc-internal-format
! #| msgid "defining explicit specialization %qD in friend declaration"
  msgid "annotation applied to parameter %qD of non-defining friend declaration"
! msgstr "Definition der expliziten Spezialisierung %qD in friend-Deklaration"
  
  #: cp/decl.cc:16694 cp/parser.cc:23742 cp/parser.cc:31131
  #, gcc-internal-format
--- 61424,61437 ----
  msgstr "unbenanntes Feld ist weder eine Funktion noch Elementfunktion; kann nicht als %<friend%> deklariert werden"
  
  #: cp/decl.cc:16674
! #, gcc-internal-format
  msgid "annotation applied to non-defining friend declaration %qD"
! msgstr "Annotation wird auf nicht-definierende Freund-Deklaration %qD angewendet"
  
  #: cp/decl.cc:16682
! #, gcc-internal-format
  msgid "annotation applied to parameter %qD of non-defining friend declaration"
! msgstr "Annotation wird auf Parameter %qD einer nicht-definierenden Freund-Deklaration angewendet"
  
  #: cp/decl.cc:16694 cp/parser.cc:23742 cp/parser.cc:31131
  #, gcc-internal-format
*************** msgid "using %qs"
*** 61977,61986 ****
  msgstr "%qs wird verwendet"
  
  #: cp/decl.cc:21329
! #, fuzzy, gcc-internal-format
! #| msgid "%qs used with %<auto%>"
  msgid "%qs used without %qs declaration"
! msgstr "%qs mit %<auto%> verwendet"
  
  #: cp/decl.cc:21341
  #, gcc-internal-format
--- 61954,61962 ----
  msgstr "%qs wird verwendet"
  
  #: cp/decl.cc:21329
! #, gcc-internal-format
  msgid "%qs used without %qs declaration"
! msgstr "%qs ohne %qs-Deklaration verwendet"
  
  #: cp/decl.cc:21341
  #, gcc-internal-format
*************** msgid "declaration of %qD shadows a memb
*** 64473,64488 ****
  msgstr "Deklaration von %qD überdeckt ein Element von %qT"
  
  #: cp/name-lookup.cc:3698
! #, fuzzy, gcc-internal-format
! #| msgid "annotation applied to a label"
  msgid "annotation applied to block scope extern %qD"
! msgstr "Annotation bezieht sich auf eine Sprungmarke"
  
  #: cp/name-lookup.cc:3705
! #, fuzzy, gcc-internal-format
! #| msgid "declaration for parameter %qD but no such parameter"
  msgid "annotation applied to parameter %qD of block scope extern"
! msgstr "Deklaration für nicht vorhandenen Parameter %qD"
  
  #: cp/name-lookup.cc:4170
  #, gcc-internal-format
--- 64449,64462 ----
  msgstr "Deklaration von %qD überdeckt ein Element von %qT"
  
  #: cp/name-lookup.cc:3698
! #, gcc-internal-format
  msgid "annotation applied to block scope extern %qD"
! msgstr "Annotation bezieht sich auf eine block-externe Deklaration von %qD"
  
  #: cp/name-lookup.cc:3705
! #, gcc-internal-format
  msgid "annotation applied to parameter %qD of block scope extern"
! msgstr "Annotation bezieht sich auf Parameter %qD einer block-externen Deklaration"
  
  #: cp/name-lookup.cc:4170
  #, gcc-internal-format
*************** msgstr "%<constexpr%>-Lambda ist nur mit
*** 65715,65727 ****
  #: cp/parser.cc:13752
  #, gcc-internal-format
  msgid "%qE is not implicitly captured by a contract assertion"
! msgstr ""
  
  #: cp/parser.cc:13754
! #, fuzzy, gcc-internal-format
! #| msgid "%qE declared here"
  msgid "%q#E declared here"
! msgstr "%qE ist hier deklariert"
  
  #: cp/parser.cc:14379
  #, gcc-internal-format
--- 65689,65700 ----
  #: cp/parser.cc:13752
  #, gcc-internal-format
  msgid "%qE is not implicitly captured by a contract assertion"
! msgstr "%qE wird nicht implizit von einer Vertragszusicherung erfasst"
  
  #: cp/parser.cc:13754
! #, gcc-internal-format
  msgid "%q#E declared here"
! msgstr "%q#E ist hier deklariert"
  
  #: cp/parser.cc:14379
  #, gcc-internal-format
*************** msgid "redeclaration of %qD with differe
*** 68525,68534 ****
  msgstr "Redeklaration von %qD mit unterschiedlichen Einschränkungen"
  
  #: cp/pt.cc:6386
! #, fuzzy, gcc-internal-format
! #| msgid "lambda-expression in template parameter type"
  msgid "local class in lambda in template parameter list"
! msgstr "Lambda-Ausdruck in Template-Parameter-Typ"
  
  #: cp/pt.cc:6461
  #, gcc-internal-format
--- 68498,68506 ----
  msgstr "Redeklaration von %qD mit unterschiedlichen Einschränkungen"
  
  #: cp/pt.cc:6386
! #, gcc-internal-format
  msgid "local class in lambda in template parameter list"
! msgstr "lokale Klasse in Lambda-Ausdruck in Template-Parameter-Liste"
  
  #: cp/pt.cc:6461
  #, gcc-internal-format
*************** msgid "cannot take the reflection of an
*** 69566,69575 ****
  msgstr "die Reflexion einer Überlagerungsmenge ist nicht übernehmbar"
  
  #: cp/reflect.cc:363 cp/reflect.cc:7729
! #, fuzzy, gcc-internal-format
! #| msgid "passing %qT to argument %d of %qE, which expects %qT"
  msgid "incorrect %qT type of argument %d, expected %qT"
! msgstr "Übergabe von %qT an Argument %d von %qE, das jedoch %qT erwartet"
  
  #: cp/reflect.cc:476
  #, gcc-internal-format
--- 69538,69546 ----
  msgstr "die Reflexion einer Überlagerungsmenge ist nicht übernehmbar"
  
  #: cp/reflect.cc:363 cp/reflect.cc:7729
! #, gcc-internal-format
  msgid "incorrect %qT type of argument %d, expected %qT"
! msgstr "fehlerhafter Typ %qT an Argument %d, stattdessen %qT erwartet"
  
  #: cp/reflect.cc:476
  #, gcc-internal-format
*************** msgid "%<reflect_constant_array%> argume
*** 69592,69601 ****
  msgstr "%<reflect_constant_array%>-Argument mit %qT, aber das ist nicht kopiererzeugbar"
  
  #: cp/reflect.cc:595
! #, fuzzy, gcc-internal-format
! #| msgid "%<reflect_constant_array%> argument with %qT which is not constructible from %qT %<std::ranges::range_reference_t%>"
  msgid "%<reflect_constant_array%> argument with %qT which is not compatible with %qT %<std::ranges::range_reference_t%>"
! msgstr "%<reflect_constant_array%>-Argument mit %qT, aber das ist nicht von %qT %<std::ranges::range_reference_t%> erzeugbar"
  
  #: cp/reflect.cc:606
  #, gcc-internal-format
--- 69563,69571 ----
  msgstr "%<reflect_constant_array%>-Argument mit %qT, aber das ist nicht kopiererzeugbar"
  
  #: cp/reflect.cc:595
! #, gcc-internal-format
  msgid "%<reflect_constant_array%> argument with %qT which is not compatible with %qT %<std::ranges::range_reference_t%>"
! msgstr "%<reflect_constant_array%>-Argument mit %qT, aber das ist nicht kompatibel mit %qT %<std::ranges::range_reference_t%>"
  
  #: cp/reflect.cc:606
  #, gcc-internal-format
*************** msgid "%<define_aggregate%> evaluated fr
*** 69784,69793 ****
  msgstr "das %<define_aggregate%>, das aus dem %<consteval%>-Block heraus ausgewertet wird und von %qT umschlossen ist, während Typ %qT gerade definiert wird, ist von %qT umschlossen"
  
  #: cp/reflect.cc:6472
! #, fuzzy, gcc-internal-format
! #| msgid "%<access_context::current%> used outside of manifestly constant-evaluation"
  msgid "%qs used outside of manifestly constant-evaluation"
! msgstr "%<access_context::current%> wird außerhalb der manifesten Konstantenauswertung verwendet"
  
  #: cp/reflect.cc:6585
  #, gcc-internal-format
--- 69754,69762 ----
  msgstr "das %<define_aggregate%>, das aus dem %<consteval%>-Block heraus ausgewertet wird und von %qT umschlossen ist, während Typ %qT gerade definiert wird, ist von %qT umschlossen"
  
  #: cp/reflect.cc:6472
! #, gcc-internal-format
  msgid "%qs used outside of manifestly constant-evaluation"
! msgstr "%qs wird außerhalb der manifesten Konstantenauswertung verwendet"
  
  #: cp/reflect.cc:6585
  #, gcc-internal-format
*************** msgid "unexpected argument to %qs"
*** 69810,69831 ****
  msgstr "unerwartetes Argument für %qs"
  
  #: cp/reflect.cc:7726
! #, fuzzy, gcc-internal-format
! #| msgid "passing %qT to argument %d of %qE, which expects %qs"
  msgid "incorrect %qT type of argument %d, expected %qs"
! msgstr "Übergabe von %qT an das Argument %d von %qE, das jedoch %qs erwartet"
  
  #: cp/reflect.cc:7799
! #, fuzzy, gcc-internal-format
! #| msgid "vector type expected in %qs"
  msgid "incorrect %qT return type, expected %qs"
! msgstr "Vektortypen erwartet in %qs"
  
  #: cp/reflect.cc:7802
! #, fuzzy, gcc-internal-format
! #| msgid "vector type expected in %qs"
  msgid "incorrect %qT return type, expected %qT"
! msgstr "Vektortypen erwartet in %qs"
  
  #: cp/reflect.cc:7826
  #, gcc-internal-format
--- 69779,69797 ----
  msgstr "unerwartetes Argument für %qs"
  
  #: cp/reflect.cc:7726
! #, gcc-internal-format
  msgid "incorrect %qT type of argument %d, expected %qs"
! msgstr "fehlerhafter Typ %qT an Argument %d, stattdessen %qs erwartet"
  
  #: cp/reflect.cc:7799
! #, gcc-internal-format
  msgid "incorrect %qT return type, expected %qs"
! msgstr "fehlerhafter Rückgabetyp %qT, stattdessen %qs erwartet"
  
  #: cp/reflect.cc:7802
! #, gcc-internal-format
  msgid "incorrect %qT return type, expected %qT"
! msgstr "fehlerhafter Rückgabetyp %qT, stattdessen %qT erwartet"
  
  #: cp/reflect.cc:7826
  #, gcc-internal-format
*************** msgid "splice argument must be an expres
*** 69838,69858 ****
  msgstr "das %<splice%>-Argument muss ein Ausdruck vom Typ %qs sein"
  
  #: cp/reflect.cc:8530
! #, fuzzy, gcc-internal-format
! #| msgid "cannot call a concept as a function"
  msgid "cannot splice a null reflection"
! msgstr "ein Konzept kann nicht wie eine Funktion aufgerufen werden"
  
  #: cp/reflect.cc:8540
! #, fuzzy, gcc-internal-format
! #| msgid "cannot use a data member specification in a splice expression"
  msgid "cannot use %qD function parameter reflection in a splice expression"
! msgstr "eine Datenelementangabe kann nicht in einem Spleißausdruck verwendet werden"
  
  #: cp/reflect.cc:8544
  #, gcc-internal-format
  msgid "apply %<std::meta::variable_of%> on it before splicing"
! msgstr ""
  
  #: cp/reflect.cc:8803
  #, gcc-internal-format
--- 69804,69822 ----
  msgstr "das %<splice%>-Argument muss ein Ausdruck vom Typ %qs sein"
  
  #: cp/reflect.cc:8530
! #, gcc-internal-format
  msgid "cannot splice a null reflection"
! msgstr "eine Nullreflexion kann nicht gespleißt werden"
  
  #: cp/reflect.cc:8540
! #, gcc-internal-format
  msgid "cannot use %qD function parameter reflection in a splice expression"
! msgstr "eine Reflektion des Funktionsparameters %qD kann nicht in einem Spleißausdruck verwendet werden"
  
  #: cp/reflect.cc:8544
  #, gcc-internal-format
  msgid "apply %<std::meta::variable_of%> on it before splicing"
! msgstr "wenden Sie %<std::meta::variable_of%> darauf an, vor dem Spleißen"
  
  #: cp/reflect.cc:8803
  #, gcc-internal-format
*************** msgid "cannot implicitly reference a cla
*** 69900,69915 ****
  msgstr "das Klassenelement %qD kann nicht implizit aus einem Spleißausdruck heraus referenziert werden"
  
  #: cp/reflect.cc:9034
! #, fuzzy, gcc-internal-format
! #| msgid "invalid cast to abstract class type %qT"
  msgid "invalid class member access of type template %qE"
! msgstr "ungültige Umwandlung in abstrakte Klasse %qT"
  
  #: cp/reflect.cc:9042
! #, fuzzy, gcc-internal-format
! #| msgid "cannot use %qs as a call-used register"
  msgid "cannot use %qE to access a class member"
! msgstr "%qs kann nicht als ein rufverwendetes Register verwendet werden"
  
  #: cp/reflect.cc:9056
  #, gcc-internal-format
--- 69864,69877 ----
  msgstr "das Klassenelement %qD kann nicht implizit aus einem Spleißausdruck heraus referenziert werden"
  
  #: cp/reflect.cc:9034
! #, gcc-internal-format
  msgid "invalid class member access of type template %qE"
! msgstr "ungültiger Zugriff auf Klassenmember vom Typ Template %qE"
  
  #: cp/reflect.cc:9042
! #, gcc-internal-format
  msgid "cannot use %qE to access a class member"
! msgstr "%qE kann nicht verwendet werden, um auf ein Klassenmember zuzugreifen"
  
  #: cp/reflect.cc:9056
  #, gcc-internal-format
*************** msgid "expected a reflection of a functi
*** 69937,69946 ****
  msgstr "Reflexion eines Funktionstemplates erwartet"
  
  #: cp/reflect.cc:9130
! #, fuzzy, gcc-internal-format
! #| msgid "expected a reflection of a function template"
  msgid "expected a reflection of a function or variable template"
! msgstr "Reflexion eines Funktionstemplates erwartet"
  
  #: cp/rtti.cc:308
  #, gcc-internal-format
--- 69899,69907 ----
  msgstr "Reflexion eines Funktionstemplates erwartet"
  
  #: cp/reflect.cc:9130
! #, gcc-internal-format
  msgid "expected a reflection of a function or variable template"
! msgstr "Reflektion eines Templates für eine Funktion oder eine Variable erwartet"
  
  #: cp/rtti.cc:308
  #, gcc-internal-format
*************** msgid "%<%D::%D%> is not a member of %qT
*** 71398,71407 ****
  msgstr "%<%D::%D%> ist kein Element von %qT"
  
  #: cp/typeck.cc:3605
! #, fuzzy, gcc-internal-format
! #| msgid "%qD is not a member of %qT"
  msgid "%q#D is not a member of %qT"
! msgstr "%qD ist kein Element von %qT"
  
  #: cp/typeck.cc:3781
  #, gcc-internal-format
--- 71359,71367 ----
  msgstr "%<%D::%D%> ist kein Element von %qT"
  
  #: cp/typeck.cc:3605
! #, gcc-internal-format
  msgid "%q#D is not a member of %qT"
! msgstr "%q#D ist kein Element von %qT"
  
  #: cp/typeck.cc:3781
  #, gcc-internal-format
*************** msgid "Pointer-array actual argument at
*** 78443,78452 ****
  msgstr "Zeigerfeld als effektives Argument bei %L erfordert wegen VOLATILE-Attribut ein Scheinargument %qs mit vermuteter Form oder als Zeigerfeld"
  
  #: fortran/interface.cc:4153
! #, fuzzy, gcc-internal-format
! #| msgid "Assumed-type actual argument at %L requires that dummy argument %qs is of assumed type"
  msgid "ISO_C_BINDING function actual argument at %L requires dummy argument %qs to have a matching type from ISO_C_BINDING"
! msgstr "Feld mit vermutetem Rang bei %L erfordert Scheinargument %qs mit vermutetem Rang"
  
  #: fortran/interface.cc:4181
  #, gcc-internal-format, gfc-internal-format
--- 78403,78411 ----
  msgstr "Zeigerfeld als effektives Argument bei %L erfordert wegen VOLATILE-Attribut ein Scheinargument %qs mit vermuteter Form oder als Zeigerfeld"
  
  #: fortran/interface.cc:4153
! #, gcc-internal-format
  msgid "ISO_C_BINDING function actual argument at %L requires dummy argument %qs to have a matching type from ISO_C_BINDING"
! msgstr "Das tatsächliche Argument der ISO_C_BINDING-Funktion an Position %L erfordert, dass das Dummy-Argument %qs einen passenden Typ gemäß ISO_C_BINDING hat"
  
  #: fortran/interface.cc:4181
  #, gcc-internal-format, gfc-internal-format
*************** msgstr "!$OMP DECLARE REDUCTION »%s« f
*** 82903,82914 ****
  #: fortran/openmp.cc:10507
  #, gcc-internal-format
  msgid "Sorry, ALLOCATABLE object %qs in LINEAR clause on worksharing-loop construct at %L is not yet supported"
! msgstr ""
  
  #: fortran/openmp.cc:10512
  #, gcc-internal-format
  msgid "Sorry, array %qs in LINEAR clause on worksharing-loop construct at %L is not yet supported"
! msgstr ""
  
  #: fortran/openmp.cc:10526
  #, gcc-internal-format, gfc-internal-format
--- 82862,82873 ----
  #: fortran/openmp.cc:10507
  #, gcc-internal-format
  msgid "Sorry, ALLOCATABLE object %qs in LINEAR clause on worksharing-loop construct at %L is not yet supported"
! msgstr "Sorry, das ALLOCATABLE-Objekt %qs in der LINEAR-Klausel des Worksharing-Loop-Konstrukts bei %L wird noch nicht unterstützt"
  
  #: fortran/openmp.cc:10512
  #, gcc-internal-format
  msgid "Sorry, array %qs in LINEAR clause on worksharing-loop construct at %L is not yet supported"
! msgstr "Sorry, das Feld %qs in der LINEAR-Klausel im Worksharing-Loop-Konstrukt bei %L wird noch nicht unterstützt"
  
  #: fortran/openmp.cc:10526
  #, gcc-internal-format, gfc-internal-format
*************** msgstr "Prozedur %s bei %L ist bereits a
*** 88511,88517 ****
  #: fortran/symbol.cc:1898
  #, gcc-internal-format
  msgid "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block.  Please add any other kind of executable statement before it"
! msgstr "F2008: Eine Zuweisung an eine Zeigerfunktion ist mehrdeutig, wenn dies die erste Anweisung nach dem Spezifikationsblock ist. Bitte fügen Sie davor irgend eine andere ausführbare Anweisung ein."
  
  #: fortran/symbol.cc:1935
  #, gcc-internal-format, gfc-internal-format
--- 88470,88476 ----
  #: fortran/symbol.cc:1898
  #, gcc-internal-format
  msgid "F2008: A pointer function assignment is ambiguous if it is the first executable statement after the specification block.  Please add any other kind of executable statement before it"
! msgstr "F2008: Eine Zuweisung an eine Zeigerfunktion ist mehrdeutig, wenn dies die erste Anweisung nach dem Spezifikationsblock ist. Bitte fügen Sie davor irgend eine andere ausführbare Anweisung ein"
  
  #: fortran/symbol.cc:1935
  #, gcc-internal-format, gfc-internal-format
*************** msgid "Bounds checking of the elemental
*** 88752,88761 ****
  msgstr "Die Überprüfung der Grenzen des Elementindexes bei %L führt zu zwei Aufrufen von %qs, das weder als PURE deklariert ist noch implizit rein ist."
  
  #: fortran/trans-array.cc:7109
! #, fuzzy, gcc-internal-format, gfc-internal-format
! #| msgid "Array %qs at %L is a variable, which does not reduce to a constant expression"
  msgid "Array initializer at %L does not reduce to a constant expression"
! msgstr "Feld %qs bei %L ist eine Variable, die nicht zu konstantem Ausdruck reduziert"
  
  #. Problems occur when we get something like
  #. integer :: a(lots) = (/(i, i=1, lots)/)
--- 88711,88719 ----
  msgstr "Die Überprüfung der Grenzen des Elementindexes bei %L führt zu zwei Aufrufen von %qs, das weder als PURE deklariert ist noch implizit rein ist."
  
  #: fortran/trans-array.cc:7109
! #, gcc-internal-format, gfc-internal-format
  msgid "Array initializer at %L does not reduce to a constant expression"
! msgstr "Der Feldinitialisierer bei %L ist nicht zu einem konstanten Ausdruck reduzierbar"
  
  #. Problems occur when we get something like
  #. integer :: a(lots) = (/(i, i=1, lots)/)
diff -Nrcpad gcc-16-20260502/gcc/testsuite/ChangeLog gcc-16-20260509/gcc/testsuite/ChangeLog
*** gcc-16-20260502/gcc/testsuite/ChangeLog	Sat May  2 22:32:07 2026
--- gcc-16-20260509/gcc/testsuite/ChangeLog	Sat May  9 22:32:07 2026
***************
*** 1,3 ****
--- 1,104 ----
+ 2026-05-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	Backported from master:
+ 	2026-05-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* g++.dg/modules/modules.exp: Replace colon with dash on
+ 	Windows.
+ 
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-05  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125185
+ 	* gcc.dg/torture/pr125185.c: New testcase.
+ 
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-05-04  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125153
+ 	* gcc.dg/torture/pr125153.c: New testcase.
+ 
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Revert:
+ 	2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/120003
+ 	* gcc.dg/tree-ssa/ssa-thread-23.c: New testcase.
+ 	* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Adjust.
+ 
+ 2026-05-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	Backported from master:
+ 	2026-04-27  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/125025
+ 	* gcc.dg/torture/pr125025.c: New testcase.
+ 
+ 2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124770
+ 	* g++.dg/reflect/init18.C: New test.
+ 
+ 2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-07  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/125206
+ 	* g++.dg/reflect/bases_of4.C: New test.
+ 
+ 2026-05-06  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/124957
+ 	* g++.dg/modules/attrib-6_a.C: New test.
+ 	* g++.dg/modules/attrib-6_b.C: New test.
+ 	* g++.dg/modules/attrib-6_c.C: New test.
+ 
+ 2026-05-06  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/120587
+ 	PR target/125155
+ 	* gcc.target/or1k/pr125155.c: New test.
+ 
+ 2026-05-06  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	Backported from master:
+ 	2026-05-06  Lulu Cheng  <chenglulu@loongson.cn>
+ 
+ 	PR target/125057
+ 	* gcc.target/loongarch/vector/lasx/pr125057.c: New test.
+ 	* gcc.target/loongarch/vector/lsx/lsx-mov-2.c: New test.
+ 
+ 2026-05-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	Backported from master:
+ 	2026-05-05  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/125089
+ 	* gdc.dg/pr125089.d: New test.
+ 
+ 2026-05-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR target/125180
+ 	* gcc.target/i386/pr125180.c: New test.
+ 
  2026-05-01  Jeff Law  <jeffrey.law@oss.qualcomm.com>
  
  	Revert:
diff -Nrcpad gcc-16-20260502/gcc/testsuite/g++.dg/modules/attrib-6_a.C gcc-16-20260509/gcc/testsuite/g++.dg/modules/attrib-6_a.C
*** gcc-16-20260502/gcc/testsuite/g++.dg/modules/attrib-6_a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/g++.dg/modules/attrib-6_a.C	Sat May  9 22:32:08 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/124957
+ // { dg-do compile { target c++17 } }
+ // { dg-additional-options "-fmodules" }
+ 
+ export module mod:partition;
+ 
+ int dummy;
+ struct [[gnu::abi_tag("cxx11")]] A { int m; };
+ export inline int A::*x = &A::m;
+ // x does not get mangled in this TU => cxx11 abi_tag not propagated to x
diff -Nrcpad gcc-16-20260502/gcc/testsuite/g++.dg/modules/attrib-6_b.C gcc-16-20260509/gcc/testsuite/g++.dg/modules/attrib-6_b.C
*** gcc-16-20260502/gcc/testsuite/g++.dg/modules/attrib-6_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/g++.dg/modules/attrib-6_b.C	Sat May  9 22:32:08 2026
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/124957
+ // { dg-do compile { target c++17 } }
+ // { dg-additional-options "-fmodules" }
+ 
+ export module mod; // { dg-module-cmi "mod" }
+ export import :partition;
+ 
+ // x gets mangled in this TU => cxx11 abi_tag propagated to x
diff -Nrcpad gcc-16-20260502/gcc/testsuite/g++.dg/modules/attrib-6_c.C gcc-16-20260509/gcc/testsuite/g++.dg/modules/attrib-6_c.C
*** gcc-16-20260502/gcc/testsuite/g++.dg/modules/attrib-6_c.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/g++.dg/modules/attrib-6_c.C	Sat May  9 22:32:08 2026
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/124957
+ // { dg-do compile { target c++17 } }
+ // { dg-additional-options "-fmodules -fno-module-lazy" }
+ 
+ module mod;
+ import :partition;
+ 
+ // OK, no bogus abi_tag mismatch error for the imported x's
diff -Nrcpad gcc-16-20260502/gcc/testsuite/g++.dg/modules/modules.exp gcc-16-20260509/gcc/testsuite/g++.dg/modules/modules.exp
*** gcc-16-20260502/gcc/testsuite/g++.dg/modules/modules.exp	Sat May  2 22:32:08 2026
--- gcc-16-20260509/gcc/testsuite/g++.dg/modules/modules.exp	Sat May  9 22:32:08 2026
*************** proc host_header_path {hname} {
*** 83,89 ****
  
  # Return the pathname CMI munged like the compiler.
  proc munge_cmi {cmi} {
!     if { [string index $cmi 0] == "/" } {
  	set cmi [string range $cmi 1 end]
      } else {
  	set cmi ",/$cmi"
--- 83,92 ----
  
  # Return the pathname CMI munged like the compiler.
  proc munge_cmi {cmi} {
!     if { [string index $cmi 1] == ":" && [info exists ::env(OS)] && [string match "Windows*" $::env(OS)] } {
! 	# Windows paths like C:/some/path should be munged to C-/some/path
! 	set cmi [string replace $cmi 1 1 "-"]
!     } elseif { [string index $cmi 0] == "/" } {
  	set cmi [string range $cmi 1 end]
      } else {
  	set cmi ",/$cmi"
diff -Nrcpad gcc-16-20260502/gcc/testsuite/g++.dg/reflect/bases_of4.C gcc-16-20260509/gcc/testsuite/g++.dg/reflect/bases_of4.C
*** gcc-16-20260502/gcc/testsuite/g++.dg/reflect/bases_of4.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/g++.dg/reflect/bases_of4.C	Sat May  9 22:32:08 2026
***************
*** 0 ****
--- 1,45 ----
+ // PR c++/125206
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ #include <type_traits>
+ 
+ template<auto...> struct mp_list_v
+ {
+ };
+ 
+ template<class...> struct mp_list
+ {
+ };
+ 
+ template<auto V> using mp_value = std::integral_constant<decltype(V), V>;
+ 
+ template<class L, template<class...> class B> struct mp_rename_impl;
+ 
+ template<template<class...> class L, class... T, template<class...> class B> struct mp_rename_impl<L<T...>, B>
+ {
+     using type = B<T...>;
+ };
+ 
+ template<template<auto...> class L, auto... A, template<class...> class B> struct mp_rename_impl<L<A...>, B>
+ {
+     using type = B<mp_value<A>...>;
+ };
+ 
+ template<class L, template<class...> class B> using mp_rename = typename mp_rename_impl<L, B>::type;
+ 
+ class X1
+ {
+ };
+ 
+ class Z: public X1
+ {
+ };
+ 
+ int main()
+ {
+     constexpr auto all = std::meta::access_context::unchecked();
+     constexpr auto L1 = ^^mp_list_v< bases_of(^^Z, all)[0] >;
+     using L2 = mp_rename<typename [: L1 :], mp_list>;
+ }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/g++.dg/reflect/init18.C gcc-16-20260509/gcc/testsuite/g++.dg/reflect/init18.C
*** gcc-16-20260502/gcc/testsuite/g++.dg/reflect/init18.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/g++.dg/reflect/init18.C	Sat May  9 22:32:08 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/124770
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ using info = decltype(^^::);
+ 
+ constexpr inline info v{};
+ static_assert(v == info{});
+ extern constexpr inline info v2{};
+ static_assert(v2 == info{});
+ constexpr inline info v3;
+ static_assert(v3 == info{});
+ 
+ extern constexpr inline info v4; // { dg-error "not a definition|consteval-only" }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.dg/torture/pr125025.c gcc-16-20260509/gcc/testsuite/gcc.dg/torture/pr125025.c
*** gcc-16-20260502/gcc/testsuite/gcc.dg/torture/pr125025.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gcc.dg/torture/pr125025.c	Sat May  9 22:32:09 2026
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-fsanitize=undefined" } */
+ 
+ void f2(signed char a0)
+ {
+   signed char v4;
+   _Bool c7;
+   signed char v8 = 91;
+   v4 = v8 + v8;
+   v8 = 15 - 50;
+   a0 = v8 * v4;
+   v8 = v4 - a0;
+ lbl_br10:
+   c7 = a0 <= 0;
+   if (c7)
+     return;
+   v4 = v8 - 24;
+   a0 = a0 + v4;
+   goto lbl_br10;
+ }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.dg/torture/pr125153.c gcc-16-20260509/gcc/testsuite/gcc.dg/torture/pr125153.c
*** gcc-16-20260502/gcc/testsuite/gcc.dg/torture/pr125153.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gcc.dg/torture/pr125153.c	Sat May  9 22:32:09 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do run } */
+ 
+ int a, b, c;
+ _Bool d, e;
+ 
+ void
+ foo (void)
+ {
+   if (d)
+     {
+     l: b = -1;
+     }
+   e = c <= b;
+   a = a - 7;
+   if (e)
+     goto l;
+ }
+ 
+ int
+ main ()
+ {
+   foo ();
+   if (a != -14)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.dg/torture/pr125185.c gcc-16-20260509/gcc/testsuite/gcc.dg/torture/pr125185.c
*** gcc-16-20260502/gcc/testsuite/gcc.dg/torture/pr125185.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gcc.dg/torture/pr125185.c	Sat May  9 22:32:09 2026
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-ftree-vectorize" } */
+ /* { dg-additional-options "-mxop" { target { x86_64-*-* || i?86-*-* } } } */
+ 
+ long sum;
+ int *coef1;
+ 
+ void ac3_sum_square_butterfly_int32_c(int i, int cap) {
+   for (; i < cap; i++) {
+     int md = i + coef1[i];
+     sum += (long)md * md;
+   }
+ }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-23.c gcc-16-20260509/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-23.c
*** gcc-16-20260502/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-23.c	Sat May  2 22:32:10 2026
--- gcc-16-20260509/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-23.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* PR120003 */
- /* { dg-do compile } */
- /* { dg-options "-O2 -fdump-tree-cddce3-details" } */
- 
- extern _Bool g(int);
- 
- _Bool f()
- {
-   _Bool retval = 0;
-   for(int i=0; i<1000000; ++i)
-     retval = retval || g(i);
-   return retval;
- }
- 
- /* Jump threading after loop optimization should get the counting loop
-    separated from the loop until retval is true and CD-DCE elide it.
-    It's difficult to check for the fact that a true retval terminates
-    the loop so check CD-DCE eliminates one loop instead.  */
- /* { dg-final { scan-tree-dump "fix_loop_structure: removing loop" "cddce3" } } */
--- 0 ----
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.target/i386/pr125180.c gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr125180.c
*** gcc-16-20260502/gcc/testsuite/gcc.target/i386/pr125180.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gcc.target/i386/pr125180.c	Sat May  9 22:32:11 2026
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/125180 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -masm=att" } */
+ /* { dg-final { scan-assembler "\ttestl\t\\\$1, \\\(" } } */
+ /* { dg-final { scan-assembler-not "\ttestb\t\\\$1, \\\(" } } */
+ 
+ void foo (void);
+ 
+ void
+ bar (unsigned volatile *x)
+ {
+   if (*x & 1)
+     foo ();
+ }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.target/loongarch/vector/lasx/pr125057.c gcc-16-20260509/gcc/testsuite/gcc.target/loongarch/vector/lasx/pr125057.c
*** gcc-16-20260502/gcc/testsuite/gcc.target/loongarch/vector/lasx/pr125057.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gcc.target/loongarch/vector/lasx/pr125057.c	Sat May  9 22:32:11 2026
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mlasx -O2" } */
+ 
+ #include <lasxintrin.h>
+ #include <lsxintrin.h>
+ 
+ #define TEST(to, from)								\
+ __m256i										\
+ vext2xv_##to##_##from (const short *p)						\
+ {										\
+   return __lasx_vext2xv_##to##_##from (__lasx_cast_128 (__lsx_vld (p, 0)));	\
+ }
+ 
+ TEST (h, b)
+ TEST (w, b)
+ TEST (d, b)
+ TEST (w, h)
+ TEST (d, h)
+ TEST (d, w)
+ TEST (hu, bu)
+ TEST (wu, bu)
+ TEST (du, bu)
+ TEST (wu, hu)
+ TEST (du, hu)
+ TEST (du, wu)
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-2.c gcc-16-20260509/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-2.c
*** gcc-16-20260502/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-2.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-mov-2.c	Sat May  9 22:32:11 2026
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mlsx -O2" } */
+ 
+ #include <lsxintrin.h>
+ 
+ extern __m128i bar (void);
+ extern int *p;
+ 
+ void
+ foo ()
+ {
+   __lsx_vst (bar(), (void *)p, 0);
+ }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gcc.target/or1k/pr125155.c gcc-16-20260509/gcc/testsuite/gcc.target/or1k/pr125155.c
*** gcc-16-20260502/gcc/testsuite/gcc.target/or1k/pr125155.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gcc.target/or1k/pr125155.c	Sat May  9 22:32:11 2026
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ int __pthread_keys_0_0;
+ int
+ ___pthread_key_delete (void)
+ {
+   int result = 22;
+   int __atg3_old = 0;
+   if (__atomic_compare_exchange_n (&__pthread_keys_0_0, &__atg3_old,
+ 				   0, 0, 2, 0))
+     result = 0;
+   return result;
+ }
diff -Nrcpad gcc-16-20260502/gcc/testsuite/gdc.dg/pr125089.d gcc-16-20260509/gcc/testsuite/gdc.dg/pr125089.d
*** gcc-16-20260502/gcc/testsuite/gdc.dg/pr125089.d	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/gcc/testsuite/gdc.dg/pr125089.d	Sat May  9 22:32:11 2026
***************
*** 0 ****
--- 1,20 ----
+ // { dg-do compile }
+ struct R125089
+ {
+     S125089.T st;
+ }
+ 
+ struct S125089
+ {
+     struct T
+     {
+         void* v;
+         ~this() {}
+     }
+ 
+     T t;
+     this(R125089 r)
+     {
+         this.t = r.st;
+     }
+ }
diff -Nrcpad gcc-16-20260502/gcc/tree-ssa-loop-niter.cc gcc-16-20260509/gcc/tree-ssa-loop-niter.cc
*** gcc-16-20260502/gcc/tree-ssa-loop-niter.cc	Sat May  2 22:32:13 2026
--- gcc-16-20260509/gcc/tree-ssa-loop-niter.cc	Sat May  9 22:32:13 2026
*************** number_of_iterations_ne (class loop *loo
*** 988,995 ****
       if BNDS->below in the result is nonnegative.  */
    if (tree_int_cst_sign_bit (iv->step))
      {
!       s = fold_convert (niter_type,
! 			fold_build1 (NEGATE_EXPR, type, iv->step));
        c = fold_build2 (MINUS_EXPR, niter_type,
  		       fold_convert (niter_type, iv->base),
  		       fold_convert (niter_type, final));
--- 988,995 ----
       if BNDS->below in the result is nonnegative.  */
    if (tree_int_cst_sign_bit (iv->step))
      {
!       s = fold_build1 (NEGATE_EXPR, niter_type,
! 		       fold_convert (niter_type, iv->step));
        c = fold_build2 (MINUS_EXPR, niter_type,
  		       fold_convert (niter_type, iv->base),
  		       fold_convert (niter_type, final));
*************** number_of_iterations_lt (class loop *loo
*** 1633,1640 ****
    if (integer_nonzerop (iv0->step))
      step = fold_convert (niter_type, iv0->step);
    else
!     step = fold_convert (niter_type,
! 			 fold_build1 (NEGATE_EXPR, type, iv1->step));
  
    /* If we can determine the final value of the control iv exactly, we can
       transform the condition to != comparison.  In particular, this will be
--- 1633,1640 ----
    if (integer_nonzerop (iv0->step))
      step = fold_convert (niter_type, iv0->step);
    else
!     step = fold_build1 (NEGATE_EXPR, niter_type,
! 			fold_convert (niter_type, iv1->step));
  
    /* If we can determine the final value of the control iv exactly, we can
       transform the condition to != comparison.  In particular, this will be
diff -Nrcpad gcc-16-20260502/gcc/tree-ssa-threadbackward.cc gcc-16-20260509/gcc/tree-ssa-threadbackward.cc
*** gcc-16-20260502/gcc/tree-ssa-threadbackward.cc	Sat May  2 22:32:13 2026
--- gcc-16-20260509/gcc/tree-ssa-threadbackward.cc	Sat May  9 22:32:13 2026
*************** back_threader::find_paths_to_names (basi
*** 349,354 ****
--- 349,357 ----
  				    unsigned overall_paths,
  				    back_threader_profitability &profit)
  {
+   if (m_visited_bbs.add (bb))
+     return;
+ 
    m_path.safe_push (bb);
  
    // Try to resolve the path without looking back.  Avoid resolving paths
*************** back_threader::find_paths_to_names (basi
*** 374,381 ****
    // Continue looking for ways to extend the path but limit the
    // search space along a branch
    else if ((overall_paths = overall_paths * EDGE_COUNT (bb->preds))
! 	   <= (unsigned)param_max_jump_thread_paths
! 	   && !m_visited_bbs.add (bb))
      {
        // For further greedy searching we want to remove interesting
        // names defined in BB but add ones on the PHI edges for the
--- 377,383 ----
    // Continue looking for ways to extend the path but limit the
    // search space along a branch
    else if ((overall_paths = overall_paths * EDGE_COUNT (bb->preds))
! 	   <= (unsigned)param_max_jump_thread_paths)
      {
        // For further greedy searching we want to remove interesting
        // names defined in BB but add ones on the PHI edges for the
*************** back_threader::find_paths_to_names (basi
*** 487,493 ****
  	 backtracking we have to restore it.  */
        for (int j : new_imports)
  	bitmap_clear_bit (m_imports, j);
-       m_visited_bbs.remove (bb);
      }
    else if (dump_file && (dump_flags & TDF_DETAILS))
      fprintf (dump_file, "  FAIL: Search space limit %d reached.\n",
--- 489,494 ----
*************** back_threader::find_paths_to_names (basi
*** 495,500 ****
--- 496,502 ----
  
    // Reset things to their original state.
    m_path.pop ();
+   m_visited_bbs.remove (bb);
  }
  
  // Search backwards from BB looking for paths where the final
diff -Nrcpad gcc-16-20260502/gcc/tree-vect-slp.cc gcc-16-20260509/gcc/tree-vect-slp.cc
*** gcc-16-20260502/gcc/tree-vect-slp.cc	Sat May  2 22:32:13 2026
--- gcc-16-20260509/gcc/tree-vect-slp.cc	Sat May  9 22:32:13 2026
*************** vect_analyze_slp_reduc_chain (loop_vec_i
*** 4281,4312 ****
        auto_vec<chain_op_t> chain;
        auto_vec<std::pair<tree_code, gimple *> > worklist;
        gimple *op_stmt = NULL, *other_op_stmt = NULL;
!       vect_slp_linearize_chain (vinfo, worklist, chain, (tree_code)code,
! 				scalar_stmts[0]->stmt, op_stmt, other_op_stmt,
! 				NULL);
! 
!       scalar_stmts.truncate (0);
!       stmt_vec_info tail = NULL;
!       for (auto el : chain)
  	{
! 	  if (el.dt == vect_external_def
! 	      || el.dt == vect_constant_def
! 	      || el.code != (tree_code) code)
! 	    {
! 	      scalar_stmts.release ();
! 	      return false;
! 	    }
! 	  stmt_vec_info stmt = vinfo->lookup_def (el.op);
! 	  if (STMT_VINFO_REDUC_IDX (stmt) != -1
! 	      || STMT_VINFO_REDUC_DEF (stmt))
  	    {
! 	      gcc_assert (tail == NULL);
! 	      tail = stmt;
! 	      continue;
  	    }
! 	  scalar_stmts.safe_push (stmt);
  	}
-       gcc_assert (tail);
  
        /* When this linearization didn't produce a chain see if stripping
  	 a wrapping sign conversion produces one.  */
--- 4281,4319 ----
        auto_vec<chain_op_t> chain;
        auto_vec<std::pair<tree_code, gimple *> > worklist;
        gimple *op_stmt = NULL, *other_op_stmt = NULL;
!       if (is_a <gassign *> (scalar_stmts[0]->stmt)
! 	  /* We cannot linearize an operation that vect_slp_linearize_chain
! 	     would not put on its worklist.  */
! 	  && gimple_assign_rhs_code (scalar_stmts[0]->stmt) == (tree_code)code)
  	{
! 	  vect_slp_linearize_chain (vinfo, worklist, chain, (tree_code)code,
! 				    scalar_stmts[0]->stmt, op_stmt,
! 				    other_op_stmt,
! 				    NULL);
! 
! 	  scalar_stmts.truncate (0);
! 	  stmt_vec_info tail = NULL;
! 	  for (auto el : chain)
  	    {
! 	      if (el.dt == vect_external_def
! 		  || el.dt == vect_constant_def
! 		  || el.code != (tree_code) code)
! 		{
! 		  scalar_stmts.release ();
! 		  return false;
! 		}
! 	      stmt_vec_info stmt = vinfo->lookup_def (el.op);
! 	      if (STMT_VINFO_REDUC_IDX (stmt) != -1
! 		  || STMT_VINFO_REDUC_DEF (stmt))
! 		{
! 		  gcc_assert (tail == NULL);
! 		  tail = stmt;
! 		  continue;
! 		}
! 	      scalar_stmts.safe_push (stmt);
  	    }
! 	  gcc_assert (tail);
  	}
  
        /* When this linearization didn't produce a chain see if stripping
  	 a wrapping sign conversion produces one.  */
*************** vect_analyze_slp_reduc_chain (loop_vec_i
*** 4336,4342 ****
  				    stmt, op_stmt, other_op_stmt, NULL);
  
  	  scalar_stmts.truncate (0);
! 	  tail = NULL;
  	  for (auto el : chain)
  	    {
  	      if (el.dt == vect_external_def
--- 4343,4349 ----
  				    stmt, op_stmt, other_op_stmt, NULL);
  
  	  scalar_stmts.truncate (0);
! 	  stmt_vec_info tail = NULL;
  	  for (auto el : chain)
  	    {
  	      if (el.dt == vect_external_def
diff -Nrcpad gcc-16-20260502/libstdc++-v3/ChangeLog gcc-16-20260509/libstdc++-v3/ChangeLog
*** gcc-16-20260502/libstdc++-v3/ChangeLog	Sat May  2 22:32:15 2026
--- gcc-16-20260509/libstdc++-v3/ChangeLog	Sat May  9 22:32:14 2026
***************
*** 1,3 ****
--- 1,37 ----
+ 2026-05-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/109965
+ 	* doc/doxygen/mainpage.html: Link to topics.html instead of
+ 	modules.html
+ 
+ 2026-05-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	* include/bits/unique_ptr.h (unique_ptr::_Nothrow_deref): New
+ 	helper for pre-C++20.
+ 	(unique_ptr::operator*): Either constrain or use _Nothrow_deref.
+ 	* testsuite/20_util/unique_ptr/lwg4324.cc: New test.
+ 
+ 2026-05-05  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	Backported from master:
+ 	2026-05-01  Jonathan Wakely  <jwakely@redhat.com>
+ 
+ 	PR libstdc++/121919
+ 	* include/bits/ranges_algo.h (__sample_fn, __shuffle_fn): Use
+ 	decltype(__g()) instead of remove_reference_t<_G>::result_type.
+ 	* include/bits/uniform_int_dist.h
+ 	(uniform_int_distribution::operator()): Use decltype(__urng())
+ 	instead of _UniformRandomBitGenerator::result_type
+ 	(uniform_int_distribution::__generate_impl): Likewise.
+ 	* testsuite/25_algorithms/sample/121919.cc: New test.
+ 	* testsuite/25_algorithms/shuffle/121919.cc: New test.
+ 
  2026-04-30  Felix Morgner  <felix.morgner@gmail.com>
  
  	Backported from master:
diff -Nrcpad gcc-16-20260502/libstdc++-v3/doc/doxygen/mainpage.html gcc-16-20260509/libstdc++-v3/doc/doxygen/mainpage.html
*** gcc-16-20260502/libstdc++-v3/doc/doxygen/mainpage.html	Sat May  2 22:32:15 2026
--- gcc-16-20260509/libstdc++-v3/doc/doxygen/mainpage.html	Sat May  9 22:32:14 2026
***************
*** 38,44 ****
  
  <p>Here are entry points to all the pages generated by Doxygen:
     <ul>
!     <li><a href="modules.html">Modules</a></li>
  
      <li>Namespaces
      <ul>
--- 38,44 ----
  
  <p>Here are entry points to all the pages generated by Doxygen:
     <ul>
!     <li><a href="topics.html">Topics</a></li>
  
      <li>Namespaces
      <ul>
diff -Nrcpad gcc-16-20260502/libstdc++-v3/include/bits/ranges_algo.h gcc-16-20260509/libstdc++-v3/include/bits/ranges_algo.h
*** gcc-16-20260502/libstdc++-v3/include/bits/ranges_algo.h	Sat May  2 22:32:15 2026
--- gcc-16-20260509/libstdc++-v3/include/bits/ranges_algo.h	Sat May  9 22:32:14 2026
*************** namespace ranges
*** 1850,1857 ****
  	    using __distrib_type = uniform_int_distribution<_Size>;
  	    using __param_type = typename __distrib_type::param_type;
  	    using _USize = __detail::__make_unsigned_like_t<_Size>;
! 	    using __uc_type
! 	      = common_type_t<typename remove_reference_t<_Gen>::result_type, _USize>;
  
  	    if (__first == __last)
  	      return __out;
--- 1850,1856 ----
  	    using __distrib_type = uniform_int_distribution<_Size>;
  	    using __param_type = typename __distrib_type::param_type;
  	    using _USize = __detail::__make_unsigned_like_t<_Size>;
! 	    using __uc_type = common_type_t<decltype(__g()), _USize>;
  
  	    if (__first == __last)
  	      return __out;
*************** namespace ranges
*** 1964,1972 ****
  	using __ud_type = __detail::__make_unsigned_like_t<_DistanceType>;
  	using __distr_type = std::uniform_int_distribution<__ud_type>;
  	using __p_type = typename __distr_type::param_type;
! 
! 	using __uc_type
! 	  = common_type_t<typename remove_reference_t<_Gen>::result_type, __ud_type>;
  
  	if constexpr (sized_sentinel_for<_Sent, _Iter>)
  	  {
--- 1963,1969 ----
  	using __ud_type = __detail::__make_unsigned_like_t<_DistanceType>;
  	using __distr_type = std::uniform_int_distribution<__ud_type>;
  	using __p_type = typename __distr_type::param_type;
! 	using __uc_type = common_type_t<decltype(__g()), __ud_type>;
  
  	if constexpr (sized_sentinel_for<_Sent, _Iter>)
  	  {
diff -Nrcpad gcc-16-20260502/libstdc++-v3/include/bits/uniform_int_dist.h gcc-16-20260509/libstdc++-v3/include/bits/uniform_int_dist.h
*** gcc-16-20260502/libstdc++-v3/include/bits/uniform_int_dist.h	Sat May  2 22:32:15 2026
--- gcc-16-20260509/libstdc++-v3/include/bits/uniform_int_dist.h	Sat May  9 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 288,294 ****
        operator()(_UniformRandomBitGenerator& __urng,
  		 const param_type& __param)
        {
! 	typedef typename _UniformRandomBitGenerator::result_type _Gresult_type;
  	typedef typename make_unsigned<result_type>::type __utype;
  	typedef typename common_type<_Gresult_type, __utype>::type __uctype;
  
--- 288,294 ----
        operator()(_UniformRandomBitGenerator& __urng,
  		 const param_type& __param)
        {
! 	typedef decltype(__urng()) _Gresult_type;
  	typedef typename make_unsigned<result_type>::type __utype;
  	typedef typename common_type<_Gresult_type, __utype>::type __uctype;
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 386,392 ****
  		      const param_type& __param)
        {
  	__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
! 	typedef typename _UniformRandomBitGenerator::result_type _Gresult_type;
  	typedef typename make_unsigned<result_type>::type __utype;
  	typedef typename common_type<_Gresult_type, __utype>::type __uctype;
  
--- 386,392 ----
  		      const param_type& __param)
        {
  	__glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>)
! 	typedef decltype(__urng()) _Gresult_type;
  	typedef typename make_unsigned<result_type>::type __utype;
  	typedef typename common_type<_Gresult_type, __utype>::type __uctype;
  
diff -Nrcpad gcc-16-20260502/libstdc++-v3/include/bits/unique_ptr.h gcc-16-20260509/libstdc++-v3/include/bits/unique_ptr.h
*** gcc-16-20260502/libstdc++-v3/include/bits/unique_ptr.h	Sat May  2 22:32:15 2026
--- gcc-16-20260509/libstdc++-v3/include/bits/unique_ptr.h	Sat May  9 22:32:15 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 289,294 ****
--- 289,304 ----
  	  __not_<is_array<_Up>>
          >;
  
+ #if ! __cpp_concepts
+       template<typename _Ptr, typename = void>
+ 	struct _Nothrow_deref
+ 	: false_type { };
+ 
+       template<typename _Ptr>
+ 	struct _Nothrow_deref<_Ptr, __void_t<decltype(*std::declval<_Ptr>())>>
+ 	: __bool_constant<noexcept(*std::declval<_Ptr>())> { };
+ #endif
+ 
      public:
        // Constructors.
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 442,448 ****
        /// Dereference the stored pointer.
        _GLIBCXX23_CONSTEXPR
        typename add_lvalue_reference<element_type>::type
!       operator*() const noexcept(noexcept(*std::declval<pointer>()))
        {
  #if _GLIBCXX_USE_BUILTIN_TRAIT(__reference_converts_from_temporary)
  	// _GLIBCXX_RESOLVE_LIB_DEFECTS
--- 452,467 ----
        /// Dereference the stored pointer.
        _GLIBCXX23_CONSTEXPR
        typename add_lvalue_reference<element_type>::type
!       operator*() const
!       // _GLIBCXX_RESOLVE_LIB_DEFECTS
!       // 2762. unique_ptr operator*() should be noexcept
!       // 4324. unique_ptr<void>::operator* is not SFINAE-friendly
! #if __cpp_concepts
!       noexcept(noexcept(*std::declval<pointer>()))
!       requires requires { *std::declval<pointer>(); }
! #else
!       noexcept(_Nothrow_deref<pointer>::value)
! #endif
        {
  #if _GLIBCXX_USE_BUILTIN_TRAIT(__reference_converts_from_temporary)
  	// _GLIBCXX_RESOLVE_LIB_DEFECTS
diff -Nrcpad gcc-16-20260502/libstdc++-v3/testsuite/20_util/unique_ptr/lwg4324.cc gcc-16-20260509/libstdc++-v3/testsuite/20_util/unique_ptr/lwg4324.cc
*** gcc-16-20260502/libstdc++-v3/testsuite/20_util/unique_ptr/lwg4324.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/libstdc++-v3/testsuite/20_util/unique_ptr/lwg4324.cc	Sat May  9 22:32:15 2026
***************
*** 0 ****
--- 1,22 ----
+ // { dg-do compile { target c++11 } }
+ 
+ // LWG 4324. unique_ptr<void>::operator* is not SFINAE-friendly
+ 
+ #include <memory>
+ 
+ template<class T, bool = true>
+ struct nothrow_dereference
+ : std::false_type { };
+ 
+ template<class T>
+ struct nothrow_dereference<T, noexcept(*std::declval<T>())>
+ : std::true_type { };
+ 
+ static_assert( nothrow_dereference<std::unique_ptr<int>>::value, "");
+ static_assert( ! nothrow_dereference<std::unique_ptr<void>>::value, "");
+ 
+ #if __cplusplus >= 202002L // C++20
+ template<class T> concept dereferenceable = requires(T& t) { *t; };
+ static_assert( dereferenceable<std::unique_ptr<int>>);
+ static_assert(!dereferenceable<std::unique_ptr<void>>);
+ #endif
diff -Nrcpad gcc-16-20260502/libstdc++-v3/testsuite/25_algorithms/sample/121919.cc gcc-16-20260509/libstdc++-v3/testsuite/25_algorithms/sample/121919.cc
*** gcc-16-20260502/libstdc++-v3/testsuite/25_algorithms/sample/121919.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/libstdc++-v3/testsuite/25_algorithms/sample/121919.cc	Sat May  9 22:32:15 2026
***************
*** 0 ****
--- 1,28 ----
+ // { dg-do compile { target c++20 } }
+ 
+ // Bug 121919 ranges::sample assumes a uniform_random_bit_generator
+ // provides result_type
+ 
+ #include <algorithm>
+ #include <testsuite_iterators.h>
+ 
+ struct G
+ {
+   constexpr static unsigned min() { return 0;  }
+   constexpr static unsigned max() { return 10; }
+   unsigned operator()() const;
+ };
+ 
+ static_assert(std::uniform_random_bit_generator<G>);
+ 
+ void
+ test_pr121919()
+ {
+   int i2[2]{ 1, 2 };
+   __gnu_test::test_random_access_range from(i2);
+   int i1[1];
+   __gnu_test::test_random_access_range to(i1);
+   std::ranges::sample(from, std::ranges::begin(to), 1, G{});
+   std::ranges::sample(std::ranges::begin(from), std::ranges::end(to),
+ 		      std::ranges::begin(to), 1, G{});
+ }
diff -Nrcpad gcc-16-20260502/libstdc++-v3/testsuite/25_algorithms/shuffle/121919.cc gcc-16-20260509/libstdc++-v3/testsuite/25_algorithms/shuffle/121919.cc
*** gcc-16-20260502/libstdc++-v3/testsuite/25_algorithms/shuffle/121919.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260509/libstdc++-v3/testsuite/25_algorithms/shuffle/121919.cc	Sat May  9 22:32:15 2026
***************
*** 0 ****
--- 1,25 ----
+ // { dg-do compile { target c++20 } }
+ 
+ // Bug 121919 ranges::shuffle assumes a uniform_random_bit_generator
+ // provides result_type
+ 
+ #include <algorithm>
+ #include <testsuite_iterators.h>
+ 
+ struct G
+ {
+   constexpr static unsigned min() { return 0;  }
+   constexpr static unsigned max() { return 10; }
+   unsigned operator()() const;
+ };
+ 
+ static_assert(std::uniform_random_bit_generator<G>);
+ 
+ void
+ test_pr121919()
+ {
+   int arr[2]{ 1, 2 };
+   __gnu_test::test_random_access_range r(arr);
+   std::ranges::shuffle(r, G{});
+   std::ranges::shuffle(std::ranges::begin(r), std::ranges::end(r), G{});
+ }
