diff -Nrcpad gcc-16-20260405/LAST_UPDATED gcc-16-20260412/LAST_UPDATED
*** gcc-16-20260405/LAST_UPDATED	Sun Apr  5 22:32:22 2026
--- gcc-16-20260412/LAST_UPDATED	Sun Apr 12 22:32:21 2026
***************
*** 1 ****
! Obtained from git: master revision b34f04aea55821c2fbd4af452120718af15b24f5
--- 1 ----
! Obtained from git: master revision fff3733ea4e6d215f73f2529fad173681026c1a7
diff -Nrcpad gcc-16-20260405/MD5SUMS gcc-16-20260412/MD5SUMS
*** gcc-16-20260405/MD5SUMS	Sun Apr  5 22:32:27 2026
--- gcc-16-20260412/MD5SUMS	Sun Apr 12 22:32:27 2026
***************
*** 1,5 ****
  # This file contains the MD5 checksums of the files in the
! # gcc-16-20260405.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-20260412.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
*************** c360b66302dc20dc6934d86af09fe8e7  Change
*** 28,34 ****
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! f5f7afee415fd731de749487452aae4c  LAST_UPDATED
  935427ff8c5edd363349721844f7ba49  MAINTAINERS
  af43617880b3cd9c10627c97e639d29e  Makefile.def
  734342371d8ccc2c81cb2d8b3d040f33  Makefile.in
--- 28,34 ----
  fd4ecdf5d672efe2b0e409aca9cf9446  ChangeLog.jit
  09538b708302f1735f6fa05b622ecf5e  ChangeLog.tree-ssa
  24ab760126489e69436a43185dc3d202  INSTALL/README
! 322fff08b95b1c02312fdcd10cd1add3  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
! cbb5023981ddb9a07d5338165aa068ba  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
! 24359dd28fc306fbbcac91a4d8cffe59  gcc/ChangeLog
  51281e73aa07fb62394bd72f3c9299ba  gcc/ChangeLog-1997
  f77af8c9ac412064886b00c5506123b5  gcc/ChangeLog-1998
  00a2e4ead1b289bf69bca0196fed6f9f  gcc/ChangeLog-1999
*************** fb3fadb88e1d2b3b640cfaaa5ff11780  gcc/Ch
*** 568,586 ****
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 93148e7a062ffeae98cb75b8d67e8a60  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  a817c5577f2b35f8d2481c787e3ff7e2  gcc/LANGUAGES
! 1894e19666fe6fe90a8df5f99277c4ce  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/README.Portability
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 95420aad29febe5ccdc1e5b0a4660b3a  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
--- 568,586 ----
  3eb07e0b2e542409bf73d359f7f65609  gcc/ChangeLog.ptr
  e13638e26743ba41e6011b76cc00d9a9  gcc/ChangeLog.tree-ssa
  739ab47f6425bcea1d05e4fc0542de54  gcc/ChangeLog.tuples
! 178f66b56dd574fd780ce9aa8b3b316e  gcc/DATESTAMP
  deb513e591f23901188e22323bd3b1d4  gcc/DEV-PHASE
  eb92e1ff5e982ca07e173e0eb286d243  gcc/FSFChangeLog
  30e1e33411566388b3164558482dc5e6  gcc/FSFChangeLog.10
  36698274bb69e2ada20f5cc434f3caa5  gcc/FSFChangeLog.11
  a817c5577f2b35f8d2481c787e3ff7e2  gcc/LANGUAGES
! 3cc6d47e97c2a546cd3c3932a4999b1e  gcc/Makefile.in
  ec6799501b2eb2923d5de6a66169dbd2  gcc/ONEWS
  c8c9dd1eaee4ffd4d5d9f3ab70fddd4b  gcc/README.Portability
  240f413bc297147f87eb799b32d54104  gcc/acinclude.m4
  e74733ebf762151e601c9e0aa1461a20  gcc/aclocal.m4
  16a499934b71eb6cf7c0d6899cd6006a  gcc/ada/.gitignore
! 7cec5b32f8ae0febbf9fd846ad314124  gcc/ada/ChangeLog
  c2094c0d3135f9ac89917f162046ee04  gcc/ada/ChangeLog-2001
  fa410b57f5d814d5d3ac3b45f486cdcf  gcc/ada/ChangeLog-2002
  2dbefa7bdc8dc28ec746002028861278  gcc/ada/ChangeLog-2003
*************** c40d997c0c713985ad13faa6d354b016  gcc/ad
*** 618,624 ****
  8a0369e13d0752dfaddb77dfd08c3d14  gcc/ada/adabkend.ads
  ee04249eeb43a0e8f19490fbaccd6169  gcc/ada/adadecode.c
  35aad1fa6496345e7a7a1a7c43ac1145  gcc/ada/adadecode.h
! dda90e759cf4d20b938b55ab8eaafe97  gcc/ada/adaint.c
  8606a990b2e1a636a5ae50f019b17b10  gcc/ada/adaint.h
  a82184f30accc8ed33746fffe377a4ed  gcc/ada/affinity.c
  0ed459e0096285586fcd5221bb4cfb52  gcc/ada/ali-util.adb
--- 618,624 ----
  8a0369e13d0752dfaddb77dfd08c3d14  gcc/ada/adabkend.ads
  ee04249eeb43a0e8f19490fbaccd6169  gcc/ada/adadecode.c
  35aad1fa6496345e7a7a1a7c43ac1145  gcc/ada/adadecode.h
! 1b8348740464d6f94417f6c8bc3aedd1  gcc/ada/adaint.c
  8606a990b2e1a636a5ae50f019b17b10  gcc/ada/adaint.h
  a82184f30accc8ed33746fffe377a4ed  gcc/ada/affinity.c
  0ed459e0096285586fcd5221bb4cfb52  gcc/ada/ali-util.adb
*************** f3edeff30f2d71e01f705dbeeea40b77  gcc/ad
*** 857,863 ****
  1e2940d1ddb2a1e198a7dcd59b66ebfc  gcc/ada/gcc-interface/gigi.h
  89108e218f6b9e9f07550c3675c059a7  gcc/ada/gcc-interface/lang-specs.h
  43e609e56eeb0ff4e57be465cd17ddbc  gcc/ada/gcc-interface/lang.opt
! 80df0e0f476f009e7272bd43b4df6f20  gcc/ada/gcc-interface/lang.opt.urls
  8ef0bb2ae7258a2fb47816777dbbc079  gcc/ada/gcc-interface/misc.cc
  ec10f477ad1d3dba6056061ede6ff919  gcc/ada/gcc-interface/system.ads
  90cfb783f79abe4897a54ecd4d34f0a5  gcc/ada/gcc-interface/targtyps.cc
--- 857,863 ----
  1e2940d1ddb2a1e198a7dcd59b66ebfc  gcc/ada/gcc-interface/gigi.h
  89108e218f6b9e9f07550c3675c059a7  gcc/ada/gcc-interface/lang-specs.h
  43e609e56eeb0ff4e57be465cd17ddbc  gcc/ada/gcc-interface/lang.opt
! 5fa7cac776a0baee0d89a8f1d532117f  gcc/ada/gcc-interface/lang.opt.urls
  8ef0bb2ae7258a2fb47816777dbbc079  gcc/ada/gcc-interface/misc.cc
  ec10f477ad1d3dba6056061ede6ff919  gcc/ada/gcc-interface/system.ads
  90cfb783f79abe4897a54ecd4d34f0a5  gcc/ada/gcc-interface/targtyps.cc
*************** cbe63f3e975481a17ed49898fbbb9d2a  gcc/at
*** 3269,3275 ****
  feed071e9f711f8ebbc91f8636422f93  gcc/attribs.h
  bd317e24faffad6f2106396f1c3401b1  gcc/auto-inc-dec.cc
  fc353966a860a12cbc161a87f5619b51  gcc/auto-obstack.h
! 2a47b4d9cfd0645515fa828ac4a0b527  gcc/auto-profile.cc
  d290a68be0a787113b46b8c5ec98f710  gcc/auto-profile.h
  0ec313d8a3741cea7ca7b0151291cbdb  gcc/avoid-store-forwarding.cc
  df8fff5733f0af601cd10d3e2611b94a  gcc/avoid-store-forwarding.h
--- 3269,3275 ----
  feed071e9f711f8ebbc91f8636422f93  gcc/attribs.h
  bd317e24faffad6f2106396f1c3401b1  gcc/auto-inc-dec.cc
  fc353966a860a12cbc161a87f5619b51  gcc/auto-obstack.h
! a4c64459b3b4fb8ef116716a051874f1  gcc/auto-profile.cc
  d290a68be0a787113b46b8c5ec98f710  gcc/auto-profile.h
  0ec313d8a3741cea7ca7b0151291cbdb  gcc/avoid-store-forwarding.cc
  df8fff5733f0af601cd10d3e2611b94a  gcc/avoid-store-forwarding.h
*************** ebb1ceb69d6cf8ac2cdc227ae45f0eca  gcc/bi
*** 3286,3292 ****
  cdcd35bde318b22092b0788986b03a47  gcc/builtins.cc
  4dbe6686097ec6c197a24ac373bb9554  gcc/builtins.def
  99d9ddd60ff804d8e24732db43d38bca  gcc/builtins.h
! 4828d170161a0d71bcd2a35c5e09215d  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  aaea141fd41a559841cb76e33800c289  gcc/c-family/c-ada-spec.cc
  f60a13b470e8e51db83383bf9f9f921e  gcc/c-family/c-ada-spec.h
--- 3286,3292 ----
  cdcd35bde318b22092b0788986b03a47  gcc/builtins.cc
  4dbe6686097ec6c197a24ac373bb9554  gcc/builtins.def
  99d9ddd60ff804d8e24732db43d38bca  gcc/builtins.h
! 5a40b583ba18f7044057a93f4083c375  gcc/c-family/ChangeLog
  ea3fa1f4d7390a105fa3caab4f79aaf7  gcc/c-family/ChangeLog.gimple-classes
  aaea141fd41a559841cb76e33800c289  gcc/c-family/c-ada-spec.cc
  f60a13b470e8e51db83383bf9f9f921e  gcc/c-family/c-ada-spec.h
*************** ea821c9d267c64dd8b74aad9d0189834  gcc/c-
*** 3323,3336 ****
  298f1278576690ff4398c33310700f52  gcc/c-family/c-ubsan.h
  29b7425b7315dcfbd0c9f89296e90df0  gcc/c-family/c-warn.cc
  64f70ea877ef6fdb6e5a9fc36357732d  gcc/c-family/c.opt
! 7da074d32aa90f2a5114f2295f2e6063  gcc/c-family/c.opt.urls
  6453e733397a8ab931434f4f73ee7d7b  gcc/c-family/cppspec.cc
  58ecef7621a9577e43ac42cfceae8864  gcc/c-family/known-headers.cc
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! db80b7e1ac0fbcb9af83a36147253673  gcc/c/ChangeLog
! 06eb54aef1bdbf1efd3b5b3d57da78a3  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
  0f01f9a7997b353bf388f82ca59e6a33  gcc/c/c-decl.cc
--- 3323,3336 ----
  298f1278576690ff4398c33310700f52  gcc/c-family/c-ubsan.h
  29b7425b7315dcfbd0c9f89296e90df0  gcc/c-family/c-warn.cc
  64f70ea877ef6fdb6e5a9fc36357732d  gcc/c-family/c.opt
! 87cfcd671634399d8a259326c9c4e7c4  gcc/c-family/c.opt.urls
  6453e733397a8ab931434f4f73ee7d7b  gcc/c-family/cppspec.cc
  58ecef7621a9577e43ac42cfceae8864  gcc/c-family/known-headers.cc
  377686cbbf62a7d61d251d3f74cddb5b  gcc/c-family/known-headers.h
  431045382c41554804be1959c1596be4  gcc/c-family/name-hint.h
  3bae9e281cc87b35f63e906373f3b446  gcc/c-family/stub-objc.cc
! 98375b5009b8ca8ded6f2085c94d8242  gcc/c/ChangeLog
! cbffb341640e7c4b16792e0951fffeca  gcc/c/Make-lang.in
  3920e3ee16f5b5955d40584fea53c441  gcc/c/c-aux-info.cc
  cd5bab8a4deeaa0369ae59b9403d06a2  gcc/c/c-convert.cc
  0f01f9a7997b353bf388f82ca59e6a33  gcc/c/c-decl.cc
*************** cc705d06a0d769debf1c9afca112eff6  gcc/cf
*** 3370,3376 ****
  9739bc392def15d91a473ac8e1020ae2  gcc/cfgloop.cc
  e401a5a5a7e802aea0c860de79cf4639  gcc/cfgloop.h
  f18b9392122c866e0f6862690656ebd5  gcc/cfgloopanal.cc
! a2a7ae398fff29279976ba196a37dccb  gcc/cfgloopmanip.cc
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
  6efea778480901818ae74c1e5abf4f5f  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
--- 3370,3376 ----
  9739bc392def15d91a473ac8e1020ae2  gcc/cfgloop.cc
  e401a5a5a7e802aea0c860de79cf4639  gcc/cfgloop.h
  f18b9392122c866e0f6862690656ebd5  gcc/cfgloopanal.cc
! 13dceaa9039328df68a470f515c67c3b  gcc/cfgloopmanip.cc
  83651ace7d1e40ee81b35f32a6a05179  gcc/cfgloopmanip.h
  6efea778480901818ae74c1e5abf4f5f  gcc/cfgrtl.cc
  c41525a1de6e78cabd4414d6a8c3dac9  gcc/cfgrtl.h
*************** d48c86bc52a7b8ee38281d6069d3eb6a  gcc/co
*** 3443,3449 ****
  af093931f440b1ff2d8eaf64045fbf9b  gcc/combine.cc
  9f2835a8fa18cfce2249127014eb7edd  gcc/common.md
  b82c70a691a0ccf137f58b46e3f35b22  gcc/common.opt
! 72509437da440cd6faf3b7125698e13b  gcc/common.opt.urls
  d3b28fb0d49a8d683dde6011400fd7e7  gcc/common/common-target-def.h
  93cf11d6a27d42f73799ae012d2f876e  gcc/common/common-target.def
  d8f7142c05c4102806a8b26817df17a6  gcc/common/common-target.h
--- 3443,3449 ----
  af093931f440b1ff2d8eaf64045fbf9b  gcc/combine.cc
  9f2835a8fa18cfce2249127014eb7edd  gcc/common.md
  b82c70a691a0ccf137f58b46e3f35b22  gcc/common.opt
! d2e8132b0f749227249e50a041b512b0  gcc/common.opt.urls
  d3b28fb0d49a8d683dde6011400fd7e7  gcc/common/common-target-def.h
  93cf11d6a27d42f73799ae012d2f876e  gcc/common/common-target.def
  d8f7142c05c4102806a8b26817df17a6  gcc/common/common-target.h
*************** ce756734c2d086ac2b6f48267acb68ea  gcc/co
*** 3580,3586 ****
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  fb86888a7b4a251db9c62262e379d564  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 0a9a8b2892b7f980746c86316e601a5b  gcc/config/aarch64/aarch64.cc
  643919d961f71a1bd5cc1df13bbd79f5  gcc/config/aarch64/aarch64.h
  ec47958005b469d3d7377f0db34624bb  gcc/config/aarch64/aarch64.md
  c5cf87f72305a6ea92d9fd65a668c5f0  gcc/config/aarch64/aarch64.opt
--- 3580,3586 ----
  dec4c8fd03ac5636ba08d9523bee06be  gcc/config/aarch64/aarch64-tuning-enums.def
  fb86888a7b4a251db9c62262e379d564  gcc/config/aarch64/aarch64-tuning-flags.def
  b2ed7b4c85a1fa71b919148f60e2984f  gcc/config/aarch64/aarch64-vxworks.h
! 9e1735f12b023b346f04ff6c51b8b6c3  gcc/config/aarch64/aarch64.cc
  643919d961f71a1bd5cc1df13bbd79f5  gcc/config/aarch64/aarch64.h
  ec47958005b469d3d7377f0db34624bb  gcc/config/aarch64/aarch64.md
  c5cf87f72305a6ea92d9fd65a668c5f0  gcc/config/aarch64/aarch64.opt
*************** eb03dfcd266d8fc8f127a62e436447db  gcc/co
*** 3603,3609 ****
  dc252994bb63e3b3bb9aa44e233b100d  gcc/config/aarch64/cygming.h
  b6d18d11750027a9e7159f7100cbc2df  gcc/config/aarch64/driver-aarch64.cc
  f16190eb3167c87740aaff80ebc646b5  gcc/config/aarch64/fractional-cost.h
! 17089b91fc469cd67c59b9f057eb2c8a  gcc/config/aarch64/gcc-auto-profile
  190b8ad2102cd90ce935883b736ff024  gcc/config/aarch64/geniterators.sh
  b8dedf1142526bb86368b620384f877a  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
--- 3603,3609 ----
  dc252994bb63e3b3bb9aa44e233b100d  gcc/config/aarch64/cygming.h
  b6d18d11750027a9e7159f7100cbc2df  gcc/config/aarch64/driver-aarch64.cc
  f16190eb3167c87740aaff80ebc646b5  gcc/config/aarch64/fractional-cost.h
! 651bbb7890869a090e394b18403b9f44  gcc/config/aarch64/gcc-auto-profile
  190b8ad2102cd90ce935883b736ff024  gcc/config/aarch64/geniterators.sh
  b8dedf1142526bb86368b620384f877a  gcc/config/aarch64/gentune.sh
  86eaf33edeb885c2c9ae2a9825879e59  gcc/config/aarch64/host-aarch64-darwin.cc
*************** b8dedf1142526bb86368b620384f877a  gcc/co
*** 3612,3618 ****
  b382a70dce13e2b3d554e31443c0dbf0  gcc/config/aarch64/olympus.md
  38f51f94de89d54e9076031bb9368473  gcc/config/aarch64/predicates.md
  d28594900d3dd9c03845b0a6c7b79bb2  gcc/config/aarch64/rtems.h
! df94da77533a9aff401807c04f710800  gcc/config/aarch64/t-aarch64
  7e5e5f86679b2cd3564d95ac33603bc1  gcc/config/aarch64/t-aarch64-freebsd
  cbfacc8a400417ba418bcf35c9924095  gcc/config/aarch64/t-aarch64-linux
  1cb36852a4b0d051f70f43b3a8639779  gcc/config/aarch64/t-aarch64-mingw
--- 3612,3618 ----
  b382a70dce13e2b3d554e31443c0dbf0  gcc/config/aarch64/olympus.md
  38f51f94de89d54e9076031bb9368473  gcc/config/aarch64/predicates.md
  d28594900d3dd9c03845b0a6c7b79bb2  gcc/config/aarch64/rtems.h
! f2ae4d65baf4d3611beadad4a7b01692  gcc/config/aarch64/t-aarch64
  7e5e5f86679b2cd3564d95ac33603bc1  gcc/config/aarch64/t-aarch64-freebsd
  cbfacc8a400417ba418bcf35c9924095  gcc/config/aarch64/t-aarch64-linux
  1cb36852a4b0d051f70f43b3a8639779  gcc/config/aarch64/t-aarch64-mingw
*************** b63569ecff9557acb7963f14a101bce1  gcc/co
*** 4303,4309 ****
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
  91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
! 818ff5e096a6a971f3729c2526519288  gcc/config/i386/i386.cc
  483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
  42aef5ebb1ff5727adac4b0462d615dc  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
--- 4303,4309 ----
  5b778b3296ea91dab0ca82338ca6828d  gcc/config/i386/i386-rust-and-jit.inc
  91b8b50cba997aef17a61929b5b55a87  gcc/config/i386/i386-rust.cc
  25b3947a11eb9ca52892133ddb36f3f2  gcc/config/i386/i386-rust.h
! a56b37fcb3a6d419d8cded69ad51ad41  gcc/config/i386/i386.cc
  483853f45756ffc10a3acbe55d2d0920  gcc/config/i386/i386.h
  42aef5ebb1ff5727adac4b0462d615dc  gcc/config/i386/i386.md
  f431cbff6410e63b4e2de0e11adf19fb  gcc/config/i386/i386.opt
*************** dbcb030a5a374a20a894ab55346eb2a0  gcc/co
*** 4666,4672 ****
  19d5796358fa93b7d6fe22a02604a407  gcc/config/mingw/mingw.opt.urls
  1d5f1a57665738292d79250735b11e47  gcc/config/mingw/mingw32.h
  1e94c126fd81c1bcb376905cbf579a7f  gcc/config/mingw/msformat-c.cc
! da2e1484517c66fece1fadd07669571d  gcc/config/mingw/t-cygming
  87266e8b59c36b9e529ef180f12d9bbb  gcc/config/mingw/winnt-cxx.cc
  b85e0e83df79d2f49435f8e4a8992866  gcc/config/mingw/winnt-d.cc
  3c3dc8be46b778f5ae37e34d464e3671  gcc/config/mingw/winnt-dll.cc
--- 4666,4672 ----
  19d5796358fa93b7d6fe22a02604a407  gcc/config/mingw/mingw.opt.urls
  1d5f1a57665738292d79250735b11e47  gcc/config/mingw/mingw32.h
  1e94c126fd81c1bcb376905cbf579a7f  gcc/config/mingw/msformat-c.cc
! 067ebc3756fe59d47299695d354c9b8f  gcc/config/mingw/t-cygming
  87266e8b59c36b9e529ef180f12d9bbb  gcc/config/mingw/winnt-cxx.cc
  b85e0e83df79d2f49435f8e4a8992866  gcc/config/mingw/winnt-d.cc
  3c3dc8be46b778f5ae37e34d464e3671  gcc/config/mingw/winnt-dll.cc
*************** c54bf2d4fd13bb74bc3d510b8f75f0b1  gcc/co
*** 4988,4994 ****
  925e489f0f0a258ea2e7ced256fb3ab5  gcc/config/phoenix.h
  c11972bf63fa008aee2bbef33d586f7b  gcc/config/picolibc-spec.h
  193423b938033c62e286142c7adf5f39  gcc/config/picolibc.opt
! 50d6bfcb4715df0cad89992c362dcfaa  gcc/config/picolibc.opt.urls
  fcbf9f8c84143f4aa31a271f8995d1ce  gcc/config/print-sysroot-suffix.sh
  56ef02d6b54083626b640d0ba8bc078c  gcc/config/pru/alu-zext.md
  ce800bdc606a2ae4d19900976be4ecf4  gcc/config/pru/constraints.md
--- 4988,4994 ----
  925e489f0f0a258ea2e7ced256fb3ab5  gcc/config/phoenix.h
  c11972bf63fa008aee2bbef33d586f7b  gcc/config/picolibc-spec.h
  193423b938033c62e286142c7adf5f39  gcc/config/picolibc.opt
! 5f3fb55682992ef6da7e6abea4d74afd  gcc/config/picolibc.opt.urls
  fcbf9f8c84143f4aa31a271f8995d1ce  gcc/config/print-sysroot-suffix.sh
  56ef02d6b54083626b640d0ba8bc078c  gcc/config/pru/alu-zext.md
  ce800bdc606a2ae4d19900976be4ecf4  gcc/config/pru/constraints.md
*************** bcda2f5a4a2728d5f6bc53cbbd26f90c  gcc/co
*** 5046,5052 ****
  fbba4e9f3f0e00cdc072f9a3d399d0d1  gcc/config/riscv/riscv-avlprop.cc
  28bce4c8c28ba8acca9ceede4540540c  gcc/config/riscv/riscv-bclr-lowest-set-bit.cc
  7f7d3639030a4672597f5ffcc2083cd0  gcc/config/riscv/riscv-builtins.cc
! 04e612495f0a5f56f56e8d6795606254  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
  84bf4f3e3dd8352b0c98c731547841d9  gcc/config/riscv/riscv-cores.def
  165a5d0020971e2616fa7c9198c56338  gcc/config/riscv/riscv-d.cc
--- 5046,5052 ----
  fbba4e9f3f0e00cdc072f9a3d399d0d1  gcc/config/riscv/riscv-avlprop.cc
  28bce4c8c28ba8acca9ceede4540540c  gcc/config/riscv/riscv-bclr-lowest-set-bit.cc
  7f7d3639030a4672597f5ffcc2083cd0  gcc/config/riscv/riscv-builtins.cc
! 5cb39713c38f481ef65328ccacfc067e  gcc/config/riscv/riscv-c.cc
  3b7012a7d47b9aaf163e890d3e29013e  gcc/config/riscv/riscv-cmo.def
  84bf4f3e3dd8352b0c98c731547841d9  gcc/config/riscv/riscv-cores.def
  165a5d0020971e2616fa7c9198c56338  gcc/config/riscv/riscv-d.cc
*************** b65281b3d979c9c774d30d65281a07ab  gcc/co
*** 5094,5100 ****
  75866c86ec05a7abe2fa3f55828938b0  gcc/config/riscv/riscv-vsetvl.cc
  10ae51c30c9b8e6dce66f20016fae344  gcc/config/riscv/riscv-vsetvl.def
  85dee253312a7f85a1d4f8554a601105  gcc/config/riscv/riscv-zicfilp.cc
! 55ed83bbd1d0123a75c730844a3a8754  gcc/config/riscv/riscv.cc
  07078d74a9a03a5ff125a7847cf8dff7  gcc/config/riscv/riscv.h
  69bf57d0406b6ab66b5fd796932171e7  gcc/config/riscv/riscv.md
  c721fa1217a74f723ccf84813f721944  gcc/config/riscv/riscv.opt
--- 5094,5100 ----
  75866c86ec05a7abe2fa3f55828938b0  gcc/config/riscv/riscv-vsetvl.cc
  10ae51c30c9b8e6dce66f20016fae344  gcc/config/riscv/riscv-vsetvl.def
  85dee253312a7f85a1d4f8554a601105  gcc/config/riscv/riscv-zicfilp.cc
! dcd7eff216d6d893f847b8dbd9292869  gcc/config/riscv/riscv.cc
  07078d74a9a03a5ff125a7847cf8dff7  gcc/config/riscv/riscv.h
  69bf57d0406b6ab66b5fd796932171e7  gcc/config/riscv/riscv.md
  c721fa1217a74f723ccf84813f721944  gcc/config/riscv/riscv.opt
*************** db237fc1717a4075e7b9480205a32fd5  gcc/co
*** 5241,5249 ****
  25ea383c1f398321c28d21896c9d79db  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! 9be252ce87cecf1829cb579ecd696303  gcc/config/rs6000/rs6000-builtin.cc
! 5f55438b54e629713ba06eeb9a75bd37  gcc/config/rs6000/rs6000-builtins.def
! 98dbd8a4d4090dc44a4cc9a5e0f019e4  gcc/config/rs6000/rs6000-c.cc
  c97babd518212b16f2837b9b1d5d8359  gcc/config/rs6000/rs6000-call.cc
  094faf83d43883def20529728178ccb0  gcc/config/rs6000/rs6000-cpus.def
  7b860836fdc33cdfdd29f6348a553096  gcc/config/rs6000/rs6000-d.cc
--- 5241,5249 ----
  25ea383c1f398321c28d21896c9d79db  gcc/config/rs6000/predicates.md
  63ccc96ff2cef948c080eac4455d02b1  gcc/config/rs6000/rbtree.cc
  8ece9ca8167f5056fa411488a97c6131  gcc/config/rs6000/rbtree.h
! bc6e59027c9633087856cb1f21113697  gcc/config/rs6000/rs6000-builtin.cc
! 37430b2eb8f4514a965f13c8f0bfd4b0  gcc/config/rs6000/rs6000-builtins.def
! 53e2d95eca25d30cee45bac9af68b813  gcc/config/rs6000/rs6000-c.cc
  c97babd518212b16f2837b9b1d5d8359  gcc/config/rs6000/rs6000-call.cc
  094faf83d43883def20529728178ccb0  gcc/config/rs6000/rs6000-cpus.def
  7b860836fdc33cdfdd29f6348a553096  gcc/config/rs6000/rs6000-d.cc
*************** c165dfc83b2c9e75d3906f429e76a3fa  gcc/co
*** 5254,5268 ****
  4768cacdca0b901f6cb649726cca5eeb  gcc/config/rs6000/rs6000-logue.cc
  108998dcf0201ccd3e147d71251ca9f6  gcc/config/rs6000/rs6000-modes.def
  e8a3118f8f5a2aa7f988ed45bae99eeb  gcc/config/rs6000/rs6000-opts.h
! fab9961e9c2dca827c0ac5e7b100d398  gcc/config/rs6000/rs6000-overload.def
  dc46fa102175551da2f4ce2ee5c6435c  gcc/config/rs6000/rs6000-p8swap.cc
  da37007432adac35e44d7592e307e64a  gcc/config/rs6000/rs6000-passes.def
  384645a6c72587ac7501915a0c737e64  gcc/config/rs6000/rs6000-pcrel-opt.cc
! d3a1c98fd13be04e1250b073cb8dcef2  gcc/config/rs6000/rs6000-protos.h
  9e39e759376eb97f2a56ebfc28c8d149  gcc/config/rs6000/rs6000-string.cc
  505106a6c6516140530fe5f55a87e44e  gcc/config/rs6000/rs6000-tables.opt
  ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
! bcf781e9687d0164eeab8e20a7ed9eb7  gcc/config/rs6000/rs6000.cc
  838ab0dea9bee1b30cbf4cb875917f74  gcc/config/rs6000/rs6000.h
  a575dd5c5592c7d23a9b53b985c01120  gcc/config/rs6000/rs6000.md
  fc53ceb489fffb4124155c557c54157f  gcc/config/rs6000/rs6000.opt
--- 5254,5268 ----
  4768cacdca0b901f6cb649726cca5eeb  gcc/config/rs6000/rs6000-logue.cc
  108998dcf0201ccd3e147d71251ca9f6  gcc/config/rs6000/rs6000-modes.def
  e8a3118f8f5a2aa7f988ed45bae99eeb  gcc/config/rs6000/rs6000-opts.h
! c830b9f13c9b924d3e4770989983f8e5  gcc/config/rs6000/rs6000-overload.def
  dc46fa102175551da2f4ce2ee5c6435c  gcc/config/rs6000/rs6000-p8swap.cc
  da37007432adac35e44d7592e307e64a  gcc/config/rs6000/rs6000-passes.def
  384645a6c72587ac7501915a0c737e64  gcc/config/rs6000/rs6000-pcrel-opt.cc
! 27554d327449762be03c44084bead914  gcc/config/rs6000/rs6000-protos.h
  9e39e759376eb97f2a56ebfc28c8d149  gcc/config/rs6000/rs6000-string.cc
  505106a6c6516140530fe5f55a87e44e  gcc/config/rs6000/rs6000-tables.opt
  ce8de9a27f36b759a69194616c02eb38  gcc/config/rs6000/rs6000-tables.opt.urls
! 6c1ccbe3dbcd6af5aa4806c7794f634d  gcc/config/rs6000/rs6000.cc
  838ab0dea9bee1b30cbf4cb875917f74  gcc/config/rs6000/rs6000.h
  a575dd5c5592c7d23a9b53b985c01120  gcc/config/rs6000/rs6000.md
  fc53ceb489fffb4124155c557c54157f  gcc/config/rs6000/rs6000.opt
*************** d57d0eb0a8e2193f5cef2aaf1ad6d722  gcc/co
*** 5273,5279 ****
  0a803e7432938644d0614c5d9ee60670  gcc/config/rs6000/si2vmx.h
  b1a1f1ea8636fe96381989b926619397  gcc/config/rs6000/smmintrin.h
  016514c870054ecd799330bad9520a9d  gcc/config/rs6000/spu2vmx.h
! 0955c6a2d639cf6eaade88aa538b81b8  gcc/config/rs6000/sync.md
  e8c76038df323d77e90f69c78138b1fd  gcc/config/rs6000/sysv4.h
  e51499a69ac94adadb730c6c5491b97d  gcc/config/rs6000/sysv4.opt
  b1ed936b1a3e7303c34f1e54ec933230  gcc/config/rs6000/sysv4.opt.urls
--- 5273,5279 ----
  0a803e7432938644d0614c5d9ee60670  gcc/config/rs6000/si2vmx.h
  b1a1f1ea8636fe96381989b926619397  gcc/config/rs6000/smmintrin.h
  016514c870054ecd799330bad9520a9d  gcc/config/rs6000/spu2vmx.h
! 771d547690401ab06be0c3f6dab73d81  gcc/config/rs6000/sync.md
  e8c76038df323d77e90f69c78138b1fd  gcc/config/rs6000/sysv4.h
  e51499a69ac94adadb730c6c5491b97d  gcc/config/rs6000/sysv4.opt
  b1ed936b1a3e7303c34f1e54ec933230  gcc/config/rs6000/sysv4.opt.urls
*************** c60f07bed189e2a8fb8abfe19368e9f9  gcc/co
*** 5631,5638 ****
  708d79fd2376cbc3e1fc949938300b92  gcc/config/xtensa/xtensa.md
  093588e637649f5260b04ad13fe609e6  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! caa4d50a617698de4fa6ff0bd8ad18a1  gcc/configure
! b282e2838cbdeaae8ffa859b7e2abc0a  gcc/configure.ac
  a2bfe87830136c2d55b591b943cecd3f  gcc/configure.tgt
  8a46839a73059f70ef105be9706c2554  gcc/context.cc
  08023c1005def168a8b675813b95d9f4  gcc/context.h
--- 5631,5638 ----
  708d79fd2376cbc3e1fc949938300b92  gcc/config/xtensa/xtensa.md
  093588e637649f5260b04ad13fe609e6  gcc/config/xtensa/xtensa.opt
  db57d7603312357e8c0cfb21c32353d1  gcc/config/xtensa/xtensa.opt.urls
! abc1433c494f64d13225907acaedc4a3  gcc/configure
! 6f7ffe71846b7c3aebc7fc928a9ec686  gcc/configure.ac
  a2bfe87830136c2d55b591b943cecd3f  gcc/configure.tgt
  8a46839a73059f70ef105be9706c2554  gcc/context.cc
  08023c1005def168a8b675813b95d9f4  gcc/context.h
*************** e015add06ba8159fde5c92647e6d9fb1  gcc/co
*** 5641,5649 ****
  1610a30f4e4f6deb01cb08eadedb3005  gcc/coretypes.h
  c5ad0142a191862e3e81ecd3573754b3  gcc/coroutine-builtins.def
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
! 7a6e4e0e4b5500b45f31e2990f18b5da  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 1decc3c91389de0bb2c7850adcc30e01  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
--- 5641,5649 ----
  1610a30f4e4f6deb01cb08eadedb3005  gcc/coretypes.h
  c5ad0142a191862e3e81ecd3573754b3  gcc/coroutine-builtins.def
  55a33ae415bde0fd2e36ba584894e50b  gcc/coroutine-passes.cc
! c10700723a41c720aada0096f369147e  gcc/coverage.cc
  d27317cee558d7c78afbdb6529e36649  gcc/coverage.h
! 68f661a35419e9471bf8e765b17426eb  gcc/cp/ChangeLog
  70c059f2b75a2fc1bb95a526b21b8cd7  gcc/cp/ChangeLog-1993
  7cbd106e10a0ba7c052bee3fe20671c2  gcc/cp/ChangeLog-1994
  3b1e3ed23ad4363f75e6fd2fbb583dee  gcc/cp/ChangeLog-1995
*************** bcf7c5d02934e40f17edeb18d58c4d4d  gcc/cp
*** 5679,5692 ****
  f39635970f98bbc4591f6363fe70504b  gcc/cp/ChangeLog-2025
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! 8246afa8febc0194ad61f92827009cfb  gcc/cp/Make-lang.in
  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
  6803c12262c790a5b11f63788693a867  gcc/cp/constexpr.cc
! 58e79f705e8f9f18f0ad31afde2b72b3  gcc/cp/constraint.cc
  99c403ab218e024bcf6d5d2108ad1f3b  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
  8f78d0924d5a7780882529dc0fa117b0  gcc/cp/coroutines.cc
--- 5679,5692 ----
  f39635970f98bbc4591f6363fe70504b  gcc/cp/ChangeLog-2025
  c1c7801b9b0f379e702a4f6cb83972e7  gcc/cp/ChangeLog.ptr
  9aa3cd9f75c785de9f51446e3f295515  gcc/cp/ChangeLog.tree-ssa
! d9b8a76735523ab737e8778b90397d97  gcc/cp/Make-lang.in
  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
  6803c12262c790a5b11f63788693a867  gcc/cp/constexpr.cc
! 5c90331e26ccba972cabd28a5cdc3710  gcc/cp/constraint.cc
  99c403ab218e024bcf6d5d2108ad1f3b  gcc/cp/contracts.cc
  e77a681f560f3e9500f126febdc67ef6  gcc/cp/contracts.h
  8f78d0924d5a7780882529dc0fa117b0  gcc/cp/coroutines.cc
*************** e77a681f560f3e9500f126febdc67ef6  gcc/cp
*** 5696,5710 ****
  1a3e309babdfdd0ff5e03d09e6b5870d  gcc/cp/cp-name-hint.h
  eba8d8a1725223519fba5d4d69afd5c9  gcc/cp/cp-objcp-common.cc
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
! 3d68fc8214f859e5286b13a9eb767866  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! 22ba314a90240bbb42cd1064227b83ca  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
! 2be1214520379e312a839588fb844993  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
--- 5696,5710 ----
  1a3e309babdfdd0ff5e03d09e6b5870d  gcc/cp/cp-name-hint.h
  eba8d8a1725223519fba5d4d69afd5c9  gcc/cp/cp-objcp-common.cc
  370b42bcdf211125186c37665052c30c  gcc/cp/cp-objcp-common.h
! ffdd05782c93c0567486bb7ed7eee65a  gcc/cp/cp-trait.def
  bc9b29434f2e35fa68caf656161b5c0f  gcc/cp/cp-tree.def
! a4512d7be177396f9c6ef9cd654a98d8  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
! 0747174bd98a28af383630b8a40ceda5  gcc/cp/decl.cc
  6b0c9433f7d3f129a44b59d54babb4eb  gcc/cp/decl.h
  eb77bf90b77e8585aa773ccdf953c298  gcc/cp/decl2.cc
  12ccd5244973d74a0536adf58261b416  gcc/cp/dump.cc
*************** b3ff7f1e11444c1a8a1b9471e54c8cdd  gcc/cp
*** 5719,5749 ****
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  2c33328276b7ca5633320581eb891129  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 9f20f3c7fe65f196c12192bdc06f1c7d  gcc/cp/mangle.cc
  3d68343c4a9d614bb00b91ad53e79a0b  gcc/cp/mapper-client.cc
  27465babcaf6195d4f438ed36bdd6aff  gcc/cp/mapper-client.h
  4be7487ea09330ba02fb0695bc32c905  gcc/cp/mapper-resolver.cc
! 5c49e5acc2b03e2e579679382b3ac2f7  gcc/cp/metafns.gperf
! 0d5417b819c3521f7ea6a72851bfc601  gcc/cp/metafns.h
  db73ab5285dd3810cd91cb42aa475df5  gcc/cp/method.cc
! 42eb415e2b98e930f11f902e466ced4a  gcc/cp/module.cc
! 736425aea3e05ae769196ddeeecb8b82  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! a3f08d03e0475a2eb7360eaac328520d  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! c70236760552d2fe9b42e960e46f8211  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! d65403701c6f0ece46bb7044235fe8c7  gcc/cp/reflect.cc
  97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 93d9c94c549a378f5629364fec9e5408  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 474efea348630a5bd70e9fa2dd85691e  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
! dd21e0771211da03ea52000a335b44a9  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
  12d19e5abc1e436004b8885cde4765f0  gcc/cp/vtable-class-hierarchy.cc
  556f791fb43a25890d32717884f67cd1  gcc/cppbuiltin.cc
--- 5719,5749 ----
  bc388fb8287f2de7cdf4d78eb8f5d998  gcc/cp/lang-specs.h
  2c33328276b7ca5633320581eb891129  gcc/cp/lex.cc
  e4ccdd9cbe95dde4cce27394a7613dd9  gcc/cp/logic.cc
! 1e29fbddf0d52fa66d9fbc9f00ab5f10  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
! fd84e5e55d97c9bbc1f59762ec2539b3  gcc/cp/module.cc
! 79b07b3ec2f0827645bcac2f0107f883  gcc/cp/name-lookup.cc
  b166c2ce3d5ccd4de4e0c5910947ae41  gcc/cp/name-lookup.h
  b98d31c57aa038618db60991b17e0d35  gcc/cp/operators.def
  9efebf39da56d681d4405dfb9e55e3f5  gcc/cp/optimize.cc
! 5449831a273aaf6719f1652d01dacb75  gcc/cp/parser.cc
  7973a34c47e3d3c580832655a3a5c3c2  gcc/cp/parser.h
! 325446f4a104a59ef721a0dbe40cc459  gcc/cp/pt.cc
  25322928eaff39cf167372554c639e02  gcc/cp/ptree.cc
! ebb0b1fbf133d13ef0e40b64876df99d  gcc/cp/reflect.cc
  97df067b24bdcb46ea1a2ca984c26a33  gcc/cp/rtti.cc
  ed044462caa5bbab93e33fd297bc5d7c  gcc/cp/search.cc
! 84c428b3d78b435156079810686b6d77  gcc/cp/semantics.cc
  64c36b2ea66c9f8f477b19d24e06a2cb  gcc/cp/std-name-hint.gperf
  15cc409f13a8952feb90e94d99ecefa2  gcc/cp/std-name-hint.h
! 819fabf32874ef420d0f676a709c952a  gcc/cp/tree.cc
  01e9a381e6fcf3d016d0170ee0ad71d7  gcc/cp/type-utils.h
! 823c066127227e77d24f308a52a57204  gcc/cp/typeck.cc
  40eb09924b1139e6f7994869420c0c98  gcc/cp/typeck2.cc
  12d19e5abc1e436004b8885cde4765f0  gcc/cp/vtable-class-hierarchy.cc
  556f791fb43a25890d32717884f67cd1  gcc/cppbuiltin.cc
*************** fe61b2918e14694ac3e0e909cacea80f  gcc/cu
*** 5766,5772 ****
  86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
  cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
  58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! ec782d1b1db6581cfc033689d99e6681  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
--- 5766,5772 ----
  86700ca4710faebe1a0dbd2da6bcc75d  gcc/custom-sarif-properties/digraphs.h
  cdc60d179f923c009f0432beb1054e5b  gcc/custom-sarif-properties/state-graphs.cc
  58306e5ac720b353f4c495abf155e8a1  gcc/custom-sarif-properties/state-graphs.h
! b4267bd14801e463d0226e60478236eb  gcc/d/ChangeLog
  94dbce564aba342900829d11192f8905  gcc/d/ChangeLog-2006
  1a0536d6571bca334bb5c00dbdf257ab  gcc/d/ChangeLog-2007
  362a026d745031260b2e4dd8eba9becc  gcc/d/ChangeLog-2008
*************** f3f7af7813097c4eb0e00abeaa1c93d9  gcc/d/
*** 6007,6013 ****
  ce172275028d88abdad7fb3302e7017f  gcc/d/intrinsics.def
  b57c47a44a7c09a7b62838a41eb3723f  gcc/d/lang-specs.h
  d926df42786a0b32bc4c04fab4d1cdff  gcc/d/lang.opt
! 47e9096961d9bb77ddbb6c4623d2cc8d  gcc/d/lang.opt.urls
  a84c5c8dc5dd34c74b6c874a99718559  gcc/d/longdouble.h
  315914960c100ee43441bdcb728d419c  gcc/d/modules.cc
  2fc8432bfa0576b0d005fd3d883ea861  gcc/d/runtime.cc
--- 6007,6013 ----
  ce172275028d88abdad7fb3302e7017f  gcc/d/intrinsics.def
  b57c47a44a7c09a7b62838a41eb3723f  gcc/d/lang-specs.h
  d926df42786a0b32bc4c04fab4d1cdff  gcc/d/lang.opt
! 6113ac46c69393b82b5e7be0c040849e  gcc/d/lang.opt.urls
  a84c5c8dc5dd34c74b6c874a99718559  gcc/d/longdouble.h
  315914960c100ee43441bdcb728d419c  gcc/d/modules.cc
  2fc8432bfa0576b0d005fd3d883ea861  gcc/d/runtime.cc
*************** ee65c9e3e7c3fb1fd0128c23f4130e51  gcc/do
*** 6128,6134 ****
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! bd4b21f65d9b1776d46eb3c05a9648f9  gcc/doc/extend.texi
  483a7b956113f0370528460e842ff7b0  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  66d5868616d429f3e34b575b3efc6ccc  gcc/doc/gcc.texi
--- 6128,6134 ----
  301ed7e567732d1f0d5899a624068bdd  gcc/doc/cppinternals.texi
  421cc3b7d98386e0eb0abba4242dd54a  gcc/doc/cppopts.texi
  d8b2becdc7d9c570f256e19e1b1ac4f1  gcc/doc/cppwarnopts.texi
! 86bf5eee26a2a0ae75952e0422ecad9d  gcc/doc/extend.texi
  483a7b956113f0370528460e842ff7b0  gcc/doc/fragments.texi
  7fb1e4199b2e70228fda69b8065d83c4  gcc/doc/frontends.texi
  66d5868616d429f3e34b575b3efc6ccc  gcc/doc/gcc.texi
*************** bde53a0a190c3a74b047eb2b53c080eb  gcc/do
*** 6151,6159 ****
  37d898a82683588b62cca104098ad182  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! db8dbcf7fdd8459bac403cd0f8bd754a  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 6ba38e715c14e85696b7a197e94e355a  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
--- 6151,6159 ----
  37d898a82683588b62cca104098ad182  gcc/doc/include/gcc-common.texi
  95c90bf85d3eab67f348ee3ce0bf4050  gcc/doc/include/gpl_v3.texi
  e9b8122841fbfbbc30fee8ed6613c399  gcc/doc/include/texinfo.tex
! f56bfafb0161e4f2f8cf66a96952027a  gcc/doc/install.texi
  30a2209eee0a2bed76e2d9ff3bd646f2  gcc/doc/install.texi2html
! 8399d38883f5fd586068a45945e6c056  gcc/doc/invoke.texi
  dd9d4097ebfa9e936c41913343807268  gcc/doc/languages.texi
  46d2bbbd37002bb71569d0b1f27d7a5a  gcc/doc/libgcc.texi
  ef4f00c423089323edef1d3cff31a4a2  gcc/doc/libgdiagnostics/Makefile
*************** f7e932ab983b28cd4bef523021fa9eb0  gcc/do
*** 6195,6201 ****
  afaf0b9b413500a77920c3963dcd3978  gcc/doc/objc.texi
  79e8babebb4a40553fc011874ac21cbb  gcc/doc/optinfo.texi
  3abb75ff788f5434702f351bf7a279c9  gcc/doc/options.texi
! 56b2b4138ac0f7ae49e83b436c7b9182  gcc/doc/params.texi
  4f849b8e491aa0fa8b80c3cefe9dc5ec  gcc/doc/passes.texi
  e54937e427a2584ac4045286c725fab1  gcc/doc/plugins.texi
  88abde052db83cafaf5aaa6be0471613  gcc/doc/poly-int.texi
--- 6195,6201 ----
  afaf0b9b413500a77920c3963dcd3978  gcc/doc/objc.texi
  79e8babebb4a40553fc011874ac21cbb  gcc/doc/optinfo.texi
  3abb75ff788f5434702f351bf7a279c9  gcc/doc/options.texi
! 33d44a57f7ce7e135092b32ea91b6470  gcc/doc/params.texi
  4f849b8e491aa0fa8b80c3cefe9dc5ec  gcc/doc/passes.texi
  e54937e427a2584ac4045286c725fab1  gcc/doc/plugins.texi
  88abde052db83cafaf5aaa6be0471613  gcc/doc/poly-int.texi
*************** d2b53a62ec4e23a8e4cbe16d2843c100  gcc/do
*** 6211,6217 ****
  785cd9c395e7523657cf24e3547288ce  gcc/doc/tm.texi
  7e96646cc37dce39721bdc1ebba8e4d9  gcc/doc/tm.texi.in
  61e80fc645225b20d6a7d34c7e7a404b  gcc/doc/tree-ssa.texi
! 2d263928ebdba30d4e096adf01758e79  gcc/doc/trouble.texi
  83ea8ece47a3447f8da5fddd982c9d29  gcc/doc/ux.texi
  bb1210d252c998d89648c327c54d8c48  gcc/dojump.cc
  06d1775c0518a9eb565928aa8123a666  gcc/dojump.h
--- 6211,6217 ----
  785cd9c395e7523657cf24e3547288ce  gcc/doc/tm.texi
  7e96646cc37dce39721bdc1ebba8e4d9  gcc/doc/tm.texi.in
  61e80fc645225b20d6a7d34c7e7a404b  gcc/doc/tree-ssa.texi
! ec638981f54003344822ed0cb6e36615  gcc/doc/trouble.texi
  83ea8ece47a3447f8da5fddd982c9d29  gcc/doc/ux.texi
  bb1210d252c998d89648c327c54d8c48  gcc/dojump.cc
  06d1775c0518a9eb565928aa8123a666  gcc/dojump.h
*************** f80b38c70a85f9aeae9688b937b028ba  gcc/fi
*** 6268,6274 ****
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! 3c06452cd271225fb2510b35926a56cd  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
--- 6268,6274 ----
  50b999b375e3a5a95a002f592e6d4514  gcc/fold-const.cc
  0ec02a37dbbe9cb267f0ea1263085ed3  gcc/fold-const.h
  a0df3d274ac009d203209a191738cec6  gcc/fold-mem-offsets.cc
! dfe6dbadf47526147c26677257b9c95c  gcc/fortran/ChangeLog
  083c53fadafdcf3be46713838a51e36c  gcc/fortran/ChangeLog-2002
  2a4ca18d211fb2603139354fd16398ed  gcc/fortran/ChangeLog-2003
  e7462609ebd0dd7c874e0fc00e2833aa  gcc/fortran/ChangeLog-2004
*************** edad5176d72953374d67effefef0a605  gcc/fo
*** 6310,6329 ****
  48e7987762051d8cf68633af2633e50f  gcc/fortran/cpp.h
  213bc611adee1d275a412b3ed4886e79  gcc/fortran/data.cc
  ac7321680382b23989a6637e02dfb80e  gcc/fortran/data.h
! 32831e639cb1468076b8b95089f28ccb  gcc/fortran/decl.cc
! 26f9d3cd778f806f891b1ae70cad3305  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
  d159d22a53e7b0f3fc49d23c3a112081  gcc/fortran/dump-parse-tree.cc
  65aa25da09bdeee948cdad39cfc4d960  gcc/fortran/error.cc
  8b02343f75ef7cf3f9a4b9e0599abadc  gcc/fortran/expr.cc
  354927f6cb797cd538c0ab8ab0e552bb  gcc/fortran/f95-lang.cc
! d162511ebc8080669ebdf414e36c7d62  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
  19f6b89e3aeb2bc4bd5df602aac79552  gcc/fortran/gfortran.h
  4b41c64e656ca5096ae5a265ff7b2116  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
! 5d95199ee152cfe2843e2fdb4bb873c4  gcc/fortran/interface.cc
  7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
  285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
  3db093e57d8256b248d0bdb6fdaf42b4  gcc/fortran/intrinsic.texi
--- 6310,6329 ----
  48e7987762051d8cf68633af2633e50f  gcc/fortran/cpp.h
  213bc611adee1d275a412b3ed4886e79  gcc/fortran/data.cc
  ac7321680382b23989a6637e02dfb80e  gcc/fortran/data.h
! 9cfdaed822671022bfd9640bd1404706  gcc/fortran/decl.cc
! 92ac8b7c0f5e7976d4cd1297e9eb18c1  gcc/fortran/dependency.cc
  b66b99368e3cd17573ae64a38e36c1de  gcc/fortran/dependency.h
  d159d22a53e7b0f3fc49d23c3a112081  gcc/fortran/dump-parse-tree.cc
  65aa25da09bdeee948cdad39cfc4d960  gcc/fortran/error.cc
  8b02343f75ef7cf3f9a4b9e0599abadc  gcc/fortran/expr.cc
  354927f6cb797cd538c0ab8ab0e552bb  gcc/fortran/f95-lang.cc
! a9545d0b0a47cdd6d41ab654ae535ef1  gcc/fortran/frontend-passes.cc
  c85c9309a4274609c6ff6466621c90f6  gcc/fortran/gfc-diagnostic.def
  afb07146daad7f36a59c52e053f6772f  gcc/fortran/gfc-internals.texi
  19f6b89e3aeb2bc4bd5df602aac79552  gcc/fortran/gfortran.h
  4b41c64e656ca5096ae5a265ff7b2116  gcc/fortran/gfortran.texi
  9da0114ccf35340d3035f21f8a0f3325  gcc/fortran/gfortranspec.cc
! 8cc7ef5f6337072e740ebd904093fcd4  gcc/fortran/interface.cc
  7e06cc5337aba27172fe64c673314c64  gcc/fortran/intrinsic.cc
  285cce3e348dd08fbaf339358ac57d51  gcc/fortran/intrinsic.h
  3db093e57d8256b248d0bdb6fdaf42b4  gcc/fortran/intrinsic.texi
*************** d2a44bc3fbf0547319870426dd5da230  gcc/fo
*** 6335,6341 ****
  e5c0565c05cf7375c9978273f2e553e7  gcc/fortran/iso-fortran-env.def
  20a111338bfdbe210a5826e590844f81  gcc/fortran/lang-specs.h
  6c8e23a76ef7d1e3480d2026a438a31e  gcc/fortran/lang.opt
! 8eb4c394776b2993c2ab25a45606b835  gcc/fortran/lang.opt.urls
  c35102e7caaf40998fe2ead86d2716da  gcc/fortran/libgfortran.h
  66af5c8c6003d01ae9626e3792da6fdb  gcc/fortran/match.cc
  f7735c64af748cdef5caffae58a94749  gcc/fortran/match.h
--- 6335,6341 ----
  e5c0565c05cf7375c9978273f2e553e7  gcc/fortran/iso-fortran-env.def
  20a111338bfdbe210a5826e590844f81  gcc/fortran/lang-specs.h
  6c8e23a76ef7d1e3480d2026a438a31e  gcc/fortran/lang.opt
! 9d9fb30fe00868b5f0c2e92983608127  gcc/fortran/lang.opt.urls
  c35102e7caaf40998fe2ead86d2716da  gcc/fortran/libgfortran.h
  66af5c8c6003d01ae9626e3792da6fdb  gcc/fortran/match.cc
  f7735c64af748cdef5caffae58a94749  gcc/fortran/match.h
*************** bf54232c4c950ed772f4964c4f79629e  gcc/fo
*** 6343,6354 ****
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
  a465af66dbc504ea8aab1ad5d516072d  gcc/fortran/module.cc
! 97401542f27518750fdb77a3899d8adf  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  22050427a75e58c301664b6859f72718  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  f8f17e966c9b06f3143a910582383fb7  gcc/fortran/primary.cc
! 87ed96f64db17d84faeaae288a44c689  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
--- 6343,6354 ----
  915f6b30a8c22a5fea18690269a5a4a4  gcc/fortran/mathbuiltins.def
  9687294592a5ccef5d0b8254ab33816b  gcc/fortran/misc.cc
  a465af66dbc504ea8aab1ad5d516072d  gcc/fortran/module.cc
! 64d3d602ec86892f79980f52b2d5a35f  gcc/fortran/openmp.cc
  7baca4fc0a6fcd712dcbccab22987c74  gcc/fortran/options.cc
  22050427a75e58c301664b6859f72718  gcc/fortran/parse.cc
  c97a1f016de974126c688bb9c805f323  gcc/fortran/parse.h
  f8f17e966c9b06f3143a910582383fb7  gcc/fortran/primary.cc
! 7c186d43a73a784f8f6b96320d3b388c  gcc/fortran/resolve.cc
  e23f6eefa51bb3b4caa3d75c0409cfcd  gcc/fortran/scanner.cc
  18963b3f6aacca960fd6aa72b429a9d2  gcc/fortran/scanner.h
  664f19f5a29de9abc4642568f758c47c  gcc/fortran/simplify.cc
*************** cbdc87ddd4ad5837f1771e93f704a33e  gcc/fo
*** 6356,6368 ****
  ef5ff085d6f19e0b84135e46b7281b70  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
! 72bce408e4519c2877318c05eca30d13  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
! ff9af5e205134de79955e34475056910  gcc/fortran/trans-decl.cc
! fdfc29a65610dfb0070bf08bbe696efd  gcc/fortran/trans-expr.cc
  1e9019ec9c08335a5b10db9869e2534c  gcc/fortran/trans-intrinsic.cc
  9d578d72e2bcb2e0fc0dc71c709c80f8  gcc/fortran/trans-io.cc
  73efba48d12b420946095f8043c6f5ec  gcc/fortran/trans-openmp.cc
--- 6356,6368 ----
  ef5ff085d6f19e0b84135e46b7281b70  gcc/fortran/symbol.cc
  4fa06f769be3f1b439a574ee842c82ca  gcc/fortran/target-memory.cc
  ea8837444e2a08a95a3ea747c94b8106  gcc/fortran/target-memory.h
! e52cc479259ccde25f372f6e15478a65  gcc/fortran/trans-array.cc
  a0c40b654df0b5c5213047d26e48e97a  gcc/fortran/trans-array.h
  5c567026f9fbc4fea9b59c22743687c4  gcc/fortran/trans-common.cc
  98960d7450a15e1ecc9789bd0bde16a7  gcc/fortran/trans-const.cc
  0d5cf4117521dba2aea9c8fd7ac67888  gcc/fortran/trans-const.h
! 910ecb3b9cbacbba105f1752cef0504e  gcc/fortran/trans-decl.cc
! 563178b5cc38d4fc4732944fd4785b51  gcc/fortran/trans-expr.cc
  1e9019ec9c08335a5b10db9869e2534c  gcc/fortran/trans-intrinsic.cc
  9d578d72e2bcb2e0fc0dc71c709c80f8  gcc/fortran/trans-io.cc
  73efba48d12b420946095f8043c6f5ec  gcc/fortran/trans-openmp.cc
*************** d29ad5283ef50f50d10619397e423ecf  gcc/gi
*** 6515,6521 ****
  07a1825b625d551acbb670a51ae45fb1  gcc/gimple-ssa-sprintf.cc
  e2212a4ac7cbb1b0af8c28c4030c2a05  gcc/gimple-ssa-store-merging.cc
  53ca8b2ca1464910f634a11084178624  gcc/gimple-ssa-strength-reduction.cc
! 7b2da39025ad992bc56879ad3d06af5d  gcc/gimple-ssa-warn-access.cc
  987d7fb5fd1bb73e756015bb5e1074bd  gcc/gimple-ssa-warn-access.h
  f7b0197d94bcfef5acc93f20515d5a8f  gcc/gimple-ssa-warn-alloca.cc
  331fb5561e03bdd45decaf5d8b7ca0bb  gcc/gimple-ssa-warn-restrict.cc
--- 6515,6521 ----
  07a1825b625d551acbb670a51ae45fb1  gcc/gimple-ssa-sprintf.cc
  e2212a4ac7cbb1b0af8c28c4030c2a05  gcc/gimple-ssa-store-merging.cc
  53ca8b2ca1464910f634a11084178624  gcc/gimple-ssa-strength-reduction.cc
! 70cf17c67df9cf152514b46de7067d6e  gcc/gimple-ssa-warn-access.cc
  987d7fb5fd1bb73e756015bb5e1074bd  gcc/gimple-ssa-warn-access.h
  f7b0197d94bcfef5acc93f20515d5a8f  gcc/gimple-ssa-warn-alloca.cc
  331fb5561e03bdd45decaf5d8b7ca0bb  gcc/gimple-ssa-warn-restrict.cc
*************** f5de8589d497c4d607cadff1ce88dd5c  gcc/hw
*** 6658,6664 ****
  665c1d736f4909ccb17f662f7f060fd7  gcc/hw-doloop.h
  e5e51e93d7d72e1822440531e4d79d1d  gcc/hwint.cc
  b6b1b7e364f00e9287ee1f56254b9be1  gcc/hwint.h
! d76f5813130f7b2fed31819bef50cff9  gcc/ifcvt.cc
  e2229f9ecac43014084b083ddf2d4637  gcc/ifcvt.h
  370b4a8b9decbb822392c32f5fb92a72  gcc/inchash.cc
  bad6404ce4e7f42ff46ce6ae70c77e99  gcc/inchash.h
--- 6658,6664 ----
  665c1d736f4909ccb17f662f7f060fd7  gcc/hw-doloop.h
  e5e51e93d7d72e1822440531e4d79d1d  gcc/hwint.cc
  b6b1b7e364f00e9287ee1f56254b9be1  gcc/hwint.h
! 1c41ad8ff1fa0d161d36b093d76d3416  gcc/ifcvt.cc
  e2229f9ecac43014084b083ddf2d4637  gcc/ifcvt.h
  370b4a8b9decbb822392c32f5fb92a72  gcc/inchash.cc
  bad6404ce4e7f42ff46ce6ae70c77e99  gcc/inchash.h
*************** a7e9e00378501c6078d977c5ea3fabb3  gcc/lt
*** 6880,6887 ****
  6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
  2d378e58ffe32f0e50ca9de25f61ef5f  gcc/lto-streamer.h
  edfadb86beca8d7718985357731a9913  gcc/lto-wrapper.cc
! b2d1d29ee84399f66fe263c2da1344e6  gcc/lto/ChangeLog
! 40cfa2a569d1e297bea4259ae0b106cb  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
  7cfda51bb74b97d30a44070bb3888da7  gcc/lto/config-lang.in
--- 6880,6887 ----
  6c99c98c397a53a6a56da792d20092b0  gcc/lto-streamer.cc
  2d378e58ffe32f0e50ca9de25f61ef5f  gcc/lto-streamer.h
  edfadb86beca8d7718985357731a9913  gcc/lto-wrapper.cc
! e0a850dbbc0dfc7c0d19d9cb7818445e  gcc/lto/ChangeLog
! 134de5a17ec798ec16df035aee2f01cf  gcc/lto/Make-lang.in
  107bbf87618e39ff03662c0cd52a3f35  gcc/lto/common.cc
  eb5f3398fbf5d50b50c315e2d5891e25  gcc/lto/common.h
  7cfda51bb74b97d30a44070bb3888da7  gcc/lto/config-lang.in
*************** e0d99466f393722c3e10caf535614ff7  gcc/lt
*** 6904,6910 ****
  351e06833ea0ad58238533d76ea0c2cf  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! 3fbe1746899538377df1de35ddba843b  gcc/m2/ChangeLog
  3be37de9095aa710a8531df456be6d24  gcc/m2/Make-lang.in
  ed6143d60ab8fbfb423b65ba791d1faf  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
--- 6904,6910 ----
  351e06833ea0ad58238533d76ea0c2cf  gcc/m2/COPYING.RUNTIME
  8f0e2cd40e05189ec81232da84bd6e1a  gcc/m2/COPYING3
  6a6a8e020838b23406c81b19c1d46df6  gcc/m2/COPYING3.LIB
! 7fd2f11bb8f3bba3361bf0024898601b  gcc/m2/ChangeLog
  3be37de9095aa710a8531df456be6d24  gcc/m2/Make-lang.in
  ed6143d60ab8fbfb423b65ba791d1faf  gcc/m2/Make-maintainer.in
  6a74129fda00ca52ba9f953538250c45  gcc/m2/NEWS
*************** dd38268816ba82084bd3d215e4897884  gcc/m2
*** 7396,7402 ****
  f1ae5e7aa1d7574cbd5f4411b07ba0c0  gcc/m2/gm2-libs/Assertion.def
  d8426c14715595211f47c010923477b0  gcc/m2/gm2-libs/Assertion.mod
  9e3e359e371fdd51d3189fed174b3606  gcc/m2/gm2-libs/BinDict.def
! 620512535d5a5ec2029bc4d5b1009da2  gcc/m2/gm2-libs/BinDict.mod
  a661d6c46f95497c6eb94408eba9ec5f  gcc/m2/gm2-libs/Break.def
  042dbd2673c4a0a3d5e4e02c22e79d7b  gcc/m2/gm2-libs/Break.mod
  9b8b5949d8004ada392cf82029213363  gcc/m2/gm2-libs/Builtins.def
--- 7396,7402 ----
  f1ae5e7aa1d7574cbd5f4411b07ba0c0  gcc/m2/gm2-libs/Assertion.def
  d8426c14715595211f47c010923477b0  gcc/m2/gm2-libs/Assertion.mod
  9e3e359e371fdd51d3189fed174b3606  gcc/m2/gm2-libs/BinDict.def
! e9dd727e7276ef4e17c2028b6e3617c3  gcc/m2/gm2-libs/BinDict.mod
  a661d6c46f95497c6eb94408eba9ec5f  gcc/m2/gm2-libs/Break.def
  042dbd2673c4a0a3d5e4e02c22e79d7b  gcc/m2/gm2-libs/Break.mod
  9b8b5949d8004ada392cf82029213363  gcc/m2/gm2-libs/Builtins.def
*************** d02bb7b852c2149c474702f929b72f2d  gcc/m2
*** 7521,7527 ****
  aa3cc943e6f7954791f5b105b32ef4d5  gcc/m2/init/ppginit
  a346210964407569ed13816c0f8cecb4  gcc/m2/lang-specs.h
  882bbc145958ff2a636c6c4967efe92a  gcc/m2/lang.opt
! f2d53f7fa157e26bd2d7e692f21603ff  gcc/m2/lang.opt.urls
  1491e1562c74319dc4f16b5081fceb75  gcc/m2/m2-tree.def
  7eee071d249db10c1c1c87c311f85922  gcc/m2/m2-tree.h
  76fb37f307e4b61a8539914bf711d861  gcc/m2/m2.flex
--- 7521,7527 ----
  aa3cc943e6f7954791f5b105b32ef4d5  gcc/m2/init/ppginit
  a346210964407569ed13816c0f8cecb4  gcc/m2/lang-specs.h
  882bbc145958ff2a636c6c4967efe92a  gcc/m2/lang.opt
! 26239bdf69d403cbbcd8741d4e13a3d1  gcc/m2/lang.opt.urls
  1491e1562c74319dc4f16b5081fceb75  gcc/m2/m2-tree.def
  7eee071d249db10c1c1c87c311f85922  gcc/m2/m2-tree.h
  76fb37f307e4b61a8539914bf711d861  gcc/m2/m2.flex
*************** aa2631a800917f0a9b68ef9c3c6722fc  gcc/ob
*** 7921,7927 ****
  ac6f2a373c263368c4451f24860f50d6  gcc/obstack-utils.h
  b53e19ed2e5aad878bc3422b5ed77de8  gcc/omp-api.h
  cdc26bd8ead0ef188e59165e859c822d  gcc/omp-builtins.def
! 5a3bcd60699376b2549493e2b4b4795d  gcc/omp-expand.cc
  2f6456a4cc816c9b75844b1625b26349  gcc/omp-expand.h
  8b82f3e01be2ffdbcd3f14366979d838  gcc/omp-general.cc
  21041ab3bbd9eb02d136e1856bf2feb4  gcc/omp-general.h
--- 7921,7927 ----
  ac6f2a373c263368c4451f24860f50d6  gcc/obstack-utils.h
  b53e19ed2e5aad878bc3422b5ed77de8  gcc/omp-api.h
  cdc26bd8ead0ef188e59165e859c822d  gcc/omp-builtins.def
! 69a9c2c8d43088e61b046c23efb7f450  gcc/omp-expand.cc
  2f6456a4cc816c9b75844b1625b26349  gcc/omp-expand.h
  8b82f3e01be2ffdbcd3f14366979d838  gcc/omp-general.cc
  21041ab3bbd9eb02d136e1856bf2feb4  gcc/omp-general.h
*************** fef443de1557117f8c2847206a2ea8f5  gcc/or
*** 7971,7977 ****
  7c8d7dc194f39f5b8c69d7f0d05bc335  gcc/output.h
  5f96d548f10507478f5096f298505278  gcc/pair-fusion.cc
  69198894caa672a2294267474e494d8b  gcc/pair-fusion.h
! 920d2446bba13a4a1b779f46c4bd90af  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
  ce920ed7f2cc74b4a9bc390c39f4cbee  gcc/pass_manager.h
  23b3f227e4a3edb6df0c76124df99274  gcc/passes.cc
--- 7971,7977 ----
  7c8d7dc194f39f5b8c69d7f0d05bc335  gcc/output.h
  5f96d548f10507478f5096f298505278  gcc/pair-fusion.cc
  69198894caa672a2294267474e494d8b  gcc/pair-fusion.h
! 36cd576c4ad7ba0f3e496910958ecda9  gcc/params.opt
  2cc794e23d80a8c9f057a7e402c65fb8  gcc/params.opt.urls
  ce920ed7f2cc74b4a9bc390c39f4cbee  gcc/pass_manager.h
  23b3f227e4a3edb6df0c76124df99274  gcc/passes.cc
*************** b2f9b18f946c2e60e4f6cba0ab2df54e  gcc/pe
*** 7982,7988 ****
  51380e9db88b682bc96a35cc4bce56a5  gcc/plugin.cc
  af6268dd53154434eb4c4d1c299e0ee2  gcc/plugin.def
  5678cfbc9cf98f9e69bee1118c787a42  gcc/plugin.h
! 21b1624d0eb76e295b44a5e8bd43e5c6  gcc/po/ChangeLog
  2c2fbc71d2acc1ddfb9fb9501458921b  gcc/po/EXCLUDES
  e4f30f44788db1eadf4eb10b10a903d8  gcc/po/be.po
  59633165505938f52b0c07d3af3f0d94  gcc/po/da.po
--- 7982,7988 ----
  51380e9db88b682bc96a35cc4bce56a5  gcc/plugin.cc
  af6268dd53154434eb4c4d1c299e0ee2  gcc/plugin.def
  5678cfbc9cf98f9e69bee1118c787a42  gcc/plugin.h
! dffb414cec4ed0ebb08e457b622b1766  gcc/po/ChangeLog
  2c2fbc71d2acc1ddfb9fb9501458921b  gcc/po/EXCLUDES
  e4f30f44788db1eadf4eb10b10a903d8  gcc/po/be.po
  59633165505938f52b0c07d3af3f0d94  gcc/po/da.po
*************** a79eb5d475451dabc2d6df4454156df6  gcc/po
*** 8000,8010 ****
  b893512b6289995616543c182fd73a53  gcc/po/nl.po
  5a48ed208e298cec346f8ae5bf6c576d  gcc/po/ru.po
  2bed2f21c84db60853fc48e212698398  gcc/po/sr.po
! a0652105dc44748220429b9770860792  gcc/po/sv.po
  a865395637faabb5f17fdc74cabf78f4  gcc/po/tr.po
  88b1edbe3fd9f5672d7d878255671e0e  gcc/po/uk.po
  4e169cad957c51ed3221dd98e7b62a4d  gcc/po/vi.po
! 30aee115147cae736ff63b7605dcbc4f  gcc/po/zh_CN.po
  772a7a20e8c4e437a0c8091586968e49  gcc/po/zh_TW.po
  0016c64b1dc5e95008ae058ae7eba1a1  gcc/pointer-query.cc
  728738ceae729bc0f318f8accf6244c0  gcc/pointer-query.h
--- 8000,8010 ----
  b893512b6289995616543c182fd73a53  gcc/po/nl.po
  5a48ed208e298cec346f8ae5bf6c576d  gcc/po/ru.po
  2bed2f21c84db60853fc48e212698398  gcc/po/sr.po
! 08fe9e2ef67bace07928fed917bb4073  gcc/po/sv.po
  a865395637faabb5f17fdc74cabf78f4  gcc/po/tr.po
  88b1edbe3fd9f5672d7d878255671e0e  gcc/po/uk.po
  4e169cad957c51ed3221dd98e7b62a4d  gcc/po/vi.po
! 6b3d5a774b6e1ee3706ed6409e45aa75  gcc/po/zh_CN.po
  772a7a20e8c4e437a0c8091586968e49  gcc/po/zh_TW.po
  0016c64b1dc5e95008ae058ae7eba1a1  gcc/pointer-query.cc
  728738ceae729bc0f318f8accf6244c0  gcc/pointer-query.h
*************** cccab40b3ac43a58e799adb120a5dfbf  gcc/re
*** 8060,8066 ****
  cbae359b740a87a489f2cbe509ba7e6d  gcc/regcprop.cc
  e871bb7c9089d9ade710735b0803cff1  gcc/regcprop.h
  435320d85f05d8915fcbd110db42a930  gcc/regenerate-attr-urls.py
! 30050aa95f6f4a4c07e106cc9fe79dc3  gcc/regenerate-opt-urls.py
  0e3a39b230beb335e14d1d6336b7985e  gcc/reginfo.cc
  4fc0401c76f75e872ceb423b786535b3  gcc/regrename.cc
  3305b4e257d68cf35538509ba53235c4  gcc/regrename.h
--- 8060,8066 ----
  cbae359b740a87a489f2cbe509ba7e6d  gcc/regcprop.cc
  e871bb7c9089d9ade710735b0803cff1  gcc/regcprop.h
  435320d85f05d8915fcbd110db42a930  gcc/regenerate-attr-urls.py
! 5e402924ce5d4a7e3c923c23d6947bc8  gcc/regenerate-opt-urls.py
  0e3a39b230beb335e14d1d6336b7985e  gcc/reginfo.cc
  4fc0401c76f75e872ceb423b786535b3  gcc/regrename.cc
  3305b4e257d68cf35538509ba53235c4  gcc/regrename.h
*************** b21c32de4ac41afaa112df92995fbc7b  gcc/ta
*** 8716,8722 ****
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! 3662f510ab664210fa08bdf7a6de07be  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
--- 8716,8722 ----
  bf20a6542e361b29f15f9f2b47d47e2f  gcc/targhooks.cc
  b1068b0d3d77d5a55802a29a9f8a08d7  gcc/targhooks.h
  f39fcaa8197187283ccfed40107b426d  gcc/testsuite/.gitattributes
! c2af421e33e85a45b79ff9b96139d750  gcc/testsuite/ChangeLog
  47e8e29b649ead73b8a1e4797da470ed  gcc/testsuite/ChangeLog-1993-2007
  35198a9e4fd31b935de8789faabf3351  gcc/testsuite/ChangeLog-2008
  0f19934540750356d1b91595cebfd9a8  gcc/testsuite/ChangeLog-2009
*************** baa1ff9d67a227d88f5f4a3377afb275  gcc/te
*** 21922,21928 ****
  1c4ef3fc928b689d06e4e43bd7b1118c  gcc/testsuite/g++.dg/20090121-1.C
  34c8e7d537bafbaafc64457157d9941d  gcc/testsuite/g++.dg/DRs/dr1207-1.C
  135ae25fc37d38f1d817ed5038d76739  gcc/testsuite/g++.dg/DRs/dr1207-2.C
! 8ce864b8f2d2ae710018ffa009a91983  gcc/testsuite/g++.dg/DRs/dr1423.C
  c78a7d0e0f56139db13df05e5557054a  gcc/testsuite/g++.dg/DRs/dr1511-1.C
  a8a423a0388215f96cf72d6abf415d72  gcc/testsuite/g++.dg/DRs/dr1511-2.C
  85e9ec522afd7c5e768201ef345f8c60  gcc/testsuite/g++.dg/DRs/dr1670-1.C
--- 21922,21928 ----
  1c4ef3fc928b689d06e4e43bd7b1118c  gcc/testsuite/g++.dg/20090121-1.C
  34c8e7d537bafbaafc64457157d9941d  gcc/testsuite/g++.dg/DRs/dr1207-1.C
  135ae25fc37d38f1d817ed5038d76739  gcc/testsuite/g++.dg/DRs/dr1207-2.C
! bed8796353d3f2bf55a8e17d549cc1a8  gcc/testsuite/g++.dg/DRs/dr1423.C
  c78a7d0e0f56139db13df05e5557054a  gcc/testsuite/g++.dg/DRs/dr1511-1.C
  a8a423a0388215f96cf72d6abf415d72  gcc/testsuite/g++.dg/DRs/dr1511-2.C
  85e9ec522afd7c5e768201ef345f8c60  gcc/testsuite/g++.dg/DRs/dr1670-1.C
*************** e871dade9f29aef626c6c2b971763df6  gcc/te
*** 23129,23135 ****
  a9a380461a08693fcb6e2a8d0c088a72  gcc/testsuite/g++.dg/coroutines/pr110635.C
  20c31ba7b9813c7592788f115c164999  gcc/testsuite/g++.dg/coroutines/pr110855.C
  ffb931dc20a2f271234c85c6c4b80ac0  gcc/testsuite/g++.dg/coroutines/pr110871.C
! 045e75a80e78527e2f283579c9583fd1  gcc/testsuite/g++.dg/coroutines/pr110872.C
  dd1706e477862bd429aba56e40a12665  gcc/testsuite/g++.dg/coroutines/pr111728.C
  bc13f9bef9dfbb9f378794dc144f6b7f  gcc/testsuite/g++.dg/coroutines/pr112341-2.C
  c30585d33347e6eb25da9da916e1da25  gcc/testsuite/g++.dg/coroutines/pr112341-3.C
--- 23129,23135 ----
  a9a380461a08693fcb6e2a8d0c088a72  gcc/testsuite/g++.dg/coroutines/pr110635.C
  20c31ba7b9813c7592788f115c164999  gcc/testsuite/g++.dg/coroutines/pr110855.C
  ffb931dc20a2f271234c85c6c4b80ac0  gcc/testsuite/g++.dg/coroutines/pr110871.C
! 7581390d97b7b28e2e708d0c89e7daca  gcc/testsuite/g++.dg/coroutines/pr110872.C
  dd1706e477862bd429aba56e40a12665  gcc/testsuite/g++.dg/coroutines/pr111728.C
  bc13f9bef9dfbb9f378794dc144f6b7f  gcc/testsuite/g++.dg/coroutines/pr112341-2.C
  c30585d33347e6eb25da9da916e1da25  gcc/testsuite/g++.dg/coroutines/pr112341-3.C
*************** d8c0c733385ca64144f09cf94dbfc159  gcc/te
*** 27789,27794 ****
--- 27789,27795 ----
  478af4b2682b8500b6d04a7190ab9e4b  gcc/testsuite/g++.dg/cpp1z/nontype6a.C
  1a73a13a161c05eab6182bb64cba004b  gcc/testsuite/g++.dg/cpp1z/nontype7.C
  6ac56ba6fac8f37fd5da42f71b2f6417  gcc/testsuite/g++.dg/cpp1z/nontype8.C
+ ad7260377d53bd5be2c8dfecf32c3fc2  gcc/testsuite/g++.dg/cpp1z/nontype9.C
  03ca05bf2eccb98d95222a2435a3d9ed  gcc/testsuite/g++.dg/cpp1z/pr110216.C
  86d3c074d77c88bd7ef317faea9d2968  gcc/testsuite/g++.dg/cpp1z/pr115440.C
  77ac27ad1d458dd579a2e0b5c573de59  gcc/testsuite/g++.dg/cpp1z/pr122185.C
*************** dd3131ab1dbc85f08ebd66eda08bd240  gcc/te
*** 28188,28193 ****
--- 28189,28195 ----
  068dc2156782fc310d9fc4cd498d213d  gcc/testsuite/g++.dg/cpp26/decomp28.C
  75839c098b838f1ccf72394115eaf18b  gcc/testsuite/g++.dg/cpp26/decomp29.C
  04625a49d6c21164c6f7e075e578b4d2  gcc/testsuite/g++.dg/cpp26/decomp3.C
+ f03b98e8560560df97c75bfe30b54173  gcc/testsuite/g++.dg/cpp26/decomp30.C
  e0331653ca37862860617d90def1c2d9  gcc/testsuite/g++.dg/cpp26/decomp4.C
  2765a6ddd9be5099086c5f772077d8d1  gcc/testsuite/g++.dg/cpp26/decomp5.C
  cb34c6e9da3ed6ca1a9ebb453abcce46  gcc/testsuite/g++.dg/cpp26/decomp6.C
*************** aa7084460b314da9c28cdf37e67100c4  gcc/te
*** 28208,28238 ****
  a37be6fa19087a24f020178e94b5020d  gcc/testsuite/g++.dg/cpp26/erroneous6.C
  b64ca644cecdc2d2f9240f5060f15ddd  gcc/testsuite/g++.dg/cpp26/expansion-stmt1.C
  550ad6705c2ee18c462420135db42434  gcc/testsuite/g++.dg/cpp26/expansion-stmt10.C
! 27464fb36f9adff660032384a5f744d1  gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C
  d2f3d1d0903cd9aafbe5cfc699f5e974  gcc/testsuite/g++.dg/cpp26/expansion-stmt12.C
! 1a8ea65a8bfe4f48807a4cb121d02f77  gcc/testsuite/g++.dg/cpp26/expansion-stmt13.C
  9a15f7dee81311d83ad9aea2e046e956  gcc/testsuite/g++.dg/cpp26/expansion-stmt14.C
  8b57ea067d4cae17a4720a89345931b4  gcc/testsuite/g++.dg/cpp26/expansion-stmt15.C
! ef8ede6e959f4c1988242abcb8b18569  gcc/testsuite/g++.dg/cpp26/expansion-stmt16.C
  40a9f0169438dcc0077a4b3f3a07e396  gcc/testsuite/g++.dg/cpp26/expansion-stmt17.C
  44a7aaec2d961560ddb9933095e7006f  gcc/testsuite/g++.dg/cpp26/expansion-stmt18.C
! a9c707a9b9460b695998400fa35fced5  gcc/testsuite/g++.dg/cpp26/expansion-stmt19.C
  5392426c185f1cc8b0fc76ba4a048564  gcc/testsuite/g++.dg/cpp26/expansion-stmt2.C
  a430b39e1be5d1fb74398b6e2ed2bc77  gcc/testsuite/g++.dg/cpp26/expansion-stmt20.C
  6d0dfe9eb3ad7d8109fbb3b138464ecc  gcc/testsuite/g++.dg/cpp26/expansion-stmt21.C
  f8d8f977a2ce10a22535ceb90309b531  gcc/testsuite/g++.dg/cpp26/expansion-stmt22.C
  acbce95791211ede09f67fcd376b48cb  gcc/testsuite/g++.dg/cpp26/expansion-stmt23.C
  4f56781af7d20030274d9a133126e14b  gcc/testsuite/g++.dg/cpp26/expansion-stmt24.C
! e4f69d4b2b27a3693509dcdd3e3fa00e  gcc/testsuite/g++.dg/cpp26/expansion-stmt25.C
  c03cbe0eeea49adccea22e13d8e8abf1  gcc/testsuite/g++.dg/cpp26/expansion-stmt26.C
  6e0ba6570c6704c45f502e328e1b9c51  gcc/testsuite/g++.dg/cpp26/expansion-stmt27.C
  311dc4c09c0e312fcde6a0fa7a18ea60  gcc/testsuite/g++.dg/cpp26/expansion-stmt28.C
  d8e5e351c8023abfb93d35657ce2b584  gcc/testsuite/g++.dg/cpp26/expansion-stmt29.C
  023f480b6fe6eb322955e11226585a32  gcc/testsuite/g++.dg/cpp26/expansion-stmt3.C
! 5fb94c5ef1f906ede9ed5c73551cb2d1  gcc/testsuite/g++.dg/cpp26/expansion-stmt30.C
  b005ade0b8af8c8f0685f948a8651ab5  gcc/testsuite/g++.dg/cpp26/expansion-stmt31.C
  b94ae032c2758e1cda2c6f6e583ac044  gcc/testsuite/g++.dg/cpp26/expansion-stmt32.C
  7a2e4ee10a7d7f503ba159a2ef5c9cac  gcc/testsuite/g++.dg/cpp26/expansion-stmt34.C
  05972a123b20a66b9c7899c2bb0b5042  gcc/testsuite/g++.dg/cpp26/expansion-stmt4.C
  7cfc2afc603d55bfd66b320b3d190acd  gcc/testsuite/g++.dg/cpp26/expansion-stmt5.C
  8419176a2bf5898de53901daf6efe2a9  gcc/testsuite/g++.dg/cpp26/expansion-stmt6.C
--- 28210,28245 ----
  a37be6fa19087a24f020178e94b5020d  gcc/testsuite/g++.dg/cpp26/erroneous6.C
  b64ca644cecdc2d2f9240f5060f15ddd  gcc/testsuite/g++.dg/cpp26/expansion-stmt1.C
  550ad6705c2ee18c462420135db42434  gcc/testsuite/g++.dg/cpp26/expansion-stmt10.C
! afc31399912c1c6d72a1f9b48fbad7fd  gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C
  d2f3d1d0903cd9aafbe5cfc699f5e974  gcc/testsuite/g++.dg/cpp26/expansion-stmt12.C
! b0af9cdfcccbd2f90d022063a5909a27  gcc/testsuite/g++.dg/cpp26/expansion-stmt13.C
  9a15f7dee81311d83ad9aea2e046e956  gcc/testsuite/g++.dg/cpp26/expansion-stmt14.C
  8b57ea067d4cae17a4720a89345931b4  gcc/testsuite/g++.dg/cpp26/expansion-stmt15.C
! ee0fbdad9eb2e3ba5a9606de75374ad3  gcc/testsuite/g++.dg/cpp26/expansion-stmt16.C
  40a9f0169438dcc0077a4b3f3a07e396  gcc/testsuite/g++.dg/cpp26/expansion-stmt17.C
  44a7aaec2d961560ddb9933095e7006f  gcc/testsuite/g++.dg/cpp26/expansion-stmt18.C
! fe42ac2a38331836beb86b32cbba7fdd  gcc/testsuite/g++.dg/cpp26/expansion-stmt19.C
  5392426c185f1cc8b0fc76ba4a048564  gcc/testsuite/g++.dg/cpp26/expansion-stmt2.C
  a430b39e1be5d1fb74398b6e2ed2bc77  gcc/testsuite/g++.dg/cpp26/expansion-stmt20.C
  6d0dfe9eb3ad7d8109fbb3b138464ecc  gcc/testsuite/g++.dg/cpp26/expansion-stmt21.C
  f8d8f977a2ce10a22535ceb90309b531  gcc/testsuite/g++.dg/cpp26/expansion-stmt22.C
  acbce95791211ede09f67fcd376b48cb  gcc/testsuite/g++.dg/cpp26/expansion-stmt23.C
  4f56781af7d20030274d9a133126e14b  gcc/testsuite/g++.dg/cpp26/expansion-stmt24.C
! 17ec29260400ff003e1f74fa23a7db32  gcc/testsuite/g++.dg/cpp26/expansion-stmt25.C
  c03cbe0eeea49adccea22e13d8e8abf1  gcc/testsuite/g++.dg/cpp26/expansion-stmt26.C
  6e0ba6570c6704c45f502e328e1b9c51  gcc/testsuite/g++.dg/cpp26/expansion-stmt27.C
  311dc4c09c0e312fcde6a0fa7a18ea60  gcc/testsuite/g++.dg/cpp26/expansion-stmt28.C
  d8e5e351c8023abfb93d35657ce2b584  gcc/testsuite/g++.dg/cpp26/expansion-stmt29.C
  023f480b6fe6eb322955e11226585a32  gcc/testsuite/g++.dg/cpp26/expansion-stmt3.C
! 6e07f682a22eed2b40b5b8e497fc1aae  gcc/testsuite/g++.dg/cpp26/expansion-stmt30.C
  b005ade0b8af8c8f0685f948a8651ab5  gcc/testsuite/g++.dg/cpp26/expansion-stmt31.C
  b94ae032c2758e1cda2c6f6e583ac044  gcc/testsuite/g++.dg/cpp26/expansion-stmt32.C
+ c778dc72984ffe0dfe58d397a664fc23  gcc/testsuite/g++.dg/cpp26/expansion-stmt33.C
  7a2e4ee10a7d7f503ba159a2ef5c9cac  gcc/testsuite/g++.dg/cpp26/expansion-stmt34.C
+ b709f3966d2ad80e5871b667d715e985  gcc/testsuite/g++.dg/cpp26/expansion-stmt35.C
+ 95e20fbe0c6297de98add6354ead8b8d  gcc/testsuite/g++.dg/cpp26/expansion-stmt36.C
+ f0766c3cdb96663d3b77a4b19ab6db64  gcc/testsuite/g++.dg/cpp26/expansion-stmt37.C
+ fbaa97f955828122edb02abade5c00a5  gcc/testsuite/g++.dg/cpp26/expansion-stmt38.C
  05972a123b20a66b9c7899c2bb0b5042  gcc/testsuite/g++.dg/cpp26/expansion-stmt4.C
  7cfc2afc603d55bfd66b320b3d190acd  gcc/testsuite/g++.dg/cpp26/expansion-stmt5.C
  8419176a2bf5898de53901daf6efe2a9  gcc/testsuite/g++.dg/cpp26/expansion-stmt6.C
*************** e23875fe03c3518fda8adb9018cbe078  gcc/te
*** 28276,28282 ****
  3a466ff0615f64b4c569586077d58222  gcc/testsuite/g++.dg/cpp26/pack-indexing6.C
  a2ed31a87be635ccecaefd980d49e1c7  gcc/testsuite/g++.dg/cpp26/pack-indexing7.C
  a457069f7773dede2d30437b9569df74  gcc/testsuite/g++.dg/cpp26/pack-indexing8.C
! b149ac22b34abf9137a6e7f290160e13  gcc/testsuite/g++.dg/cpp26/pack-indexing9.C
  935218094ce32f7e344f11a3fd203c32  gcc/testsuite/g++.dg/cpp26/pr115754.C
  d764dc997ed4475c38f0905edbf53b4a  gcc/testsuite/g++.dg/cpp26/pr124070.C
  e5c8f0eb28524b5990c773f0897c9a82  gcc/testsuite/g++.dg/cpp26/raw-string1.C
--- 28283,28289 ----
  3a466ff0615f64b4c569586077d58222  gcc/testsuite/g++.dg/cpp26/pack-indexing6.C
  a2ed31a87be635ccecaefd980d49e1c7  gcc/testsuite/g++.dg/cpp26/pack-indexing7.C
  a457069f7773dede2d30437b9569df74  gcc/testsuite/g++.dg/cpp26/pack-indexing8.C
! b1a661a36ea39986cf741c0a238ce9f0  gcc/testsuite/g++.dg/cpp26/pack-indexing9.C
  935218094ce32f7e344f11a3fd203c32  gcc/testsuite/g++.dg/cpp26/pr115754.C
  d764dc997ed4475c38f0905edbf53b4a  gcc/testsuite/g++.dg/cpp26/pr124070.C
  e5c8f0eb28524b5990c773f0897c9a82  gcc/testsuite/g++.dg/cpp26/raw-string1.C
*************** e20c87111262a5e61bd6b3d5b3c21beb  gcc/te
*** 29260,29265 ****
--- 29267,29274 ----
  cf4951735fc79d21719a1d9d147e601f  gcc/testsuite/g++.dg/cpp2a/lambda-targ22.C
  cda34ab516f0f3b749efab4ba8f525af  gcc/testsuite/g++.dg/cpp2a/lambda-targ22a.C
  c9c401dee234950a35f6baa7697a4559  gcc/testsuite/g++.dg/cpp2a/lambda-targ23.C
+ 5891843d160f32e907903a257a0ac85a  gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C
+ 2974766b277ea1141793386ea16ee705  gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C
  d948ecca981f7c5de5ca48afc987ea36  gcc/testsuite/g++.dg/cpp2a/lambda-targ2a.C
  096118fef57f992a05319e3b6f8ba6a7  gcc/testsuite/g++.dg/cpp2a/lambda-targ3.C
  21c4749dcabd9a286db03db935f9cd86  gcc/testsuite/g++.dg/cpp2a/lambda-targ4.C
*************** b2b4c495143bcddf8d93ab8981f20a56  gcc/te
*** 31815,31821 ****
  2a1bc0a0ca3eb44a30af243b7764d562  gcc/testsuite/g++.dg/gomp/pr106492.C
  bd9556c57358bc478181fd7105e19b2f  gcc/testsuite/g++.dg/gomp/pr106829.C
  e1073bec80cbc48fb15e02126aebb2b0  gcc/testsuite/g++.dg/gomp/pr107558.C
! 641b551c65455ce91907afab3c572a40  gcc/testsuite/g++.dg/gomp/pr108503.C
  a8cfc657234f5f421b289d2fa6196965  gcc/testsuite/g++.dg/gomp/pr108607.C
  ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
  862170537bba07f4be0557b1aa4101c4  gcc/testsuite/g++.dg/gomp/pr113436-1.C
--- 31824,31830 ----
  2a1bc0a0ca3eb44a30af243b7764d562  gcc/testsuite/g++.dg/gomp/pr106492.C
  bd9556c57358bc478181fd7105e19b2f  gcc/testsuite/g++.dg/gomp/pr106829.C
  e1073bec80cbc48fb15e02126aebb2b0  gcc/testsuite/g++.dg/gomp/pr107558.C
! 0fdb1d075765833d520988fd56ad7280  gcc/testsuite/g++.dg/gomp/pr108503.C
  a8cfc657234f5f421b289d2fa6196965  gcc/testsuite/g++.dg/gomp/pr108607.C
  ed2fe9b487c91fe33d6cccf142fa243c  gcc/testsuite/g++.dg/gomp/pr111274.C
  862170537bba07f4be0557b1aa4101c4  gcc/testsuite/g++.dg/gomp/pr113436-1.C
*************** c6f32b33e84f3bfb06660b7dee175d23  gcc/te
*** 33233,33239 ****
  95f1267a216caf98bd99298c998cd58e  gcc/testsuite/g++.dg/lto/20091004-3_0.C
  546d22a8a0c7f3d0f4d56f8e3692c952  gcc/testsuite/g++.dg/lto/20091004-3_1.C
  6e256583bb6b48177771c608182c3b6d  gcc/testsuite/g++.dg/lto/20091022-1_0.C
! 2a8de4646e0a4664b55fcd4e9d826897  gcc/testsuite/g++.dg/lto/20091022-2_0.C
  b4849d6e46f2aa7820d2480e9eb53129  gcc/testsuite/g++.dg/lto/20091026-1_0.C
  20821b3f01ba34253f6e2f0010a873d9  gcc/testsuite/g++.dg/lto/20091026-1_1.C
  412c4c5afa8e742a78da641dcfebb47a  gcc/testsuite/g++.dg/lto/20091026-1_a.h
--- 33242,33248 ----
  95f1267a216caf98bd99298c998cd58e  gcc/testsuite/g++.dg/lto/20091004-3_0.C
  546d22a8a0c7f3d0f4d56f8e3692c952  gcc/testsuite/g++.dg/lto/20091004-3_1.C
  6e256583bb6b48177771c608182c3b6d  gcc/testsuite/g++.dg/lto/20091022-1_0.C
! eaa551f806cf1d91881142bfabeb3a5f  gcc/testsuite/g++.dg/lto/20091022-2_0.C
  b4849d6e46f2aa7820d2480e9eb53129  gcc/testsuite/g++.dg/lto/20091026-1_0.C
  20821b3f01ba34253f6e2f0010a873d9  gcc/testsuite/g++.dg/lto/20091026-1_1.C
  412c4c5afa8e742a78da641dcfebb47a  gcc/testsuite/g++.dg/lto/20091026-1_a.h
*************** b68df902c6a54181691939a43b2744d7  gcc/te
*** 33590,33595 ****
--- 33599,33606 ----
  fc4953758f61818ace23b9509f84bae2  gcc/testsuite/g++.dg/modules/auto-7.h
  b5098d48df02f895f0e578a0a6ecde73  gcc/testsuite/g++.dg/modules/auto-7_a.H
  8df4b11a8e283992ecbb2598a5d92ce6  gcc/testsuite/g++.dg/modules/auto-7_b.C
+ 9a7f1ce87583e6e392c76f4f6b195369  gcc/testsuite/g++.dg/modules/auto-8_a.H
+ 572d615e2c38b83d9a12eb7f97ed3dd6  gcc/testsuite/g++.dg/modules/auto-8_b.C
  53bbe2f7c4d5079131e5a6dea8da20db  gcc/testsuite/g++.dg/modules/bad-mapper-1.C
  429207e0eb777b4a43a566e8777f6503  gcc/testsuite/g++.dg/modules/bad-mapper-2.C
  457c206081cc6757683b25dc791287cd  gcc/testsuite/g++.dg/modules/bad-mapper-3.C
*************** c46255bb51de7ad96b62c94e9c472cb4  gcc/te
*** 33913,33918 ****
--- 33924,33930 ----
  c60ce9cb77aee4deb3090704e1db970f  gcc/testsuite/g++.dg/modules/export-5_a.C
  475cd1f0fba2791b43a510dd62919021  gcc/testsuite/g++.dg/modules/export-5_b.C
  301c08d49a4d86740c0af5dc3a234f66  gcc/testsuite/g++.dg/modules/export-6.C
+ d629c3101bb6dd6c09df3fcd36e2121a  gcc/testsuite/g++.dg/modules/export-7.C
  72f93a05f3b46d53e36617fe0e02c955  gcc/testsuite/g++.dg/modules/extern-tpl-1_a.H
  3315098b4e8445874ea0c80fd4fb9568  gcc/testsuite/g++.dg/modules/extern-tpl-1_b.C
  af71a71f12f25f2b3cb5a86a955b562b  gcc/testsuite/g++.dg/modules/extern-tpl-1_c.C
*************** ad4492ce734ab625ca31a8dcc2cfe939  gcc/te
*** 34204,34209 ****
--- 34216,34224 ----
  276da43d466a2829c1bdbe61d568e6cc  gcc/testsuite/g++.dg/modules/late-ret-3_c.C
  c5775cba25f4ad0346ebb8c37187fb17  gcc/testsuite/g++.dg/modules/late-ret-4_a.H
  58a30a7fa14cc33fd5e58e740b7a646d  gcc/testsuite/g++.dg/modules/late-ret-4_b.C
+ 540a7794ac65049e5e060f5f388c645b  gcc/testsuite/g++.dg/modules/late-ret-5.h
+ 9546e757881037efb96360ffd0010275  gcc/testsuite/g++.dg/modules/late-ret-5_a.H
+ d49297c2f37e3449a56153f151e162f3  gcc/testsuite/g++.dg/modules/late-ret-5_b.C
  739350acfa3eb5d0429706893705d31b  gcc/testsuite/g++.dg/modules/lazy-1_a.C
  874867dd9f2863a33cff5a80f9a8c6fa  gcc/testsuite/g++.dg/modules/lazy-1_b.C
  5ad3883c603e1646226b91fad2ac09e3  gcc/testsuite/g++.dg/modules/leg-merge-1_a.H
*************** b66a905fae26f7efc4eaf3f3c60a6b65  gcc/te
*** 34460,34466 ****
  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
! 3d3ada4db6cc439caa83bcf98eaee446  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
--- 34475,34481 ----
  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
*************** fce3f558aeb8001c53b2a58bdd35b90c  gcc/te
*** 34532,34537 ****
--- 34547,34556 ----
  29e61ee340b5bc3a7d8a0ba7a9b97160  gcc/testsuite/g++.dg/modules/noexcept-3_c.C
  3352ecf52d4c372d9299b5562e3d2bc1  gcc/testsuite/g++.dg/modules/noexcept-4_a.H
  1f41c550595320f883deb0c9cafc27d7  gcc/testsuite/g++.dg/modules/noexcept-4_b.C
+ f607f8896343cb10bfe1c533ab9b3f28  gcc/testsuite/g++.dg/modules/noexcept-5.h
+ 2a6066ee8de5da718d523238d43c0045  gcc/testsuite/g++.dg/modules/noexcept-5_a.C
+ 7df3f08ca2357d94302931ed7331bc7d  gcc/testsuite/g++.dg/modules/noexcept-5_b.C
+ 2a252bbd723530e61e33b6df1e1c2bfc  gcc/testsuite/g++.dg/modules/noexcept-5_c.C
  5267120dfe33094309707a439761d2ad  gcc/testsuite/g++.dg/modules/ns-alias-1_a.C
  5c1f7c01d38a7bbf2a7cb1627d2269cb  gcc/testsuite/g++.dg/modules/ns-alias-1_b.C
  35b6f149929214b0f06a476383cbce84  gcc/testsuite/g++.dg/modules/ns-alias-1_c.C
*************** bef5e193834f5468e4e4fc83a16d475d  gcc/te
*** 35230,35235 ****
--- 35249,35256 ----
  2dd22af7e6631945332b03fde27ff5db  gcc/testsuite/g++.dg/modules/using-32_b.C
  52f40637384516ccc35ac0f9f6315285  gcc/testsuite/g++.dg/modules/using-33_a.C
  82f21c15665bead6f4f0ec71d334df05  gcc/testsuite/g++.dg/modules/using-33_b.C
+ cff39b3c5704c947970d545b589f018a  gcc/testsuite/g++.dg/modules/using-34_a.C
+ f9a04157084cce9ec15b68e1b42b116b  gcc/testsuite/g++.dg/modules/using-34_b.C
  bcc6cc64890192d647d85da41996ed1e  gcc/testsuite/g++.dg/modules/using-4_a.C
  f7d6d7386bd922589ea2e579fdd741e5  gcc/testsuite/g++.dg/modules/using-4_b.C
  0650e45892eb431529641f277d164339  gcc/testsuite/g++.dg/modules/using-5_a.C
*************** f6da6bc220f84f52571fc202af3e6006  gcc/te
*** 37369,37376 ****
--- 37390,37399 ----
  d0688f26f2ebb5828f6f48cc79bc7f61  gcc/testsuite/g++.dg/reflect/annotations12.C
  8d81fca4d65c911f50361a306552693f  gcc/testsuite/g++.dg/reflect/annotations13.C
  d74843286cf1eb52ed6cfd02d075cf2b  gcc/testsuite/g++.dg/reflect/annotations14.C
+ c38c5ec06f234c9f6702e4c3ac079d6e  gcc/testsuite/g++.dg/reflect/annotations15.C
  c0110e1b5cd947792635c901d4495d19  gcc/testsuite/g++.dg/reflect/annotations16.C
  56cf933eba135a5f5d3be35d021e7135  gcc/testsuite/g++.dg/reflect/annotations17.C
+ 68421d9fea46dcde0540a2edbeb3750b  gcc/testsuite/g++.dg/reflect/annotations18.C
  cde9ad9488133ece9333eb048f65f1e1  gcc/testsuite/g++.dg/reflect/annotations2.C
  b31ed4442038ed211b83481f0c6b097f  gcc/testsuite/g++.dg/reflect/annotations3.C
  95036b72f565c8ac8e22eb21a94626f1  gcc/testsuite/g++.dg/reflect/annotations4.C
*************** c904467a71b469ad19ac245ff86a688f  gcc/te
*** 37407,37412 ****
--- 37430,37436 ----
  40feb1042d1daefbdcd0fb6ba0f035b9  gcc/testsuite/g++.dg/reflect/compare9.C
  93f7d56c10957b5c536f0f5607120434  gcc/testsuite/g++.dg/reflect/compat1.C
  5099ae69183a971da3cd6780a7dbe8f9  gcc/testsuite/g++.dg/reflect/complete1.C
+ 6ebdd8c877eaf75c6836160eee60d974  gcc/testsuite/g++.dg/reflect/concept1.C
  11137d680afe19be9fda652628f4f9aa  gcc/testsuite/g++.dg/reflect/constant_of1.C
  787273832fdeace9aa387d16b45d5acc  gcc/testsuite/g++.dg/reflect/constant_of2.C
  6dce9c471620ac11e8a1153d76aa0a38  gcc/testsuite/g++.dg/reflect/constant_of3.C
*************** edd0d59ec76c7c78594e6927a836e933  gcc/te
*** 37418,37424 ****
  7673ffd369326cd2652da80b94a78095  gcc/testsuite/g++.dg/reflect/constant_of9.C
  5c824cee5e2baf1b8ac5eb19ca0e3b55  gcc/testsuite/g++.dg/reflect/crash1.C
  cd4269abf864d20403d8fb31ce477f2c  gcc/testsuite/g++.dg/reflect/crash10.C
! e2772898a740250f27b7580dc2785fa8  gcc/testsuite/g++.dg/reflect/crash11.C
  da1beb4185a29d67525e0c2662e3bf48  gcc/testsuite/g++.dg/reflect/crash12.C
  e1bc1bead47e5c70581c4fd484464fff  gcc/testsuite/g++.dg/reflect/crash13.C
  62281952b5574c91ff9d4b26736166ed  gcc/testsuite/g++.dg/reflect/crash14.C
--- 37442,37448 ----
  7673ffd369326cd2652da80b94a78095  gcc/testsuite/g++.dg/reflect/constant_of9.C
  5c824cee5e2baf1b8ac5eb19ca0e3b55  gcc/testsuite/g++.dg/reflect/crash1.C
  cd4269abf864d20403d8fb31ce477f2c  gcc/testsuite/g++.dg/reflect/crash10.C
! 2422949d84e97172554e5d85efc5bbb5  gcc/testsuite/g++.dg/reflect/crash11.C
  da1beb4185a29d67525e0c2662e3bf48  gcc/testsuite/g++.dg/reflect/crash12.C
  e1bc1bead47e5c70581c4fd484464fff  gcc/testsuite/g++.dg/reflect/crash13.C
  62281952b5574c91ff9d4b26736166ed  gcc/testsuite/g++.dg/reflect/crash14.C
*************** b7ed52abe86f4f7c8db2ebf610edeae3  gcc/te
*** 37477,37482 ****
--- 37501,37508 ----
  74a9da651383d9b624e829c74d8705b9  gcc/testsuite/g++.dg/reflect/dep1.C
  2090f130f698bc9d2d5ad0f675b42168  gcc/testsuite/g++.dg/reflect/dep10.C
  a91076163632559f3333bcb1ef96b8fa  gcc/testsuite/g++.dg/reflect/dep11.C
+ 089422c88e9ccacf9cadda5dd1e7a5aa  gcc/testsuite/g++.dg/reflect/dep12.C
+ 27d9460a193ce7d4e90cab55cbd94bee  gcc/testsuite/g++.dg/reflect/dep13.C
  5ad7826c151890919478e6df81f4d9c8  gcc/testsuite/g++.dg/reflect/dep2.C
  0c0dac16104f8e96f71d07858c4a3a86  gcc/testsuite/g++.dg/reflect/dep3.C
  88c6774c1f0b10dc1375bd9a535099cb  gcc/testsuite/g++.dg/reflect/dep4.C
*************** c383f7bdf34cc8248e3fb9c61011574a  gcc/te
*** 37494,37502 ****
  20539bb1e62472f10fa8334f10ff9cd3  gcc/testsuite/g++.dg/reflect/diag5.C
  db85d7c65c5f57d9c7f5d259e7145883  gcc/testsuite/g++.dg/reflect/diag6.C
  6e51e54469631fcaf1fd97c86928c65e  gcc/testsuite/g++.dg/reflect/display_string_of1.C
! 3dcb19588276d5b6ac71de9c72f718e6  gcc/testsuite/g++.dg/reflect/eh1.C
  8cab0986acf9fb4bd447cea1a90ab571  gcc/testsuite/g++.dg/reflect/eh10.C
! f3224df0fb74cf5424276ada96f8d0e9  gcc/testsuite/g++.dg/reflect/eh2.C
  1f1e3e76e5396dd5212128aa8d5efd8a  gcc/testsuite/g++.dg/reflect/eh3.C
  3e46ad73df6f3ebee6a89f0408144e7e  gcc/testsuite/g++.dg/reflect/eh4.C
  2d8332fa4e636235f83374acfbf34a3e  gcc/testsuite/g++.dg/reflect/eh5.C
--- 37520,37528 ----
  20539bb1e62472f10fa8334f10ff9cd3  gcc/testsuite/g++.dg/reflect/diag5.C
  db85d7c65c5f57d9c7f5d259e7145883  gcc/testsuite/g++.dg/reflect/diag6.C
  6e51e54469631fcaf1fd97c86928c65e  gcc/testsuite/g++.dg/reflect/display_string_of1.C
! bfb32884dd0c74934dec0a8d6ce03d92  gcc/testsuite/g++.dg/reflect/eh1.C
  8cab0986acf9fb4bd447cea1a90ab571  gcc/testsuite/g++.dg/reflect/eh10.C
! d543768d4691f8f8de3a895373766cb8  gcc/testsuite/g++.dg/reflect/eh2.C
  1f1e3e76e5396dd5212128aa8d5efd8a  gcc/testsuite/g++.dg/reflect/eh3.C
  3e46ad73df6f3ebee6a89f0408144e7e  gcc/testsuite/g++.dg/reflect/eh4.C
  2d8332fa4e636235f83374acfbf34a3e  gcc/testsuite/g++.dg/reflect/eh5.C
*************** e787aed23c696a86456b0bb63c55c905  gcc/te
*** 37600,37606 ****
  49cc91ffb05d6a9ba6ef6b45d3e540b6  gcc/testsuite/g++.dg/reflect/is_complete_type2.C
  907a9b51160c4994e0564b44dda5824d  gcc/testsuite/g++.dg/reflect/is_concept1.C
  38a31d7e4824271d0377098550b08aa7  gcc/testsuite/g++.dg/reflect/is_const1.C
- 38c4d03562b3dd27c1dacecd2f3dc570  gcc/testsuite/g++.dg/reflect/is_consteval_only1.C
  64df49905b691d820e4d1acd6536884c  gcc/testsuite/g++.dg/reflect/is_constructible_type1.C
  edcf11d1d04e007df81b6c1b604ade38  gcc/testsuite/g++.dg/reflect/is_constructible_type2.C
  bd09d4860633e0abef89800db481ef7b  gcc/testsuite/g++.dg/reflect/is_constructor_template1.C
--- 37626,37631 ----
*************** f6803b822ccb79238b24868d977699f4  gcc/te
*** 37677,37683 ****
  302f73246b009ac18077a09660bba301  gcc/testsuite/g++.dg/reflect/mangle1.C
  a3a095f76106493121ca9f08dbb03b9e  gcc/testsuite/g++.dg/reflect/member-visibility1.C
  ad855dfbd2b8005bd8560472ce0cf5b4  gcc/testsuite/g++.dg/reflect/member-visibility2.C
! 2c86502ff23ae309bb2a5fdb339970c1  gcc/testsuite/g++.dg/reflect/member1.C
  798c02332c1f9a2f17309c4a50856e1b  gcc/testsuite/g++.dg/reflect/member10.C
  0cba845b2bb01c6139ddd64d9f8b5f57  gcc/testsuite/g++.dg/reflect/member11.C
  762fdbd174cf2ac6c75d9d8bd1eb3321  gcc/testsuite/g++.dg/reflect/member12.C
--- 37702,37708 ----
  302f73246b009ac18077a09660bba301  gcc/testsuite/g++.dg/reflect/mangle1.C
  a3a095f76106493121ca9f08dbb03b9e  gcc/testsuite/g++.dg/reflect/member-visibility1.C
  ad855dfbd2b8005bd8560472ce0cf5b4  gcc/testsuite/g++.dg/reflect/member-visibility2.C
! 2682080dfb339e8cc080b395ee8d0a02  gcc/testsuite/g++.dg/reflect/member1.C
  798c02332c1f9a2f17309c4a50856e1b  gcc/testsuite/g++.dg/reflect/member10.C
  0cba845b2bb01c6139ddd64d9f8b5f57  gcc/testsuite/g++.dg/reflect/member11.C
  762fdbd174cf2ac6c75d9d8bd1eb3321  gcc/testsuite/g++.dg/reflect/member12.C
*************** d7bf4b2b4a12e0e7c5f568c235fe50c9  gcc/te
*** 37691,37696 ****
--- 37716,37722 ----
  8ebf4e8f059ee7695e3d2f4523f941e8  gcc/testsuite/g++.dg/reflect/member2.C
  5a76580cb5157802057a41baaeb6e392  gcc/testsuite/g++.dg/reflect/member20.C
  181521b03df5dc478a1ac9257c71682a  gcc/testsuite/g++.dg/reflect/member21.C
+ 8f0a225791758f8c40167f8e5110273d  gcc/testsuite/g++.dg/reflect/member22.C
  15ab3614f7ae1299d4e7d568ee2727f4  gcc/testsuite/g++.dg/reflect/member3.C
  70bee80f7f1e470fddab439ae8fdc529  gcc/testsuite/g++.dg/reflect/member4.C
  6fe67e7658a6bcb1550c6e320e9b1cb3  gcc/testsuite/g++.dg/reflect/member5.C
*************** d1fd504ae938ad7e3b0edbf6834ec3b4  gcc/te
*** 37702,37707 ****
--- 37728,37734 ----
  003961dd53b2e05e53a6b911f852ef9c  gcc/testsuite/g++.dg/reflect/members_of10.C
  c44e1d6dfaecfb4f263c78b17ed1b8c7  gcc/testsuite/g++.dg/reflect/members_of11.C
  623575016974295708d960e75d733062  gcc/testsuite/g++.dg/reflect/members_of12.C
+ a2c5daff71c5cc0345db4bd0e912e669  gcc/testsuite/g++.dg/reflect/members_of13.C
  689453102e4425f8d2c4ff89cb939595  gcc/testsuite/g++.dg/reflect/members_of2.C
  80a032eb31d0998f2d288e303356773a  gcc/testsuite/g++.dg/reflect/members_of3.C
  5ececa99994de569abffae1671b71870  gcc/testsuite/g++.dg/reflect/members_of4.C
*************** d4968ca0625d3f393961f76e9655b84d  gcc/te
*** 37786,37794 ****
  6c1159b0d54c4859a992ca4b8182c68b  gcc/testsuite/g++.dg/reflect/pr124012.C
  23abb8eef645c1d8425f55d4469a1f73  gcc/testsuite/g++.dg/reflect/pr124227.C
  21163d77f163d23e3dc80cd1c30a9ae5  gcc/testsuite/g++.dg/reflect/pr124689.C
  e6404856d4cc9cc02aa5ebec3e5ecb82  gcc/testsuite/g++.dg/reflect/qrn1.C
  4ef5fc49aed920d8bfc3bc57a9ddef71  gcc/testsuite/g++.dg/reflect/qrn2.C
! 82cc9bd702b6c4899eb3441b0289bca6  gcc/testsuite/g++.dg/reflect/range_args.C
  4a00c41972f2f14fa56db9ca726a463a  gcc/testsuite/g++.dg/reflect/reflect_constant1.C
  5d7610e1d1ccaf86552c4b68c0f0dcb1  gcc/testsuite/g++.dg/reflect/reflect_constant2.C
  2b1261b43d4d2862c007e4b67ac4dec0  gcc/testsuite/g++.dg/reflect/reflect_constant3.C
--- 37813,37823 ----
  6c1159b0d54c4859a992ca4b8182c68b  gcc/testsuite/g++.dg/reflect/pr124012.C
  23abb8eef645c1d8425f55d4469a1f73  gcc/testsuite/g++.dg/reflect/pr124227.C
  21163d77f163d23e3dc80cd1c30a9ae5  gcc/testsuite/g++.dg/reflect/pr124689.C
+ d1618ed5affc804f7f8cda302ecd3b2e  gcc/testsuite/g++.dg/reflect/pr124790.C
+ 121fa58431980b8ab5bd16473ccf8c21  gcc/testsuite/g++.dg/reflect/pr124792.C
  e6404856d4cc9cc02aa5ebec3e5ecb82  gcc/testsuite/g++.dg/reflect/qrn1.C
  4ef5fc49aed920d8bfc3bc57a9ddef71  gcc/testsuite/g++.dg/reflect/qrn2.C
! 8a49e7b1ad0cad9ac48fdcf37ad900cf  gcc/testsuite/g++.dg/reflect/range_args.C
  4a00c41972f2f14fa56db9ca726a463a  gcc/testsuite/g++.dg/reflect/reflect_constant1.C
  5d7610e1d1ccaf86552c4b68c0f0dcb1  gcc/testsuite/g++.dg/reflect/reflect_constant2.C
  2b1261b43d4d2862c007e4b67ac4dec0  gcc/testsuite/g++.dg/reflect/reflect_constant3.C
*************** af18aac150e2da16b8511edc29458f59  gcc/te
*** 37828,37834 ****
  c80b1bac424d9304fac93754834f224e  gcc/testsuite/g++.dg/reflect/splice2.C
  e0d01c0d72438804b2438e81debbc181  gcc/testsuite/g++.dg/reflect/splice3.C
  c900182698e22d48583b4bbd611fe1fb  gcc/testsuite/g++.dg/reflect/splice4.C
! 370a719ae253a9165030c12db3cef8f9  gcc/testsuite/g++.dg/reflect/splice5.C
  0badbfd09ec045739bf918587cc70dcf  gcc/testsuite/g++.dg/reflect/splice6.C
  6738eaccb426d5d58c46b54bbd7b4bfb  gcc/testsuite/g++.dg/reflect/splice7.C
  52791f318015d99618ee0d3ccfe2de5f  gcc/testsuite/g++.dg/reflect/splice8.C
--- 37857,37863 ----
  c80b1bac424d9304fac93754834f224e  gcc/testsuite/g++.dg/reflect/splice2.C
  e0d01c0d72438804b2438e81debbc181  gcc/testsuite/g++.dg/reflect/splice3.C
  c900182698e22d48583b4bbd611fe1fb  gcc/testsuite/g++.dg/reflect/splice4.C
! 7b92bf1022d7ac9417aab2524b0e6682  gcc/testsuite/g++.dg/reflect/splice5.C
  0badbfd09ec045739bf918587cc70dcf  gcc/testsuite/g++.dg/reflect/splice6.C
  6738eaccb426d5d58c46b54bbd7b4bfb  gcc/testsuite/g++.dg/reflect/splice7.C
  52791f318015d99618ee0d3ccfe2de5f  gcc/testsuite/g++.dg/reflect/splice8.C
*************** a66e1dc9964c7702e9ecdb5be8553fb5  gcc/te
*** 37878,37888 ****
  4fb586d7efeeabc9fafb9d8f9f4ec796  gcc/testsuite/g++.dg/reflect/type_trait11.C
  9b33e0cb088a6815bc1f1c4cb74a8aa5  gcc/testsuite/g++.dg/reflect/type_trait12.C
  15027de4c989f7dd7ffa4d7846a28442  gcc/testsuite/g++.dg/reflect/type_trait13.C
! bba7e537e6491f023c3c6af8aded898b  gcc/testsuite/g++.dg/reflect/type_trait14.C
  06a1343d9aeb1caa65048fdecda31245  gcc/testsuite/g++.dg/reflect/type_trait2.C
  c957460ae45089ece9b5352a7de1f5fc  gcc/testsuite/g++.dg/reflect/type_trait3.C
  6a48574284311a70358d27e1b45595b3  gcc/testsuite/g++.dg/reflect/type_trait4.C
! 3ca87a72cd6003b615061c966b9db0a0  gcc/testsuite/g++.dg/reflect/type_trait5.C
  7c9280bc78006b6ed6b75ff5c1c9facc  gcc/testsuite/g++.dg/reflect/type_trait6.C
  0cb8ffc5aa03364efe260c9bc9c2a638  gcc/testsuite/g++.dg/reflect/type_trait8.C
  d9fed6fe6bccb0abd2890360744d1a95  gcc/testsuite/g++.dg/reflect/type_trait9.C
--- 37907,37917 ----
  4fb586d7efeeabc9fafb9d8f9f4ec796  gcc/testsuite/g++.dg/reflect/type_trait11.C
  9b33e0cb088a6815bc1f1c4cb74a8aa5  gcc/testsuite/g++.dg/reflect/type_trait12.C
  15027de4c989f7dd7ffa4d7846a28442  gcc/testsuite/g++.dg/reflect/type_trait13.C
! bc0bf40e9258e25c6c46ff13963f154e  gcc/testsuite/g++.dg/reflect/type_trait14.C
  06a1343d9aeb1caa65048fdecda31245  gcc/testsuite/g++.dg/reflect/type_trait2.C
  c957460ae45089ece9b5352a7de1f5fc  gcc/testsuite/g++.dg/reflect/type_trait3.C
  6a48574284311a70358d27e1b45595b3  gcc/testsuite/g++.dg/reflect/type_trait4.C
! 0fec151174dbffb695ffa7fb194523bf  gcc/testsuite/g++.dg/reflect/type_trait5.C
  7c9280bc78006b6ed6b75ff5c1c9facc  gcc/testsuite/g++.dg/reflect/type_trait6.C
  0cb8ffc5aa03364efe260c9bc9c2a638  gcc/testsuite/g++.dg/reflect/type_trait8.C
  d9fed6fe6bccb0abd2890360744d1a95  gcc/testsuite/g++.dg/reflect/type_trait9.C
*************** a2656a59d00f50e3a24dc4e71bfb3973  gcc/te
*** 47121,47126 ****
--- 47150,47156 ----
  9b56cc2b8b8b471730e0b14ce4b78300  gcc/testsuite/gcc.c-torture/compile/pr103813.c
  4a6f867d2a09bace8b7a324f6a4f5237  gcc/testsuite/gcc.c-torture/compile/pr104327.c
  43abe0671a6ea621a4ca89fda41e49b8  gcc/testsuite/gcc.c-torture/compile/pr104499.c
+ acee4f72cc5b1f29df02485de18a69c0  gcc/testsuite/gcc.c-torture/compile/pr105192.c
  b8c09513cab59ca8f22d38e515f50fa8  gcc/testsuite/gcc.c-torture/compile/pr105234.c
  112c17f5638bc2cf5c04c9e917943218  gcc/testsuite/gcc.c-torture/compile/pr105247.c
  9477024f0d6e7d41ab0ee7d8ab3d3e58  gcc/testsuite/gcc.c-torture/compile/pr106030.c
*************** e09f593e2cab835f9fb2f42fef184aaf  gcc/te
*** 61902,61908 ****
  ee74520c41d30f86fc2e503c64a2c642  gcc/testsuite/gcc.dg/torture/floatn-tg-3.h
  e9f715c66fe1cd22e199951430100c47  gcc/testsuite/gcc.dg/torture/floatn-tg.h
  7734647dadb81caf0ae1f96df53c47f9  gcc/testsuite/gcc.dg/torture/fp-compare.c
! 22243b77af41eed18d4fe83d73572fd0  gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c
  4a1efbe908d1984e5c7866446e422e72  gcc/testsuite/gcc.dg/torture/fp-int-convert-2.c
  a0c11f3d8611b2fea52d09cbf0b71da3  gcc/testsuite/gcc.dg/torture/fp-int-convert-double.c
  ebde1fd0494ae1b65f239981255691c9  gcc/testsuite/gcc.dg/torture/fp-int-convert-float.c
--- 61932,61938 ----
  ee74520c41d30f86fc2e503c64a2c642  gcc/testsuite/gcc.dg/torture/floatn-tg-3.h
  e9f715c66fe1cd22e199951430100c47  gcc/testsuite/gcc.dg/torture/floatn-tg.h
  7734647dadb81caf0ae1f96df53c47f9  gcc/testsuite/gcc.dg/torture/fp-compare.c
! d705de05b1fcd07ca6b17e738d0e19db  gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c
  4a1efbe908d1984e5c7866446e422e72  gcc/testsuite/gcc.dg/torture/fp-int-convert-2.c
  a0c11f3d8611b2fea52d09cbf0b71da3  gcc/testsuite/gcc.dg/torture/fp-int-convert-double.c
  ebde1fd0494ae1b65f239981255691c9  gcc/testsuite/gcc.dg/torture/fp-int-convert-float.c
*************** e394027559c72da3f714e1f0bce86a7c  gcc/te
*** 62451,62456 ****
--- 62481,62487 ----
  f54649dd921a475b17a284fe02bd4133  gcc/testsuite/gcc.dg/torture/pr124649-1.c
  c1ddd64344f6a24b8a5231563aac75d5  gcc/testsuite/gcc.dg/torture/pr124692.c
  b569af91dd7275609d58f4469ba9e826  gcc/testsuite/gcc.dg/torture/pr124742-1.c
+ 92b05cf47c62f81f5220c4a17533fce2  gcc/testsuite/gcc.dg/torture/pr124810.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
*************** bb62f82a973334db1c0ebf75b17bcdf8  gcc/te
*** 66275,66280 ****
--- 66306,66312 ----
  016029e7b08dbc8fe1d266551df2fdd3  gcc/testsuite/gcc.dg/tree-ssa/writeonly.c
  22eb0b8eeae794a6956326b2c9383fb2  gcc/testsuite/gcc.dg/trunc-1.c
  0986037c6e0724a89f8308100f3f920f  gcc/testsuite/gcc.dg/tsan/atomic-fence.c
+ 73556ef30029b1269c82de229e676243  gcc/testsuite/gcc.dg/tsan/atomic-invalid.c
  c0761616b56e6c13ccfbf05810c3ad42  gcc/testsuite/gcc.dg/tsan/pr106984.c
  93c01dbb8a77851bfbe99fc7c806d056  gcc/testsuite/gcc.dg/tsan/pr111736.c
  66723ae098123069493e416708ef5146  gcc/testsuite/gcc.dg/tsan/pr88017.c
*************** efc5db1b97ea06d470c57048d8966ea1  gcc/te
*** 68723,68728 ****
--- 68755,68762 ----
  86a15a6fc01f17ec534cc4e8962c430f  gcc/testsuite/gcc.dg/vect/vect-pr123983.c
  6e7e37674ce24845e8e616543cc88fa6  gcc/testsuite/gcc.dg/vect/vect-pr124037.c
  da160a8349fe2e0daa932c3bd967f635  gcc/testsuite/gcc.dg/vect/vect-pr124677.c
+ 260ab9d6cedafb5f4f528e8d6bc65324  gcc/testsuite/gcc.dg/vect/vect-pr124743.c
+ 09beadb34e2b0bfa6179ef89f2e6d9f7  gcc/testsuite/gcc.dg/vect/vect-pr124802.c
  464c872c62ad2fc5d241ed918e0cf5de  gcc/testsuite/gcc.dg/vect/vect-pr61247.c
  4d57df9e3b3522c9f1a6707c05f1da45  gcc/testsuite/gcc.dg/vect/vect-pr69848.c
  3a3a316ff2f2496494ecb0bd77d61aad  gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
*************** a04b176d1f4debec96b6eb4ccec14017  gcc/te
*** 75703,75711 ****
  f5f51f0ce22434617d58b4330621ef23  gcc/testsuite/gcc.target/aarch64/sve/cost_model_13.c
  ff2b9241bd177f9b139fbf6fbf043cb3  gcc/testsuite/gcc.target/aarch64/sve/cost_model_14.c
  d5b139bd861ddd97284d5f818eb70a78  gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c
! 92599cd7aea93c6796fffa0a479dd58c  gcc/testsuite/gcc.target/aarch64/sve/cost_model_16.c
  b78d0d1274ed1cd074cd6302e8ae2dcc  gcc/testsuite/gcc.target/aarch64/sve/cost_model_17.c
  37d810c6bbb9c676752ca4c72f3439ab  gcc/testsuite/gcc.target/aarch64/sve/cost_model_18.c
  e918451f74d084e54a9a7ceb98f0bf8e  gcc/testsuite/gcc.target/aarch64/sve/cost_model_2.c
  8814c7380f5de0a24225ed6e4ac88c89  gcc/testsuite/gcc.target/aarch64/sve/cost_model_3.c
  a8a25f8db5e9498491012098a710bc72  gcc/testsuite/gcc.target/aarch64/sve/cost_model_4.c
--- 75737,75746 ----
  f5f51f0ce22434617d58b4330621ef23  gcc/testsuite/gcc.target/aarch64/sve/cost_model_13.c
  ff2b9241bd177f9b139fbf6fbf043cb3  gcc/testsuite/gcc.target/aarch64/sve/cost_model_14.c
  d5b139bd861ddd97284d5f818eb70a78  gcc/testsuite/gcc.target/aarch64/sve/cost_model_15.c
! 82239b2f3077b0e6169d2e18be25268d  gcc/testsuite/gcc.target/aarch64/sve/cost_model_16.c
  b78d0d1274ed1cd074cd6302e8ae2dcc  gcc/testsuite/gcc.target/aarch64/sve/cost_model_17.c
  37d810c6bbb9c676752ca4c72f3439ab  gcc/testsuite/gcc.target/aarch64/sve/cost_model_18.c
+ a7a8828e5abc7518b53781c38c0daa76  gcc/testsuite/gcc.target/aarch64/sve/cost_model_19.c
  e918451f74d084e54a9a7ceb98f0bf8e  gcc/testsuite/gcc.target/aarch64/sve/cost_model_2.c
  8814c7380f5de0a24225ed6e4ac88c89  gcc/testsuite/gcc.target/aarch64/sve/cost_model_3.c
  a8a25f8db5e9498491012098a710bc72  gcc/testsuite/gcc.target/aarch64/sve/cost_model_4.c
*************** dede77ce3cdb201804de164c3fa75a23  gcc/te
*** 90336,90341 ****
--- 90371,90377 ----
  f742c249f29b11f89b622821fd3fb16b  gcc/testsuite/gcc.target/i386/pr124697-2b.c
  4b1741905c7d5ce52bb9bd21f47032fd  gcc/testsuite/gcc.target/i386/pr124697-3a.c
  15318146a68ad41d94a3e46ad3a169f1  gcc/testsuite/gcc.target/i386/pr124697-3b.c
+ 2b6a1448e119f38191ae1fc1974e8033  gcc/testsuite/gcc.target/i386/pr124759.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
*************** bb8948b99ee40edd60fac5552a29094b  gcc/te
*** 95504,95509 ****
--- 95540,95546 ----
  9938ed030cece2cf20550a62ffe03b68  gcc/testsuite/gcc.target/powerpc/abd-vectorize-1.c
  839d34e1f1592bf45cfe5b598846b517  gcc/testsuite/gcc.target/powerpc/abd-vectorize-2.c
  3f8cb7e31c5c7de093b851e9d7eeedc7  gcc/testsuite/gcc.target/powerpc/abs128-1.c
+ 347036db4e4de6e235c0cf17f2ebbb15  gcc/testsuite/gcc.target/powerpc/acmp-tst.c
  49eb45ddbbc137e8692612bbe8958966  gcc/testsuite/gcc.target/powerpc/altivec-1.c
  d71351ecab256bb9c7162016a5087dd9  gcc/testsuite/gcc.target/powerpc/altivec-10.c
  a5a1d544c1a4460222f01fc318321eea  gcc/testsuite/gcc.target/powerpc/altivec-11.c
*************** c5510efb0e85b94c43e177d92c8bfa96  gcc/te
*** 99373,99378 ****
--- 99410,99416 ----
  36f2729f33d66359ae39ca96a9075786  gcc/testsuite/gcc.target/riscv/pr123380.c
  ac11119f9210fdbe0a0f2e3211742dd1  gcc/testsuite/gcc.target/riscv/pr123911.c
  a06f50eaf9ffceda3f1e44f0fe8c75f8  gcc/testsuite/gcc.target/riscv/pr124674.c
+ 69d56981252d3b0a103f35813b487836  gcc/testsuite/gcc.target/riscv/pr124818.c
  37a08389ba95284cc27832767dfc1430  gcc/testsuite/gcc.target/riscv/pr43644.c
  8eba488c3d26a288644785954ea86af2  gcc/testsuite/gcc.target/riscv/pr52345.c
  db206807e7e87fc388e039471812c6e0  gcc/testsuite/gcc.target/riscv/pr58727.c
*************** fc91c5b8329ab8027668ea16eff02262  gcc/te
*** 99430,99436 ****
  f2da01e635d21171f312277a98424056  gcc/testsuite/gcc.target/riscv/predef-8.c
  e678047b12a56919f213854b86cff82c  gcc/testsuite/gcc.target/riscv/predef-9.c
  2463a6bf35023b3a0093d9b5fd3decdc  gcc/testsuite/gcc.target/riscv/predef-__riscv_th_v_intrinsic.c
! ed1461a4364185f7eb27514956acc7cd  gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
  0ad9d47ed1cfbbcb7c2d5c6ab62f84a0  gcc/testsuite/gcc.target/riscv/predef-align-1.c
  97165fe4d2fc842c6cfa418fba4d7c14  gcc/testsuite/gcc.target/riscv/predef-align-2.c
  9f0a4d7fa71879a2a32cb548b90e48d7  gcc/testsuite/gcc.target/riscv/predef-align-3.c
--- 99468,99474 ----
  f2da01e635d21171f312277a98424056  gcc/testsuite/gcc.target/riscv/predef-8.c
  e678047b12a56919f213854b86cff82c  gcc/testsuite/gcc.target/riscv/predef-9.c
  2463a6bf35023b3a0093d9b5fd3decdc  gcc/testsuite/gcc.target/riscv/predef-__riscv_th_v_intrinsic.c
! 8f16c8a19685a22ebdc72ac36615f75f  gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
  0ad9d47ed1cfbbcb7c2d5c6ab62f84a0  gcc/testsuite/gcc.target/riscv/predef-align-1.c
  97165fe4d2fc842c6cfa418fba4d7c14  gcc/testsuite/gcc.target/riscv/predef-align-2.c
  9f0a4d7fa71879a2a32cb548b90e48d7  gcc/testsuite/gcc.target/riscv/predef-align-3.c
*************** e07baf5d5588ed4ad8db81844c63e8ef  gcc/te
*** 102850,102856 ****
  7d23412f70ebee5a6d681dd440b5cef3  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-1.c
  cbd199ed19343af92aeb0c35b408be53  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-2.c
  d806ad060ae7740379c2b929ee5e88eb  gcc/testsuite/gcc.target/riscv/rvv/base/pr113829.c
! 8d4aee18e9586419a1d4815babb2013a  gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c
  4f118ff8b8d46e2f259e09044750e87c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114195-1.c
  ba3126509aac3dd5778a08801e58d39c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-1.c
  ddbf78c23d7663691fc4ccf12518597c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-2.c
--- 102888,102894 ----
  7d23412f70ebee5a6d681dd440b5cef3  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-1.c
  cbd199ed19343af92aeb0c35b408be53  gcc/testsuite/gcc.target/riscv/rvv/base/pr113766-2.c
  d806ad060ae7740379c2b929ee5e88eb  gcc/testsuite/gcc.target/riscv/rvv/base/pr113829.c
! 101dd11c83f09bca39560af6bddf7b96  gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c
  4f118ff8b8d46e2f259e09044750e87c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114195-1.c
  ba3126509aac3dd5778a08801e58d39c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-1.c
  ddbf78c23d7663691fc4ccf12518597c  gcc/testsuite/gcc.target/riscv/rvv/base/pr114352-2.c
*************** dee6967c044d8780d274607ace40fce8  gcc/te
*** 114023,114028 ****
--- 114061,114067 ----
  13645fae1c2e64ba0baf240c765ebdd1  gcc/testsuite/gfortran.dg/defined_assignment_10.f90
  e92d2c6eb8e82818db7d81de4f67b94d  gcc/testsuite/gfortran.dg/defined_assignment_11.f90
  bd9af8b14b7782e11b379e7e755e7a0c  gcc/testsuite/gfortran.dg/defined_assignment_12.f90
+ 73a4997e37625871ae3327cf2bf2fb00  gcc/testsuite/gfortran.dg/defined_assignment_13.f90
  a423bfbbbd88739f2a162bbc16b0033e  gcc/testsuite/gfortran.dg/defined_assignment_2.f90
  5d8c271e027729075b343b50faf2dd71  gcc/testsuite/gfortran.dg/defined_assignment_3.f90
  fd8ae494dd71724cf339b0bf0b1957b2  gcc/testsuite/gfortran.dg/defined_assignment_4.f90
*************** d4ec9e424a21673404e2e7df3d1701c5  gcc/te
*** 115191,115196 ****
--- 115230,115236 ----
  f456cdcfbddab6f8bef5a32a8ae942c7  gcc/testsuite/gfortran.dg/goacc/pr93463.f90
  53e5e05b763f714373036ee3c31c7f01  gcc/testsuite/gfortran.dg/goacc/pr93464-2.f90
  75656a375a89cf61af800fc27b130ac1  gcc/testsuite/gfortran.dg/goacc/pr93464.f90
+ ba2a8d7a8e35b46aaac36905f8c65c5b  gcc/testsuite/gfortran.dg/goacc/pr93554.f90
  d784778dca55a73519575e6568f22a77  gcc/testsuite/gfortran.dg/goacc/pr94120-1.f90
  c416573c1a8cc44ca5ba7d63ec2aba3c  gcc/testsuite/gfortran.dg/goacc/pr94120-2.f90
  1f098c4f8245d0dfda6b57ce268656f0  gcc/testsuite/gfortran.dg/goacc/pr94120-3.f90
*************** c4c86973cf0938ea1456949849582a2a  gcc/te
*** 115665,115670 ****
--- 115705,115711 ----
  72668677493c036639519f511321445d  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping-5.f90
  0cdaedb7a34b46ba225e78e6cb7f84fd  gcc/testsuite/gfortran.dg/gomp/polymorphic-mapping.f90
  dd42ad4341c4916a5494d5d3c6a52b40  gcc/testsuite/gfortran.dg/gomp/pr100965.f90
+ e32d4057d47aefb786a7e251839952e3  gcc/testsuite/gfortran.dg/gomp/pr102430.f90
  8c46c1ee06eca3c9ecb211ced2a97c89  gcc/testsuite/gfortran.dg/gomp/pr102431.f90
  a1a9be8c9080ba2ba338bc6f63b406e3  gcc/testsuite/gfortran.dg/gomp/pr102621.f90
  f523f11e31c8d7a378a90e54f4cc9a88  gcc/testsuite/gfortran.dg/gomp/pr103643.f90
*************** b229abc8cb06bd3633deb0bb940ede08  gcc/te
*** 115673,115678 ****
--- 115714,115720 ----
  3a0477f99d8b3db6f5412df79f7e0e6e  gcc/testsuite/gfortran.dg/gomp/pr104428.f90
  39842b4010b4165bbe821ffc8a903991  gcc/testsuite/gfortran.dg/gomp/pr104757.f90
  b0de5c5053146f58fe1939b9523524e5  gcc/testsuite/gfortran.dg/gomp/pr104826.f90
+ 03811fc7f20cf49b1a8a3abfaefa951a  gcc/testsuite/gfortran.dg/gomp/pr104827.f90
  02981b5d8f6403bdc6a2dfd0100dcc74  gcc/testsuite/gfortran.dg/gomp/pr107214-2.f90
  aa1b85a34517ebec1f009bb653cba745  gcc/testsuite/gfortran.dg/gomp/pr107214-3.f90
  2e63593d3e34a9e40ad97ad973ca3a83  gcc/testsuite/gfortran.dg/gomp/pr107214-4.f90
*************** edeec1fe2488c7117f56e10734af03dc  gcc/te
*** 115682,115687 ****
--- 115724,115730 ----
  75a523b6ea1c03878cc3bdc6a6346971  gcc/testsuite/gfortran.dg/gomp/pr107214-8.f90
  3beded12a494129bebcc732d85089896  gcc/testsuite/gfortran.dg/gomp/pr107214.f90
  999f28c36a4332b9862398973c6f4c18  gcc/testsuite/gfortran.dg/gomp/pr107421.f90
+ 9413acb66d424e7e859e5b387d479808  gcc/testsuite/gfortran.dg/gomp/pr107425.f90
  0c6f80bb0ae8c8d07f18df0d3258975b  gcc/testsuite/gfortran.dg/gomp/pr113436-1.f90
  d0c7e1a3df66c15367b6e07098cf779d  gcc/testsuite/gfortran.dg/gomp/pr113436-2.f90
  36c3126b45f005a82111a661b477015f  gcc/testsuite/gfortran.dg/gomp/pr113436-3.f90
*************** f545f62c1e71dc7bd67638aeeb2db587  gcc/te
*** 117601,117606 ****
--- 117644,117650 ----
  9a4d72f9f692366ff871a56578313f20  gcc/testsuite/gfortran.dg/pdt_89.f03
  c621629f10feffbfa9fef1441a610e53  gcc/testsuite/gfortran.dg/pdt_9.f03
  d990a49ad7534a4a10800a8a538fa04a  gcc/testsuite/gfortran.dg/pdt_90.f03
+ fda16d44f3a45aad8ceeb1e18d56f6f1  gcc/testsuite/gfortran.dg/pdt_91.f03
  ce217e87870d47796b72f99a0b0f46b7  gcc/testsuite/gfortran.dg/pdt_generic_1.f90
  4555f630cb01a40d0eaf421fd7ad9e77  gcc/testsuite/gfortran.dg/pointer_1.f90
  b836f09e53badc9a7066eb5692c28f74  gcc/testsuite/gfortran.dg/pointer_2.f90
*************** cc6ac3aa934c104c85fad8e43ae6985d  gcc/te
*** 117749,117754 ****
--- 117793,117799 ----
  48782be659f3ec5c8d9cba03ca6cc43d  gcc/testsuite/gfortran.dg/pr103286.f90
  ce86820082e25f5aad2607f9163c3cf4  gcc/testsuite/gfortran.dg/pr103312.f90
  ab2e9f64b18aaf6df9600288ded6ce51  gcc/testsuite/gfortran.dg/pr103366.f90
+ f5b2d7909d22359486a362b6e2b6e6d2  gcc/testsuite/gfortran.dg/pr103367.f90
  9e00f34ad9d6d78b98007d4ad68251f5  gcc/testsuite/gfortran.dg/pr103389.f90
  f2ba2e64941d368a0af432859dc114fe  gcc/testsuite/gfortran.dg/pr103471.f90
  5403c8d36e959e2211ecc4f2a1db6e1c  gcc/testsuite/gfortran.dg/pr103475.f90
*************** f5fb3cbcb5e6e13e6a56fcf9422a2863  gcc/te
*** 117950,117958 ****
  39137ae7aabd3246fa806bae5346ef6a  gcc/testsuite/gfortran.dg/pr124208.f90
  2cb76d13b09d255f773e5188ba2693fa  gcc/testsuite/gfortran.dg/pr124235.f90
  5bfaeea8d13a5035cf46aaab485c2803  gcc/testsuite/gfortran.dg/pr124450.f90
! eaea2415ba119105a26ebf8796a8c3ce  gcc/testsuite/gfortran.dg/pr124543.f90
  864111c6768fee3f647605c5cf8db475  gcc/testsuite/gfortran.dg/pr124567.f90
  c82475796fec905fbcbddbebc480ad15  gcc/testsuite/gfortran.dg/pr124739.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  2b5f18b773a5db29b0a2ee2d8cce767c  gcc/testsuite/gfortran.dg/pr15140.f90
--- 117995,118004 ----
  39137ae7aabd3246fa806bae5346ef6a  gcc/testsuite/gfortran.dg/pr124208.f90
  2cb76d13b09d255f773e5188ba2693fa  gcc/testsuite/gfortran.dg/pr124235.f90
  5bfaeea8d13a5035cf46aaab485c2803  gcc/testsuite/gfortran.dg/pr124450.f90
! 144821371bd6ce572a8615f51fea4d9f  gcc/testsuite/gfortran.dg/pr124543.f90
  864111c6768fee3f647605c5cf8db475  gcc/testsuite/gfortran.dg/pr124567.f90
  c82475796fec905fbcbddbebc480ad15  gcc/testsuite/gfortran.dg/pr124739.f90
+ 8d5b416e1b358553fdc69e965bc1db7e  gcc/testsuite/gfortran.dg/pr124780.f90
  984f8307f36d56a0b48b5acce2dd5eb5  gcc/testsuite/gfortran.dg/pr12884.f
  64075248b9d1bffd6f380bb4e2a6eae0  gcc/testsuite/gfortran.dg/pr15129.f90
  2b5f18b773a5db29b0a2ee2d8cce767c  gcc/testsuite/gfortran.dg/pr15140.f90
*************** f166fdd0a6158ee4997aa03d50735f03  gcc/te
*** 118386,118391 ****
--- 118432,118438 ----
  5b2aa5e5d8aa97b69f0cc98bc9709f3f  gcc/testsuite/gfortran.dg/pr78741.f90
  18ef55c7791c30ff0793ca246df65036  gcc/testsuite/gfortran.dg/pr78758.f90
  c7abc49e43c3b6377a0e019f9f4292ac  gcc/testsuite/gfortran.dg/pr79315.f90
+ 76b2c561e2cc2dffb48457fae519ab01  gcc/testsuite/gfortran.dg/pr79524.f90
  7dde52ec5dffa2ae8586c577cf97f742  gcc/testsuite/gfortran.dg/pr79886.f90
  c0b10ae015725070f4297a1ba8927463  gcc/testsuite/gfortran.dg/pr79966.f90
  fe74c3fed9a136e563c87518eea95a29  gcc/testsuite/gfortran.dg/pr80012.f90
*************** cc82665e1d54c6a2d5a100788c474853  gcc/te
*** 118436,118441 ****
--- 118483,118489 ----
  42d21294436ebefdc995a697f0266fd9  gcc/testsuite/gfortran.dg/pr85082.f90
  4355c9f07079d67c1134f6106f8fcb0b  gcc/testsuite/gfortran.dg/pr85138_1.f90
  024b55ef8c68dc11bd1d65bbc8cf1b13  gcc/testsuite/gfortran.dg/pr85138_2.f90
+ 9c97d6fc9b5f00f49d5a36517bc8222d  gcc/testsuite/gfortran.dg/pr85352.f90
  bf416564a457b9444387855732e4d265  gcc/testsuite/gfortran.dg/pr85357.f90
  286fa2d8f5b3fa55fd3173261d6b4eea  gcc/testsuite/gfortran.dg/pr85520.f90
  3daad136d0cfc95d8964dc923c7cc4ac  gcc/testsuite/gfortran.dg/pr85521_1.f90
*************** f9cd7fe0c8cb7be5b0846aa6c3eb0b93  gcc/te
*** 118642,118648 ****
--- 118690,118698 ----
  9a2df63b77cda57168f292b09bde71b3  gcc/testsuite/gfortran.dg/pr93686_4.f90
  0636d4a049257c8e3f6c32b4b7309697  gcc/testsuite/gfortran.dg/pr93714_1.f90
  93b8b244bce4583a43c29d892e177744  gcc/testsuite/gfortran.dg/pr93714_2.f90
+ 9a8647e0b1ef01e06d45cc2715ae05e8  gcc/testsuite/gfortran.dg/pr93715.f90
  4d2e245917c39b1bcaeea6010bcb6284  gcc/testsuite/gfortran.dg/pr93792.f90
+ 1c1c17dce5c14eb846c34e6f6eba3b12  gcc/testsuite/gfortran.dg/pr93814.f90
  5494bfcb0d61c11d34ea0b6e4e610c45  gcc/testsuite/gfortran.dg/pr93832.f90
  8b7bf068692a6a31b63dd4963c050e98  gcc/testsuite/gfortran.dg/pr93835.f08
  6736173bcc319bca35f5453a7bca947b  gcc/testsuite/gfortran.dg/pr94030_1.f90
*************** f17ab40b1ca95ac01da77049baa72103  gcc/te
*** 118653,118658 ****
--- 118703,118709 ----
  bf6d4fa9d116ccede014485a892d0d71  gcc/testsuite/gfortran.dg/pr94380.f90
  b9faba8aac0e0dd38443caeb527db93d  gcc/testsuite/gfortran.dg/pr94397.F90
  16d161f7900dd36eabcbaea6cd9c1b6e  gcc/testsuite/gfortran.dg/pr94708.f90
+ e49db1fd07a952483324884a3682a4e8  gcc/testsuite/gfortran.dg/pr94978.f90
  b3aa92652c768e489db71c4bdec58492  gcc/testsuite/gfortran.dg/pr95053.f
  4643a453de4a8df5432d833cf8bfa122  gcc/testsuite/gfortran.dg/pr95053_2.f90
  9a887ac1c462736f729ec4ec967c8be2  gcc/testsuite/gfortran.dg/pr95053_3.f90
*************** c8c260dea52e24ac6be6641b8f123d9a  gcc/te
*** 118735,118740 ****
--- 118786,118792 ----
  a056a75dc3c7830d385da1c0b9d587bc  gcc/testsuite/gfortran.dg/pr96711.f90
  a94ae73a3b6b9628990c54fb08f2950c  gcc/testsuite/gfortran.dg/pr96737.f90
  74a709306836d044b8cd43d035aecdf2  gcc/testsuite/gfortran.dg/pr96859.f90
+ 3b72f7e6589a60bc5e040e31c77484b8  gcc/testsuite/gfortran.dg/pr96986.f90
  76f063a5164cc2eff42c50fc9b9989a1  gcc/testsuite/gfortran.dg/pr97036.f90
  70cac68f93e5398eb60f3aa67f709e6a  gcc/testsuite/gfortran.dg/pr97095.f
  f219dfba008fc41e9e809107b3498d57  gcc/testsuite/gfortran.dg/pr97272.f90
*************** cc0ad95b0f3d6b4ef54e287b438acb10  gcc/te
*** 127856,127862 ****
  327125e0f9770fa0fdc3ed8f820c8fb2  gcc/testsuite/lib/options.exp
  4837951677485b41199b6215388f44c4  gcc/testsuite/lib/plugin-support.exp
  0b47cfd7dff343f4c4e9785998f240c7  gcc/testsuite/lib/print-stack.exp
! a0804ca1ed5aa13fd8ea9b35d742b510  gcc/testsuite/lib/profopt.exp
  4ef74e524e3ef5f3dec8824220faea8a  gcc/testsuite/lib/prune.exp
  52ac0ffa39ac607ccf00f72889b6058a  gcc/testsuite/lib/rust-dg.exp
  d84a04f02b348b9b24a659413d60a25b  gcc/testsuite/lib/rust.exp
--- 127908,127914 ----
  327125e0f9770fa0fdc3ed8f820c8fb2  gcc/testsuite/lib/options.exp
  4837951677485b41199b6215388f44c4  gcc/testsuite/lib/plugin-support.exp
  0b47cfd7dff343f4c4e9785998f240c7  gcc/testsuite/lib/print-stack.exp
! 82be545bb9c2d70a74bf4eb4d5a8ecb8  gcc/testsuite/lib/profopt.exp
  4ef74e524e3ef5f3dec8824220faea8a  gcc/testsuite/lib/prune.exp
  52ac0ffa39ac607ccf00f72889b6058a  gcc/testsuite/lib/rust-dg.exp
  d84a04f02b348b9b24a659413d60a25b  gcc/testsuite/lib/rust.exp
*************** de9eeadec9703aff96169206e31a3a22  gcc/te
*** 127880,127887 ****
  500d5ba9cb874cb3eaa8515fcaa035d3  gcc/testsuite/lib/scantree.exp
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
! ba9ca262f3c7ac3b9717ac474fa255b8  gcc/testsuite/lib/target-supports-dg.exp
! 553dddada447801c8e94e2e74f34e5dd  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
--- 127932,127939 ----
  500d5ba9cb874cb3eaa8515fcaa035d3  gcc/testsuite/lib/scantree.exp
  275f7eb9618e6b097a58c1fba25cdb9c  gcc/testsuite/lib/scanwpaipa.exp
  9bc4cbcf0cb4f1aa30a8cf3142d157eb  gcc/testsuite/lib/target-libpath.exp
! 6f6a566231f79b409eb113cf2e7f5132  gcc/testsuite/lib/target-supports-dg.exp
! 1d8bb1d26b46987d31f8cb567233905f  gcc/testsuite/lib/target-supports.exp
  b1eb2edcf4941bfb00c200eb000a0a7b  gcc/testsuite/lib/target-utils.exp
  98b890f6c455deafd6ca241993fc5d67  gcc/testsuite/lib/timeout-dg.exp
  0afb0c69501fa44908d13017be208db3  gcc/testsuite/lib/timeout.exp
*************** e316eddfbf9a02433a4ee93e648f3aa4  gcc/tr
*** 130748,130757 ****
  9d1d629a67b789d8cb739163675798bd  gcc/tree-vect-data-refs.cc
  a423c268d5ba9ac563732fd6d038c572  gcc/tree-vect-generic.cc
  5945009d0ba922b53aacbb6f724d3caf  gcc/tree-vect-loop-manip.cc
! eeeec1b7c517f3f82e38813a2f3d48ab  gcc/tree-vect-loop.cc
  b65839ac30937104b9a0643233f69538  gcc/tree-vect-patterns.cc
! ef0b51a362b8764cf6b0628ed16b2dde  gcc/tree-vect-slp-patterns.cc
! 707f7b3fc443bd2a72f60b04fa5e726a  gcc/tree-vect-slp.cc
  1e0a184e5916e9a6e1ace6bb47ebe692  gcc/tree-vect-stmts.cc
  42032e04f389a2e0f43fbb46ac091dac  gcc/tree-vector-builder.cc
  4a1b4947e64a076fdca46d14aab2181f  gcc/tree-vector-builder.h
--- 130800,130809 ----
  9d1d629a67b789d8cb739163675798bd  gcc/tree-vect-data-refs.cc
  a423c268d5ba9ac563732fd6d038c572  gcc/tree-vect-generic.cc
  5945009d0ba922b53aacbb6f724d3caf  gcc/tree-vect-loop-manip.cc
! 4db4c788ad82e8091c2e59c369ad0458  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
*************** d26583cbbddfb0c82d15d845129a84da  libcpp
*** 131125,131131 ****
  513bef3dd142eee93a5ab0328c142287  libcpp/makeuname2c.cc
  41062cc2160022988a21f2594a674c19  libcpp/mkdeps.cc
  a7f5b54d144fd860606986c00f6a78e9  libcpp/pch.cc
! 4e2ca8cdca88ca04e838ff0cdbe3b523  libcpp/po/ChangeLog
  dad91056edfeea82b8282e6f9a27188e  libcpp/po/be.po
  c29e7314c960f426112db55835fc5a58  libcpp/po/ca.po
  566390fb94e511353374f19347e8e85c  libcpp/po/cpplib.pot
--- 131177,131183 ----
  513bef3dd142eee93a5ab0328c142287  libcpp/makeuname2c.cc
  41062cc2160022988a21f2594a674c19  libcpp/mkdeps.cc
  a7f5b54d144fd860606986c00f6a78e9  libcpp/pch.cc
! ffd19fa095ecb84d570b14aa80358c6d  libcpp/po/ChangeLog
  dad91056edfeea82b8282e6f9a27188e  libcpp/po/be.po
  c29e7314c960f426112db55835fc5a58  libcpp/po/ca.po
  566390fb94e511353374f19347e8e85c  libcpp/po/cpplib.pot
*************** bb518272cfe370eb47d7bf6aa3ac2d12  libcpp
*** 131143,131149 ****
  2fc460cea2d2d0037f16122b9f7150b6  libcpp/po/pt_BR.po
  c6154f204d64ce575861a57d4ab6d574  libcpp/po/ro.po
  72a4839a2beb50bd58085e606e630ca9  libcpp/po/ru.po
! 01bce1570afed6fa539a14164a111774  libcpp/po/sr.po
  840d51a0bc827b9c4e5cfc6fcc600e4c  libcpp/po/sv.po
  25d7a91b428ef832c3f3a5976bb39cc4  libcpp/po/tr.po
  5c221150f1adc615290ea34671da4b60  libcpp/po/uk.po
--- 131195,131201 ----
  2fc460cea2d2d0037f16122b9f7150b6  libcpp/po/pt_BR.po
  c6154f204d64ce575861a57d4ab6d574  libcpp/po/ro.po
  72a4839a2beb50bd58085e606e630ca9  libcpp/po/ru.po
! 69e89bbf2eb88bb7c5b258f8bfa60f25  libcpp/po/sr.po
  840d51a0bc827b9c4e5cfc6fcc600e4c  libcpp/po/sv.po
  25d7a91b428ef832c3f3a5976bb39cc4  libcpp/po/tr.po
  5c221150f1adc615290ea34671da4b60  libcpp/po/uk.po
*************** d5f038474fd5faad3f79701cbb81bf30  libgco
*** 133297,133303 ****
  9486776ee88dd841ac94aa73290a74bf  libgcobol/valconv.cc
  3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
  db95b8e503515d7615559adc1be6164a  libgcobol/xmlparse.cc
! 83a508bb763161fd5b2233e9351c46b9  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
--- 133349,133355 ----
  9486776ee88dd841ac94aa73290a74bf  libgcobol/valconv.cc
  3466db9e6fc5748c08c947e71a566c07  libgcobol/valconv.h
  db95b8e503515d7615559adc1be6164a  libgcobol/xmlparse.cc
! 22a611b05091f27230d1d27d26668f7c  libgfortran/ChangeLog
  d99469a76bfe825683f8d94fe07b508c  libgfortran/ChangeLog-2002
  522fdb2df6cefe6bcaed3c7c7311eae1  libgfortran/ChangeLog-2003
  5a3a93e76d878d063aba66079340cfe0  libgfortran/ChangeLog-2004
*************** c62b817e6f400a567db7dccd71d76f33  libgfo
*** 134236,134242 ****
  12c0228bb34d93f8553a3810004881eb  libgfortran/io/file_pos.c
  06b08e048a8e39622f21b22077186fab  libgfortran/io/format.c
  f9101923347929f02ecedab542ddf291  libgfortran/io/format.h
! 29e37b001045fa8c81f131855ee4dcaa  libgfortran/io/inquire.c
  86f78d0a8d7fd3418de9e9f9a1cb384f  libgfortran/io/intrinsics.c
  fe24afda0444aab88f5a40caf1738169  libgfortran/io/io.h
  724724904a02d3a4a9d6f7203b3949ae  libgfortran/io/list_read.c
--- 134288,134294 ----
  12c0228bb34d93f8553a3810004881eb  libgfortran/io/file_pos.c
  06b08e048a8e39622f21b22077186fab  libgfortran/io/format.c
  f9101923347929f02ecedab542ddf291  libgfortran/io/format.h
! 3d6bdfad19038c8e5794b4f1d39dc010  libgfortran/io/inquire.c
  86f78d0a8d7fd3418de9e9f9a1cb384f  libgfortran/io/intrinsics.c
  fe24afda0444aab88f5a40caf1738169  libgfortran/io/io.h
  724724904a02d3a4a9d6f7203b3949ae  libgfortran/io/list_read.c
*************** db97a70a62d75baf7c6133362b383ccb  libobj
*** 143847,143853 ****
  d1e7c7c92a4c08557a1274ac25bac6e2  libobjc/selector.c
  029b66bb69dc70e347fe3849fc60cfd3  libobjc/sendmsg.c
  e968027639cc91f736aa2aeaee56682c  libobjc/thr.c
! 86d532c2e46785f7161f505f0773b12f  libphobos/ChangeLog
  958562279744f77373a0c5c9dc43b414  libphobos/Makefile.am
  a4ee57d4fc32508060fff33b4fc4f976  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
--- 143899,143905 ----
  d1e7c7c92a4c08557a1274ac25bac6e2  libobjc/selector.c
  029b66bb69dc70e347fe3849fc60cfd3  libobjc/sendmsg.c
  e968027639cc91f736aa2aeaee56682c  libobjc/thr.c
! aee4bb4a3036fe23f7438aea500d902a  libphobos/ChangeLog
  958562279744f77373a0c5c9dc43b414  libphobos/Makefile.am
  a4ee57d4fc32508060fff33b4fc4f976  libphobos/Makefile.in
  ee88c20a7744a2305503e1670f3b7889  libphobos/README.gcc
*************** c345e0c58342f032fbeb00c63fdb3340  libpho
*** 144640,144646 ****
  7f7161eb630140e72abcdc2c3f7a66a3  libphobos/testsuite/Makefile.in
  4ec92e61ac62745b1abeb54bc312c617  libphobos/testsuite/config/default.exp
  aa70b4cf24946de203c671b652c53970  libphobos/testsuite/lib/libphobos-dg.exp
! 58de7a7537cc7fc649654206ea43f0ee  libphobos/testsuite/lib/libphobos.exp
  cbb0b94d3f71fbf479418214a976a34d  libphobos/testsuite/libphobos.aa/aa.exp
  257c41c273d6b182f32a9a6f5265f3f8  libphobos/testsuite/libphobos.aa/test_aa.d
  d86b969dda21cc9af1483872e4a3dcc8  libphobos/testsuite/libphobos.allocations/alloc_from_assert.d
--- 144692,144698 ----
  7f7161eb630140e72abcdc2c3f7a66a3  libphobos/testsuite/Makefile.in
  4ec92e61ac62745b1abeb54bc312c617  libphobos/testsuite/config/default.exp
  aa70b4cf24946de203c671b652c53970  libphobos/testsuite/lib/libphobos-dg.exp
! af78d82bb9e5b629c73667ceab33a5e6  libphobos/testsuite/lib/libphobos.exp
  cbb0b94d3f71fbf479418214a976a34d  libphobos/testsuite/libphobos.aa/aa.exp
  257c41c273d6b182f32a9a6f5265f3f8  libphobos/testsuite/libphobos.aa/test_aa.d
  d86b969dda21cc9af1483872e4a3dcc8  libphobos/testsuite/libphobos.allocations/alloc_from_assert.d
*************** b6bbf47234f6bdb61c628cae44fb04f9  libpho
*** 144704,144712 ****
  407f2a9b3adf7a263a2acd0b8ca96b1f  libphobos/testsuite/libphobos.init_fini/thread_join.d
  f237366ab4e39b3e3dcfc8bafcde881e  libphobos/testsuite/libphobos.lifetime/large_aggregate_destroy_21097.d
  c7f93c2b045d9c2a3c5df2fb48207974  libphobos/testsuite/libphobos.lifetime/lifetime.exp
! ede421f54ebe911928ab82fa7d2d9967  libphobos/testsuite/libphobos.phobos/phobos.exp
! 1347613103d3cb6285f6cb08b5231125  libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp
! 9d911edf87a63f19de14aefabd6b1f34  libphobos/testsuite/libphobos.phobos/static/phobos-static.exp
  cfb4d2954f23b54d586bd2a90b2ca62c  libphobos/testsuite/libphobos.phobos/std_algorithm_comparison.d
  7539c9e4f049e3c7af17ee9f6acdd0d3  libphobos/testsuite/libphobos.phobos/std_algorithm_iteration.d
  964525d11b241c47bff9f80bf037a2e4  libphobos/testsuite/libphobos.phobos/std_algorithm_mutation.d
--- 144756,144764 ----
  407f2a9b3adf7a263a2acd0b8ca96b1f  libphobos/testsuite/libphobos.init_fini/thread_join.d
  f237366ab4e39b3e3dcfc8bafcde881e  libphobos/testsuite/libphobos.lifetime/large_aggregate_destroy_21097.d
  c7f93c2b045d9c2a3c5df2fb48207974  libphobos/testsuite/libphobos.lifetime/lifetime.exp
! 00f5f8d46914c5d90c70e5d528a1cac6  libphobos/testsuite/libphobos.phobos/phobos.exp
! cd04954ff4a2d5726b17549217c534b4  libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp
! c7da34e5e80c9e17705b76c4cfadd19c  libphobos/testsuite/libphobos.phobos/static/phobos-static.exp
  cfb4d2954f23b54d586bd2a90b2ca62c  libphobos/testsuite/libphobos.phobos/std_algorithm_comparison.d
  7539c9e4f049e3c7af17ee9f6acdd0d3  libphobos/testsuite/libphobos.phobos/std_algorithm_iteration.d
  964525d11b241c47bff9f80bf037a2e4  libphobos/testsuite/libphobos.phobos/std_algorithm_mutation.d
*************** df4c464d966dbbdce054e9d59018c866  libpho
*** 144831,144837 ****
  153e2bfb582dbfcdbcdcea85ff915dc9  libphobos/testsuite/libphobos.shared/load_linkdep.d
  d3c9a66f75a4c0e9517bb616aa64dbf0  libphobos/testsuite/libphobos.shared/load_loaddep.d
  7208bfcc87f14bf3c973fd0046246456  libphobos/testsuite/libphobos.shared/plugin.d
! b7e4b1c3f60731cf4ff7cf627c1e34d8  libphobos/testsuite/libphobos.shared/shared.exp
  97e03d8104ae4e9dceccbc2133bfa4bc  libphobos/testsuite/libphobos.thread/external_threads.d
  8d802a80fc3114c071c927e9c19be7b2  libphobos/testsuite/libphobos.thread/fiber_guard_page.d
  80cc5df043e0d890c8aae43ee5608948  libphobos/testsuite/libphobos.thread/filterthrownglobal.d
--- 144883,144889 ----
  153e2bfb582dbfcdbcdcea85ff915dc9  libphobos/testsuite/libphobos.shared/load_linkdep.d
  d3c9a66f75a4c0e9517bb616aa64dbf0  libphobos/testsuite/libphobos.shared/load_loaddep.d
  7208bfcc87f14bf3c973fd0046246456  libphobos/testsuite/libphobos.shared/plugin.d
! 65b893c2624844c7cb6a1be0cf40fd08  libphobos/testsuite/libphobos.shared/shared.exp
  97e03d8104ae4e9dceccbc2133bfa4bc  libphobos/testsuite/libphobos.thread/external_threads.d
  8d802a80fc3114c071c927e9c19be7b2  libphobos/testsuite/libphobos.thread/fiber_guard_page.d
  80cc5df043e0d890c8aae43ee5608948  libphobos/testsuite/libphobos.thread/filterthrownglobal.d
*************** a73d560a3ba317c5ad0a7919d87b4b6d  libssp
*** 145518,145524 ****
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 0e381d2867a34734e4018061a107c5c1  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
--- 145570,145576 ----
  7d75fa0d30318408fe4cd91d9cbe3ac7  libssp/vsnprintf-chk.c
  e9ff0f4bdd1be75a507480ed1267459d  libssp/vsprintf-chk.c
  9e2de2e1f20ab0ffa2201164de02824f  libstdc++-v3/.editorconfig
! 39a6f7052994d04d4ecd248ea711824a  libstdc++-v3/ChangeLog
  7aa6c40440a44fcf5ec94c066160c2f8  libstdc++-v3/ChangeLog-1998
  7aff86600b6a1ed3fa87305075a92db0  libstdc++-v3/ChangeLog-1999
  a6f28e8fc9bb07696a9e068b439a3a87  libstdc++-v3/ChangeLog-2000
*************** abc6f4755fae8c6e8f45ce5fee798654  libstd
*** 145585,145591 ****
  6c165e7a2d80e986556ae6dc2bad3857  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
  d8fba4e72b3bac4b2fa939d9ec589c51  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! 04f55167ab55601179c8b23a4651a7ba  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
  a2a19bba90a6663d180d5d9f7b28b623  libstdc++-v3/config/allocator/malloc_allocator_base.h
  92afc718fea5d5748cbf18f969414917  libstdc++-v3/config/allocator/new_allocator_base.h
--- 145637,145643 ----
  6c165e7a2d80e986556ae6dc2bad3857  libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt
  5c4c38aeca254313c616b84337c937c3  libstdc++-v3/config/abi/pre/float128.ver
  d8fba4e72b3bac4b2fa939d9ec589c51  libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
! 8ae1e53454f4f010b10150d0fae30a72  libstdc++-v3/config/abi/pre/gnu.ver
  b01f8da8f4373070847fe317fe8a546e  libstdc++-v3/config/abi/pre/none.ver
  a2a19bba90a6663d180d5d9f7b28b623  libstdc++-v3/config/allocator/malloc_allocator_base.h
  92afc718fea5d5748cbf18f969414917  libstdc++-v3/config/allocator/new_allocator_base.h
*************** e901edfc8eef441d1adabd54be25b807  libstd
*** 146203,146210 ****
  f41638ae591b6186af73109188707d22  libstdc++-v3/include/bits/atomic_wait.h
  65e262c95ca2a5021497a947a07b5d48  libstdc++-v3/include/bits/basic_ios.h
  e0d25c8ddeac5ee95a7b60861849f304  libstdc++-v3/include/bits/basic_ios.tcc
! 1d4e0f2cb0d287ab932cbacfdfd2356c  libstdc++-v3/include/bits/basic_string.h
! a178c445d0514403e5823ef8dbf9bef6  libstdc++-v3/include/bits/basic_string.tcc
  abf1c74de0fb52f696034bd48432d075  libstdc++-v3/include/bits/binders.h
  3bc144622d471efab1aef4ec705459d0  libstdc++-v3/include/bits/boost_concept_check.h
  8af4c7d9e9f6b31055b2f57c798201d6  libstdc++-v3/include/bits/c++0x_warning.h
--- 146255,146262 ----
  f41638ae591b6186af73109188707d22  libstdc++-v3/include/bits/atomic_wait.h
  65e262c95ca2a5021497a947a07b5d48  libstdc++-v3/include/bits/basic_ios.h
  e0d25c8ddeac5ee95a7b60861849f304  libstdc++-v3/include/bits/basic_ios.tcc
! 0b099193950908f00410d2b1bdb20de3  libstdc++-v3/include/bits/basic_string.h
! 397c9d91ebf40f0a7ccea33f0bde178f  libstdc++-v3/include/bits/basic_string.tcc
  abf1c74de0fb52f696034bd48432d075  libstdc++-v3/include/bits/binders.h
  3bc144622d471efab1aef4ec705459d0  libstdc++-v3/include/bits/boost_concept_check.h
  8af4c7d9e9f6b31055b2f57c798201d6  libstdc++-v3/include/bits/c++0x_warning.h
*************** abf1c74de0fb52f696034bd48432d075  libstd
*** 146215,146221 ****
  6edecec676c9fcac335887b1b9aa621d  libstdc++-v3/include/bits/chrono_io.h
  1f26067336c4957237db887ab1ce6b55  libstdc++-v3/include/bits/codecvt.h
  53f7e45e350f1bb99b3d67e27f914b61  libstdc++-v3/include/bits/concept_check.h
! fe76204c6191abf5ff43308c33a7f704  libstdc++-v3/include/bits/cow_string.h
  97d90498ee103018406f19468a5500ec  libstdc++-v3/include/bits/cpp_type_traits.h
  1a6ab365d16951ef25f6a0b562b27ede  libstdc++-v3/include/bits/cpyfunc_impl.h
  a00599dc44159a6b255d87ddbb7e237c  libstdc++-v3/include/bits/deque.tcc
--- 146267,146273 ----
  6edecec676c9fcac335887b1b9aa621d  libstdc++-v3/include/bits/chrono_io.h
  1f26067336c4957237db887ab1ce6b55  libstdc++-v3/include/bits/codecvt.h
  53f7e45e350f1bb99b3d67e27f914b61  libstdc++-v3/include/bits/concept_check.h
! 3000c6dba4f53a32aed26e5c5cbccffc  libstdc++-v3/include/bits/cow_string.h
  97d90498ee103018406f19468a5500ec  libstdc++-v3/include/bits/cpp_type_traits.h
  1a6ab365d16951ef25f6a0b562b27ede  libstdc++-v3/include/bits/cpyfunc_impl.h
  a00599dc44159a6b255d87ddbb7e237c  libstdc++-v3/include/bits/deque.tcc
*************** f053b22f5819f7ed1f6ed5ffe14dc5a3  libstd
*** 146230,146239 ****
  3ef9bc83cb8c079eb15ebfb1a50ab14b  libstdc++-v3/include/bits/fs_ops.h
  7fe100acd8acdc1ac9bb10e1dadb50b8  libstdc++-v3/include/bits/fs_path.h
  c2f893fbd3fb2e778cc648a1e309d2f5  libstdc++-v3/include/bits/fstream.tcc
! a7fdff0e3cbc9de43937f64f26f7b528  libstdc++-v3/include/bits/funcref_impl.h
  e77032281bd301430e499d5bb46db4a1  libstdc++-v3/include/bits/functexcept.h
  31bdc727f2eaf8eda1ab45fb88577c00  libstdc++-v3/include/bits/functional_hash.h
! 76d369b48d0ecf0eabf5ba98117636b2  libstdc++-v3/include/bits/funcwrap.h
  a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  c54a2bf350f6bc9b6cc9a91ee9728c5a  libstdc++-v3/include/bits/hashtable.h
--- 146282,146291 ----
  3ef9bc83cb8c079eb15ebfb1a50ab14b  libstdc++-v3/include/bits/fs_ops.h
  7fe100acd8acdc1ac9bb10e1dadb50b8  libstdc++-v3/include/bits/fs_path.h
  c2f893fbd3fb2e778cc648a1e309d2f5  libstdc++-v3/include/bits/fstream.tcc
! 9547508e00b1750d4db06a7bc8f112bd  libstdc++-v3/include/bits/funcref_impl.h
  e77032281bd301430e499d5bb46db4a1  libstdc++-v3/include/bits/functexcept.h
  31bdc727f2eaf8eda1ab45fb88577c00  libstdc++-v3/include/bits/functional_hash.h
! 2d704693130242bf3c1c9fbf9bfa98cf  libstdc++-v3/include/bits/funcwrap.h
  a437a10ba7525a3935bec765a5604a4f  libstdc++-v3/include/bits/gslice.h
  39aca2727a08f07f0043ee164eaa09a4  libstdc++-v3/include/bits/gslice_array.h
  c54a2bf350f6bc9b6cc9a91ee9728c5a  libstdc++-v3/include/bits/hashtable.h
*************** b745abd5614b31045999aba98b3d30c4  libstd
*** 146281,146287 ****
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
  be4d83717ac91b3baa833f61b2456293  libstdc++-v3/include/bits/ranges_base.h
  c04d8e83343df391a348af7cf384e792  libstdc++-v3/include/bits/ranges_cmp.h
! 571addb6a7ba251f10f9342f9b041ae5  libstdc++-v3/include/bits/ranges_uninitialized.h
  1e16e9219782b5cd7f75c9d3e4611b1b  libstdc++-v3/include/bits/ranges_util.h
  eba2c9ee0f0d650f6223eb4f40e83b02  libstdc++-v3/include/bits/refwrap.h
  7da252b55893374947fa85a63106e1e5  libstdc++-v3/include/bits/regex.h
--- 146333,146339 ----
  2376637350495a1dbd9c27901ed68027  libstdc++-v3/include/bits/ranges_algobase.h
  be4d83717ac91b3baa833f61b2456293  libstdc++-v3/include/bits/ranges_base.h
  c04d8e83343df391a348af7cf384e792  libstdc++-v3/include/bits/ranges_cmp.h
! 01f0b1bd6742b4a2e642b03e16e87ca0  libstdc++-v3/include/bits/ranges_uninitialized.h
  1e16e9219782b5cd7f75c9d3e4611b1b  libstdc++-v3/include/bits/ranges_util.h
  eba2c9ee0f0d650f6223eb4f40e83b02  libstdc++-v3/include/bits/refwrap.h
  7da252b55893374947fa85a63106e1e5  libstdc++-v3/include/bits/regex.h
*************** c70bbf877307a51d2c70e9955edf27f6  libstd
*** 146346,146352 ****
  2e947ba181d169443bd32dfa77c0e138  libstdc++-v3/include/bits/stl_stack.h
  1c29bd2c226486c0b4016828fd21d761  libstdc++-v3/include/bits/stl_tempbuf.h
  5a7ae738df1c65c40473cbd89974f3fd  libstdc++-v3/include/bits/stl_tree.h
! 7bc3edc16458af9c361507d3db2d0dbe  libstdc++-v3/include/bits/stl_uninitialized.h
  fa6a2197d9927c61c24b530816008594  libstdc++-v3/include/bits/stl_vector.h
  96570e9668a903cd69d5febdf0595994  libstdc++-v3/include/bits/stream_iterator.h
  5d9b3cc499e4ec992ba0bb9a3de1d791  libstdc++-v3/include/bits/streambuf.tcc
--- 146398,146404 ----
  2e947ba181d169443bd32dfa77c0e138  libstdc++-v3/include/bits/stl_stack.h
  1c29bd2c226486c0b4016828fd21d761  libstdc++-v3/include/bits/stl_tempbuf.h
  5a7ae738df1c65c40473cbd89974f3fd  libstdc++-v3/include/bits/stl_tree.h
! 7d34318fb81417ec27b53785cc389660  libstdc++-v3/include/bits/stl_uninitialized.h
  fa6a2197d9927c61c24b530816008594  libstdc++-v3/include/bits/stl_vector.h
  96570e9668a903cd69d5febdf0595994  libstdc++-v3/include/bits/stream_iterator.h
  5d9b3cc499e4ec992ba0bb9a3de1d791  libstdc++-v3/include/bits/streambuf.tcc
*************** b1052f564f9839906c0d1f1f7a3296ea  libstd
*** 146364,146378 ****
  3e95bc3dafd1a579438226ba448f80e4  libstdc++-v3/include/bits/unordered_set.h
  4fbbeaf99e17abfaf62cec53ac3c9193  libstdc++-v3/include/bits/uses_allocator.h
  9d01cfbd90824dde5e36d65c0c160ad5  libstdc++-v3/include/bits/uses_allocator_args.h
! cc888ad11b5889a85843f6fa7a0611f5  libstdc++-v3/include/bits/utility.h
  3c8c91dc88f2ee1e4b68dcc3f3aaa5e5  libstdc++-v3/include/bits/valarray_after.h
  d1cf5a35c4ad3820cb023d8f84762cc7  libstdc++-v3/include/bits/valarray_array.h
  ddd4bdc2fa29f8f2aa3386cead9ebcb2  libstdc++-v3/include/bits/valarray_array.tcc
  16c6db3f5b1e7b3e37c3febbf4dc4e8c  libstdc++-v3/include/bits/valarray_before.h
  682dec8d9b388681bc1f171ba0c5590e  libstdc++-v3/include/bits/vec_ops.h
  5a7dd3eca21d4650e654ea51da466c59  libstdc++-v3/include/bits/vector.tcc
! 5e715142ea8eee51398c941221f5c345  libstdc++-v3/include/bits/version.def
! c61a5c3ca7c1eabb595241240e3d285a  libstdc++-v3/include/bits/version.h
  f92789aa59d1ed5207e13c936667059d  libstdc++-v3/include/bits/version.tpl
  d99b1b69e5f87e5a631c8a881d053766  libstdc++-v3/include/c/cassert
  7f5b12607c4d7cbbcf705b672613447b  libstdc++-v3/include/c/cctype
--- 146416,146430 ----
  3e95bc3dafd1a579438226ba448f80e4  libstdc++-v3/include/bits/unordered_set.h
  4fbbeaf99e17abfaf62cec53ac3c9193  libstdc++-v3/include/bits/uses_allocator.h
  9d01cfbd90824dde5e36d65c0c160ad5  libstdc++-v3/include/bits/uses_allocator_args.h
! 86c6e608747ecb91784bf0ea177b7cf6  libstdc++-v3/include/bits/utility.h
  3c8c91dc88f2ee1e4b68dcc3f3aaa5e5  libstdc++-v3/include/bits/valarray_after.h
  d1cf5a35c4ad3820cb023d8f84762cc7  libstdc++-v3/include/bits/valarray_array.h
  ddd4bdc2fa29f8f2aa3386cead9ebcb2  libstdc++-v3/include/bits/valarray_array.tcc
  16c6db3f5b1e7b3e37c3febbf4dc4e8c  libstdc++-v3/include/bits/valarray_before.h
  682dec8d9b388681bc1f171ba0c5590e  libstdc++-v3/include/bits/vec_ops.h
  5a7dd3eca21d4650e654ea51da466c59  libstdc++-v3/include/bits/vector.tcc
! 2b3f4803fa6e3411f0e73bd25c94d0c3  libstdc++-v3/include/bits/version.def
! 7a43f7dab8448539938f3c197c751558  libstdc++-v3/include/bits/version.h
  f92789aa59d1ed5207e13c936667059d  libstdc++-v3/include/bits/version.tpl
  d99b1b69e5f87e5a631c8a881d053766  libstdc++-v3/include/c/cassert
  7f5b12607c4d7cbbcf705b672613447b  libstdc++-v3/include/c/cctype
*************** ae347741e840ff43bfc0c1800ecdbf63  libstd
*** 146902,146908 ****
  bf41b54bb328243bcc27daa71f65fd02  libstdc++-v3/include/pstl/glue_algorithm_defs.h
  5b59c0a6c0cb7ddb2fa2f6d8f454b15d  libstdc++-v3/include/pstl/glue_algorithm_impl.h
  368ad5a8bcc8d830f5785113b6245f9d  libstdc++-v3/include/pstl/glue_execution_defs.h
! 0b0a3983fbed012140824669c804e50a  libstdc++-v3/include/pstl/glue_memory_defs.h
  7d755330869711b38d6e8dd35b486645  libstdc++-v3/include/pstl/glue_memory_impl.h
  9470d07762f86ba4655154491929a328  libstdc++-v3/include/pstl/glue_numeric_defs.h
  721eb8a76c61c8d807bffbca4dc5edc7  libstdc++-v3/include/pstl/glue_numeric_impl.h
--- 146954,146960 ----
  bf41b54bb328243bcc27daa71f65fd02  libstdc++-v3/include/pstl/glue_algorithm_defs.h
  5b59c0a6c0cb7ddb2fa2f6d8f454b15d  libstdc++-v3/include/pstl/glue_algorithm_impl.h
  368ad5a8bcc8d830f5785113b6245f9d  libstdc++-v3/include/pstl/glue_execution_defs.h
! 0c8e94fe77707ae997f68f29c0458dac  libstdc++-v3/include/pstl/glue_memory_defs.h
  7d755330869711b38d6e8dd35b486645  libstdc++-v3/include/pstl/glue_memory_impl.h
  9470d07762f86ba4655154491929a328  libstdc++-v3/include/pstl/glue_numeric_defs.h
  721eb8a76c61c8d807bffbca4dc5edc7  libstdc++-v3/include/pstl/glue_numeric_impl.h
*************** b9368104d884bddd988db2b9e69ab485  libstd
*** 146961,146967 ****
  604aad9d515fc3a516aee2ae89334b40  libstdc++-v3/include/std/mdspan
  5439ce157f7c11ab4eddd8c04799fea4  libstdc++-v3/include/std/memory
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
! 7bf8b3ca96c0b2c384cb24223b571b15  libstdc++-v3/include/std/meta
  6042ceb95043702de02a8354f2507317  libstdc++-v3/include/std/mutex
  98a3e25011c5fb2383b3824b1c349d43  libstdc++-v3/include/std/numbers
  6a44514a47e24df75405dc1d397afc69  libstdc++-v3/include/std/numeric
--- 147013,147019 ----
  604aad9d515fc3a516aee2ae89334b40  libstdc++-v3/include/std/mdspan
  5439ce157f7c11ab4eddd8c04799fea4  libstdc++-v3/include/std/memory
  ea0d67f29f1a73f1ccdade0115646a1c  libstdc++-v3/include/std/memory_resource
! aa79cb0a9ae88f0b712e0d69f552c08f  libstdc++-v3/include/std/meta
  6042ceb95043702de02a8354f2507317  libstdc++-v3/include/std/mutex
  98a3e25011c5fb2383b3824b1c349d43  libstdc++-v3/include/std/numbers
  6a44514a47e24df75405dc1d397afc69  libstdc++-v3/include/std/numeric
*************** b4c9d5ad3541a664c1fc38afd35837d2  libstd
*** 146970,146976 ****
  3af02266080ddef7f33d9c7aeb250aa7  libstdc++-v3/include/std/print
  879fbfbd4d520dc45943e6e1c095a2e7  libstdc++-v3/include/std/queue
  e21a300c90cd953e16f037708f0e242a  libstdc++-v3/include/std/random
! d58eb09990c6b3b30e765816acf79041  libstdc++-v3/include/std/ranges
  ee576f89ae347224177df91fe86d905d  libstdc++-v3/include/std/ratio
  a5c4f3df840ba7c3fbc9b7b9d5567ef2  libstdc++-v3/include/std/regex
  8e6ef0834acfc88dd03f5eae2990e41a  libstdc++-v3/include/std/scoped_allocator
--- 147022,147028 ----
  3af02266080ddef7f33d9c7aeb250aa7  libstdc++-v3/include/std/print
  879fbfbd4d520dc45943e6e1c095a2e7  libstdc++-v3/include/std/queue
  e21a300c90cd953e16f037708f0e242a  libstdc++-v3/include/std/random
! 55340fcae30b7b54a32cdd42b4679f6c  libstdc++-v3/include/std/ranges
  ee576f89ae347224177df91fe86d905d  libstdc++-v3/include/std/ratio
  a5c4f3df840ba7c3fbc9b7b9d5567ef2  libstdc++-v3/include/std/regex
  8e6ef0834acfc88dd03f5eae2990e41a  libstdc++-v3/include/std/scoped_allocator
*************** ef61193c582c0e8e18efb7f27f37f833  libstd
*** 146979,146985 ****
  d9b30ac9f13a2d342a56ff319aca749e  libstdc++-v3/include/std/shared_mutex
  b6acc193775e3cf38850b9d166d46caf  libstdc++-v3/include/std/simd
  b3171714703fcfc5d8fe69ffe22d9cc8  libstdc++-v3/include/std/source_location
! 72e2489e1fe102fd4cdc8596b867485b  libstdc++-v3/include/std/span
  efdde6d8d883a91854d4ae616b627e53  libstdc++-v3/include/std/spanstream
  f00ff992c96a4a6422d964aad9315664  libstdc++-v3/include/std/sstream
  f5a5ebc7b6133572f8f361cde93ec52f  libstdc++-v3/include/std/stack
--- 147031,147037 ----
  d9b30ac9f13a2d342a56ff319aca749e  libstdc++-v3/include/std/shared_mutex
  b6acc193775e3cf38850b9d166d46caf  libstdc++-v3/include/std/simd
  b3171714703fcfc5d8fe69ffe22d9cc8  libstdc++-v3/include/std/source_location
! 32f9089a1eee35a3cb0ee86636d8d338  libstdc++-v3/include/std/span
  efdde6d8d883a91854d4ae616b627e53  libstdc++-v3/include/std/spanstream
  f00ff992c96a4a6422d964aad9315664  libstdc++-v3/include/std/sstream
  f5a5ebc7b6133572f8f361cde93ec52f  libstdc++-v3/include/std/stack
*************** f1890d5dbe9c9ef672c11e6397c881b9  libstd
*** 146995,147005 ****
  3de44f0df6167a88cbfda331087cb3e8  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
  bf9dc0b041052f9a9e59ac623efd295a  libstdc++-v3/include/std/tuple
! 8b5dc36c1d552cd9f09696018e220cce  libstdc++-v3/include/std/type_traits
  66a7939bfcb3a6f5966552f3fb49a384  libstdc++-v3/include/std/typeindex
  994522acd96f1b6084469da322d17c19  libstdc++-v3/include/std/unordered_map
  5393bc9d8b494917b25afd3714e8014a  libstdc++-v3/include/std/unordered_set
! 7f92a82eac9afc94cc840349f66fb7c8  libstdc++-v3/include/std/utility
  bd07fa105994eb5d05ee66c7c9f10b7d  libstdc++-v3/include/std/valarray
  f4935a7b92bee0179976443347292535  libstdc++-v3/include/std/variant
  df7e0b14ef429fc02b9968616de62de0  libstdc++-v3/include/std/vector
--- 147047,147057 ----
  3de44f0df6167a88cbfda331087cb3e8  libstdc++-v3/include/std/text_encoding
  0e55da688cfae6ed254c1328fad9c8ad  libstdc++-v3/include/std/thread
  bf9dc0b041052f9a9e59ac623efd295a  libstdc++-v3/include/std/tuple
! 093e368cd477af3c4a45eafe90b6506c  libstdc++-v3/include/std/type_traits
  66a7939bfcb3a6f5966552f3fb49a384  libstdc++-v3/include/std/typeindex
  994522acd96f1b6084469da322d17c19  libstdc++-v3/include/std/unordered_map
  5393bc9d8b494917b25afd3714e8014a  libstdc++-v3/include/std/unordered_set
! 3dafc052e829f49f947b61291c35680f  libstdc++-v3/include/std/utility
  bd07fa105994eb5d05ee66c7c9f10b7d  libstdc++-v3/include/std/valarray
  f4935a7b92bee0179976443347292535  libstdc++-v3/include/std/variant
  df7e0b14ef429fc02b9968616de62de0  libstdc++-v3/include/std/vector
*************** fbb127f006c65ae37d591c627cc6235c  libstd
*** 147292,147303 ****
  85b9d2e407dc7113a97234b2c23e96dc  libstdc++-v3/src/c++17/ryu/ryu_generic_128.h
  2773ff0feb499fbb952b5beae8ae5833  libstdc++-v3/src/c++17/string-inst.cc
  04669634e7d7f19fae4baadedc6d0908  libstdc++-v3/src/c++17/uint128_t.h
! 2667b57b71cdb4809c2d08103ab7a239  libstdc++-v3/src/c++20/Makefile.am
! 8992329b44e206ac3d5b63e10bf82246  libstdc++-v3/src/c++20/Makefile.in
  43a3cf7776f056b3aa5b8051a3d1bb40  libstdc++-v3/src/c++20/atomic.cc
  e017d47cedd4e843177ec9ff2c936541  libstdc++-v3/src/c++20/clock.cc
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  c2bd27af25e57adce5807e0f01a2d0dc  libstdc++-v3/src/c++20/sstream-inst.cc
  50ac2e00d5794df965e47509f3c16cb5  libstdc++-v3/src/c++20/syncbuf.cc
  5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
  091b29fc9294e1f1eceaf85a3c578f9a  libstdc++-v3/src/c++20/tzdb.cc
--- 147344,147357 ----
  85b9d2e407dc7113a97234b2c23e96dc  libstdc++-v3/src/c++17/ryu/ryu_generic_128.h
  2773ff0feb499fbb952b5beae8ae5833  libstdc++-v3/src/c++17/string-inst.cc
  04669634e7d7f19fae4baadedc6d0908  libstdc++-v3/src/c++17/uint128_t.h
! 7419d81b1baa792940897a61c7cb38c2  libstdc++-v3/src/c++20/Makefile.am
! 5b2c9837afaac6366a37429a97484e65  libstdc++-v3/src/c++20/Makefile.in
  43a3cf7776f056b3aa5b8051a3d1bb40  libstdc++-v3/src/c++20/atomic.cc
  e017d47cedd4e843177ec9ff2c936541  libstdc++-v3/src/c++20/clock.cc
+ beadb627afafbd9d018802046c0b4403  libstdc++-v3/src/c++20/cow-string-inst.cc
  94b3ab191e8fe566a951ac2b4f081c40  libstdc++-v3/src/c++20/format.cc
  c2bd27af25e57adce5807e0f01a2d0dc  libstdc++-v3/src/c++20/sstream-inst.cc
+ 23187a5ee053acd65f32c0dc2ac4bdf7  libstdc++-v3/src/c++20/string-inst.cc
  50ac2e00d5794df965e47509f3c16cb5  libstdc++-v3/src/c++20/syncbuf.cc
  5f51e6efda14986b9b4932b46f8e73c3  libstdc++-v3/src/c++20/tzdata.zi
  091b29fc9294e1f1eceaf85a3c578f9a  libstdc++-v3/src/c++20/tzdb.cc
*************** ba1de75ac9c1bb7d2506c503fe17708a  libstd
*** 147308,147314 ****
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 2ac82f17cb052f82134083dbf26929c3  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  9b1a87f1df1badcb59f9d461e995392d  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
--- 147362,147368 ----
  ea41b659ccf9f3e1850802e2fddaba52  libstdc++-v3/src/c++23/print.cc
  15f6b28b71ad24bc5b6d33c21048e59a  libstdc++-v3/src/c++23/stacktrace.cc
  c319163994652e23066095eded5869f0  libstdc++-v3/src/c++23/std-clib.cc.in
! 3e2bdc37832f1aa410149547557571c9  libstdc++-v3/src/c++23/std.cc.in
  ef2786c62e1aa27a5405d7bf70e5212c  libstdc++-v3/src/c++23/std.compat.cc.in
  9b1a87f1df1badcb59f9d461e995392d  libstdc++-v3/src/c++26/Makefile.am
  7bb4fc4ec0d17bf1e304be661919aad7  libstdc++-v3/src/c++26/Makefile.in
*************** c5c26a31e7b679312f2784a6392935ea  libstd
*** 147867,147879 ****
  10cf645700c300427784618c5bfcf981  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
  5c846381725d12ef11a9e70c78141270  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
  e133eccc1a4734a3ac88d1a656706378  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! b4af9f744bcbb71828481c5c12037ea4  libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc
! 5346b4cd3dbf6bdac9e9a84918a02798  libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc
! f6c570babe83e341bafd58c6ba1b0e71  libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
! 799a94c8663c738e3d4d26a16bac1a3e  libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc
! 744be7f70859e1c16d4ff5fc2b45a6e6  libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc
! 4493f844b98a725a7da7505a5eb5ec4b  libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
! 0756c41fad3bcc603f1a78d29478fe15  libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc
  404eb18749ec930755e24ae928ae99ee  libstdc++-v3/testsuite/20_util/copyable_function/call.cc
  09520df3df90b586a3cb13556948faa3  libstdc++-v3/testsuite/20_util/copyable_function/cons.cc
  d08c6d7092cbc05d4491a4d25574eea5  libstdc++-v3/testsuite/20_util/copyable_function/conv.cc
--- 147921,147933 ----
  10cf645700c300427784618c5bfcf981  libstdc++-v3/testsuite/20_util/conditional/requirements/alias_decl.cc
  5c846381725d12ef11a9e70c78141270  libstdc++-v3/testsuite/20_util/conditional/requirements/explicit_instantiation.cc
  e133eccc1a4734a3ac88d1a656706378  libstdc++-v3/testsuite/20_util/conditional/requirements/typedefs.cc
! 95bad06156644b850b0d0628cde39ee6  libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc
! f4c5fb9b9eef76cf55a1f3d4e0727f82  libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc
! ff676d553e0309cf8493f4ba71f89440  libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
! f6c5689f1a0dfdba8a8ba54d684306c4  libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc
! f132f2bcc484293fa32563cb7cdab8f9  libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc
! 33f234999aa59db9cbf70db59b5481c4  libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
! d98a3940da139b83ee3c843a4469c53d  libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc
  404eb18749ec930755e24ae928ae99ee  libstdc++-v3/testsuite/20_util/copyable_function/call.cc
  09520df3df90b586a3cb13556948faa3  libstdc++-v3/testsuite/20_util/copyable_function/cons.cc
  d08c6d7092cbc05d4491a4d25574eea5  libstdc++-v3/testsuite/20_util/copyable_function/conv.cc
*************** e5ccaf5a6309a0cce460a0f74c59eeac  libstd
*** 148099,148114 ****
  d88577d9e0474e43a939d6f77e084fc0  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
  d86f0747545c10f31cd6319173d83b5e  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
  1ba2bc9c63c405cabe299bd2a4a1618b  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
! f75ada21895a46443c0cf6c6c4272819  libstdc++-v3/testsuite/20_util/function_ref/assign.cc
! baf5374006e67fa76fb471156542cc8f  libstdc++-v3/testsuite/20_util/function_ref/call.cc
! e6bab8c83483438e3bf29c2ea7c9df3b  libstdc++-v3/testsuite/20_util/function_ref/cons.cc
! 3de18ca48e3562cca5c9ed68264b9830  libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc
  6769087af53b9f703272c8bf23f3c862  libstdc++-v3/testsuite/20_util/function_ref/conv.cc
! bb4ff9de084c67d00cbe4e09b9bcc759  libstdc++-v3/testsuite/20_util/function_ref/dangling.cc
  a80798784aec1c674f911d361ed75ef6  libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc
! 8d565c1d345435d1910a3b47ff3df815  libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
  fe11d1f21c6bd06aa902315e0eb169b2  libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc
! 07ac98f7c18f41e232e70b8b3bbe462d  libstdc++-v3/testsuite/20_util/function_ref/mutation.cc
  88f8f853b228275ceab6e1840a8a6f08  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
  10a395803b3413c9edcd7427782ce060  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
  255dd887346fe1c2d03e9843733faab3  libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
--- 148153,148169 ----
  d88577d9e0474e43a939d6f77e084fc0  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/lwg3530.cc
  d86f0747545c10f31cd6319173d83b5e  libstdc++-v3/testsuite/20_util/function_objects/range.cmp/not_equal_to.cc
  1ba2bc9c63c405cabe299bd2a4a1618b  libstdc++-v3/testsuite/20_util/function_objects/searchers.cc
! a8f9020f2ce50b73adbc0739b4d126f0  libstdc++-v3/testsuite/20_util/function_ref/assign.cc
! a14986e98d1dd97abc2ff044b76b6ec5  libstdc++-v3/testsuite/20_util/function_ref/call.cc
! 1e96e553feb5d481776a8b786deea0dc  libstdc++-v3/testsuite/20_util/function_ref/cons.cc
! c13631fa982dd192af2bf8c125ad420c  libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc
  6769087af53b9f703272c8bf23f3c862  libstdc++-v3/testsuite/20_util/function_ref/conv.cc
! 653b07c8ea1777ba938ed74b08272334  libstdc++-v3/testsuite/20_util/function_ref/cw_cons_neg.cc
! 9bb37c83ee96f3925ec94116da75e0a9  libstdc++-v3/testsuite/20_util/function_ref/dangling.cc
  a80798784aec1c674f911d361ed75ef6  libstdc++-v3/testsuite/20_util/function_ref/dangling_neg.cc
! 839b0c83e1a0bd5c0ee958739de5e6c7  libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
  fe11d1f21c6bd06aa902315e0eb169b2  libstdc++-v3/testsuite/20_util/function_ref/incomplete_neg.cc
! d98606abcb3c5938ecf7e2652a647a32  libstdc++-v3/testsuite/20_util/function_ref/mutation.cc
  88f8f853b228275ceab6e1840a8a6f08  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc
  10a395803b3413c9edcd7427782ce060  libstdc++-v3/testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc
  255dd887346fe1c2d03e9843733faab3  libstdc++-v3/testsuite/20_util/has_unique_object_representations/value.cc
*************** eff3aec53990c6bfc2d6467b7f80b49d  libstd
*** 148222,148230 ****
  c830f82bd430ccc48fd8879bb6aab494  libstdc++-v3/testsuite/20_util/is_const/value.cc
  8512866144ef7d6e0bdc360363b2e91b  libstdc++-v3/testsuite/20_util/is_constant_evaluated/1.cc
  07d5c1fbd55889a7b9d326cb29621fc3  libstdc++-v3/testsuite/20_util/is_constant_evaluated/noexcept.cc
- ad21f35ae233efced0fe17ca9c84f07a  libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc
- 1eaa4a3ff8dd3a0dead835b5f67f37c4  libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc
- 47fce5ae3f08e42eaaabe495207bf6da  libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc
  bd2945e4de0798dbc26bff03145c982f  libstdc++-v3/testsuite/20_util/is_constructible/51185.cc
  a5e184714ddd867798fa94c2ebe2c9fe  libstdc++-v3/testsuite/20_util/is_constructible/68430.cc
  d2fd4eae55a898a976457f234a05c32b  libstdc++-v3/testsuite/20_util/is_constructible/77395.cc
--- 148277,148282 ----
*************** e0d44cbad1eb705070d90f8be658add1  libstd
*** 149223,149229 ****
  9a49272a09aaad1f39daf2c5791b5420  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc
  696874efad5e42cc8d20940428caca19  libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
  6b0af96b25bbf619c8b4fc01b1d8cf30  libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
! 4eca357f24e3c5ee12256f0bfe700dc7  libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
  b9698b5e78dcefad507d6737875a6a1d  libstdc++-v3/testsuite/20_util/variant/100384.cc
  5ef3d7df10dd90d995e4c63bc62c39de  libstdc++-v3/testsuite/20_util/variant/102912.cc
  8a98faef69d02af6ad48bf92f83aa16d  libstdc++-v3/testsuite/20_util/variant/112591.cc
--- 149275,149281 ----
  9a49272a09aaad1f39daf2c5791b5420  libstdc++-v3/testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc
  696874efad5e42cc8d20940428caca19  libstdc++-v3/testsuite/20_util/uses_allocator/uninitialized_construct.cc
  6b0af96b25bbf619c8b4fc01b1d8cf30  libstdc++-v3/testsuite/20_util/uses_allocator/value.cc
! 28eb12bfaaf864aaec384ebb78988b81  libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
  b9698b5e78dcefad507d6737875a6a1d  libstdc++-v3/testsuite/20_util/variant/100384.cc
  5ef3d7df10dd90d995e4c63bc62c39de  libstdc++-v3/testsuite/20_util/variant/102912.cc
  8a98faef69d02af6ad48bf92f83aa16d  libstdc++-v3/testsuite/20_util/variant/112591.cc
*************** ba30ee3573256e9c79323edeab55f45e  libstd
*** 150723,150729 ****
  bc234ad58ff4608f222dc9066aef5bcc  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/1.cc
  c586c68ebedcd0552b5c6cec393e6f11  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/from_range.cc
  38e5f39346a05e51ec2a0e4cdf2586e4  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/throws.cc
! 885e647c2fd112b257c4c58939169847  libstdc++-v3/testsuite/23_containers/inplace_vector/copy.cc
  c87eb94f57dafc64e6cdeeab93e4ea86  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign1_neg.cc
  1fa7391889af8e1484f4259b15b914f0  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign2_neg.cc
  22678c0980cba5c92cdbbb592d98ce46  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign3_neg.cc
--- 150775,150781 ----
  bc234ad58ff4608f222dc9066aef5bcc  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/1.cc
  c586c68ebedcd0552b5c6cec393e6f11  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/from_range.cc
  38e5f39346a05e51ec2a0e4cdf2586e4  libstdc++-v3/testsuite/23_containers/inplace_vector/cons/throws.cc
! c3a1a3526de292cb363617372f081457  libstdc++-v3/testsuite/23_containers/inplace_vector/copy.cc
  c87eb94f57dafc64e6cdeeab93e4ea86  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign1_neg.cc
  1fa7391889af8e1484f4259b15b914f0  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign2_neg.cc
  22678c0980cba5c92cdbbb592d98ce46  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/assign3_neg.cc
*************** adf70c3108bb57e460f5e7f13e417f6c  libstd
*** 150753,150766 ****
  38eb8924b49b2ff37e7aa86a77e56bcb  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/try_emplace_back.cc
  1188aa6c20f869b0ff8369439d7994fb  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/try_push_back.cc
  597dca6295388c7b43dbf6bd1b92363a  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/unchecked_emplace_back.cc
! b597adca8581a01fbdfcf2647c26135e  libstdc++-v3/testsuite/23_containers/inplace_vector/erasure.cc
  551687653f879c8cc6f6102dd99358dd  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/assign.cc
  5aec8512568ce2f7543d9c77e6605c2c  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/erase.cc
  32171ec785b1b967d1076d5da1536940  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/erase_neg.cc
  ed67e9da3d1e71d5fb2cffe267b85db0  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc
  3c4148c567e8b15b2726a4d6154ede27  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/single_insert.cc
  63a7d605a0bc39f3acfb0fa4bb289dda  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/single_insert_neg.cc
! c0e4b5e520bb7afd9585b659e29ec827  libstdc++-v3/testsuite/23_containers/inplace_vector/move.cc
  5518dafa57195a13905e6083cf064ace  libstdc++-v3/testsuite/23_containers/inplace_vector/relops.cc
  52eebf50f02bfc60af51311ef8953d74  libstdc++-v3/testsuite/23_containers/inplace_vector/version.cc
  bfdaa4a27d7988fca29fdca200537d59  libstdc++-v3/testsuite/23_containers/list/14340.cc
--- 150805,150818 ----
  38eb8924b49b2ff37e7aa86a77e56bcb  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/try_emplace_back.cc
  1188aa6c20f869b0ff8369439d7994fb  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/try_push_back.cc
  597dca6295388c7b43dbf6bd1b92363a  libstdc++-v3/testsuite/23_containers/inplace_vector/debug/invalidation/unchecked_emplace_back.cc
! 60ff94b514351d8def7157b4923d9f10  libstdc++-v3/testsuite/23_containers/inplace_vector/erasure.cc
  551687653f879c8cc6f6102dd99358dd  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/assign.cc
  5aec8512568ce2f7543d9c77e6605c2c  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/erase.cc
  32171ec785b1b967d1076d5da1536940  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/erase_neg.cc
  ed67e9da3d1e71d5fb2cffe267b85db0  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/multi_insert.cc
  3c4148c567e8b15b2726a4d6154ede27  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/single_insert.cc
  63a7d605a0bc39f3acfb0fa4bb289dda  libstdc++-v3/testsuite/23_containers/inplace_vector/modifiers/single_insert_neg.cc
! 1b7fbaff011dd632225a4efffa9cd1a1  libstdc++-v3/testsuite/23_containers/inplace_vector/move.cc
  5518dafa57195a13905e6083cf064ace  libstdc++-v3/testsuite/23_containers/inplace_vector/relops.cc
  52eebf50f02bfc60af51311ef8953d74  libstdc++-v3/testsuite/23_containers/inplace_vector/version.cc
  bfdaa4a27d7988fca29fdca200537d59  libstdc++-v3/testsuite/23_containers/list/14340.cc
*************** eedd481f2befb0d21d3db28c12a34556  libstd
*** 151379,151386 ****
  fbb9822385bda73133f788c053bdd0af  libstdc++-v3/testsuite/23_containers/span/front_neg.cc
  5260196210995384653a16eced4dda13  libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
  eec03d1ca4b15479d2bd16d62c192062  libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc
- dfac1399cb31d1925502402ef9d495df  libstdc++-v3/testsuite/23_containers/span/init_list_cons.cc
- b5a274cdea28724ff494ebbb50296de8  libstdc++-v3/testsuite/23_containers/span/init_list_cons_neg.cc
  ed2f7d16ed6122b02949cf3ef4cfb78b  libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
  760b771abe88fc769a1a10a92041e529  libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
  407441710ce466addfbdb7524d8ac30b  libstdc++-v3/testsuite/23_containers/span/last_neg.cc
--- 151431,151436 ----
*************** b3d45c29d5a2c403abc175fec1b99a6b  libstd
*** 152358,152364 ****
  e573f2860bc22fd7654cbb3fea729d73  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc
  50e614afe21238864e8351927696d1b9  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc
  26c69ea49e2e11c07638b2d598a35e53  libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
! 79277a645228a8c8365516a6cdb9bbd2  libstdc++-v3/testsuite/25_algorithms/contains/1.cc
  30fbc1e3c211ebfa6382e1bab18e5b6d  libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
  9af3ee438eaed42d929a89f85adcd589  libstdc++-v3/testsuite/25_algorithms/copy/1.cc
  ae049046b45a395504fd1e8a19c4f18b  libstdc++-v3/testsuite/25_algorithms/copy/108846.cc
--- 152408,152414 ----
  e573f2860bc22fd7654cbb3fea729d73  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc
  50e614afe21238864e8351927696d1b9  libstdc++-v3/testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc
  26c69ea49e2e11c07638b2d598a35e53  libstdc++-v3/testsuite/25_algorithms/constexpr_macro.cc
! 0c63b67a100045ba8443139e5a30846d  libstdc++-v3/testsuite/25_algorithms/contains/1.cc
  30fbc1e3c211ebfa6382e1bab18e5b6d  libstdc++-v3/testsuite/25_algorithms/contains_subrange/1.cc
  9af3ee438eaed42d929a89f85adcd589  libstdc++-v3/testsuite/25_algorithms/copy/1.cc
  ae049046b45a395504fd1e8a19c4f18b  libstdc++-v3/testsuite/25_algorithms/copy/108846.cc
*************** fa7033273cf947e2589229ca7a990fb7  libstd
*** 152459,152465 ****
  c3996c2cbd38cfce052b2453d6b7a633  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
  8325dea92c97fa972b2996a8ed8b3d35  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
  eb039700066c0a50c700412b6fb41c72  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
! f6209221dd7311dbe1d42f0de88a731e  libstdc++-v3/testsuite/25_algorithms/default_template_value.cc
  574ef91b3f4ec1f13b9d9e79b4999fee  libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc
  76ba0cf6c6859499ffc6782ce00a6546  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
  da701df52f121ca10189a8abe1f5e2af  libstdc++-v3/testsuite/25_algorithms/equal/101485.cc
--- 152509,152515 ----
  c3996c2cbd38cfce052b2453d6b7a633  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
  8325dea92c97fa972b2996a8ed8b3d35  libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc
  eb039700066c0a50c700412b6fb41c72  libstdc++-v3/testsuite/25_algorithms/cpp_lib_constexpr.cc
! a2a3a68c18f7b0e7d2e3587b994868f2  libstdc++-v3/testsuite/25_algorithms/default_template_value.cc
  574ef91b3f4ec1f13b9d9e79b4999fee  libstdc++-v3/testsuite/25_algorithms/ends_with/1.cc
  76ba0cf6c6859499ffc6782ce00a6546  libstdc++-v3/testsuite/25_algorithms/equal/1.cc
  da701df52f121ca10189a8abe1f5e2af  libstdc++-v3/testsuite/25_algorithms/equal/101485.cc
*************** b449af0622f9f74f9641842861f71b59  libstd
*** 156855,156860 ****
--- 156905,156911 ----
  98332644c3ba6e62089aaa16fd8bd810  libstdc++-v3/testsuite/std/ranges/adaptors/adjacent_transform/1.cc
  c96d64f956c5de562101292909ff2a67  libstdc++-v3/testsuite/std/ranges/adaptors/all.cc
  72da4c7ac2546f0a5f6407897e1bd475  libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc
+ ebe7f66a4cffc0aa17135da5b1ffb633  libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc
  0139b03b03632380b03a6ab7c2b27a55  libstdc++-v3/testsuite/std/ranges/adaptors/as_rvalue/1.cc
  c869a29dd96e2c1f3e229b1c37f22ab2  libstdc++-v3/testsuite/std/ranges/adaptors/cache_latest/1.cc
  28870445b45c887945870e82f7ede402  libstdc++-v3/testsuite/std/ranges/adaptors/chunk/1.cc
*************** f28879e88d94560214e5905a0fdb03e6  libstd
*** 156870,156876 ****
  190dd5fc0737d90cc62b4b53cc0c3a0e  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
  0d0e8a2b6558c1f0cc6951a999f02636  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  326917eee6123d6a19d60b706ad52413  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! b1e9d63cbda1b6da324e0b29f00e1fee  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
  7acd154a7a523edcf187f726281ae30b  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
  6230edce2b317f6e38f9820f3b6fbd87  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
  2c39336cd160472f050e4414d2e36af5  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
--- 156921,156927 ----
  190dd5fc0737d90cc62b4b53cc0c3a0e  libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc
  0d0e8a2b6558c1f0cc6951a999f02636  libstdc++-v3/testsuite/std/ranges/adaptors/join.cc
  326917eee6123d6a19d60b706ad52413  libstdc++-v3/testsuite/std/ranges/adaptors/join_with/1.cc
! 0d90b9bce22611d61b66f489d7769dd4  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
  7acd154a7a523edcf187f726281ae30b  libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split_neg.cc
  6230edce2b317f6e38f9820f3b6fbd87  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc
  2c39336cd160472f050e4414d2e36af5  libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc
*************** ce526ad179d2a8b16f1b79fa8f704591  libstd
*** 156888,156894 ****
  a0e630899068a41f2ddf2c81cbd386a4  libstdc++-v3/testsuite/std/ranges/adaptors/stride/1.cc
  33605a52abccf517d64f172f0e4dbe37  libstdc++-v3/testsuite/std/ranges/adaptors/take.cc
  92c37742494c8fb86f1e60dcd1ecc11e  libstdc++-v3/testsuite/std/ranges/adaptors/take_while.cc
- b84e90f734d1e8ca59322b53758c6f9c  libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc
  84729959634b1ddb951ede66b24e991f  libstdc++-v3/testsuite/std/ranges/adaptors/transform.cc
  c1b23609040e813a09294f54b708a162  libstdc++-v3/testsuite/std/ranges/cartesian_product/1.cc
  6121dbeb75930b73fe5c552392ee5693  libstdc++-v3/testsuite/std/ranges/concat/1.cc
--- 156939,156944 ----
*************** b694262e9c10340bdb562c2e01ff78bf  libstd
*** 156934,156965 ****
  5b2a0cc6d1227b9eae0206d48d932d77  libstdc++-v3/testsuite/std/ranges/view.cc
  e9dd29c8ada0e4f7673523df4dc8c5e7  libstdc++-v3/testsuite/std/ranges/zip/1.cc
  2a24268e29bff5326b9f5c3f611001c8  libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
! 664ab62f3f817fa28590302cc4d59f80  libstdc++-v3/testsuite/std/simd/arithmetic.cc
! 569b9b8ab0246858be03b5ffa569ab96  libstdc++-v3/testsuite/std/simd/arithmetic_expensive.cc
  0f4c54b7b254944dcf6c0f1855cc40df  libstdc++-v3/testsuite/std/simd/create_tests.h
! 9b598d4b775185bb1de84c0042b7d986  libstdc++-v3/testsuite/std/simd/creation.cc
! fc13a9c7f7b490d52c5be7d09a7303ce  libstdc++-v3/testsuite/std/simd/creation_expensive.cc
! 6e7f1bc368353b50746851f2db69ea8a  libstdc++-v3/testsuite/std/simd/loads.cc
! d97ae2fbf0aee2b0ccaa4194a3adc376  libstdc++-v3/testsuite/std/simd/loads_expensive.cc
! 8f1af776b6ae878b83acbf3e0ecb62e7  libstdc++-v3/testsuite/std/simd/mask.cc
! fc1a1e311b5b752e428ec26872b5d7ec  libstdc++-v3/testsuite/std/simd/mask2.cc
! a14f54fcf17508ffb878edcc25d6b8a2  libstdc++-v3/testsuite/std/simd/mask2_expensive.cc
! e7e019cf42151c06393fa78a55116468  libstdc++-v3/testsuite/std/simd/mask_expensive.cc
! fb153cb262def8b5964b757ab18f2530  libstdc++-v3/testsuite/std/simd/reductions.cc
! 27f9ce53b3483dc5d5689600c126fb76  libstdc++-v3/testsuite/std/simd/reductions_expensive.cc
! c0ed33eb99bd32e6e895d4c6cda7c334  libstdc++-v3/testsuite/std/simd/shift_left.cc
! b9f535cf8c1beab2ba35c6905c9b22e5  libstdc++-v3/testsuite/std/simd/shift_left_expensive.cc
! 5b993d4ef111673f009ecfb3ebb61377  libstdc++-v3/testsuite/std/simd/shift_right.cc
! a0effa71ab3d6d835d08207d70fd58d1  libstdc++-v3/testsuite/std/simd/shift_right_expensive.cc
! e0e86460d919a7d97bfb262951567abe  libstdc++-v3/testsuite/std/simd/simd_alg.cc
! eeda748684ccc6d60e5b1359e8c317d4  libstdc++-v3/testsuite/std/simd/simd_alg_expensive.cc
! c75a621915e96df6aac89c4a4e24340d  libstdc++-v3/testsuite/std/simd/sse_intrin.cc
! 8fde1ca2825b6323095d46b0560cef96  libstdc++-v3/testsuite/std/simd/stores.cc
! eaf0f99b288f1668d8cd691e3ce1a6d9  libstdc++-v3/testsuite/std/simd/stores_expensive.cc
  9555f30a8004fbe5c183c3d458dbe0c7  libstdc++-v3/testsuite/std/simd/test_setup.h
! 97ab8cc8c8c9aa9bbb21a67925fe50a5  libstdc++-v3/testsuite/std/simd/traits_common.cc
! 09952858ba8af0ef3c39ba94fd6c26bf  libstdc++-v3/testsuite/std/simd/traits_impl.cc
! 4a6cbcf08129d0510e60279bb8f1e88a  libstdc++-v3/testsuite/std/simd/traits_math.cc
  a0efc42f3d3e1e881d69063fe7f2c586  libstdc++-v3/testsuite/std/text_encoding/cons.cc
  bfa6a93e5c5cd2d11c1eddd5572fd5de  libstdc++-v3/testsuite/std/text_encoding/members.cc
  e9ef3f2b572f799b265913487f27690b  libstdc++-v3/testsuite/std/text_encoding/requirements.cc
--- 156984,157015 ----
  5b2a0cc6d1227b9eae0206d48d932d77  libstdc++-v3/testsuite/std/ranges/view.cc
  e9dd29c8ada0e4f7673523df4dc8c5e7  libstdc++-v3/testsuite/std/ranges/zip/1.cc
  2a24268e29bff5326b9f5c3f611001c8  libstdc++-v3/testsuite/std/ranges/zip_transform/1.cc
! 9f25fc60c60d57c75679c25ed6edee4b  libstdc++-v3/testsuite/std/simd/arithmetic.cc
! aa6cc0dafe21bb155a7598b9d0487e44  libstdc++-v3/testsuite/std/simd/arithmetic_expensive.cc
  0f4c54b7b254944dcf6c0f1855cc40df  libstdc++-v3/testsuite/std/simd/create_tests.h
! b9969eb6247f261e1966f0c0070da700  libstdc++-v3/testsuite/std/simd/creation.cc
! 82a2d6d9521ef6d5858eb86a61177c1d  libstdc++-v3/testsuite/std/simd/creation_expensive.cc
! ea82ffeb62bbb0bd8a4761833f50983e  libstdc++-v3/testsuite/std/simd/loads.cc
! ce67aba9cf8e5641eaf7182f399be3ec  libstdc++-v3/testsuite/std/simd/loads_expensive.cc
! caf7518fda6fadea99029c452811540c  libstdc++-v3/testsuite/std/simd/mask.cc
! 794c42e7e4ed323401a8836006afde3f  libstdc++-v3/testsuite/std/simd/mask2.cc
! 83717d1cc074fb79c8bf2eadccd417ae  libstdc++-v3/testsuite/std/simd/mask2_expensive.cc
! f74fe6b1be89ddeab7e498d76598a481  libstdc++-v3/testsuite/std/simd/mask_expensive.cc
! 2bb833f148d075bbcf4bee2427a8d686  libstdc++-v3/testsuite/std/simd/reductions.cc
! 891bc06e10cb74d3b83c4bbe2e6f9b32  libstdc++-v3/testsuite/std/simd/reductions_expensive.cc
! 8668c844085386581fbd12241e559efe  libstdc++-v3/testsuite/std/simd/shift_left.cc
! 4dcd2b27b4d71c9f7ee20012d97def33  libstdc++-v3/testsuite/std/simd/shift_left_expensive.cc
! 244d3cc2cb67efbf3db44697dffce79a  libstdc++-v3/testsuite/std/simd/shift_right.cc
! d6862fc2c353bee6fd5c6a2912279384  libstdc++-v3/testsuite/std/simd/shift_right_expensive.cc
! 8dac67c5531273c095b3f6310a232457  libstdc++-v3/testsuite/std/simd/simd_alg.cc
! 8f79bd8ce1a05cfdbad14dd9e4b4fd4b  libstdc++-v3/testsuite/std/simd/simd_alg_expensive.cc
! 546a3483b60e0e695e9a5f5c7d496895  libstdc++-v3/testsuite/std/simd/sse_intrin.cc
! e2493aaebd9a1a286017264515b56ba5  libstdc++-v3/testsuite/std/simd/stores.cc
! d020ffeed3a700de700dcd8ab75dcc70  libstdc++-v3/testsuite/std/simd/stores_expensive.cc
  9555f30a8004fbe5c183c3d458dbe0c7  libstdc++-v3/testsuite/std/simd/test_setup.h
! ec9ad3eaf243761aea11f5bb32963c26  libstdc++-v3/testsuite/std/simd/traits_common.cc
! 6e23d90aa722f32c50e0010fcf2a9dbf  libstdc++-v3/testsuite/std/simd/traits_impl.cc
! dc3942c6bf95d64ccf324c22b2e44166  libstdc++-v3/testsuite/std/simd/traits_math.cc
  a0efc42f3d3e1e881d69063fe7f2c586  libstdc++-v3/testsuite/std/text_encoding/cons.cc
  bfa6a93e5c5cd2d11c1eddd5572fd5de  libstdc++-v3/testsuite/std/text_encoding/members.cc
  e9ef3f2b572f799b265913487f27690b  libstdc++-v3/testsuite/std/text_encoding/requirements.cc
diff -Nrcpad gcc-16-20260405/gcc/ChangeLog gcc-16-20260412/gcc/ChangeLog
*** gcc-16-20260405/gcc/ChangeLog	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/ChangeLog	Sun Apr 12 22:32:06 2026
***************
*** 1,3 ****
--- 1,184 ----
+ 2026-04-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/93554
+ 	* omp-expand.cc (expand_oacc_for): Relax entry_bb and cont_bb
+ 	assertions to allow intermediate blocks from finalization code.
+ 	Remove exit_bb predecessor count assertion.
+ 
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/124827
+ 	* gimple-ssa-warn-access.cc (xchg_models): Remove.
+ 	(pass_waccess::check_atomic_builtin): Fix up sucs_arg for
+ 	BUILT_IN_ATOMIC_EXCHAGE_* and use all_models instead of xchg_models.
+ 	Handle BUILT_IN_TSAN_ATOMIC*.  Formatting fixes.
+ 
+ 2026-04-10  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* configure: Regenerate.
+ 
+ 2026-04-10  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Set
+ 	__riscv_v_intrinsic to v1.0.
+ 	* doc/extend.texi (RISC-V Vector Intrinsics): Document the
+ 	ratified v1.0 RVV intrinsic specification and update the link.
+ 
+ 2026-04-09  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR c++/124773
+ 	* doc/trouble.texi (Linkage in Anonymous Namespaces): New section.
+ 
+ 2026-04-09  Alex Coplan  <alex.coplan@arm.com>
+ 
+ 	PR target/122483
+ 	* config/aarch64/t-aarch64: Replace instances of TM_H with
+ 	TARGET_H where appropriate, add missing dependency on TARGET_H
+ 	for aarch64-early-ra.cc.
+ 
+ 2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Makefile.in (AFDO_PROFILER): New variable.
+ 	(PERF): Likewise.
+ 	* config/aarch64/gcc-auto-profile: Detect and use ARM SPE events when
+ 	invoking perf record.
+ 	* configure: Regenerate.
+ 	* configure.ac: Detect whether build has perf utility available and
+ 	check for ARM SPE-based profiling support when building on AArch64.
+ 
+ 2026-04-09  Richard Biener  <rguenther@suse.de>
+ 
+ 	* coverage.cc (coverage_init): Do not call read_counts_file
+ 	if flag_auto_profile.
+ 
+ 2026-04-09  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/124818
+ 	* config/riscv/riscv.cc (synthesize_ior_xor): Do not treat
+ 	TARGET_ZBKB as sufficient for single-bit immediate IOR/XOR.
+ 
+ 2026-04-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* doc/params.texi: Replace param_vect_scalar_cost_multiplier with
+ 	param_vect_allow_possibly_not_worthwhile_vectorizations
+ 	* params.opt: Likewise.
+ 	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
+ 	Likewise.
+ 	* config/riscv/riscv.cc (riscv_override_options_internal): Likewise.
+ 	* tree-vect-loop.cc (vect_estimate_min_profitable_iters): Likewise.
+ 	* tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Likewise.
+ 	(vect_slp_region): Likewise.
+ 
+ 2026-04-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/105192
+ 	* ifcvt.cc (find_if_header): Don't attempt to use ctrap expander
+ 	after reload.
+ 
+ 2026-04-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124810
+ 	* cfgloopmanip.cc (fix_loop_placements): Do not stop
+ 	iterating when an inner loop didn't get re-parented.
+ 	Compute the outermost loop we have to consider re-parenting.
+ 
+ 2026-04-08  Prathamesh Kulkarni  <prathameshk@nvidia.com>
+ 
+ 	* auto-profile.cc (function_instance::merge): Set other->timestamp() if it's
+ 	lesser than timestamp() and greater than zero or if timestamp() is zero.
+ 
+ 2026-04-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/124759
+ 	PR target/124789
+ 	* config/i386/i386.cc (ix86_need_alignment_p_2): New function.
+ 	Exclude memory with SYMBOLIC_CONST.
+ 	(ix86_need_alignment_p_1): Call ix86_need_alignment_p_2.
+ 	(ix86_find_max_used_stack_alignment): Restore
+ 	hard_stack_slot_access handling.
+ 
+ 2026-04-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	* config/i386/i386.cc (ix86_need_alignment_p_1): Replace
+ 	GET_MODE_ALIGNMENT with MEM_ALIGN.
+ 
+ 2026-04-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124802
+ 	* tree-vect-slp-patterns.cc (vect_match_expression_p): Fail
+ 	for SLP_TREE_PERMUTE_P.
+ 
+ 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR sanitizer/124170
+ 	* doc/invoke.texi (Option Summary) <Linker Options>: Add
+ 	-static-libhwasan and fix alphabetization of similar options.
+ 	(Link Options): Likewise.
+ 	* common.opt.urls: Regenerated.
+ 
+ 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/124784
+ 	* regenerate-opt-urls.py (canonicalize_option_name):  Remove one
+ 	of the dashes from option names starting with two dashes.
+ 	(test_parse_option_index): Add a self-test for this.
+ 	* common.opt.urls: Regenerated.
+ 	* config/picolibc.opt.urls: Regenerated.
+ 
+ 2026-04-07  Peter Damianov  <peter0x44@disroot.org>
+ 
+ 	* config/mingw/t-cygming: Remove obsolete STMP_FIXINC
+ 	override.
+ 
+ 2026-04-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124743
+ 	* tree-vect-slp.cc (vect_schedule_slp_node): Schedule
+ 	loop invariant operations in the loop preheader.
+ 
+ 2026-04-07  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 	    Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add
+ 	logic to handle __builtin_ppc_atomic_cas_local.
+ 	* config/rs6000/rs6000-builtins.def: New builtins for
+ 	__builtin_ppc_atomic_cas_local with types.
+ 	* config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin):
+ 	Handle builtins with up to 6 arguments.
+ 	* config/rs6000/rs6000-overload.def: Overload builtin for
+ 	signed/unsiged char, short, int, long, __int128.
+ 	* config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap):
+ 	Add additional parameter 'local' to the prototype.
+ 	* config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass
+ 	new parameter to generate load-locked instruction.
+ 	(rs6000_expand_atomic_compare_and_swap): Add new parameter. Call
+ 	emit_load_locked() with additional parameter value of EH bit.
+ 	(rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked().
+ 	(rs6000_expand_atomic_op): Likewise.
+ 	* config/rs6000/sync.md (load_locked<mode>): Add new operand in RTL
+ 	template. Specify EH bit in the larx instruction.
+ 	(load_locked<QHI:mode>_si): Likewise.
+ 	(load_lockedpti): Likewise.
+ 	(load_lockedti): Add new operand in RTL template. Pass EH bit to
+ 	gen_load_lockedpti().
+ 	(atomic_compare_and_swap<mode>): Pass new parameter 'false' to
+ 	rs6000_expand_atomic_compare_and_swap.
+ 	(atomic_compare_and_swap_local<mode>): New define_expand.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR libstdc++/124268
+ 	* doc/invoke.texi: Note that -Wexpose-global-module-tu-local
+ 	also applies to 'export using' declarations.
+ 
+ 2026-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* doc/install.texi (Specific, amd64-*-solaris2*, i?86-*-solaris2*)
+ 	(sparc-sun-solaris2*, sparc64-*-solaris2*, sparcv9-*-solaris2*)
+ 	(x86_64-*-solaris2*): Remove.  Fold into ...
+ 	(Specific, *-*-solaris2*): ... this.
+ 	Rewrite.
+ 
  2026-04-04  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	* doc/invoke.texi (Picolibc Options): Copy-edit for markup, use
diff -Nrcpad gcc-16-20260405/gcc/DATESTAMP gcc-16-20260412/gcc/DATESTAMP
*** gcc-16-20260405/gcc/DATESTAMP	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/DATESTAMP	Sun Apr 12 22:32:06 2026
***************
*** 1 ****
! 20260405
--- 1 ----
! 20260412
diff -Nrcpad gcc-16-20260405/gcc/Makefile.in gcc-16-20260412/gcc/Makefile.in
*** gcc-16-20260405/gcc/Makefile.in	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/Makefile.in	Sun Apr 12 22:32:06 2026
*************** $(ALL_HOST_BACKEND_OBJS): ALL_COMPILERFL
*** 1951,1956 ****
--- 1951,1962 ----
  $(ALL_HOST_BACKEND_OBJS): all.fda
  endif
  
+ # Path to the perf utility
+ PERF = @PERF@
+ 
+ # The profiler to be used by autoprofiledbootstrap
+ AFDO_PROFILER = @AFDO_PROFILER@
+ 
  # This lists all host object files, whether they are included in this
  # compilation or not.
  ALL_HOST_OBJS = $(ALL_HOST_FRONTEND_OBJS) $(ALL_HOST_BACKEND_OBJS)
diff -Nrcpad gcc-16-20260405/gcc/ada/ChangeLog gcc-16-20260412/gcc/ada/ChangeLog
*** gcc-16-20260405/gcc/ada/ChangeLog	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/ada/ChangeLog	Sun Apr 12 22:32:06 2026
***************
*** 1,3 ****
--- 1,16 ----
+ 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/124784
+ 	* gcc-interface/lang.opt.urls: Regenerated.
+ 
+ 2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* exp_ch6.adb (Expand_Simple_Function_Return): Use a constant return
+ 	object when the simple return is rewritten as an extended one.
+ 	* libgnat/s-secsta.adb (SS_Allocate): Raise Storage_Error if the
+ 	requested size is negative.
+ 	* libgnat/s-secsta__cheri.adb (SS_Allocate): Likewise.
+ 
  2026-04-03  Tonu Naks  <naks@adacore.com>
  
  	* doc/gnat_rm/gnat_language_extensions.rst: Adjust rules for
diff -Nrcpad gcc-16-20260405/gcc/ada/adaint.c gcc-16-20260412/gcc/ada/adaint.c
*** gcc-16-20260405/gcc/ada/adaint.c	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/ada/adaint.c	Sun Apr 12 22:32:06 2026
*************** const char *__gnat_library_template = GN
*** 350,360 ****
  
  #else
  
- #if defined (__MINGW32__)
- #include "mingw32.h"
- #else
  #include <sys/param.h>
- #endif
  
  #ifdef MAXPATHLEN
  #define GNAT_MAX_PATH_LEN MAXPATHLEN
--- 350,356 ----
diff -Nrcpad gcc-16-20260405/gcc/ada/gcc-interface/lang.opt.urls gcc-16-20260412/gcc/ada/gcc-interface/lang.opt.urls
*** gcc-16-20260405/gcc/ada/gcc-interface/lang.opt.urls	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/ada/gcc-interface/lang.opt.urls	Sun Apr 12 22:32:06 2026
***************
*** 1,5 ****
--- 1,23 ----
  ; Autogenerated by regenerate-opt-urls.py from gcc/ada/gcc-interface/lang.opt and generated HTML
  
+ -all-warnings
+ UrlSuffix(gcc/Warning-Options.html#index-all-warnings)
+ 
+ -include-barrier
+ UrlSuffix(gcc/Directory-Options.html#index-include-barrier)
+ 
+ -include-directory
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -include-directory=
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -no-standard-includes
+ UrlSuffix(gcc/Directory-Options.html#index-no-standard-includes)
+ 
+ -no-standard-libraries
+ UrlSuffix(gcc/Link-Options.html#index-no-standard-libraries)
+ 
  I
  UrlSuffix(gcc/Directory-Options.html#index-I) LangUrlSuffix_D(gdc/Directory-Options.html#index-I) LangUrlSuffix_Algol68(ga68/Directory-options.html#index-I)
  
diff -Nrcpad gcc-16-20260405/gcc/auto-profile.cc gcc-16-20260412/gcc/auto-profile.cc
*** gcc-16-20260405/gcc/auto-profile.cc	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/auto-profile.cc	Sun Apr 12 22:32:07 2026
*************** function_instance::merge (function_insta
*** 1372,1378 ****
      head_count_ += other->head_count_;
  
    /* While merging timestamps, set the one that occurs earlier.  */
!   if (other->timestamp () < timestamp ())
      set_timestamp (other->timestamp ());
  
    bool changed = true;
--- 1372,1380 ----
      head_count_ += other->head_count_;
  
    /* While merging timestamps, set the one that occurs earlier.  */
!   if (timestamp () == 0
!       || (other->timestamp () > 0
! 	  && other->timestamp () < timestamp ()))
      set_timestamp (other->timestamp ());
  
    bool changed = true;
diff -Nrcpad gcc-16-20260405/gcc/c/ChangeLog gcc-16-20260412/gcc/c/ChangeLog
*** gcc-16-20260405/gcc/c/ChangeLog	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/c/ChangeLog	Sun Apr 12 22:32:07 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Make-lang.in (create_fdas_for_cc1): Use $(AFDO_PROFILER) when passing
+ 	--profiler to create_gcov. Ensure that perf.data contains profile for
+ 	cc1. Make the console output more useful.
+ 
  2026-04-01  Martin Uecker  <uecker@tugraz.at>
  
  	PR c/124635
diff -Nrcpad gcc-16-20260405/gcc/c/Make-lang.in gcc-16-20260412/gcc/c/Make-lang.in
*** gcc-16-20260405/gcc/c/Make-lang.in	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/c/Make-lang.in	Sun Apr 12 22:32:07 2026
*************** cc1.fda: create_fdas_for_cc1
*** 98,118 ****
  create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version `../prev-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
  	  fi; \
  	done;
  
--- 98,124 ----
  create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/cc1$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo "  warning: $$perf_path is missing cc1!"; \
! 	    fi; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1_$$component_in_prev_target.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/cc1$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../prev-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo "  warning: $$perf_path is missing cc1!"; \
! 	    fi; \
  	  fi; \
  	done;
  
diff -Nrcpad gcc-16-20260405/gcc/c-family/ChangeLog gcc-16-20260412/gcc/c-family/ChangeLog
*** gcc-16-20260405/gcc/c-family/ChangeLog	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/c-family/ChangeLog	Sun Apr 12 22:32:07 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/124784
+ 	* c.opt.urls: Regenerated.
+ 
  2026-03-19  Jason Merrill  <jason@redhat.com>
  
  	* c-opts.cc (c_common_post_options): Enable -fcontracts
diff -Nrcpad gcc-16-20260405/gcc/c-family/c.opt.urls gcc-16-20260412/gcc/c-family/c.opt.urls
*** gcc-16-20260405/gcc/c-family/c.opt.urls	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/c-family/c.opt.urls	Sun Apr 12 22:32:07 2026
***************
*** 1,5 ****
--- 1,164 ----
  ; Autogenerated by regenerate-opt-urls.py from gcc/c-family/c.opt and generated HTML
  
+ -all-warnings
+ UrlSuffix(gcc/Warning-Options.html#index-all-warnings)
+ 
+ ; skipping UrlSuffix for '-ansi' due to multiple URLs:
+ ;   duplicate: 'gcc/C-Dialect-Options.html#index-ansi-1'
+ ;   duplicate: 'gcc/Library-Builtins.html#index-ansi-2'
+ ;   duplicate: 'gcc/Non-bugs.html#index-ansi-3'
+ ;   duplicate: 'gcc/Standards.html#index-ansi'
+ 
+ -compile-std-module
+ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-compile-std-module)
+ 
+ -comments
+ UrlSuffix(gcc/Preprocessor-Options.html#index-comments)
+ 
+ -comments-in-macros
+ UrlSuffix(gcc/Preprocessor-Options.html#index-comments-in-macros)
+ 
+ -define-macro
+ UrlSuffix(gcc/Preprocessor-Options.html#index-define-macro)
+ 
+ -define-macro=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-define-macro)
+ 
+ -dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-dependencies)
+ 
+ ; skipping UrlSuffix for '-dump' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
+ 
+ ; skipping UrlSuffix for '-dump=' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
+ 
+ -embed-dir=
+ UrlSuffix(gcc/Directory-Options.html#index-embed-dir)
+ 
+ -embed-directory
+ UrlSuffix(gcc/Directory-Options.html#index-embed-directory)
+ 
+ -embed-directory=
+ UrlSuffix(gcc/Directory-Options.html#index-embed-directory)
+ 
+ -imacros
+ UrlSuffix(gcc/Preprocessor-Options.html#index-imacros)
+ 
+ -imacros=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-imacros)
+ 
+ -include
+ UrlSuffix(gcc/Preprocessor-Options.html#index-include)
+ 
+ -include=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-include)
+ 
+ -include-barrier
+ UrlSuffix(gcc/Directory-Options.html#index-include-barrier)
+ 
+ -include-directory
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -include-directory=
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -include-directory-after
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory-after)
+ 
+ -include-directory-after=
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory-after)
+ 
+ -include-prefix
+ UrlSuffix(gcc/Directory-Options.html#index-include-prefix)
+ 
+ -include-prefix=
+ UrlSuffix(gcc/Directory-Options.html#index-include-prefix)
+ 
+ -include-with-prefix
+ UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix)
+ 
+ -include-with-prefix=
+ UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix)
+ 
+ -include-with-prefix-after
+ UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-after)
+ 
+ -include-with-prefix-after=
+ UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-after)
+ 
+ -include-with-prefix-before
+ UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-before)
+ 
+ -include-with-prefix-before=
+ UrlSuffix(gcc/Directory-Options.html#index-include-with-prefix-before)
+ 
+ -no-integrated-cpp
+ UrlSuffix(gcc/Preprocessor-Options.html#index-no-integrated-cpp)
+ 
+ -no-line-commands
+ UrlSuffix(gcc/Preprocessor-Options.html#index-no-line-commands)
+ 
+ -no-standard-includes
+ UrlSuffix(gcc/Directory-Options.html#index-no-standard-includes)
+ 
+ -no-warnings
+ UrlSuffix(gcc/Warning-Options.html#index-no-warnings)
+ 
+ -output
+ UrlSuffix(gcc/Overall-Options.html#index-output)
+ 
+ -output=
+ UrlSuffix(gcc/Overall-Options.html#index-output)
+ 
+ ; skipping UrlSuffix for '-pedantic' due to multiple URLs:
+ ;   duplicate: 'gcc/Alternate-Keywords.html#index-pedantic-3'
+ ;   duplicate: 'gcc/C-Extensions.html#index-pedantic-2'
+ ;   duplicate: 'gcc/Standards.html#index-pedantic'
+ ;   duplicate: 'gcc/Warning-Options.html#index-pedantic-1'
+ ;   duplicate: 'gcc/Warnings-and-Errors.html#index-pedantic-4'
+ -pedantic
+ LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-pedantic)
+ 
+ -preprocess
+ UrlSuffix(gcc/Overall-Options.html#index-preprocess)
+ 
+ -print-missing-file-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-print-missing-file-dependencies)
+ 
+ -trace-includes
+ UrlSuffix(gcc/Preprocessor-Options.html#index-trace-includes)
+ 
+ ; skipping UrlSuffix for '-traditional' due to multiple URLs:
+ ;   duplicate: 'gcc/Incompatibilities.html#index-traditional-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-traditional'
+ 
+ -traditional-cpp
+ UrlSuffix(gcc/Preprocessor-Options.html#index-traditional-cpp)
+ 
+ -trigraphs
+ UrlSuffix(gcc/Preprocessor-Options.html#index-trigraphs)
+ 
+ -undefine-macro
+ UrlSuffix(gcc/Preprocessor-Options.html#index-undefine-macro)
+ 
+ -undefine-macro=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-undefine-macro)
+ 
+ -user-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-user-dependencies)
+ 
+ -verbose
+ UrlSuffix(gcc/Overall-Options.html#index-verbose)
+ 
+ -write-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-write-dependencies)
+ 
+ -write-user-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-write-user-dependencies)
+ 
  C
  UrlSuffix(gcc/Preprocessor-Options.html#index-C) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-C)
  
diff -Nrcpad gcc-16-20260405/gcc/cfgloopmanip.cc gcc-16-20260412/gcc/cfgloopmanip.cc
*** gcc-16-20260405/gcc/cfgloopmanip.cc	Sun Apr  5 22:32:06 2026
--- gcc-16-20260412/gcc/cfgloopmanip.cc	Sun Apr 12 22:32:07 2026
*************** static void
*** 1061,1083 ****
  fix_loop_placements (class loop *loop, bool *irred_invalidated,
  		     bitmap loop_closed_ssa_invalidated)
  {
!   class loop *outer;
  
    while (loop_outer (loop))
      {
        outer = loop_outer (loop);
!       if (!fix_loop_placement (loop, irred_invalidated,
! 			       loop_closed_ssa_invalidated))
! 	break;
! 
!       /* Changing the placement of a loop in the loop tree may alter the
! 	 validity of condition 2) of the description of fix_bb_placement
! 	 for its preheader, because the successor is the header and belongs
! 	 to the loop.  So call fix_bb_placements to fix up the placement
! 	 of the preheader and (possibly) of its predecessors.  */
!       fix_bb_placements (loop_preheader_edge (loop)->src,
! 			 irred_invalidated, loop_closed_ssa_invalidated);
        loop = outer;
      }
  }
  
--- 1061,1096 ----
  fix_loop_placements (class loop *loop, bool *irred_invalidated,
  		     bitmap loop_closed_ssa_invalidated)
  {
!   if (!loop_outer (loop))
!     return;
! 
!   auto_vec<edge> exits = get_loop_exit_edges (loop);
!   unsigned i;
!   edge e;
  
+   /* We might need to only re-parent an outer loop, but as the constraint
+      is that we removed an exit from LOOP, we have a limit for what level
+      of outer loop we eventually have to re-parent to.  */
+   class loop *outermost = loop;
+   FOR_EACH_VEC_ELT (exits, i, e)
+     outermost = find_common_loop (outermost, e->dest->loop_father);
+ 
+   class loop *outer;
    while (loop_outer (loop))
      {
        outer = loop_outer (loop);
!       if (fix_loop_placement (loop, irred_invalidated,
! 			      loop_closed_ssa_invalidated))
! 	/* Changing the placement of a loop in the loop tree may alter the
! 	   validity of condition 2) of the description of fix_bb_placement
! 	   for its preheader, because the successor is the header and belongs
! 	   to the loop.  So call fix_bb_placements to fix up the placement
! 	   of the preheader and (possibly) of its predecessors.  */
! 	fix_bb_placements (loop_preheader_edge (loop)->src,
! 			   irred_invalidated, loop_closed_ssa_invalidated);
        loop = outer;
+       if (outer == outermost)
+ 	break;
      }
  }
  
diff -Nrcpad gcc-16-20260405/gcc/common.opt.urls gcc-16-20260412/gcc/common.opt.urls
*** gcc-16-20260405/gcc/common.opt.urls	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/common.opt.urls	Sun Apr 12 22:32:07 2026
***************
*** 3,11 ****
--- 3,222 ----
  ###
  UrlSuffix(gcc/Overall-Options.html#index-_0023_0023_0023)
  
+ -assemble
+ UrlSuffix(gcc/Overall-Options.html#index-assemble)
+ 
+ -compile
+ UrlSuffix(gcc/Overall-Options.html#index-compile)
+ 
+ -coverage
+ UrlSuffix(gcc/Instrumentation-Options.html#index-coverage)
+ 
+ -debug
+ UrlSuffix(gcc/Debugging-Options.html#index-debug)
+ 
+ ; skipping UrlSuffix for '-dump' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
+ 
+ ; skipping UrlSuffix for '-dump=' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
+ 
+ -dumpbase
+ UrlSuffix(gcc/Overall-Options.html#index-dumpbase)
+ 
+ -dumpbase-ext
+ UrlSuffix(gcc/Overall-Options.html#index-dumpbase-ext)
+ 
+ -dumpdir
+ UrlSuffix(gcc/Overall-Options.html#index-dumpdir)
+ 
+ -entry
+ UrlSuffix(gcc/Link-Options.html#index-entry)
+ 
+ -entry=
+ UrlSuffix(gcc/Link-Options.html#index-entry)
+ 
+ -extra-warnings
+ UrlSuffix(gcc/Warning-Options.html#index-extra-warnings)
+ 
+ -for-assembler
+ UrlSuffix(gcc/Assembler-Options.html#index-for-assembler)
+ 
+ -for-assembler=
+ UrlSuffix(gcc/Assembler-Options.html#index-for-assembler)
+ 
+ -for-linker
+ UrlSuffix(gcc/Link-Options.html#index-for-linker)
+ 
+ -for-linker=
+ UrlSuffix(gcc/Link-Options.html#index-for-linker)
+ 
+ -force-link
+ UrlSuffix(gcc/Link-Options.html#index-force-link)
+ 
+ -force-link=
+ UrlSuffix(gcc/Link-Options.html#index-force-link)
+ 
+ -help
+ UrlSuffix(gcc/Overall-Options.html#index-help)
+ 
+ -help=
+ UrlSuffix(gcc/Overall-Options.html#index-help)
+ 
+ -language
+ UrlSuffix(gcc/Overall-Options.html#index-language)
+ 
+ -language=
+ UrlSuffix(gcc/Overall-Options.html#index-language)
+ 
+ -library-directory
+ UrlSuffix(gcc/Directory-Options.html#index-library-directory)
+ 
+ -library-directory=
+ UrlSuffix(gcc/Directory-Options.html#index-library-directory)
+ 
+ -no-canonical-prefixes
+ UrlSuffix(gcc/Directory-Options.html#index-no-canonical-prefixes)
+ 
+ -no-standard-libraries
+ UrlSuffix(gcc/Link-Options.html#index-no-standard-libraries)
+ 
+ -no-sysroot-suffix
+ UrlSuffix(gcc/Directory-Options.html#index-no-sysroot-suffix)
+ 
+ -no-warnings
+ UrlSuffix(gcc/Warning-Options.html#index-no-warnings)
+ 
+ -optimize
+ UrlSuffix(gcc/Optimize-Options.html#index-optimize-1)
+ 
+ -output
+ UrlSuffix(gcc/Overall-Options.html#index-output)
+ 
+ -output=
+ UrlSuffix(gcc/Overall-Options.html#index-output)
+ 
+ -pass-exit-codes
+ UrlSuffix(gcc/Overall-Options.html#index-pass-exit-codes)
+ 
+ ; skipping UrlSuffix for '-pedantic' due to multiple URLs:
+ ;   duplicate: 'gcc/Alternate-Keywords.html#index-pedantic-3'
+ ;   duplicate: 'gcc/C-Extensions.html#index-pedantic-2'
+ ;   duplicate: 'gcc/Standards.html#index-pedantic'
+ ;   duplicate: 'gcc/Warning-Options.html#index-pedantic-1'
+ ;   duplicate: 'gcc/Warnings-and-Errors.html#index-pedantic-4'
+ -pedantic
+ LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-pedantic)
+ 
+ ; skipping UrlSuffix for '-pedantic-errors' due to multiple URLs:
+ ;   duplicate: 'gcc/Non-bugs.html#index-pedantic-errors-2'
+ ;   duplicate: 'gcc/Standards.html#index-pedantic-errors'
+ ;   duplicate: 'gcc/Warning-Options.html#index-pedantic-errors-1'
+ ;   duplicate: 'gcc/Warnings-and-Errors.html#index-pedantic-errors-3'
+ -pedantic-errors
+ LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-pedantic-errors)
+ 
+ -pie
+ UrlSuffix(gcc/Link-Options.html#index-pie)
+ 
+ -static-pie
+ UrlSuffix(gcc/Link-Options.html#index-static-pie)
+ 
+ -pipe
+ UrlSuffix(gcc/Overall-Options.html#index-pipe)
+ 
+ -prefix
+ UrlSuffix(gcc/Directory-Options.html#index-prefix)
+ 
+ -prefix=
+ UrlSuffix(gcc/Directory-Options.html#index-prefix)
+ 
+ -preprocess
+ UrlSuffix(gcc/Overall-Options.html#index-preprocess)
+ 
+ -print-autofdo-gcov-version
+ UrlSuffix(gcc/Developer-Options.html#index-print-autofdo-gcov-version)
+ 
+ -print-file-name
+ UrlSuffix(gcc/Developer-Options.html#index-print-file-name)
+ 
+ -print-file-name=
+ UrlSuffix(gcc/Developer-Options.html#index-print-file-name)
+ 
+ -print-libgcc-file-name
+ UrlSuffix(gcc/Developer-Options.html#index-print-libgcc-file-name)
+ 
+ -print-multi-directory
+ UrlSuffix(gcc/Developer-Options.html#index-print-multi-directory)
+ 
+ -print-multi-lib
+ UrlSuffix(gcc/Developer-Options.html#index-print-multi-lib)
+ 
+ -print-multi-os-directory
+ UrlSuffix(gcc/Developer-Options.html#index-print-multi-os-directory)
+ 
+ -print-multiarch
+ UrlSuffix(gcc/Developer-Options.html#index-print-multiarch)
+ 
+ -print-prog-name
+ UrlSuffix(gcc/Developer-Options.html#index-print-prog-name)
+ 
+ -print-prog-name=
+ UrlSuffix(gcc/Developer-Options.html#index-print-prog-name)
+ 
+ -print-search-dirs
+ UrlSuffix(gcc/Developer-Options.html#index-print-search-dirs)
+ 
+ -print-sysroot
+ UrlSuffix(gcc/Developer-Options.html#index-print-sysroot)
+ 
+ -print-sysroot-headers-suffix
+ UrlSuffix(gcc/Developer-Options.html#index-print-sysroot-headers-suffix)
+ 
+ -profile
+ UrlSuffix(gcc/Instrumentation-Options.html#index-profile)
+ 
+ -save-temps
+ UrlSuffix(gcc/Developer-Options.html#index-save-temps)
+ 
+ -shared
+ UrlSuffix(gcc/Link-Options.html#index-shared)
+ 
+ -specs
+ UrlSuffix(gcc/Developer-Options.html#index-specs)
+ 
+ -specs=
+ UrlSuffix(gcc/Developer-Options.html#index-specs)
+ 
+ -static
+ UrlSuffix(gcc/Link-Options.html#index-static)
+ 
+ -symbolic
+ UrlSuffix(gcc/Link-Options.html#index-symbolic)
+ 
+ -target-help
+ UrlSuffix(gcc/Overall-Options.html#index-target-help)
+ 
+ -time
+ UrlSuffix(gcc/Developer-Options.html#index-time)
+ 
+ -verbose
+ UrlSuffix(gcc/Overall-Options.html#index-verbose)
+ 
  fversion
  LangUrlSuffix_D(gdc/Runtime-Options.html#index-fversion)
  
+ -sysroot
+ UrlSuffix(gcc/Directory-Options.html#index-sysroot)
+ 
+ -sysroot=
+ UrlSuffix(gcc/Directory-Options.html#index-sysroot)
+ 
+ -version
+ UrlSuffix(gcc/Overall-Options.html#index-version)
+ 
  B
  UrlSuffix(gcc/Directory-Options.html#index-B) LangUrlSuffix_D(gdc/Directory-Options.html#index-B)
  
*************** UrlSuffix(gcc/Link-Options.html#index-st
*** 2035,2040 ****
--- 2246,2254 ----
  static-libasan
  UrlSuffix(gcc/Link-Options.html#index-static-libasan)
  
+ static-libhwasan
+ UrlSuffix(gcc/Link-Options.html#index-static-libhwasan)
+ 
  static-libtsan
  UrlSuffix(gcc/Link-Options.html#index-static-libtsan)
  
diff -Nrcpad gcc-16-20260405/gcc/config/aarch64/aarch64.cc gcc-16-20260412/gcc/config/aarch64/aarch64.cc
*** gcc-16-20260405/gcc/config/aarch64/aarch64.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/aarch64/aarch64.cc	Sun Apr 12 22:32:07 2026
*************** aarch64_override_options_internal (struc
*** 19844,19854 ****
        & AARCH64_EXTRA_TUNE_DISPATCH_SCHED)
      gcc_assert (aarch64_tune_params.dispatch_constraints != NULL);
  
!   /* Set scalar costing to a high value such that we always pick
!      vectorization.  Increase scalar costing by 10000%.  */
    if (opts->x_flag_aarch64_max_vectorization)
      SET_OPTION_IF_UNSET (opts, &global_options_set,
! 			 param_vect_scalar_cost_multiplier, 10000);
  
    /* Synchronize the -mautovec-preference and aarch64_autovec_preference using
       whichever one is not default.  If both are set then prefer the param flag
--- 19844,19854 ----
        & AARCH64_EXTRA_TUNE_DISPATCH_SCHED)
      gcc_assert (aarch64_tune_params.dispatch_constraints != NULL);
  
!   /* Enable possible unprofitable vectorization.  */
    if (opts->x_flag_aarch64_max_vectorization)
      SET_OPTION_IF_UNSET (opts, &global_options_set,
! 			 param_vect_allow_possibly_not_worthwhile_vectorizations,
! 			 1);
  
    /* Synchronize the -mautovec-preference and aarch64_autovec_preference using
       whichever one is not default.  If both are set then prefer the param flag
diff -Nrcpad gcc-16-20260405/gcc/config/aarch64/gcc-auto-profile gcc-16-20260412/gcc/config/aarch64/gcc-auto-profile
*** gcc-16-20260405/gcc/config/aarch64/gcc-auto-profile	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/aarch64/gcc-auto-profile	Sun Apr 12 22:32:07 2026
*************** if [ "$use_brbe" = true ] ; then
*** 45,50 ****
--- 45,55 ----
    set -x
    perf record --inherit -o perf.data -j any,$FLAGS "$@"
    set +x
+ elif [ -n "$(perf list | grep arm_spe)" ] ; then
+   echo >&2 "Info: Using SPE to collect branch profiles"
+   set -x
+   perf record --inherit -o perf.data -e arm_spe_0/branch_filter=1/ "$@"
+   set +x
  else
    echo >&2 "Warning: branch profiling may not be functional without BRBE"
    set -x
diff -Nrcpad gcc-16-20260405/gcc/config/aarch64/t-aarch64 gcc-16-20260412/gcc/config/aarch64/t-aarch64
*** gcc-16-20260405/gcc/config/aarch64/t-aarch64	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/aarch64/t-aarch64	Sun Apr 12 22:32:07 2026
*************** $(srcdir)/config/aarch64/aarch64-generat
*** 57,63 ****
  s-mddeps: s-aarch64-tune-md
  
  aarch64-builtins.o: $(srcdir)/config/aarch64/aarch64-builtins.cc $(CONFIG_H) \
!   $(SYSTEM_H) coretypes.h $(TM_H) $(REGS_H) \
    $(RTL_H) $(TREE_H) expr.h $(TM_P_H) $(RECOG_H) langhooks.h \
    $(DIAGNOSTIC_CORE_H) $(OPTABS_H) \
    $(srcdir)/config/aarch64/aarch64-simd-builtins.def \
--- 57,63 ----
  s-mddeps: s-aarch64-tune-md
  
  aarch64-builtins.o: $(srcdir)/config/aarch64/aarch64-builtins.cc $(CONFIG_H) \
!   $(SYSTEM_H) coretypes.h $(TARGET_H) $(REGS_H) \
    $(RTL_H) $(TREE_H) expr.h $(TM_P_H) $(RECOG_H) langhooks.h \
    $(DIAGNOSTIC_CORE_H) $(OPTABS_H) \
    $(srcdir)/config/aarch64/aarch64-simd-builtins.def \
*************** aarch64-sve-builtins.o: $(srcdir)/config
*** 72,78 ****
    $(srcdir)/config/aarch64/aarch64-sve-builtins-base.def \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.def \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.def \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) $(DIAGNOSTIC_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) tree-vector-builder.h \
--- 72,78 ----
    $(srcdir)/config/aarch64/aarch64-sve-builtins-base.def \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.def \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.def \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) $(DIAGNOSTIC_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) tree-vector-builder.h \
*************** aarch64-sve-builtins-shapes.o: \
*** 97,103 ****
  
  aarch64-sve-builtins-base.o: \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-base.cc \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) tree-vector-builder.h \
--- 97,103 ----
  
  aarch64-sve-builtins-base.o: \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-base.cc \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) tree-vector-builder.h \
*************** aarch64-sve-builtins-base.o: \
*** 111,117 ****
  
  aarch64-sve-builtins-sve2.o: \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.cc \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) tree-vector-builder.h \
--- 111,117 ----
  
  aarch64-sve-builtins-sve2.o: \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sve2.cc \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) tree-vector-builder.h \
*************** aarch64-sve-builtins-sve2.o: \
*** 125,131 ****
  
  aarch64-sve-builtins-sme.o: \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.cc \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) \
--- 125,131 ----
  
  aarch64-sve-builtins-sme.o: \
    $(srcdir)/config/aarch64/aarch64-sve-builtins-sme.cc \
!   $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TARGET_H) $(TREE_H) $(RTL_H) \
    $(TM_P_H) memmodel.h insn-codes.h $(OPTABS_H) $(RECOG_H) \
    $(EXPR_H) $(BASIC_BLOCK_H) $(FUNCTION_H) fold-const.h $(GIMPLE_H) \
    gimple-iterator.h gimplify.h explow.h $(EMIT_RTL_H) \
*************** aarch-bti-insert.o: $(srcdir)/config/arm
*** 199,205 ****
  
  aarch64-early-ra.o: $(srcdir)/config/aarch64/aarch64-early-ra.cc \
      $(CONFIG_H) $(SYSTEM_H) $(CORETYPES_H) $(BACKEND_H) $(RTL_H) $(DF_H) \
!     $(RTL_SSA_H) tree-pass.h
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/aarch64/aarch64-early-ra.cc
  
--- 199,205 ----
  
  aarch64-early-ra.o: $(srcdir)/config/aarch64/aarch64-early-ra.cc \
      $(CONFIG_H) $(SYSTEM_H) $(CORETYPES_H) $(BACKEND_H) $(RTL_H) $(DF_H) \
!     $(RTL_SSA_H) $(TARGET_H) tree-pass.h
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  		$(srcdir)/config/aarch64/aarch64-early-ra.cc
  
diff -Nrcpad gcc-16-20260405/gcc/config/i386/i386.cc gcc-16-20260412/gcc/config/i386/i386.cc
*** gcc-16-20260405/gcc/config/i386/i386.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/i386/i386.cc	Sun Apr 12 22:32:07 2026
*************** ix86_access_stack_p (unsigned int regno,
*** 8781,8786 ****
--- 8781,8809 ----
    return false;
  }
  
+ /* Return true if OP isn't a memory operand with SYMBOLIC_CONST and
+    needs alignment > ALIGNMENT.  */
+ 
+ static bool
+ ix86_need_alignment_p_2 (const_rtx op, unsigned int alignment)
+ {
+   bool need_alignment = MEM_ALIGN (op) > alignment;
+   tree mem_expr = MEM_EXPR (op);
+   if (!mem_expr)
+     return need_alignment;
+ 
+   tree var = get_base_address (mem_expr);
+   if (!VAR_P (var) || !DECL_RTL_SET_P (var))
+     return need_alignment;
+ 
+   rtx x = DECL_RTL (var);
+   if (!MEM_P (x))
+     return need_alignment;
+ 
+   x = XEXP (x, 0);
+   return !SYMBOLIC_CONST (x) && need_alignment;
+ }
+ 
  /* Return true if SET needs alignment > ALIGNMENT.  */
  
  static bool
*************** ix86_need_alignment_p_1 (rtx set, unsign
*** 8789,8795 ****
    rtx dest = SET_DEST (set);
  
    if (MEM_P (dest))
!     return GET_MODE_ALIGNMENT (GET_MODE (dest)) > alignment;
  
    const_rtx src = SET_SRC (set);
  
--- 8812,8818 ----
    rtx dest = SET_DEST (set);
  
    if (MEM_P (dest))
!     return ix86_need_alignment_p_2 (dest, alignment);
  
    const_rtx src = SET_SRC (set);
  
*************** ix86_need_alignment_p_1 (rtx set, unsign
*** 8799,8805 ****
        auto op = *iter;
  
        if (MEM_P (op))
! 	return GET_MODE_ALIGNMENT (GET_MODE (op)) > alignment;
      }
  
    return false;
--- 8822,8828 ----
        auto op = *iter;
  
        if (MEM_P (op))
! 	return ix86_need_alignment_p_2 (op, alignment);
      }
  
    return false;
*************** ix86_find_max_used_stack_alignment (unsi
*** 8890,8895 ****
--- 8913,8921 ----
        bitmap_set_bit (worklist, HARD_FRAME_POINTER_REGNUM);
      }
  
+   /* Registers on HARD_STACK_SLOT_ACCESS always access stack.  */
+   HARD_REG_SET hard_stack_slot_access = stack_slot_access;
+ 
    calculate_dominance_info (CDI_DOMINATORS);
  
    unsigned int regno;
*************** ix86_find_max_used_stack_alignment (unsi
*** 8926,8935 ****
  	  /* Call ix86_access_stack_p only if INSN needs alignment >
  	     STACK_ALIGNMENT.  */
  	  if (ix86_need_alignment_p (insn, stack_alignment)
! 	      && ix86_access_stack_p (regno, BLOCK_FOR_INSN (insn),
! 				      set_up_by_prologue, prologue_used,
! 				      reg_dominate_bbs_known,
! 				      reg_dominate_bbs))
  	    {
  	      /* Update stack alignment if REGNO is used for stack
  		 access.  */
--- 8952,8963 ----
  	  /* Call ix86_access_stack_p only if INSN needs alignment >
  	     STACK_ALIGNMENT.  */
  	  if (ix86_need_alignment_p (insn, stack_alignment)
! 	      && (TEST_HARD_REG_BIT (hard_stack_slot_access, regno)
! 		  || ix86_access_stack_p (regno, BLOCK_FOR_INSN (insn),
! 					  set_up_by_prologue,
! 					  prologue_used,
! 					  reg_dominate_bbs_known,
! 					  reg_dominate_bbs)))
  	    {
  	      /* Update stack alignment if REGNO is used for stack
  		 access.  */
diff -Nrcpad gcc-16-20260405/gcc/config/mingw/t-cygming gcc-16-20260412/gcc/config/mingw/t-cygming
*** gcc-16-20260405/gcc/config/mingw/t-cygming	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/mingw/t-cygming	Sun Apr 12 22:32:07 2026
*************** msformat-c.o: $(srcdir)/config/mingw/msf
*** 61,65 ****
    $(TM_P_H) $(HASHTAB_H) $(GGC_H)
  	$(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
  	$(srcdir)/config/mingw/msformat-c.cc
- 
- STMP_FIXINC=stmp-fixinc
--- 61,63 ----
diff -Nrcpad gcc-16-20260405/gcc/config/picolibc.opt.urls gcc-16-20260412/gcc/config/picolibc.opt.urls
*** gcc-16-20260405/gcc/config/picolibc.opt.urls	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/picolibc.opt.urls	Sun Apr 12 22:32:07 2026
***************
*** 1,2 ****
--- 1,26 ----
  ; Autogenerated by regenerate-opt-urls.py from gcc/config/picolibc.opt and generated HTML
  
+ -oslib
+ UrlSuffix(gcc/Picolibc-Options.html#index-oslib)
+ 
+ -oslib=
+ UrlSuffix(gcc/Picolibc-Options.html#index-oslib)
+ 
+ -crt0
+ UrlSuffix(gcc/Picolibc-Options.html#index-crt0)
+ 
+ -crt0=
+ UrlSuffix(gcc/Picolibc-Options.html#index-crt0)
+ 
+ -printf
+ UrlSuffix(gcc/Picolibc-Options.html#index-printf-1)
+ 
+ -printf=
+ UrlSuffix(gcc/Picolibc-Options.html#index-printf-1)
+ 
+ -scanf
+ UrlSuffix(gcc/Picolibc-Options.html#index-scanf)
+ 
+ -scanf=
+ UrlSuffix(gcc/Picolibc-Options.html#index-scanf)
+ 
diff -Nrcpad gcc-16-20260405/gcc/config/riscv/riscv-c.cc gcc-16-20260412/gcc/config/riscv/riscv-c.cc
*** gcc-16-20260405/gcc/config/riscv/riscv-c.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/riscv/riscv-c.cc	Sun Apr 12 22:32:07 2026
*************** riscv_cpu_cpp_builtins (cpp_reader *pfil
*** 139,145 ****
      {
        builtin_define ("__riscv_vector");
        builtin_define_with_int_value ("__riscv_v_intrinsic",
! 				     riscv_ext_version_value (0, 12));
  
        if (rvv_vector_bits == RVV_VECTOR_BITS_ZVL)
  	builtin_define_with_int_value ("__riscv_v_fixed_vlen", TARGET_MIN_VLEN);
--- 139,145 ----
      {
        builtin_define ("__riscv_vector");
        builtin_define_with_int_value ("__riscv_v_intrinsic",
! 				     riscv_ext_version_value (1, 0));
  
        if (rvv_vector_bits == RVV_VECTOR_BITS_ZVL)
  	builtin_define_with_int_value ("__riscv_v_fixed_vlen", TARGET_MIN_VLEN);
diff -Nrcpad gcc-16-20260405/gcc/config/riscv/riscv.cc gcc-16-20260412/gcc/config/riscv/riscv.cc
*** gcc-16-20260405/gcc/config/riscv/riscv.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/riscv/riscv.cc	Sun Apr 12 22:32:07 2026
*************** riscv_override_options_internal (struct
*** 12346,12356 ****
    /* Convert -march and -mrvv-vector-bits to a chunks count.  */
    riscv_vector_chunks = riscv_convert_vector_chunks (opts);
  
!   /* Set scalar costing to a high value such that we always pick
!      vectorization.  Increase scalar costing by 100x.  */
    if (opts->x_riscv_max_vectorization)
      SET_OPTION_IF_UNSET (&global_options, &global_options_set,
! 			 param_vect_scalar_cost_multiplier, 10000);
  
    if (opts->x_flag_cf_protection != CF_NONE)
      {
--- 12346,12356 ----
    /* Convert -march and -mrvv-vector-bits to a chunks count.  */
    riscv_vector_chunks = riscv_convert_vector_chunks (opts);
  
!   /* Enable possible unprofitable vectorization.  */
    if (opts->x_riscv_max_vectorization)
      SET_OPTION_IF_UNSET (&global_options, &global_options_set,
! 			 param_vect_allow_possibly_not_worthwhile_vectorizations,
! 			 1);
  
    if (opts->x_flag_cf_protection != CF_NONE)
      {
*************** synthesize_ior_xor (rtx_code code, rtx o
*** 15919,15925 ****
  {
    /* Trivial cases that don't need synthesis.  */
    if (SMALL_OPERAND (INTVAL (operands[2]))
!      || ((TARGET_ZBS || TARGET_ZBKB)
  	 && single_bit_mask_operand (operands[2], word_mode)))
      return false;
  
--- 15919,15925 ----
  {
    /* Trivial cases that don't need synthesis.  */
    if (SMALL_OPERAND (INTVAL (operands[2]))
!      || (TARGET_ZBS
  	 && single_bit_mask_operand (operands[2], word_mode)))
      return false;
  
diff -Nrcpad gcc-16-20260405/gcc/config/rs6000/rs6000-builtin.cc gcc-16-20260412/gcc/config/rs6000/rs6000-builtin.cc
*** gcc-16-20260405/gcc/config/rs6000/rs6000-builtin.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/rs6000/rs6000-builtin.cc	Sun Apr 12 22:32:07 2026
*************** rs6000_expand_builtin (tree exp, rtx tar
*** 3284,3289 ****
--- 3284,3391 ----
        return expand_call (exp, target, ignore);
      }
  
+   if (fcode == RS6000_BIF_PPC_ATOMIC_CAS_QI
+       || fcode == RS6000_BIF_PPC_ATOMIC_CAS_HI
+       || fcode == RS6000_BIF_PPC_ATOMIC_CAS_SI
+       || fcode == RS6000_BIF_PPC_ATOMIC_CAS_DI
+       || fcode == RS6000_BIF_PPC_ATOMIC_CAS_TI)
+     {
+       machine_mode mode; // Get mode based on BIF ID (QImode, SImode, etc.)
+ 
+       switch (fcode)
+ 	{
+ 	case RS6000_BIF_PPC_ATOMIC_CAS_QI:
+ 	  mode = QImode;
+ 	  icode = CODE_FOR_atomic_compare_and_swap_localqi;
+ 	  break;
+ 	case RS6000_BIF_PPC_ATOMIC_CAS_HI:
+ 	  mode = HImode;
+ 	  icode = CODE_FOR_atomic_compare_and_swap_localhi;
+ 	  break;
+ 	case RS6000_BIF_PPC_ATOMIC_CAS_SI:
+ 	  mode = SImode;
+ 	  icode = CODE_FOR_atomic_compare_and_swap_localsi;
+ 	  break;
+ 	case RS6000_BIF_PPC_ATOMIC_CAS_DI:
+ 	  mode = DImode;
+ 	  icode = CODE_FOR_atomic_compare_and_swap_localdi;
+ 	  break;
+ 	case RS6000_BIF_PPC_ATOMIC_CAS_TI:
+ 	  mode = TImode;
+ 	  icode = CODE_FOR_atomic_compare_and_swap_localti;
+ 	  break;
+ 	default:
+ 	  gcc_unreachable ();
+ 	}
+ 
+       // Arg 0: ptr (pointer to data)
+       rtx ptr = expand_normal (CALL_EXPR_ARG (exp, 0));
+       rtx mem = gen_rtx_MEM (mode, force_reg (Pmode, ptr));
+ 
+       // Arg 1: expected (pointer to value) -> WE MUST DEREFERENCE THIS
+       rtx exp_ptr = expand_normal (CALL_EXPR_ARG (exp, 1));
+       rtx expected_val = gen_reg_rtx (mode);
+       emit_move_insn (expected_val, gen_rtx_MEM (mode,
+ 						 force_reg (Pmode, exp_ptr)));
+ 
+       // Arg 2: desired (value), dereference this as well
+       rtx desired_ptr = expand_normal (CALL_EXPR_ARG (exp, 2));
+       rtx desired_val = gen_reg_rtx (mode);
+       emit_move_insn (desired_val,
+ 		      gen_rtx_MEM (mode, force_reg (Pmode, desired_ptr)));
+ 
+       // Args 3, 4, 5: weak, succ, fail (constants)
+       rtx weak = expand_normal (CALL_EXPR_ARG (exp, 3));
+       rtx succ = expand_normal (CALL_EXPR_ARG (exp, 4));
+       rtx fail = expand_normal (CALL_EXPR_ARG (exp, 5));
+ 
+       // 0: Boolean return (Output)
+       struct expand_operand ops[8];
+       create_output_operand (&ops[0], target, SImode);
+ 
+       // 1: Old value return (Output)
+       rtx old_val = gen_reg_rtx (mode);
+       create_output_operand (&ops[1], old_val, mode);
+ 
+       // 2: The Memory (Fixed/Input - it's a MEM rtx)
+       // We use create_fixed_operand because it's a specific MEM location
+       create_fixed_operand (&ops[2], mem);
+ 
+       // 3: Expected Value (Input)
+       create_input_operand (&ops[3], expected_val, mode);
+ 
+       // 4: Desired Value (Input)
+       create_input_operand (&ops[4], desired_val, mode);
+ 
+       // 5, 6, 7: Weak, Success, Failure (Immediate/Constants)
+       create_input_operand (&ops[5], weak, SImode);
+       create_input_operand (&ops[6], succ, SImode);
+       create_input_operand (&ops[7], fail, SImode);
+ 
+       // Now call expand_insn with the ops array
+       if (!maybe_expand_insn (icode, 8, ops))
+ 	error ("invalid arguments to builtin");
+ 
+       // Create a label for the end of the function.
+       rtx done_label = gen_label_rtx ();
+ 
+       /* Standard Semantics: Update 'expected' ONLY on failure.
+ 	 If target (the boolean result) is NOT 0, the CAS succeeded.
+ 	 In the case of success, we jump straight to the end.  */
+ 
+       // If target != 0 (Success), skip the store.
+       emit_cmp_and_jump_insns (target, const0_rtx, NE, NULL_RTX,
+ 			       SImode, 1, done_label);
+ 
+       // FAILURE PATH: This code runs only if target == 0.
+       rtx expected_mem = gen_rtx_MEM (mode, force_reg (Pmode, exp_ptr));
+       emit_move_insn (expected_mem, old_val);
+ 
+       emit_label (done_label);
+ 
+       return target;
+     }
+ 
    if (bif_is_nosoft (*bifaddr)
        && rs6000_isa_flags & OPTION_MASK_SOFT_FLOAT)
      {
diff -Nrcpad gcc-16-20260405/gcc/config/rs6000/rs6000-builtins.def gcc-16-20260412/gcc/config/rs6000/rs6000-builtins.def
*** gcc-16-20260405/gcc/config/rs6000/rs6000-builtins.def	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/rs6000/rs6000-builtins.def	Sun Apr 12 22:32:07 2026
***************
*** 246,251 ****
--- 246,262 ----
    const double __builtin_unpack_longdouble (long double, const int<1>);
      UNPACK_TF unpacktf {ibmld}
  
+ ; Builtins for ppc specific atomic compare exchange
+   bool __builtin_ppc_atomic_cas_local_qi (char *, char *, char *, const int, const int, const int);
+     PPC_ATOMIC_CAS_QI nothing {}
+   bool __builtin_ppc_atomic_cas_local_hi (short *, short *, short *, const int, const int, const int);
+     PPC_ATOMIC_CAS_HI nothing {}
+   bool __builtin_ppc_atomic_cas_local_si (int *, int *, int *, const int, const int, const int);
+     PPC_ATOMIC_CAS_SI nothing {}
+   bool __builtin_ppc_atomic_cas_local_di (long *, long *, long *, const int, const int, const int);
+     PPC_ATOMIC_CAS_DI nothing {}
+   bool __builtin_ppc_atomic_cas_local_ti (vsq *, vsq *, vsq *, const int, const int, const int);
+     PPC_ATOMIC_CAS_TI nothing {}
  
  ; Builtins that have been around just about forever, but not quite.
  [power5]
diff -Nrcpad gcc-16-20260405/gcc/config/rs6000/rs6000-c.cc gcc-16-20260412/gcc/config/rs6000/rs6000-c.cc
*** gcc-16-20260405/gcc/config/rs6000/rs6000-c.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/rs6000/rs6000-c.cc	Sun Apr 12 22:32:07 2026
*************** altivec_build_resolved_builtin (tree *ar
*** 900,906 ****
  
    /* If the number of arguments to an overloaded function increases,
       we must expand this switch.  */
!   gcc_assert (MAX_OVLD_ARGS <= 4);
  
    tree call;
    switch (n)
--- 900,906 ----
  
    /* If the number of arguments to an overloaded function increases,
       we must expand this switch.  */
!   gcc_assert (MAX_OVLD_ARGS <= 6);
  
    tree call;
    switch (n)
*************** altivec_build_resolved_builtin (tree *ar
*** 920,925 ****
--- 920,933 ----
      case 4:
        call = build_call_expr (fndecl, 4, args[0], args[1], args[2], args[3]);
        break;
+     case 5:
+       call = build_call_expr (fndecl, 5, args[0], args[1], args[2], args[3],
+ 			      args[4]);
+       break;
+     case 6:
+       call = build_call_expr (fndecl, 6, args[0], args[1], args[2], args[3],
+ 			      args[4], args[5]);
+       break;
      default:
        gcc_unreachable ();
      }
diff -Nrcpad gcc-16-20260405/gcc/config/rs6000/rs6000-overload.def gcc-16-20260412/gcc/config/rs6000/rs6000-overload.def
*** gcc-16-20260405/gcc/config/rs6000/rs6000-overload.def	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/rs6000/rs6000-overload.def	Sun Apr 12 22:32:07 2026
***************
*** 79,84 ****
--- 79,106 ----
  ; a semicolon are also treated as blank lines.
  
  
+ [PPC_ATOMIC_CAS, SKIP, __builtin_ppc_atomic_cas_local]
+   bool __builtin_ppc_atomic_cas_local (signed char *, signed char *, signed char *, const int, const int, const int);
+     PPC_ATOMIC_CAS_QI PPC_ATOMIC_CAS_SQI
+   bool __builtin_ppc_atomic_cas_local (unsigned char *, unsigned char *, unsigned char *, const int, const int, const int);
+     PPC_ATOMIC_CAS_QI PPC_ATOMIC_CAS_UQI
+   bool __builtin_ppc_atomic_cas_local (signed short *, signed short *, signed short *, const int, const int, const int);
+     PPC_ATOMIC_CAS_HI PPC_ATOMIC_CAS_SHI
+   bool __builtin_ppc_atomic_cas_local (unsigned short *, unsigned short *, unsigned short *, const int, const int, const int);
+     PPC_ATOMIC_CAS_HI PPC_ATOMIC_CAS_UHI
+   bool __builtin_ppc_atomic_cas_local (signed int *, signed int *, signed int *, const int, const int, const int);
+     PPC_ATOMIC_CAS_SI PPC_ATOMIC_CAS_SSI
+   bool __builtin_ppc_atomic_cas_local (unsigned int *, unsigned int *, unsigned int *, const int, const int, const int);
+     PPC_ATOMIC_CAS_SI PPC_ATOMIC_CAS_USI
+   bool __builtin_ppc_atomic_cas_local (signed long *, signed long *, signed long *, const int, const int, const int);
+     PPC_ATOMIC_CAS_DI PPC_ATOMIC_CAS_SDI
+   bool __builtin_ppc_atomic_cas_local (unsigned long *, unsigned long *, unsigned long *, const int, const int, const int);
+     PPC_ATOMIC_CAS_DI PPC_ATOMIC_CAS_UDI
+   bool __builtin_ppc_atomic_cas_local (vsq *, vsq *, vsq *, const int, const int, const int);
+     PPC_ATOMIC_CAS_TI PPC_ATOMIC_CAS_STI
+   bool __builtin_ppc_atomic_cas_local (vuq *, vuq *, vuq *, const int, const int, const int);
+     PPC_ATOMIC_CAS_TI PPC_ATOMIC_CAS_UTI
+ 
  [BCDADD, __builtin_bcdadd, __builtin_vec_bcdadd]
    vsq __builtin_vec_bcdadd (vsq, vsq, const int);
      BCDADD_V1TI
diff -Nrcpad gcc-16-20260405/gcc/config/rs6000/rs6000-protos.h gcc-16-20260412/gcc/config/rs6000/rs6000-protos.h
*** gcc-16-20260405/gcc/config/rs6000/rs6000-protos.h	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/rs6000/rs6000-protos.h	Sun Apr 12 22:32:07 2026
*************** extern bool rs6000_emit_set_const (rtx,
*** 127,133 ****
  extern bool rs6000_emit_cmove (rtx, rtx, rtx, rtx);
  extern bool rs6000_emit_int_cmove (rtx, rtx, rtx, rtx);
  extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx);
! extern void rs6000_expand_atomic_compare_and_swap (rtx op[]);
  extern rtx swap_endian_selector_for_mode (machine_mode mode);
  
  extern void rs6000_expand_atomic_exchange (rtx op[]);
--- 127,133 ----
  extern bool rs6000_emit_cmove (rtx, rtx, rtx, rtx);
  extern bool rs6000_emit_int_cmove (rtx, rtx, rtx, rtx);
  extern void rs6000_emit_minmax (rtx, enum rtx_code, rtx, rtx);
! extern void rs6000_expand_atomic_compare_and_swap (rtx op[], bool local);
  extern rtx swap_endian_selector_for_mode (machine_mode mode);
  
  extern void rs6000_expand_atomic_exchange (rtx op[]);
diff -Nrcpad gcc-16-20260405/gcc/config/rs6000/rs6000.cc gcc-16-20260412/gcc/config/rs6000/rs6000.cc
*** gcc-16-20260405/gcc/config/rs6000/rs6000.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/rs6000/rs6000.cc	Sun Apr 12 22:32:07 2026
*************** emit_unlikely_jump (rtx cond, rtx label)
*** 16746,16757 ****
  
  /* A subroutine of the atomic operation splitters.  Emit a load-locked
     instruction in MODE.  For QI/HImode, possibly use a pattern than includes
!    the zero_extend operation.  */
  
  static void
! emit_load_locked (machine_mode mode, rtx reg, rtx mem)
  {
!   rtx (*fn) (rtx, rtx) = NULL;
  
    switch (mode)
      {
--- 16746,16758 ----
  
  /* A subroutine of the atomic operation splitters.  Emit a load-locked
     instruction in MODE.  For QI/HImode, possibly use a pattern than includes
!    the zero_extend operation.  LOCAL indicates the EH bit value for the
!    load-locked instruction.  */
  
  static void
! emit_load_locked (machine_mode mode, rtx reg, rtx mem, rtx local)
  {
!   rtx (*fn) (rtx, rtx, rtx) = NULL;
  
    switch (mode)
      {
*************** emit_load_locked (machine_mode mode, rtx
*** 16778,16784 ****
      default:
        gcc_unreachable ();
      }
!   emit_insn (fn (reg, mem));
  }
  
  /* A subroutine of the atomic operation splitters.  Emit a store-conditional
--- 16779,16785 ----
      default:
        gcc_unreachable ();
      }
!   emit_insn (fn (reg, mem, local));
  }
  
  /* A subroutine of the atomic operation splitters.  Emit a store-conditional
*************** rs6000_finish_atomic_subword (rtx narrow
*** 16948,16954 ****
  /* Expand an atomic compare and swap operation.  */
  
  void
! rs6000_expand_atomic_compare_and_swap (rtx operands[])
  {
    rtx boolval, retval, mem, oldval, newval, cond;
    rtx label1, label2, x, mask, shift;
--- 16949,16955 ----
  /* Expand an atomic compare and swap operation.  */
  
  void
! rs6000_expand_atomic_compare_and_swap (rtx operands[], bool local)
  {
    rtx boolval, retval, mem, oldval, newval, cond;
    rtx label1, label2, x, mask, shift;
*************** rs6000_expand_atomic_compare_and_swap (r
*** 17011,17017 ****
      }
    label2 = gen_rtx_LABEL_REF (VOIDmode, gen_label_rtx ());
  
!   emit_load_locked (mode, retval, mem);
  
    x = retval;
    if (mask)
--- 17012,17018 ----
      }
    label2 = gen_rtx_LABEL_REF (VOIDmode, gen_label_rtx ());
  
!   emit_load_locked (mode, retval, mem, local ? const1_rtx : const0_rtx);
  
    x = retval;
    if (mask)
*************** rs6000_expand_atomic_exchange (rtx opera
*** 17109,17115 ****
    label = gen_rtx_LABEL_REF (VOIDmode, gen_label_rtx ());
    emit_label (XEXP (label, 0));
  
!   emit_load_locked (mode, retval, mem);
  
    x = val;
    if (mask)
--- 17110,17116 ----
    label = gen_rtx_LABEL_REF (VOIDmode, gen_label_rtx ());
    emit_label (XEXP (label, 0));
  
!   emit_load_locked (mode, retval, mem, const0_rtx);
  
    x = val;
    if (mask)
*************** rs6000_expand_atomic_op (enum rtx_code c
*** 17214,17220 ****
    if (before == NULL_RTX)
      before = gen_reg_rtx (mode);
  
!   emit_load_locked (mode, before, mem);
  
    if (code == NOT)
      {
--- 17215,17221 ----
    if (before == NULL_RTX)
      before = gen_reg_rtx (mode);
  
!   emit_load_locked (mode, before, mem, const0_rtx);
  
    if (code == NOT)
      {
diff -Nrcpad gcc-16-20260405/gcc/config/rs6000/sync.md gcc-16-20260412/gcc/config/rs6000/sync.md
*** gcc-16-20260405/gcc/config/rs6000/sync.md	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/config/rs6000/sync.md	Sun Apr 12 22:32:07 2026
***************
*** 278,294 ****
  (define_insn "load_locked<mode>"
    [(set (match_operand:ATOMIC 0 "int_reg_operand" "=r")
  	(unspec_volatile:ATOMIC
!          [(match_operand:ATOMIC 1 "memory_operand" "Z")] UNSPECV_LL))]
    ""
!   "<larx> %0,%y1"
    [(set_attr "type" "load_l")])
  
  (define_insn "load_locked<QHI:mode>_si"
    [(set (match_operand:SI 0 "int_reg_operand" "=r")
  	(unspec_volatile:SI
! 	  [(match_operand:QHI 1 "memory_operand" "Z")] UNSPECV_LL))]
    "TARGET_SYNC_HI_QI"
!   "<QHI:larx> %0,%y1"
    [(set_attr "type" "load_l")])
  
  ;; Use PTImode to get even/odd register pairs.
--- 278,296 ----
  (define_insn "load_locked<mode>"
    [(set (match_operand:ATOMIC 0 "int_reg_operand" "=r")
  	(unspec_volatile:ATOMIC
! 	  [(match_operand:ATOMIC 1 "memory_operand" "Z")
! 	   (match_operand:QI 2 "u1bit_cint_operand" "n")] UNSPECV_LL))]
    ""
!   "<larx> %0,%y1,%2"
    [(set_attr "type" "load_l")])
  
  (define_insn "load_locked<QHI:mode>_si"
    [(set (match_operand:SI 0 "int_reg_operand" "=r")
  	(unspec_volatile:SI
! 	  [(match_operand:QHI 1 "memory_operand" "Z")
! 	   (match_operand:QI 2 "u1bit_cint_operand" "n")] UNSPECV_LL))]
    "TARGET_SYNC_HI_QI"
!   "<QHI:larx> %0,%y1,%2"
    [(set_attr "type" "load_l")])
  
  ;; Use PTImode to get even/odd register pairs.
***************
*** 302,308 ****
  
  (define_expand "load_lockedti"
    [(use (match_operand:TI 0 "quad_int_reg_operand"))
!    (use (match_operand:TI 1 "memory_operand"))]
    "TARGET_SYNC_TI"
  {
    rtx op0 = operands[0];
--- 304,311 ----
  
  (define_expand "load_lockedti"
    [(use (match_operand:TI 0 "quad_int_reg_operand"))
!    (use (match_operand:TI 1 "memory_operand"))
!    (use (match_operand:QI 2 "u1bit_cint_operand"))]
    "TARGET_SYNC_TI"
  {
    rtx op0 = operands[0];
***************
*** 316,322 ****
        operands[1] = op1 = change_address (op1, TImode, new_addr);
      }
  
!   emit_insn (gen_load_lockedpti (pti, op1));
    if (WORDS_BIG_ENDIAN)
      emit_move_insn (op0, gen_lowpart (TImode, pti));
    else
--- 319,325 ----
        operands[1] = op1 = change_address (op1, TImode, new_addr);
      }
  
!   emit_insn (gen_load_lockedpti (pti, op1, operands[2]));
    if (WORDS_BIG_ENDIAN)
      emit_move_insn (op0, gen_lowpart (TImode, pti));
    else
***************
*** 330,340 ****
  (define_insn "load_lockedpti"
    [(set (match_operand:PTI 0 "quad_int_reg_operand" "=&r")
  	(unspec_volatile:PTI
!          [(match_operand:TI 1 "indexed_or_indirect_operand" "Z")] UNSPECV_LL))]
    "TARGET_SYNC_TI
     && !reg_mentioned_p (operands[0], operands[1])
     && quad_int_reg_operand (operands[0], PTImode)"
!   "lqarx %0,%y1"
    [(set_attr "type" "load_l")
     (set_attr "size" "128")])
  
--- 333,344 ----
  (define_insn "load_lockedpti"
    [(set (match_operand:PTI 0 "quad_int_reg_operand" "=&r")
  	(unspec_volatile:PTI
! 	  [(match_operand:TI 1 "indexed_or_indirect_operand" "Z")
! 	   (match_operand:QI 2 "u1bit_cint_operand" "n")] UNSPECV_LL))]
    "TARGET_SYNC_TI
     && !reg_mentioned_p (operands[0], operands[1])
     && quad_int_reg_operand (operands[0], PTImode)"
!   "lqarx %0,%y1,%2"
    [(set_attr "type" "load_l")
     (set_attr "size" "128")])
  
***************
*** 411,417 ****
     (match_operand:SI 7 "const_int_operand")]		;; model fail
    ""
  {
!   rs6000_expand_atomic_compare_and_swap (operands);
    DONE;
  })
  
--- 415,436 ----
     (match_operand:SI 7 "const_int_operand")]		;; model fail
    ""
  {
!   rs6000_expand_atomic_compare_and_swap (operands, false);
!   DONE;
! })
! 
! (define_expand "atomic_compare_and_swap_local<mode>"
!   [(match_operand:SI 0 "int_reg_operand")		;; bool out
!    (match_operand:AINT 1 "int_reg_operand")		;; val out
!    (match_operand:AINT 2 "memory_operand")		;; memory
!    (match_operand:AINT 3 "reg_or_short_operand")	;; expected
!    (match_operand:AINT 4 "int_reg_operand")		;; desired
!    (match_operand:SI 5 "const_int_operand")		;; is_weak
!    (match_operand:SI 6 "const_int_operand")		;; model succ
!    (match_operand:SI 7 "const_int_operand")]		;; model fail
!   ""
! {
!   rs6000_expand_atomic_compare_and_swap (operands, true);
    DONE;
  })
  
diff -Nrcpad gcc-16-20260405/gcc/configure gcc-16-20260412/gcc/configure
*** gcc-16-20260405/gcc/configure	Sun Apr  5 22:32:20 2026
--- gcc-16-20260412/gcc/configure	Sun Apr 12 22:32:20 2026
*************** ac_includes_default="\
*** 632,637 ****
--- 632,639 ----
  gt_needs=
  ac_subst_vars='LTLIBOBJS
  LIBOBJS
+ AFDO_PROFILER
+ PERF
  CET_HOST_FLAGS
  LD_PICFLAG
  PICFLAG
*************** else
*** 21973,21979 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 21976 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 21975,21981 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 21978 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** else
*** 22079,22085 ****
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 22082 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
--- 22081,22087 ----
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
! #line 22084 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
*************** cat >>confdefs.h <<_ACEOF
*** 35255,35260 ****
--- 35257,35328 ----
  _ACEOF
  
  
+ # Extract the first word of "perf", so it can be a program name with args.
+ set dummy perf; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+ $as_echo_n "checking for $ac_word... " >&6; }
+ if ${ac_cv_path_PERF+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   case $PERF in
+   [\\/]* | ?:[\\/]*)
+   ac_cv_path_PERF="$PERF" # Let the user override the test with a path.
+   ;;
+   *)
+   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ for as_dir in $PATH
+ do
+   IFS=$as_save_IFS
+   test -z "$as_dir" && as_dir=.
+     for ac_exec_ext in '' $ac_executable_extensions; do
+   if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+     ac_cv_path_PERF="$as_dir/$ac_word$ac_exec_ext"
+     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+     break 2
+   fi
+ done
+   done
+ IFS=$as_save_IFS
+ 
+   test -z "$ac_cv_path_PERF" && ac_cv_path_PERF="no"
+   ;;
+ esac
+ fi
+ PERF=$ac_cv_path_PERF
+ if test -n "$PERF"; then
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERF" >&5
+ $as_echo "$PERF" >&6; }
+ else
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+ 
+ 
+ AFDO_PROFILER=perf
+ if test x$PERF != xno; then
+   case "$cpu_type" in
+     aarch64)
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking AArch64 build supports SPE profiling for autoprofiledbootstrap" >&5
+ $as_echo_n "checking AArch64 build supports SPE profiling for autoprofiledbootstrap... " >&6; }
+       aarch64_spe_support=no
+       if test -x $PERF; then
+ 	# Do not use perf_spe if BRBE is supported
+ 	if test ! -n "$($PERF record -j any,u -o /dev/null /bin/true 2>&1 | grep "PMU Hardware or event type doesn't support branch stack sampling.")"; then
+ 	  AFDO_PROFILER=perf
+ 	  aarch64_spe_support="using BRBE instead"
+ 	elif test -n "$($PERF list | grep arm_spe)"; then
+ 	  AFDO_PROFILER=perf_spe
+ 	  aarch64_spe_support=yes
+ 	fi
+       fi
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $aarch64_spe_support" >&5
+ $as_echo "$aarch64_spe_support" >&6; }
+       ;;
+   esac
+ fi
+ 
+ 
+ 
  # Check if the linker supports '-z now'
  ld_now_support=no
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker -z now option" >&5
diff -Nrcpad gcc-16-20260405/gcc/configure.ac gcc-16-20260412/gcc/configure.ac
*** gcc-16-20260405/gcc/configure.ac	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/configure.ac	Sun Apr 12 22:32:07 2026
*************** gif=`if test x$enable_x86_64_mfentry = x
*** 7904,7909 ****
--- 7904,7933 ----
  AC_DEFINE_UNQUOTED(ENABLE_X86_64_MFENTRY, $gif,
  [Define to enable -mfentry by default on x86-64.])
  
+ AC_PATH_PROG(PERF, perf, no)
+ AFDO_PROFILER=perf
+ if test x$PERF != xno; then
+   case "$cpu_type" in
+     aarch64)
+       AC_MSG_CHECKING(AArch64 build supports SPE profiling for autoprofiledbootstrap)
+       aarch64_spe_support=no
+       if test -x $PERF; then
+ 	# Do not use perf_spe if BRBE is supported
+ 	if test ! -n "$($PERF record -j any,u -o /dev/null /bin/true 2>&1 | grep "PMU Hardware or event type doesn't support branch stack sampling.")"; then
+ 	  AFDO_PROFILER=perf
+ 	  aarch64_spe_support="using BRBE instead"
+ 	elif test -n "$($PERF list | grep arm_spe)"; then
+ 	  AFDO_PROFILER=perf_spe
+ 	  aarch64_spe_support=yes
+ 	fi
+       fi
+       AC_MSG_RESULT($aarch64_spe_support)
+       ;;
+   esac
+ fi
+ AC_SUBST(PERF)
+ AC_SUBST(AFDO_PROFILER)
+ 
  # Check if the linker supports '-z now'
  ld_now_support=no
  AC_MSG_CHECKING(linker -z now option)
diff -Nrcpad gcc-16-20260405/gcc/coverage.cc gcc-16-20260412/gcc/coverage.cc
*** gcc-16-20260405/gcc/coverage.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/coverage.cc	Sun Apr 12 22:32:07 2026
*************** coverage_init (const char *filename)
*** 1343,1349 ****
    strcpy (da_file_name + prefix_len + len, GCOV_DATA_SUFFIX);
  
    bbg_file_stamp = local_tick;
!   if (flag_branch_probabilities)
      read_counts_file ();
  
    /* Name of bbg file.  */
--- 1343,1349 ----
    strcpy (da_file_name + prefix_len + len, GCOV_DATA_SUFFIX);
  
    bbg_file_stamp = local_tick;
!   if (flag_branch_probabilities && !flag_auto_profile)
      read_counts_file ();
  
    /* Name of bbg file.  */
diff -Nrcpad gcc-16-20260405/gcc/cp/ChangeLog gcc-16-20260412/gcc/cp/ChangeLog
*** gcc-16-20260405/gcc/cp/ChangeLog	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/ChangeLog	Sun Apr 12 22:32:07 2026
***************
*** 1,3 ****
--- 1,252 ----
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124831
+ 	* reflect.cc (namespace_members_of): Append reflection of anon unions
+ 	when we see it first time as CP_DECL_CONTEXT of some CONST_DECL in
+ 	the namespace.
+ 
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124792
+ 	* pt.cc (get_template_parm_object): Call unshare_expr_without_location
+ 	on expr if check_init.
+ 
+ 2026-04-09  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123998
+ 	* cp-tree.h (SPLICE_EXPR_TEMPLATE_P): Define.
+ 	(SET_SPLICE_EXPR_TEMPLATE_P): Define.
+ 	(SPLICE_EXPR_TARGS_P): Define.
+ 	(SET_SPLICE_EXPR_TARGS_P): Define.
+ 	(check_splice_expr): Adjust.
+ 	* parser.cc (cp_parser_splice_expression): Do
+ 	SET_SPLICE_EXPR_TEMPLATE_P and SET_SPLICE_EXPR_TARGS_P.  Adjust
+ 	the call to check_splice_expr.  Move the template_p checking into
+ 	check_splice_expr.
+ 	* pt.cc (tsubst_splice_expr): Do SET_SPLICE_EXPR_TEMPLATE_P and
+ 	SET_SPLICE_EXPR_TARGS_P.  Adjust the call to check_splice_expr.
+ 	* reflect.cc (eval_constant_of): Adjust the call to
+ 	check_splice_expr.
+ 	(check_splice_expr): Two new bool parameters.  Add the template_p
+ 	checking from cp_parser_splice_expression.  Allow
+ 	variable_template_p in the assert.  Add a check for
+ 	DECL_TYPE_TEMPLATE_P.
+ 
+ 2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Make-lang.in (create_fdas_for_cc1plus): Use $(AFDO_PROFILER) when
+ 	passing --profiler to create_gcov. Ensure that perf.data contains
+ 	profile for cc1plus. Make the console output more useful.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 	    Boris Staletic  <boris.staletic@protonmail.com>
+ 
+ 	PR c++/123726
+ 	* reflect.cc (check_splice_expr): Detect accessing a class template
+ 	or alias template with . or ->.
+ 	* typeck.cc (finish_class_member_access_expr): Check if the scope of
+ 	the spliced entity in a member access expression is of a class type.
+ 	Allow variable_template_p for context_for_name_lookup.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124457
+ 	* parser.cc (cp_parser_reflect_expression): Check is_auto here
+ 	instead of...
+ 	* reflect.cc (get_reflection): ...here.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 	    Boris Staletic  <boris.staletic@protonmail.com>
+ 
+ 	PR c++/124177
+ 	* tree.cc (handle_annotation_attribute): Decay annotation
+ 	values.  Turn if !type_dependent_expression_p into an assert.
+ 
+ 2026-04-08  Yang Kun  <yangkun@disroot.org>
+ 
+ 	* pt.cc (tsubst_expr): Use gcc_unreachable, not gcc_assert.
+ 	* parser.cc (cp_parser_template_id): Likewise.
+ 	* reflect.cc (eval_template_of): Likewise.
+ 
+ 2026-04-08  Yang Kun  <yangkun@disroot.org>
+ 
+ 	* reflect.cc (eval_current_function): Add missing return.
+ 	(eval_current_class): Likewise.
+ 
+ 2026-04-08  Yang Kun  <yangkun@disroot.org>
+ 
+ 	* reflect.cc (eval_display_string_of): Fix copy-paste error in exception
+ 	messages.
+ 
+ 2026-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* parser.cc (cp_parser_omp_loop_nest): Write orig_declv, not incrv.
+ 
+ 2026-04-08  Yang Kun  <yangkun@disroot.org>
+ 
+ 	* parser.cc (cp_parser_omp_clause_proc_bind): Fix error message
+ 	(cp_parser_omp_clause_device_type): Likewise.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124617
+ 	* parser.cc (cp_parser_reflect_expression): Call baselink_for_fns.
+ 
+ 2026-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* constraint.cc (diagnose_trait_expr): Remove CPTK_IS_CONSTEVAL_ONLY
+ 	handling.
+ 	* metafns.gperf (enum metafn_code): Remove
+ 	METAFN_IS_CONSTEVAL_ONLY_TYPE.
+ 	(is_consteval_only_type): Remove.
+ 	* semantics.cc (trait_expr_value, finish_trait_expr): Remove
+ 	CPTK_IS_CONSTEVAL_ONLY handling.
+ 	* cp-trait.def (__builtin_is_consteval_only): Remove.
+ 	* metafns.h: Regenerate.
+ 	* reflect.cc (eval_is_consteval_only_type): Remove.
+ 	(process_metafunction): Don't handle METAFN_IS_CONSTEVAL_ONLY_TYPE.
+ 
+ 2026-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* decl.cc (cp_finish_decomp): Implement CWG3135 - constexpr structured
+ 	bindings with prvalues from tuples (as a DR).  Don't call
+ 	cp_build_reference_type if init is prvalue.
+ 
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123700
+ 	* pt.cc (dependent_opaque_alias_p): Return true for a
+ 	template-id typedef with a lambda targ.
+ 
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123529
+ 	PR c++/98930
+ 	* pt.cc (has_value_dependent_address): Correct context
+ 	dependence check for a static local variable.
+ 
+ 2026-04-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* cp-tree.h: Implement C++26 CWG3140 - Allowing expansion over
+ 	non-constant std::array.
+ 	(cp_build_range_for_decls): Change last argument from bool to tree.
+ 	(build_range_temp): Likewise and default it to NULL_TREE rather than
+ 	false.
+ 	* parser.cc (build_range_temp): Remove expansion_stmt_p
+ 	argument, add expansion_stmt_decl.  Don't call cp_build_qualified_type
+ 	if expansion_stmt_decl was not declared constexpr.
+ 	(cp_build_range_for_decls): Remove expansion_stmt_p argument, add
+ 	expansion_stmt_decl.  Pass expansion_stmt_decl to build_range_temp.
+ 	Don't set TREE_STATIC, TREE_PUBLIC, DECL_COMMON, DECL_INTERFACE_KNOWN,
+ 	DECL_DECLARED_CONSTEXPR_P and TREE_READONLY on range_temp if
+ 	expansion_stmt_decl was not declared constexpr.  Don't call
+ 	cp_build_qualified_type on begin type nor set TREE_STATIC etc. on begin
+ 	if expansion_stmt_decl was not declared constexpr.  If
+ 	expansion_stmt_decl is non-NULL, don't build end at all, instead pass
+ 	begin_expr and end_expr in end_p[0] and end_p[1] to the caller.
+ 	(cp_convert_range_for): Adjust cp_build_range_for_decls caller.
+ 	* pt.cc (finish_expansion_stmt): Likewise.  Use begin_expr and end_expr
+ 	instead of begin and end variables from cp_build_range_for_decls,
+ 	make them non-constant and avoid spurious -Wunused-result/nodiscard
+ 	diagnostics.
+ 
+ 2026-04-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124487
+ 	* mangle.cc (write_type) <case PACK_INDEX_TYPE>: Handle even
+ 	the case of partially substituted pack.
+ 	(write_expression): Similarly for PACK_INDEX_EXPR.
+ 
+ 2026-04-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124790
+ 	* reflect.cc (get_reflection): When reflecting VAR_DECL or PARM_DECL,
+ 	call mark_exp_read on it.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR libstdc++/124268
+ 	* module.cc (instantiating_tu_local_entity): Use pedwarn instead
+ 	of warning.
+ 	(depset::hash::add_binding_entity): Don't skip exported
+ 	using-decls as TU-local entities.
+ 	(depset::hash::finalize_dependencies): Don't attempt to complain
+ 	again about using-decls referencing TU-local entities.
+ 	* name-lookup.cc (check_can_export_using_decl): Demote the error
+ 	to a warning for using-decls of GMF vars or functions.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124735
+ 	* module.cc (trees_in::is_matching_decl): Handle importing
+ 	undeduced auto when existing is already deduced.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124781
+ 	* module.cc (set_originating_module): Add a function comment,
+ 	only set attachment/exporting for entities with non-NULL
+ 	DECL_CONTEXT.
+ 	(check_module_decl_linkage): Use decl_anon_ns_mem_p instead of
+ 	decl_internal_context_p.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124785
+ 	* module.cc (trees_in::is_matching_decl): Narrow condition for
+ 	when noexcept propagation occurs; assert that we don't propagate
+ 	noexcept-specs for TEMPLATE_DECLs.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/118630
+ 	* module.cc (depset::hash::add_dependency): Correct entry point
+ 	corection for recursive clusters.
+ 
+ 2026-04-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124488
+ 	* parser.cc (cp_parser_expansion_statement): Set
+ 	DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P, DECL_DEPENDENT_INIT_P and
+ 	if maybe constant non-reference TREE_CONSTANT on range_decl.
+ 	* pt.cc (tsubst_stmt) <case TEMPLATE_FOR_STMT>: Set
+ 	DECL_DEPENDENT_INIT_P on decl.
+ 
+ 2026-04-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* decl.cc (grokfndecl): For -freflection mark annotations of
+ 	PARM_DECLs in a function definition.
+ 	* reflect.cc (eval_annotations_of): Allow annotations_of on
+ 	function parameters.  For r which is a PARM_DECL without REFLECT_PARM,
+ 	filter out annotations not marked by grokfndecl.
+ 	(reflection_mangle_prefix): Preserve the grokfndecl marking of
+ 	annotations during mangling.
+ 
+ 2026-04-06  Eczbek  <eczbek.void@gmail.com>
+ 
+ 	PR c++/123087
+ 	* typeck.cc (cp_build_unary_op): For TRUTH_NOT_EXPR, replace
+ 	call to perform_implicit_conversion with call to
+ 	contextual_conv_bool.
+ 
+ 2026-04-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124689
+ 	* metafns.gperf (enum metafn_kind): Add
+ 	METAFN_KIND_BOOL_INFO_REFLECTION_RANGE.
+ 	(can_substitute): Use METAFN_KIND_BOOL_INFO_REFLECTION_RANGE
+ 	instead of METAFN_KIND_INFO_INFO_REFLECTION_RANGE.
+ 	(METAFN_KIND_ARG): Add MINFO argument.
+ 	(METAFN_KIND_RET): Define.
+ 	* reflect.cc (is_std_meta_class): New function.
+ 	(get_info): Add LOC argument, diagnose invalid argument type instead
+ 	of failing assertion.
+ 	(check_metafn_arg_type): New function.
+ 	(check_metafn_return_type): New function.
+ 	(process_metafunction): Diagnose clearly invalid return
+ 	or argument types.  Use rettype variable instead of TREE_TYPE (call).
+ 	* metafns.h: Regenerate.
+ 
  2026-04-04  Roger Sayle  <roger@nextmovesoftware.com>
  
  	PR c++/124573
diff -Nrcpad gcc-16-20260405/gcc/cp/Make-lang.in gcc-16-20260412/gcc/cp/Make-lang.in
*** gcc-16-20260405/gcc/cp/Make-lang.in	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/Make-lang.in	Sun Apr 12 22:32:07 2026
*************** cc1plus.fda: create_fdas_for_cc1plus
*** 215,235 ****
  create_fdas_for_cc1plus: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version `../prev-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
  	  fi; \
  	done;
  
--- 215,241 ----
  create_fdas_for_cc1plus: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/cc1plus$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo "  warning: $$perf_path is missing cc1plus!"; \
! 	    fi; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=cc1plus_$$component_in_prev_target.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/cc1plus$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../prev-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../prev-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo " warning: $$perf_path is missing cc1plus!"; \
! 	    fi; \
  	  fi; \
  	done;
  
diff -Nrcpad gcc-16-20260405/gcc/cp/constraint.cc gcc-16-20260412/gcc/cp/constraint.cc
*** gcc-16-20260405/gcc/cp/constraint.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/constraint.cc	Sun Apr 12 22:32:07 2026
*************** diagnose_trait_expr (location_t loc, tre
*** 3354,3362 ****
      case CPTK_IS_VOLATILE:
        inform (loc, "%qT is not a volatile type", t1);
        break;
-     case CPTK_IS_CONSTEVAL_ONLY:
-       inform (decl_loc, "%qT is not consteval-only", t1);
-       break;
      case CPTK_IS_STRUCTURAL:
        inform (decl_loc, "%qT is not a structural type", t1);
        structural_type_p (t1, /*explain=*/true);
--- 3354,3359 ----
diff -Nrcpad gcc-16-20260405/gcc/cp/cp-trait.def gcc-16-20260412/gcc/cp/cp-trait.def
*** gcc-16-20260405/gcc/cp/cp-trait.def	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/cp-trait.def	Sun Apr 12 22:32:07 2026
*************** DEFTRAIT_EXPR (IS_BASE_OF, "__is_base_of
*** 69,75 ****
  DEFTRAIT_EXPR (IS_BOUNDED_ARRAY, "__is_bounded_array", 1)
  DEFTRAIT_EXPR (IS_CLASS, "__is_class", 1)
  DEFTRAIT_EXPR (IS_CONST, "__is_const", 1)
- DEFTRAIT_EXPR (IS_CONSTEVAL_ONLY, "__builtin_is_consteval_only", 1)
  DEFTRAIT_EXPR (IS_CONSTRUCTIBLE, "__is_constructible", -1)
  DEFTRAIT_EXPR (IS_CONVERTIBLE, "__is_convertible", 2)
  DEFTRAIT_EXPR (IS_DESTRUCTIBLE, "__is_destructible", 1)
--- 69,74 ----
diff -Nrcpad gcc-16-20260405/gcc/cp/cp-tree.h gcc-16-20260412/gcc/cp/cp-tree.h
*** gcc-16-20260405/gcc/cp/cp-tree.h	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/cp-tree.h	Sun Apr 12 22:32:07 2026
*************** extern GTY(()) tree cp_global_trees[CPTI
*** 522,527 ****
--- 522,528 ----
        TARGET_EXPR_ELIDING_P (in TARGET_EXPR)
        IF_STMT_VACUOUS_INIT_P (IF_STMT)
        TYPENAME_IS_RESOLVING_P (in TYPENAME_TYPE)
+       SPLICE_EXPR_TEMPLATE_P (in SPLICE_EXPR)
     4: IDENTIFIER_MARKED (IDENTIFIER_NODEs)
        TREE_HAS_CONSTRUCTOR (in INDIRECT_REF, SAVE_EXPR, CONSTRUCTOR,
  	  CALL_EXPR, or FIELD_DECL).
*************** extern GTY(()) tree cp_global_trees[CPTI
*** 533,538 ****
--- 534,540 ----
        TARGET_EXPR_INTERNAL_P (in TARGET_EXPR)
        CONTRACT_CONST (in ASSERTION_, PRECONDITION_, POSTCONDITION_STMT)
        DECL_HAS_DEFAULT_ARGUMENT_P (in PARM_DECL)
+       SPLICE_EXPR_TARGS_P (in SPLICE_EXPR)
     5: IDENTIFIER_VIRTUAL_P (in IDENTIFIER_NODE)
        FUNCTION_RVALUE_QUALIFIED (in FUNCTION_TYPE, METHOD_TYPE)
        CALL_EXPR_REVERSE_ARGS (in CALL_EXPR, AGGR_INIT_EXPR)
*************** enum reflect_kind : addr_space_t {
*** 1979,1984 ****
--- 1981,2004 ----
    (SPLICE_EXPR_ADDRESS_P (TREE_CODE (NODE) == SPLICE_EXPR \
  			  ? NODE : TREE_OPERAND (NODE, 0)) = (VAL))
  
+ /* True if this SPLICE_EXPR was decorated with 'template'.  */
+ #define SPLICE_EXPR_TEMPLATE_P(NODE) \
+    TREE_LANG_FLAG_3 (SPLICE_EXPR_CHECK (NODE))
+ 
+ /* Helper macro to set SPLICE_EXPR_TEMPLATE_P.  */
+ #define SET_SPLICE_EXPR_TEMPLATE_P(NODE, VAL) \
+   (SPLICE_EXPR_TEMPLATE_P (TREE_CODE (NODE) == SPLICE_EXPR \
+ 			   ? NODE : TREE_OPERAND (NODE, 0)) = (VAL))
+ 
+ /* True if this SPLICE_EXPR has template arguments.  */
+ #define SPLICE_EXPR_TARGS_P(NODE) \
+    TREE_LANG_FLAG_4 (SPLICE_EXPR_CHECK (NODE))
+ 
+ /* Helper macro to set SPLICE_EXPR_TARGS_P.  */
+ #define SET_SPLICE_EXPR_TARGS_P(NODE, VAL) \
+   (SPLICE_EXPR_TARGS_P (TREE_CODE (NODE) == SPLICE_EXPR \
+ 			? NODE : TREE_OPERAND (NODE, 0)) = (VAL))
+ 
  /* The expression in question for a SPLICE_SCOPE.  */
  #define SPLICE_SCOPE_EXPR(NODE) \
    (TYPE_VALUES_RAW (SPLICE_SCOPE_CHECK (NODE)))
*************** extern tree clone_attrs				(tree);
*** 8028,8037 ****
  extern bool maybe_clone_body			(tree);
  
  /* In parser.cc */
! extern tree cp_build_range_for_decls (location_t, tree, tree *, bool);
  extern tree cp_convert_range_for (tree, tree, tree, cp_decomp *, bool,
  				  tree, bool);
! extern tree build_range_temp (tree, bool = false);
  extern tree cp_perform_range_for_lookup	(tree, tree *, tree *,
  					 tsubst_flags_t = tf_warning_or_error);
  extern void cp_convert_omp_range_for (tree &, tree &, tree &,
--- 8048,8057 ----
  extern bool maybe_clone_body			(tree);
  
  /* In parser.cc */
! extern tree cp_build_range_for_decls (location_t, tree, tree *, tree);
  extern tree cp_convert_range_for (tree, tree, tree, cp_decomp *, bool,
  				  tree, bool);
! extern tree build_range_temp (tree, tree = NULL_TREE);
  extern tree cp_perform_range_for_lookup	(tree, tree *, tree *,
  					 tsubst_flags_t = tf_warning_or_error);
  extern void cp_convert_omp_range_for (tree &, tree &, tree &,
*************** extern bool consteval_only_p (tree) ATTR
*** 9416,9423 ****
  extern bool compare_reflections (tree, tree) ATTRIBUTE_PURE;
  extern bool valid_splice_type_p (const_tree) ATTRIBUTE_PURE;
  extern bool valid_splice_scope_p (const_tree) ATTRIBUTE_PURE;
! extern bool check_splice_expr (location_t, location_t, tree, bool, bool, bool)
!   ATTRIBUTE_PURE;
  extern tree make_splice_scope (tree, bool);
  extern bool dependent_splice_p (const_tree) ATTRIBUTE_PURE;
  extern tree reflection_mangle_prefix (tree, char [3]);
--- 9436,9443 ----
  extern bool compare_reflections (tree, tree) ATTRIBUTE_PURE;
  extern bool valid_splice_type_p (const_tree) ATTRIBUTE_PURE;
  extern bool valid_splice_scope_p (const_tree) ATTRIBUTE_PURE;
! extern bool check_splice_expr (location_t, location_t, tree, bool, bool, bool,
! 			       bool, bool) ATTRIBUTE_PURE;
  extern tree make_splice_scope (tree, bool);
  extern bool dependent_splice_p (const_tree) ATTRIBUTE_PURE;
  extern tree reflection_mangle_prefix (tree, char [3]);
diff -Nrcpad gcc-16-20260405/gcc/cp/decl.cc gcc-16-20260412/gcc/cp/decl.cc
*** gcc-16-20260405/gcc/cp/decl.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/decl.cc	Sun Apr 12 22:32:07 2026
*************** cp_finish_decomp (tree decl, cp_decomp *
*** 11025,11031 ****
  		  maybe_push_decl (t);
  		  /* Save the decltype away before reference collapse.  */
  		  hash_map_safe_put<hm_ggc> (decomp_type_table, t, eltype);
! 		  eltype = cp_build_reference_type (eltype, !lvalue_p (init));
  		  TREE_TYPE (t) = eltype;
  		  layout_decl (t, 0);
  		  DECL_HAS_VALUE_EXPR_P (t) = 0;
--- 11025,11032 ----
  		  maybe_push_decl (t);
  		  /* Save the decltype away before reference collapse.  */
  		  hash_map_safe_put<hm_ggc> (decomp_type_table, t, eltype);
! 		  if (glvalue_p (init))
! 		    eltype = cp_build_reference_type (eltype, !lvalue_p (init));
  		  TREE_TYPE (t) = eltype;
  		  layout_decl (t, 0);
  		  DECL_HAS_VALUE_EXPR_P (t) = 0;
*************** cp_finish_decomp (tree decl, cp_decomp *
*** 11070,11076 ****
  	    }
  	  /* Save the decltype away before reference collapse.  */
  	  hash_map_safe_put<hm_ggc> (decomp_type_table, v[i], eltype);
! 	  eltype = cp_build_reference_type (eltype, !lvalue_p (init));
  	  TREE_TYPE (v[i]) = eltype;
  	  layout_decl (v[i], 0);
  	  if (DECL_HAS_VALUE_EXPR_P (v[i]))
--- 11071,11078 ----
  	    }
  	  /* Save the decltype away before reference collapse.  */
  	  hash_map_safe_put<hm_ggc> (decomp_type_table, v[i], eltype);
! 	  if (glvalue_p (init))
! 	    eltype = cp_build_reference_type (eltype, !lvalue_p (init));
  	  TREE_TYPE (v[i]) = eltype;
  	  layout_decl (v[i], 0);
  	  if (DECL_HAS_VALUE_EXPR_P (v[i]))
*************** grokfndecl (tree ctype,
*** 12218,12224 ****
  
    DECL_ARGUMENTS (decl) = parms;
    for (t = parms; t; t = DECL_CHAIN (t))
!     DECL_CONTEXT (t) = decl;
  
    /* Propagate volatile out from type to decl.  */
    if (TYPE_VOLATILE (type))
--- 12220,12247 ----
  
    DECL_ARGUMENTS (decl) = parms;
    for (t = parms; t; t = DECL_CHAIN (t))
!     {
!       DECL_CONTEXT (t) = decl;
!       if (flag_reflection
! 	  && initialized == SD_INITIALIZED
! 	  && DECL_ATTRIBUTES (t))
! 	for (tree a = DECL_ATTRIBUTES (t);
! 	     (a = lookup_attribute ("internal ", "annotation ", a));
! 	     a = TREE_CHAIN (a))
! 	  {
! 	    gcc_checking_assert (TREE_CODE (TREE_VALUE (a)) == TREE_LIST);
! 	    /* Mark TREE_PURPOSE of the value that it is an annotation
! 	       on an argument of a function definition (rather than
! 	       annotation from function declaration).  For function parameter
! 	       reflection all annotations are listed, while for variable_of
! 	       only those marked here.  Annotation is marked as coming from
! 	       function definition's argument if it has TREE_PURPOSE
! 	       void_node or INTEGER_CST with signed type.  */
! 	    tree val = TREE_VALUE (a);
! 	    gcc_assert (TREE_PURPOSE (val) == NULL_TREE);
! 	    TREE_PURPOSE (val) = void_node;
! 	  }
!     }
  
    /* Propagate volatile out from type to decl.  */
    if (TYPE_VOLATILE (type))
diff -Nrcpad gcc-16-20260405/gcc/cp/mangle.cc gcc-16-20260412/gcc/cp/mangle.cc
*** gcc-16-20260405/gcc/cp/mangle.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/mangle.cc	Sun Apr 12 22:32:07 2026
*************** write_type (tree type)
*** 2745,2760 ****
  
  	    case PACK_INDEX_TYPE:
  	      /* https://github.com/itanium-cxx-abi/cxx-abi/issues/175.  */
  	      if (TREE_CODE (PACK_INDEX_PACK (type)) == TREE_VEC)
  		{
! 		  /* TODO: How should this be mangled when the pack is already
! 		     expanded?  */
! 		  sorry ("mangling type pack index");
! 		  break;
  		}
! 	      write_string ("Dy");
! 	      /* Dy rather than DyDp.  */
! 	      write_type (PACK_EXPANSION_PATTERN (PACK_INDEX_PACK (type)));
  	      write_expression (PACK_INDEX_INDEX (type));
  	      break;
  
--- 2745,2763 ----
  
  	    case PACK_INDEX_TYPE:
  	      /* https://github.com/itanium-cxx-abi/cxx-abi/issues/175.  */
+ 	      write_string ("Dy");
  	      if (TREE_CODE (PACK_INDEX_PACK (type)) == TREE_VEC)
  		{
! 		  write_char ('J');
! 		  for (int i = 0; i < TREE_VEC_LENGTH (PACK_INDEX_PACK (type));
! 		       ++i)
! 		    write_template_arg (TREE_VEC_ELT (PACK_INDEX_PACK (type),
! 						      i));
! 		  write_char ('E');
  		}
! 	      else
! 		/* Dy rather than DyDp.  */
! 		write_type (PACK_EXPANSION_PATTERN (PACK_INDEX_PACK (type)));
  	      write_expression (PACK_INDEX_INDEX (type));
  	      break;
  
*************** write_expression (tree expr)
*** 3614,3630 ****
    else if (code == PACK_INDEX_EXPR)
      {
        /* https://github.com/itanium-cxx-abi/cxx-abi/issues/175.  */
        if (TREE_CODE (PACK_INDEX_PACK (expr)) == TREE_VEC)
- 	/* TODO: How should this be mangled when the pack is already
- 	   expanded?  */
- 	sorry ("mangling type pack index");
-       else
  	{
! 	  write_string ("sy");
! 	  /* sy rather than sysp.  */
! 	  write_expression (PACK_EXPANSION_PATTERN (PACK_INDEX_PACK (expr)));
! 	  write_expression (PACK_INDEX_INDEX (expr));
  	}
      }
    else if (TREE_CODE (expr) == ALIGNOF_EXPR)
      {
--- 3617,3635 ----
    else if (code == PACK_INDEX_EXPR)
      {
        /* https://github.com/itanium-cxx-abi/cxx-abi/issues/175.  */
+       write_string ("sy");
        if (TREE_CODE (PACK_INDEX_PACK (expr)) == TREE_VEC)
  	{
! 	  write_char ('J');
! 	  for (int i = 0; i < TREE_VEC_LENGTH (PACK_INDEX_PACK (expr));
! 	       ++i)
! 	    write_template_arg (TREE_VEC_ELT (PACK_INDEX_PACK (expr), i));
! 	  write_char ('E');
  	}
+       else
+ 	/* sy rather than sysp.  */
+ 	write_expression (PACK_EXPANSION_PATTERN (PACK_INDEX_PACK (expr)));
+       write_expression (PACK_INDEX_INDEX (expr));
      }
    else if (TREE_CODE (expr) == ALIGNOF_EXPR)
      {
diff -Nrcpad gcc-16-20260405/gcc/cp/metafns.gperf gcc-16-20260412/gcc/cp/metafns.gperf
*** gcc-16-20260405/gcc/cp/metafns.gperf	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/metafns.gperf	Sun Apr 12 22:32:07 2026
*************** enum metafn_code {
*** 174,180 ****
    METAFN_IS_ABSTRACT_TYPE,
    METAFN_IS_FINAL_TYPE,
    METAFN_IS_AGGREGATE_TYPE,
-   METAFN_IS_CONSTEVAL_ONLY_TYPE,
    METAFN_IS_STRUCTURAL_TYPE,
    METAFN_IS_SIGNED_TYPE,
    METAFN_IS_UNSIGNED_TYPE,
--- 174,179 ----
*************** is_polymorphic_type, METAFN_IS_POLYMORPH
*** 623,629 ****
  is_abstract_type, METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,
  is_final_type, METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,
  is_aggregate_type, METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,
- is_consteval_only_type, METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_KIND_BOOL_TINFO,
  is_structural_type, METAFN_IS_STRUCTURAL_TYPE, METAFN_KIND_BOOL_TINFO,
  is_signed_type, METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,
  is_unsigned_type, METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,
--- 622,627 ----
diff -Nrcpad gcc-16-20260405/gcc/cp/metafns.h gcc-16-20260412/gcc/cp/metafns.h
*** gcc-16-20260405/gcc/cp/metafns.h	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/metafns.h	Sun Apr 12 22:32:07 2026
*************** enum metafn_code {
*** 202,208 ****
    METAFN_IS_ABSTRACT_TYPE,
    METAFN_IS_FINAL_TYPE,
    METAFN_IS_AGGREGATE_TYPE,
-   METAFN_IS_CONSTEVAL_ONLY_TYPE,
    METAFN_IS_STRUCTURAL_TYPE,
    METAFN_IS_SIGNED_TYPE,
    METAFN_IS_UNSIGNED_TYPE,
--- 202,207 ----
*************** enum metafn_kind {
*** 486,492 ****
      = (METAFN_KIND_ARGS_INPUT_RANGE << METAFN_KIND_SHIFT)
        | METAFN_KIND_RET_U8STRING_VIEW
  };
! #line 462 "metafns.gperf"
  struct metafn_info
  {
    /* A name within "std::meta::" (or "std::meta::access_context::").  */
--- 485,491 ----
      = (METAFN_KIND_ARGS_INPUT_RANGE << METAFN_KIND_SHIFT)
        | METAFN_KIND_RET_U8STRING_VIEW
  };
! #line 461 "metafns.gperf"
  struct metafn_info
  {
    /* A name within "std::meta::" (or "std::meta::access_context::").  */
*************** metafn_lookup::hash (const char *str, si
*** 522,531 ****
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
!       821, 821, 821, 821, 821,   5,  45, 145,  10,  45,
!       190,   5,  55,  35, 115,  20, 346,   0,  60, 110,
!         0, 219,   0,  40,  35,  20,  25, 160,   5,  80,
!         0, 183,  45, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
--- 521,530 ----
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
!       821, 821, 821, 821, 821,   5,  10, 145,  10,  45,
!       190,   5,  55,  35, 154,  20, 253,   0,  60, 110,
!         0, 219,   0,  40,  35,  20,  25, 160,   5, 253,
!         0, 200,  20, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
        821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
*************** metafn_lookup::find (const char *str, si
*** 597,603 ****
  {
    enum
      {
!       TOTAL_KEYWORDS = 238,
        MIN_WORD_LENGTH = 4,
        MAX_WORD_LENGTH = 40,
        MIN_HASH_VALUE = 39,
--- 596,602 ----
  {
    enum
      {
!       TOTAL_KEYWORDS = 237,
        MIN_WORD_LENGTH = 4,
        MAX_WORD_LENGTH = 40,
        MIN_HASH_VALUE = 39,
*************** metafn_lookup::find (const char *str, si
*** 610,1090 ****
  #endif
    static const struct metafn_info wordlist[] =
      {
! #line 666 "metafns.gperf"
        {"rank", METAFN_RANK, METAFN_KIND_SIZE_T_TINFO,},
! #line 595 "metafns.gperf"
        {"is_void_type", METAFN_IS_VOID_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 600 "metafns.gperf"
        {"is_pointer_type", METAFN_IS_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 503 "metafns.gperf"
        {"is_volatile", METAFN_IS_VOLATILE, METAFN_KIND_BOOL_INFO,},
! #line 549 "metafns.gperf"
        {"is_value", METAFN_IS_VALUE, METAFN_KIND_BOOL_INFO,},
! #line 556 "metafns.gperf"
        {"is_base", METAFN_IS_BASE, METAFN_KIND_BOOL_INFO,},
! #line 488 "metafns.gperf"
        {"is_private", METAFN_IS_PRIVATE, METAFN_KIND_BOOL_INFO,},
! #line 517 "metafns.gperf"
        {"is_variable", METAFN_IS_VARIABLE, METAFN_KIND_BOOL_INFO,},
! #line 672 "metafns.gperf"
        {"is_nothrow_convertible_type", METAFN_IS_NOTHROW_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 651 "metafns.gperf"
        {"is_nothrow_constructible_type", METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 677 "metafns.gperf"
        {"is_nothrow_invocable_type", METAFN_IS_NOTHROW_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 656 "metafns.gperf"
        {"is_nothrow_copy_assignable_type", METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 678 "metafns.gperf"
        {"is_nothrow_invocable_r_type", METAFN_IS_NOTHROW_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
! #line 653 "metafns.gperf"
        {"is_nothrow_copy_constructible_type", METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 669 "metafns.gperf"
        {"is_base_of_type", METAFN_IS_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 657 "metafns.gperf"
        {"is_nothrow_move_assignable_type", METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 668 "metafns.gperf"
        {"is_same_type", METAFN_IS_SAME_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 654 "metafns.gperf"
        {"is_nothrow_move_constructible_type", METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 541 "metafns.gperf"
        {"is_variable_template", METAFN_IS_VARIABLE_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 596 "metafns.gperf"
        {"is_null_pointer_type", METAFN_IS_NULL_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 655 "metafns.gperf"
        {"is_nothrow_assignable_type", METAFN_IS_NOTHROW_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 660 "metafns.gperf"
        {"is_nothrow_destructible_type", METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 486 "metafns.gperf"
        {"is_public", METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,},
! #line 498 "metafns.gperf"
        {"is_noexcept", METAFN_IS_NOEXCEPT, METAFN_KIND_BOOL_INFO,},
! #line 584 "metafns.gperf"
        {"extract", METAFN_EXTRACT, METAFN_KIND_TEMPLATE_PARM_INFO,},
! #line 705 "metafns.gperf"
        {"variant_alternative", METAFN_VARIANT_ALTERNATIVE, METAFN_KIND_INFO_SIZE_T_TINFO,},
! #line 622 "metafns.gperf"
        {"is_polymorphic_type", METAFN_IS_POLYMORPHIC_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 522 "metafns.gperf"
        {"is_function", METAFN_IS_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 519 "metafns.gperf"
        {"is_namespace", METAFN_IS_NAMESPACE, METAFN_KIND_BOOL_INFO,},
! #line 475 "metafns.gperf"
        {"symbol_of", METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,},
! #line 674 "metafns.gperf"
        {"is_pointer_interconvertible_base_of_type", METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 630 "metafns.gperf"
        {"is_bounded_array_type", METAFN_IS_BOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 704 "metafns.gperf"
!       {"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,},
! #line 502 "metafns.gperf"
        {"is_const", METAFN_IS_CONST, METAFN_KIND_BOOL_INFO,},
! #line 548 "metafns.gperf"
        {"is_concept", METAFN_IS_CONCEPT, METAFN_KIND_BOOL_INFO,},
! #line 518 "metafns.gperf"
!       {"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,},
! #line 575 "metafns.gperf"
        {"bases_of", METAFN_BASES_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 540 "metafns.gperf"
        {"is_function_template", METAFN_IS_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 523 "metafns.gperf"
        {"is_conversion_function", METAFN_IS_CONVERSION_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 638 "metafns.gperf"
        {"is_copy_assignable_type", METAFN_IS_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 671 "metafns.gperf"
        {"is_convertible_type", METAFN_IS_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 661 "metafns.gperf"
        {"is_implicit_lifetime_type", METAFN_IS_IMPLICIT_LIFETIME_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 706 "metafns.gperf"
!       {"type_order", METAFN_TYPE_ORDER, METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,},
! #line 539 "metafns.gperf"
        {"is_template", METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 652 "metafns.gperf"
        {"is_nothrow_default_constructible_type", METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 585 "metafns.gperf"
        {"can_substitute", METAFN_CAN_SUBSTITUTE, METAFN_KIND_BOOL_INFO_REFLECTION_RANGE,},
! #line 544 "metafns.gperf"
        {"is_conversion_function_template", METAFN_IS_CONVERSION_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 532 "metafns.gperf"
        {"is_copy_assignment", METAFN_IS_COPY_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
- #line 635 "metafns.gperf"
-       {"is_copy_constructible_type", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
- #line 581 "metafns.gperf"
-       {"size_of", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
- #line 483 "metafns.gperf"
-       {"type_of", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,},
- #line 520 "metafns.gperf"
-       {"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,},
  #line 633 "metafns.gperf"
        {"is_constructible_type", METAFN_IS_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 641 "metafns.gperf"
        {"is_swappable_type", METAFN_IS_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 511 "metafns.gperf"
!       {"has_module_linkage", METAFN_HAS_MODULE_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 538 "metafns.gperf"
        {"is_vararg_function", METAFN_IS_VARARG_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 529 "metafns.gperf"
        {"is_copy_constructor", METAFN_IS_COPY_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 702 "metafns.gperf"
        {"tuple_size", METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,},
! #line 565 "metafns.gperf"
        {"variable_of", METAFN_VARIABLE_OF, METAFN_KIND_INFO_INFO,},
! #line 609 "metafns.gperf"
        {"is_reflection_type", METAFN_IS_REFLECTION_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 583 "metafns.gperf"
        {"bit_size_of", METAFN_BIT_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
! #line 612 "metafns.gperf"
        {"is_fundamental_type", METAFN_IS_FUNDAMENTAL_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 673 "metafns.gperf"
        {"is_layout_compatible_type", METAFN_IS_LAYOUT_COMPATIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 709 "metafns.gperf"
        {"current", METAFN_ACCESS_CONTEXT_CURRENT, METAFN_KIND_ACCESS_CONTEXT_VOID,},
! #line 571 "metafns.gperf"
        {"current_function", METAFN_CURRENT_FUNCTION, METAFN_KIND_INFO_VOID,},
! #line 547 "metafns.gperf"
        {"is_constructor_template", METAFN_IS_CONSTRUCTOR_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 696 "metafns.gperf"
        {"common_type", METAFN_COMMON_TYPE, METAFN_KIND_INFO_REFLECTION_RANGET,},
! #line 639 "metafns.gperf"
        {"is_move_assignable_type", METAFN_IS_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 697 "metafns.gperf"
        {"common_reference", METAFN_COMMON_REFERENCE, METAFN_KIND_INFO_REFLECTION_RANGET,},
! #line 703 "metafns.gperf"
        {"tuple_element", METAFN_TUPLE_ELEMENT, METAFN_KIND_INFO_SIZE_T_TINFO,},
! #line 589 "metafns.gperf"
        {"reflect_function", METAFN_REFLECT_FUNCTION, METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
! #line 509 "metafns.gperf"
!       {"has_automatic_storage_duration", METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
! #line 533 "metafns.gperf"
        {"is_move_assignment", METAFN_IS_MOVE_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
! #line 527 "metafns.gperf"
        {"is_constructor", METAFN_IS_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 558 "metafns.gperf"
!       {"has_parent", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,},
! #line 636 "metafns.gperf"
        {"is_move_constructible_type", METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 659 "metafns.gperf"
        {"is_nothrow_swappable_type", METAFN_IS_NOTHROW_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 619 "metafns.gperf"
        {"is_trivially_copyable_type", METAFN_IS_TRIVIALLY_COPYABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 610 "metafns.gperf"
        {"is_reference_type", METAFN_IS_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 602 "metafns.gperf"
!       {"is_rvalue_reference_type", METAFN_IS_RVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 658 "metafns.gperf"
        {"is_nothrow_swappable_with_type", METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 643 "metafns.gperf"
        {"is_trivially_constructible_type", METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 640 "metafns.gperf"
!       {"is_swappable_with_type", METAFN_IS_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 648 "metafns.gperf"
        {"is_trivially_copy_assignable_type", METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 698 "metafns.gperf"
        {"underlying_type", METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,},
! #line 645 "metafns.gperf"
        {"is_trivially_copy_constructible_type", METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 616 "metafns.gperf"
        {"is_member_pointer_type", METAFN_IS_MEMBER_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 586 "metafns.gperf"
        {"substitute", METAFN_SUBSTITUTE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
! #line 564 "metafns.gperf"
        {"parameters_of", METAFN_PARAMETERS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 530 "metafns.gperf"
        {"is_move_constructor", METAFN_IS_MOVE_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 557 "metafns.gperf"
!       {"has_default_member_initializer", METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,},
! #line 526 "metafns.gperf"
        {"is_special_member_function", METAFN_IS_SPECIAL_MEMBER_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 621 "metafns.gperf"
!       {"is_empty_type", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 637 "metafns.gperf"
        {"is_assignable_type", METAFN_IS_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 601 "metafns.gperf"
!       {"is_lvalue_reference_type", METAFN_IS_LVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 537 "metafns.gperf"
!       {"has_default_argument", METAFN_HAS_DEFAULT_ARGUMENT, METAFN_KIND_BOOL_INFO,},
! #line 700 "metafns.gperf"
        {"unwrap_reference", METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 531 "metafns.gperf"
        {"is_assignment", METAFN_IS_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
! #line 618 "metafns.gperf"
!       {"is_volatile_type", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 552 "metafns.gperf"
        {"is_class_member", METAFN_IS_CLASS_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 611 "metafns.gperf"
        {"is_arithmetic_type", METAFN_IS_ARITHMETIC_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 553 "metafns.gperf"
        {"is_namespace_member", METAFN_IS_NAMESPACE_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 574 "metafns.gperf"
        {"members_of", METAFN_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 487 "metafns.gperf"
        {"is_protected", METAFN_IS_PROTECTED, METAFN_KIND_BOOL_INFO,},
! #line 514 "metafns.gperf"
!       {"has_linkage", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 478 "metafns.gperf"
        {"identifier_of", METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,},
! #line 687 "metafns.gperf"
        {"add_rvalue_reference", METAFN_ADD_RVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 562 "metafns.gperf"
        {"template_of", METAFN_TEMPLATE_OF, METAFN_KIND_INFO_INFO,},
! #line 521 "metafns.gperf"
        {"is_namespace_alias", METAFN_IS_NAMESPACE_ALIAS, METAFN_KIND_BOOL_INFO,},
! #line 667 "metafns.gperf"
        {"extent", METAFN_EXTENT, METAFN_KIND_SIZE_T_TINFO_UNSIGNED,},
! #line 605 "metafns.gperf"
        {"is_enum_type", METAFN_IS_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 542 "metafns.gperf"
        {"is_class_template", METAFN_IS_CLASS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 627 "metafns.gperf"
        {"is_structural_type", METAFN_IS_STRUCTURAL_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 617 "metafns.gperf"
!       {"is_const_type", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 573 "metafns.gperf"
        {"current_namespace", METAFN_CURRENT_NAMESPACE, METAFN_KIND_INFO_VOID,},
! #line 497 "metafns.gperf"
!       {"is_explicit", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,},
! #line 693 "metafns.gperf"
        {"add_pointer", METAFN_ADD_POINTER, METAFN_KIND_INFO_TINFO,},
! #line 649 "metafns.gperf"
        {"is_trivially_move_assignable_type", METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 515 "metafns.gperf"
!       {"is_complete_type", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,},
! #line 646 "metafns.gperf"
        {"is_trivially_move_constructible_type", METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 614 "metafns.gperf"
        {"is_scalar_type", METAFN_IS_SCALAR_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 490 "metafns.gperf"
        {"is_pure_virtual", METAFN_IS_PURE_VIRTUAL, METAFN_KIND_BOOL_INFO,},
! #line 535 "metafns.gperf"
        {"is_function_parameter", METAFN_IS_FUNCTION_PARAMETER, METAFN_KIND_BOOL_INFO,},
! #line 516 "metafns.gperf"
        {"is_enumerable_type", METAFN_IS_ENUMERABLE_TYPE, METAFN_KIND_BOOL_INFO,},
! #line 608 "metafns.gperf"
!       {"is_function_type", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 559 "metafns.gperf"
        {"parent_of", METAFN_PARENT_OF, METAFN_KIND_INFO_INFO,},
! #line 554 "metafns.gperf"
        {"is_nonstatic_data_member", METAFN_IS_NONSTATIC_DATA_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 551 "metafns.gperf"
        {"is_structured_binding", METAFN_IS_STRUCTURED_BINDING, METAFN_KIND_BOOL_INFO,},
! #line 504 "metafns.gperf"
        {"is_mutable_member", METAFN_IS_MUTABLE_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 647 "metafns.gperf"
        {"is_trivially_assignable_type", METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 634 "metafns.gperf"
        {"is_default_constructible_type", METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 536 "metafns.gperf"
!       {"is_explicit_object_parameter", METAFN_IS_EXPLICIT_OBJECT_PARAMETER, METAFN_KIND_BOOL_INFO,},
! #line 683 "metafns.gperf"
!       {"add_volatile", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,},
! #line 572 "metafns.gperf"
        {"current_class", METAFN_CURRENT_CLASS, METAFN_KIND_INFO_VOID,},
! #line 579 "metafns.gperf"
        {"enumerators_of", METAFN_ENUMERATORS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 500 "metafns.gperf"
        {"is_enumerator", METAFN_IS_ENUMERATOR, METAFN_KIND_BOOL_INFO,},
! #line 550 "metafns.gperf"
        {"is_object", METAFN_IS_OBJECT, METAFN_KIND_BOOL_INFO,},
! #line 481 "metafns.gperf"
        {"u8display_string_of", METAFN_U8DISPLAY_STRING_OF, METAFN_KIND_U8STRING_VIEW_INFO,},
! #line 604 "metafns.gperf"
        {"is_member_function_pointer_type", METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 662 "metafns.gperf"
!       {"has_virtual_destructor", METAFN_HAS_VIRTUAL_DESTRUCTOR, METAFN_KIND_BOOL_TINFO,},
! #line 665 "metafns.gperf"
!       {"reference_converts_from_temporary", METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 528 "metafns.gperf"
        {"is_default_constructor", METAFN_IS_DEFAULT_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 613 "metafns.gperf"
        {"is_object_type", METAFN_IS_OBJECT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 587 "metafns.gperf"
        {"reflect_constant", METAFN_REFLECT_CONSTANT, METAFN_KIND_INFO_TEMPLATE_PARM,},
! #line 534 "metafns.gperf"
        {"is_destructor", METAFN_IS_DESTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 491 "metafns.gperf"
!       {"is_override", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,},
! #line 664 "metafns.gperf"
!       {"reference_constructs_from_temporary", METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 566 "metafns.gperf"
        {"return_type_of", METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,},
! #line 686 "metafns.gperf"
        {"add_lvalue_reference", METAFN_ADD_LVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 485 "metafns.gperf"
        {"constant_of", METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,},
! #line 681 "metafns.gperf"
!       {"remove_cv", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,},
! #line 650 "metafns.gperf"
        {"is_trivially_destructible_type", METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 684 "metafns.gperf"
        {"add_cv", METAFN_ADD_CV, METAFN_KIND_INFO_TINFO,},
! #line 625 "metafns.gperf"
!       {"is_aggregate_type", METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 590 "metafns.gperf"
        {"reflect_constant_string", METAFN_REFLECT_CONSTANT_STRING, METAFN_KIND_INFO_INPUT_RANGE,},
! #line 563 "metafns.gperf"
        {"template_arguments_of", METAFN_TEMPLATE_ARGUMENTS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 578 "metafns.gperf"
        {"subobjects_of", METAFN_SUBOBJECTS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 580 "metafns.gperf"
        {"offset_of", METAFN_OFFSET_OF, METAFN_KIND_MEMBER_OFFSET_INFO,},
! #line 644 "metafns.gperf"
        {"is_trivially_default_constructible_type", METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 685 "metafns.gperf"
!       {"remove_reference", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 543 "metafns.gperf"
        {"is_alias_template", METAFN_IS_ALIAS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 689 "metafns.gperf"
!       {"make_unsigned", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,},
! #line 675 "metafns.gperf"
        {"is_invocable_type", METAFN_IS_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 632 "metafns.gperf"
        {"is_scoped_enum_type", METAFN_IS_SCOPED_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 555 "metafns.gperf"
        {"is_static_member", METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 682 "metafns.gperf"
        {"add_const", METAFN_ADD_CONST, METAFN_KIND_INFO_TINFO,},
! #line 642 "metafns.gperf"
        {"is_destructible_type", METAFN_IS_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 607 "metafns.gperf"
!       {"is_class_type", METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 690 "metafns.gperf"
!       {"remove_extent", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,},
! #line 676 "metafns.gperf"
        {"is_invocable_r_type", METAFN_IS_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
! #line 567 "metafns.gperf"
        {"is_accessible", METAFN_IS_ACCESSIBLE, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
! #line 474 "metafns.gperf"
        {"operator_of", METAFN_OPERATOR_OF, METAFN_KIND_OPERATORS_INFO,},
! #line 599 "metafns.gperf"
        {"is_array_type", METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 679 "metafns.gperf"
!       {"remove_const", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,},
! #line 506 "metafns.gperf"
!       {"is_rvalue_reference_qualified", METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
! #line 507 "metafns.gperf"
!       {"has_static_storage_duration", METAFN_HAS_STATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
! #line 691 "metafns.gperf"
!       {"remove_all_extents", METAFN_REMOVE_ALL_EXTENTS, METAFN_KIND_INFO_TINFO,},
! #line 512 "metafns.gperf"
!       {"has_external_linkage", METAFN_HAS_EXTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 694 "metafns.gperf"
!       {"remove_cvref", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,},
! #line 501 "metafns.gperf"
        {"is_annotation", METAFN_IS_ANNOTATION, METAFN_KIND_BOOL_INFO,},
! #line 692 "metafns.gperf"
!       {"remove_pointer", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,},
! #line 505 "metafns.gperf"
!       {"is_lvalue_reference_qualified", METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
! #line 670 "metafns.gperf"
!       {"is_virtual_base_of_type", METAFN_IS_VIRTUAL_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 593 "metafns.gperf"
        {"is_data_member_spec", METAFN_IS_DATA_MEMBER_SPEC, METAFN_KIND_BOOL_INFO,},
! #line 628 "metafns.gperf"
!       {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 623 "metafns.gperf"
!       {"is_abstract_type", METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 489 "metafns.gperf"
!       {"is_virtual", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,},
! #line 480 "metafns.gperf"
        {"display_string_of", METAFN_DISPLAY_STRING_OF, METAFN_KIND_STRING_VIEW_INFO,},
! #line 603 "metafns.gperf"
        {"is_member_object_pointer_type", METAFN_IS_MEMBER_OBJECT_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 701 "metafns.gperf"
!       {"unwrap_ref_decay", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,},
! #line 626 "metafns.gperf"
!       {"is_consteval_only_type", METAFN_IS_CONSTEVAL_ONLY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 615 "metafns.gperf"
!       {"is_compound_type", METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 476 "metafns.gperf"
!       {"u8symbol_of", METAFN_U8SYMBOL_OF, METAFN_KIND_U8STRING_VIEW_OPERATORS,},
! #line 493 "metafns.gperf"
        {"is_deleted", METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,},
! #line 598 "metafns.gperf"
        {"is_floating_point_type", METAFN_IS_FLOATING_POINT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 546 "metafns.gperf"
!       {"is_literal_operator_template", METAFN_IS_LITERAL_OPERATOR_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 494 "metafns.gperf"
        {"is_defaulted", METAFN_IS_DEFAULTED, METAFN_KIND_BOOL_INFO,},
! #line 592 "metafns.gperf"
!       {"data_member_spec", METAFN_DATA_MEMBER_SPEC, METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,},
! #line 484 "metafns.gperf"
        {"object_of", METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,},
! #line 710 "metafns.gperf"
!       {"_S_exception_cvt_to_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8, METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,},
! #line 711 "metafns.gperf"
!       {"_S_exception_cvt_from_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8, METAFN_KIND_STRING_VIEW_INPUT_RANGE,},
! #line 492 "metafns.gperf"
!       {"is_final", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,},
! #line 525 "metafns.gperf"
!       {"is_literal_operator", METAFN_IS_LITERAL_OPERATOR, METAFN_KIND_BOOL_INFO,},
! #line 496 "metafns.gperf"
        {"is_user_declared", METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,},
! #line 561 "metafns.gperf"
!       {"has_template_arguments", METAFN_HAS_TEMPLATE_ARGUMENTS, METAFN_KIND_BOOL_INFO,},
! #line 524 "metafns.gperf"
        {"is_operator_function", METAFN_IS_OPERATOR_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 699 "metafns.gperf"
        {"invoke_result", METAFN_INVOKE_RESULT, METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,},
! #line 591 "metafns.gperf"
!       {"reflect_constant_array", METAFN_REFLECT_CONSTANT_ARRAY, METAFN_KIND_INFO_INPUT_RANGE,},
! #line 513 "metafns.gperf"
!       {"has_c_language_linkage", METAFN_HAS_C_LANGUAGE_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 545 "metafns.gperf"
        {"is_operator_function_template", METAFN_IS_OPERATOR_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 597 "metafns.gperf"
        {"is_integral_type", METAFN_IS_INTEGRAL_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 663 "metafns.gperf"
!       {"has_unique_object_representations", METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,},
! #line 508 "metafns.gperf"
!       {"has_thread_storage_duration", METAFN_HAS_THREAD_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
! #line 569 "metafns.gperf"
!       {"has_inaccessible_bases", METAFN_HAS_INACCESSIBLE_BASES, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
! #line 570 "metafns.gperf"
!       {"has_inaccessible_subobjects", METAFN_HAS_INACCESSIBLE_SUBOBJECTS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
  #line 688 "metafns.gperf"
!       {"make_signed", METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,},
! #line 568 "metafns.gperf"
!       {"has_inaccessible_nonstatic_data_members", METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
! #line 680 "metafns.gperf"
!       {"remove_volatile", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,},
! #line 588 "metafns.gperf"
!       {"reflect_object", METAFN_REFLECT_OBJECT, METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
! #line 620 "metafns.gperf"
!       {"is_standard_layout_type", METAFN_IS_STANDARD_LAYOUT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 695 "metafns.gperf"
        {"decay", METAFN_DECAY, METAFN_KIND_INFO_TINFO,},
! #line 631 "metafns.gperf"
        {"is_unbounded_array_type", METAFN_IS_UNBOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 577 "metafns.gperf"
        {"nonstatic_data_members_of", METAFN_NONSTATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 606 "metafns.gperf"
        {"is_union_type", METAFN_IS_UNION_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 477 "metafns.gperf"
!       {"has_identifier", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,},
! #line 576 "metafns.gperf"
!       {"static_data_members_of", METAFN_STATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 624 "metafns.gperf"
!       {"is_final_type", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 560 "metafns.gperf"
!       {"dealias", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,},
! #line 708 "metafns.gperf"
        {"annotations_of_with_type", METAFN_ANNOTATIONS_OF_WITH_TYPE, METAFN_KIND_VECTOR_INFO_INFO_INFO,},
! #line 594 "metafns.gperf"
        {"define_aggregate", METAFN_DEFINE_AGGREGATE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
! #line 499 "metafns.gperf"
!       {"is_bit_field", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,},
! #line 707 "metafns.gperf"
        {"annotations_of", METAFN_ANNOTATIONS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 482 "metafns.gperf"
        {"source_location_of", METAFN_SOURCE_LOCATION_OF, METAFN_KIND_SOURCE_LOCATION_INFO,},
! #line 582 "metafns.gperf"
        {"alignment_of", METAFN_ALIGNMENT_OF, METAFN_KIND_SIZE_T_INFO,},
! #line 510 "metafns.gperf"
!       {"has_internal_linkage", METAFN_HAS_INTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 479 "metafns.gperf"
        {"u8identifier_of", METAFN_U8IDENTIFIER_OF, METAFN_KIND_U8STRING_VIEW_INFO,},
! #line 629 "metafns.gperf"
        {"is_unsigned_type", METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 495 "metafns.gperf"
        {"is_user_provided", METAFN_IS_USER_PROVIDED, METAFN_KIND_BOOL_INFO,}
      };
  #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
--- 609,1087 ----
  #endif
    static const struct metafn_info wordlist[] =
      {
! #line 664 "metafns.gperf"
        {"rank", METAFN_RANK, METAFN_KIND_SIZE_T_TINFO,},
! #line 594 "metafns.gperf"
        {"is_void_type", METAFN_IS_VOID_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 599 "metafns.gperf"
        {"is_pointer_type", METAFN_IS_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 502 "metafns.gperf"
        {"is_volatile", METAFN_IS_VOLATILE, METAFN_KIND_BOOL_INFO,},
! #line 548 "metafns.gperf"
        {"is_value", METAFN_IS_VALUE, METAFN_KIND_BOOL_INFO,},
! #line 555 "metafns.gperf"
        {"is_base", METAFN_IS_BASE, METAFN_KIND_BOOL_INFO,},
! #line 487 "metafns.gperf"
        {"is_private", METAFN_IS_PRIVATE, METAFN_KIND_BOOL_INFO,},
! #line 516 "metafns.gperf"
        {"is_variable", METAFN_IS_VARIABLE, METAFN_KIND_BOOL_INFO,},
! #line 670 "metafns.gperf"
        {"is_nothrow_convertible_type", METAFN_IS_NOTHROW_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 649 "metafns.gperf"
        {"is_nothrow_constructible_type", METAFN_IS_NOTHROW_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 675 "metafns.gperf"
        {"is_nothrow_invocable_type", METAFN_IS_NOTHROW_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 654 "metafns.gperf"
        {"is_nothrow_copy_assignable_type", METAFN_IS_NOTHROW_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 676 "metafns.gperf"
        {"is_nothrow_invocable_r_type", METAFN_IS_NOTHROW_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
! #line 651 "metafns.gperf"
        {"is_nothrow_copy_constructible_type", METAFN_IS_NOTHROW_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 667 "metafns.gperf"
        {"is_base_of_type", METAFN_IS_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 655 "metafns.gperf"
        {"is_nothrow_move_assignable_type", METAFN_IS_NOTHROW_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 666 "metafns.gperf"
        {"is_same_type", METAFN_IS_SAME_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 652 "metafns.gperf"
        {"is_nothrow_move_constructible_type", METAFN_IS_NOTHROW_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 540 "metafns.gperf"
        {"is_variable_template", METAFN_IS_VARIABLE_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 702 "metafns.gperf"
!       {"variant_size", METAFN_VARIANT_SIZE, METAFN_KIND_SIZE_T_TINFO,},
! #line 595 "metafns.gperf"
        {"is_null_pointer_type", METAFN_IS_NULL_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 653 "metafns.gperf"
        {"is_nothrow_assignable_type", METAFN_IS_NOTHROW_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 517 "metafns.gperf"
!       {"is_type", METAFN_IS_TYPE, METAFN_KIND_BOOL_INFO,},
! #line 658 "metafns.gperf"
        {"is_nothrow_destructible_type", METAFN_IS_NOTHROW_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 485 "metafns.gperf"
        {"is_public", METAFN_IS_PUBLIC, METAFN_KIND_BOOL_INFO,},
! #line 497 "metafns.gperf"
        {"is_noexcept", METAFN_IS_NOEXCEPT, METAFN_KIND_BOOL_INFO,},
! #line 583 "metafns.gperf"
        {"extract", METAFN_EXTRACT, METAFN_KIND_TEMPLATE_PARM_INFO,},
! #line 703 "metafns.gperf"
        {"variant_alternative", METAFN_VARIANT_ALTERNATIVE, METAFN_KIND_INFO_SIZE_T_TINFO,},
! #line 704 "metafns.gperf"
!       {"type_order", METAFN_TYPE_ORDER, METAFN_KIND_STRONG_ORDERING_TINFO_TINFO,},
! #line 621 "metafns.gperf"
        {"is_polymorphic_type", METAFN_IS_POLYMORPHIC_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 521 "metafns.gperf"
        {"is_function", METAFN_IS_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 518 "metafns.gperf"
        {"is_namespace", METAFN_IS_NAMESPACE, METAFN_KIND_BOOL_INFO,},
! #line 474 "metafns.gperf"
        {"symbol_of", METAFN_SYMBOL_OF, METAFN_KIND_STRING_VIEW_OPERATORS,},
! #line 672 "metafns.gperf"
        {"is_pointer_interconvertible_base_of_type", METAFN_IS_POINTER_INTERCONVERTIBLE_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 628 "metafns.gperf"
        {"is_bounded_array_type", METAFN_IS_BOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 580 "metafns.gperf"
!       {"size_of", METAFN_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
! #line 501 "metafns.gperf"
        {"is_const", METAFN_IS_CONST, METAFN_KIND_BOOL_INFO,},
! #line 547 "metafns.gperf"
        {"is_concept", METAFN_IS_CONCEPT, METAFN_KIND_BOOL_INFO,},
! #line 482 "metafns.gperf"
!       {"type_of", METAFN_TYPE_OF, METAFN_KIND_INFO_INFO,},
! #line 574 "metafns.gperf"
        {"bases_of", METAFN_BASES_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 539 "metafns.gperf"
        {"is_function_template", METAFN_IS_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 522 "metafns.gperf"
        {"is_conversion_function", METAFN_IS_CONVERSION_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 636 "metafns.gperf"
        {"is_copy_assignable_type", METAFN_IS_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 669 "metafns.gperf"
        {"is_convertible_type", METAFN_IS_CONVERTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 659 "metafns.gperf"
        {"is_implicit_lifetime_type", METAFN_IS_IMPLICIT_LIFETIME_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 519 "metafns.gperf"
!       {"is_type_alias", METAFN_IS_TYPE_ALIAS, METAFN_KIND_BOOL_INFO,},
! #line 538 "metafns.gperf"
        {"is_template", METAFN_IS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 650 "metafns.gperf"
        {"is_nothrow_default_constructible_type", METAFN_IS_NOTHROW_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 584 "metafns.gperf"
        {"can_substitute", METAFN_CAN_SUBSTITUTE, METAFN_KIND_BOOL_INFO_REFLECTION_RANGE,},
! #line 543 "metafns.gperf"
        {"is_conversion_function_template", METAFN_IS_CONVERSION_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 531 "metafns.gperf"
        {"is_copy_assignment", METAFN_IS_COPY_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
  #line 633 "metafns.gperf"
+       {"is_copy_constructible_type", METAFN_IS_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
+ #line 631 "metafns.gperf"
        {"is_constructible_type", METAFN_IS_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 639 "metafns.gperf"
        {"is_swappable_type", METAFN_IS_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 537 "metafns.gperf"
        {"is_vararg_function", METAFN_IS_VARARG_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 528 "metafns.gperf"
        {"is_copy_constructor", METAFN_IS_COPY_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 700 "metafns.gperf"
        {"tuple_size", METAFN_TUPLE_SIZE, METAFN_KIND_SIZE_T_TINFO,},
! #line 564 "metafns.gperf"
        {"variable_of", METAFN_VARIABLE_OF, METAFN_KIND_INFO_INFO,},
! #line 608 "metafns.gperf"
        {"is_reflection_type", METAFN_IS_REFLECTION_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 582 "metafns.gperf"
        {"bit_size_of", METAFN_BIT_SIZE_OF, METAFN_KIND_SIZE_T_INFO,},
! #line 611 "metafns.gperf"
        {"is_fundamental_type", METAFN_IS_FUNDAMENTAL_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 671 "metafns.gperf"
        {"is_layout_compatible_type", METAFN_IS_LAYOUT_COMPATIBLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 707 "metafns.gperf"
        {"current", METAFN_ACCESS_CONTEXT_CURRENT, METAFN_KIND_ACCESS_CONTEXT_VOID,},
! #line 570 "metafns.gperf"
        {"current_function", METAFN_CURRENT_FUNCTION, METAFN_KIND_INFO_VOID,},
! #line 546 "metafns.gperf"
        {"is_constructor_template", METAFN_IS_CONSTRUCTOR_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 694 "metafns.gperf"
        {"common_type", METAFN_COMMON_TYPE, METAFN_KIND_INFO_REFLECTION_RANGET,},
! #line 637 "metafns.gperf"
        {"is_move_assignable_type", METAFN_IS_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 695 "metafns.gperf"
        {"common_reference", METAFN_COMMON_REFERENCE, METAFN_KIND_INFO_REFLECTION_RANGET,},
! #line 701 "metafns.gperf"
        {"tuple_element", METAFN_TUPLE_ELEMENT, METAFN_KIND_INFO_SIZE_T_TINFO,},
! #line 588 "metafns.gperf"
        {"reflect_function", METAFN_REFLECT_FUNCTION, METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
! #line 510 "metafns.gperf"
!       {"has_module_linkage", METAFN_HAS_MODULE_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 532 "metafns.gperf"
        {"is_move_assignment", METAFN_IS_MOVE_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
! #line 526 "metafns.gperf"
        {"is_constructor", METAFN_IS_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 634 "metafns.gperf"
        {"is_move_constructible_type", METAFN_IS_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 657 "metafns.gperf"
        {"is_nothrow_swappable_type", METAFN_IS_NOTHROW_SWAPPABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 618 "metafns.gperf"
        {"is_trivially_copyable_type", METAFN_IS_TRIVIALLY_COPYABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 609 "metafns.gperf"
        {"is_reference_type", METAFN_IS_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 656 "metafns.gperf"
        {"is_nothrow_swappable_with_type", METAFN_IS_NOTHROW_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 641 "metafns.gperf"
        {"is_trivially_constructible_type", METAFN_IS_TRIVIALLY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 646 "metafns.gperf"
        {"is_trivially_copy_assignable_type", METAFN_IS_TRIVIALLY_COPY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 696 "metafns.gperf"
        {"underlying_type", METAFN_UNDERLYING_TYPE, METAFN_KIND_INFO_TINFO,},
! #line 643 "metafns.gperf"
        {"is_trivially_copy_constructible_type", METAFN_IS_TRIVIALLY_COPY_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 615 "metafns.gperf"
        {"is_member_pointer_type", METAFN_IS_MEMBER_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 585 "metafns.gperf"
        {"substitute", METAFN_SUBSTITUTE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
! #line 563 "metafns.gperf"
        {"parameters_of", METAFN_PARAMETERS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 529 "metafns.gperf"
        {"is_move_constructor", METAFN_IS_MOVE_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 525 "metafns.gperf"
        {"is_special_member_function", METAFN_IS_SPECIAL_MEMBER_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 635 "metafns.gperf"
        {"is_assignable_type", METAFN_IS_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 508 "metafns.gperf"
!       {"has_automatic_storage_duration", METAFN_HAS_AUTOMATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
! #line 698 "metafns.gperf"
        {"unwrap_reference", METAFN_UNWRAP_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 530 "metafns.gperf"
        {"is_assignment", METAFN_IS_ASSIGNMENT, METAFN_KIND_BOOL_INFO,},
! #line 557 "metafns.gperf"
!       {"has_parent", METAFN_HAS_PARENT, METAFN_KIND_BOOL_INFO,},
! #line 551 "metafns.gperf"
        {"is_class_member", METAFN_IS_CLASS_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 610 "metafns.gperf"
        {"is_arithmetic_type", METAFN_IS_ARITHMETIC_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 552 "metafns.gperf"
        {"is_namespace_member", METAFN_IS_NAMESPACE_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 573 "metafns.gperf"
        {"members_of", METAFN_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 620 "metafns.gperf"
!       {"is_empty_type", METAFN_IS_EMPTY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 486 "metafns.gperf"
        {"is_protected", METAFN_IS_PROTECTED, METAFN_KIND_BOOL_INFO,},
! #line 617 "metafns.gperf"
!       {"is_volatile_type", METAFN_IS_VOLATILE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 477 "metafns.gperf"
        {"identifier_of", METAFN_IDENTIFIER_OF, METAFN_KIND_STRING_VIEW_INFO,},
! #line 685 "metafns.gperf"
        {"add_rvalue_reference", METAFN_ADD_RVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 561 "metafns.gperf"
        {"template_of", METAFN_TEMPLATE_OF, METAFN_KIND_INFO_INFO,},
! #line 520 "metafns.gperf"
        {"is_namespace_alias", METAFN_IS_NAMESPACE_ALIAS, METAFN_KIND_BOOL_INFO,},
! #line 556 "metafns.gperf"
!       {"has_default_member_initializer", METAFN_HAS_DEFAULT_MEMBER_INITIALIZER, METAFN_KIND_BOOL_INFO,},
! #line 665 "metafns.gperf"
        {"extent", METAFN_EXTENT, METAFN_KIND_SIZE_T_TINFO_UNSIGNED,},
! #line 604 "metafns.gperf"
        {"is_enum_type", METAFN_IS_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 541 "metafns.gperf"
        {"is_class_template", METAFN_IS_CLASS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 625 "metafns.gperf"
        {"is_structural_type", METAFN_IS_STRUCTURAL_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 572 "metafns.gperf"
        {"current_namespace", METAFN_CURRENT_NAMESPACE, METAFN_KIND_INFO_VOID,},
! #line 536 "metafns.gperf"
!       {"has_default_argument", METAFN_HAS_DEFAULT_ARGUMENT, METAFN_KIND_BOOL_INFO,},
! #line 691 "metafns.gperf"
        {"add_pointer", METAFN_ADD_POINTER, METAFN_KIND_INFO_TINFO,},
! #line 647 "metafns.gperf"
        {"is_trivially_move_assignable_type", METAFN_IS_TRIVIALLY_MOVE_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 644 "metafns.gperf"
        {"is_trivially_move_constructible_type", METAFN_IS_TRIVIALLY_MOVE_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 613 "metafns.gperf"
        {"is_scalar_type", METAFN_IS_SCALAR_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 489 "metafns.gperf"
        {"is_pure_virtual", METAFN_IS_PURE_VIRTUAL, METAFN_KIND_BOOL_INFO,},
! #line 534 "metafns.gperf"
        {"is_function_parameter", METAFN_IS_FUNCTION_PARAMETER, METAFN_KIND_BOOL_INFO,},
! #line 515 "metafns.gperf"
        {"is_enumerable_type", METAFN_IS_ENUMERABLE_TYPE, METAFN_KIND_BOOL_INFO,},
! #line 616 "metafns.gperf"
!       {"is_const_type", METAFN_IS_CONST_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 496 "metafns.gperf"
!       {"is_explicit", METAFN_IS_EXPLICIT, METAFN_KIND_BOOL_INFO,},
! #line 558 "metafns.gperf"
        {"parent_of", METAFN_PARENT_OF, METAFN_KIND_INFO_INFO,},
! #line 553 "metafns.gperf"
        {"is_nonstatic_data_member", METAFN_IS_NONSTATIC_DATA_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 513 "metafns.gperf"
!       {"has_linkage", METAFN_HAS_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 514 "metafns.gperf"
!       {"is_complete_type", METAFN_IS_COMPLETE_TYPE, METAFN_KIND_BOOL_INFO,},
! #line 550 "metafns.gperf"
        {"is_structured_binding", METAFN_IS_STRUCTURED_BINDING, METAFN_KIND_BOOL_INFO,},
! #line 607 "metafns.gperf"
!       {"is_function_type", METAFN_IS_FUNCTION_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 503 "metafns.gperf"
        {"is_mutable_member", METAFN_IS_MUTABLE_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 645 "metafns.gperf"
        {"is_trivially_assignable_type", METAFN_IS_TRIVIALLY_ASSIGNABLE_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 632 "metafns.gperf"
        {"is_default_constructible_type", METAFN_IS_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 571 "metafns.gperf"
        {"current_class", METAFN_CURRENT_CLASS, METAFN_KIND_INFO_VOID,},
! #line 578 "metafns.gperf"
        {"enumerators_of", METAFN_ENUMERATORS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 499 "metafns.gperf"
        {"is_enumerator", METAFN_IS_ENUMERATOR, METAFN_KIND_BOOL_INFO,},
! #line 549 "metafns.gperf"
        {"is_object", METAFN_IS_OBJECT, METAFN_KIND_BOOL_INFO,},
! #line 480 "metafns.gperf"
        {"u8display_string_of", METAFN_U8DISPLAY_STRING_OF, METAFN_KIND_U8STRING_VIEW_INFO,},
! #line 603 "metafns.gperf"
        {"is_member_function_pointer_type", METAFN_IS_MEMBER_FUNCTION_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 535 "metafns.gperf"
!       {"is_explicit_object_parameter", METAFN_IS_EXPLICIT_OBJECT_PARAMETER, METAFN_KIND_BOOL_INFO,},
! #line 527 "metafns.gperf"
        {"is_default_constructor", METAFN_IS_DEFAULT_CONSTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 687 "metafns.gperf"
!       {"make_unsigned", METAFN_MAKE_UNSIGNED, METAFN_KIND_INFO_TINFO,},
! #line 668 "metafns.gperf"
!       {"is_virtual_base_of_type", METAFN_IS_VIRTUAL_BASE_OF_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 612 "metafns.gperf"
        {"is_object_type", METAFN_IS_OBJECT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 586 "metafns.gperf"
        {"reflect_constant", METAFN_REFLECT_CONSTANT, METAFN_KIND_INFO_TEMPLATE_PARM,},
! #line 533 "metafns.gperf"
        {"is_destructor", METAFN_IS_DESTRUCTOR, METAFN_KIND_BOOL_INFO,},
! #line 626 "metafns.gperf"
!       {"is_signed_type", METAFN_IS_SIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 663 "metafns.gperf"
!       {"reference_converts_from_temporary", METAFN_REFERENCE_CONVERTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 565 "metafns.gperf"
        {"return_type_of", METAFN_RETURN_TYPE_OF, METAFN_KIND_INFO_INFO,},
! #line 684 "metafns.gperf"
        {"add_lvalue_reference", METAFN_ADD_LVALUE_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 484 "metafns.gperf"
        {"constant_of", METAFN_CONSTANT_OF, METAFN_KIND_INFO_INFO,},
! #line 488 "metafns.gperf"
!       {"is_virtual", METAFN_IS_VIRTUAL, METAFN_KIND_BOOL_INFO,},
! #line 648 "metafns.gperf"
        {"is_trivially_destructible_type", METAFN_IS_TRIVIALLY_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 682 "metafns.gperf"
        {"add_cv", METAFN_ADD_CV, METAFN_KIND_INFO_TINFO,},
! #line 589 "metafns.gperf"
        {"reflect_constant_string", METAFN_REFLECT_CONSTANT_STRING, METAFN_KIND_INFO_INPUT_RANGE,},
! #line 562 "metafns.gperf"
        {"template_arguments_of", METAFN_TEMPLATE_ARGUMENTS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 577 "metafns.gperf"
        {"subobjects_of", METAFN_SUBOBJECTS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 579 "metafns.gperf"
        {"offset_of", METAFN_OFFSET_OF, METAFN_KIND_MEMBER_OFFSET_INFO,},
! #line 642 "metafns.gperf"
        {"is_trivially_default_constructible_type", METAFN_IS_TRIVIALLY_DEFAULT_CONSTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 662 "metafns.gperf"
!       {"reference_constructs_from_temporary", METAFN_REFERENCE_CONSTRUCTS_FROM_TEMPORARY, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 542 "metafns.gperf"
        {"is_alias_template", METAFN_IS_ALIAS_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 673 "metafns.gperf"
        {"is_invocable_type", METAFN_IS_INVOCABLE_TYPE, METAFN_KIND_BOOL_TINFO_REFLECTION_RANGET,},
! #line 630 "metafns.gperf"
        {"is_scoped_enum_type", METAFN_IS_SCOPED_ENUM_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 554 "metafns.gperf"
        {"is_static_member", METAFN_IS_STATIC_MEMBER, METAFN_KIND_BOOL_INFO,},
! #line 680 "metafns.gperf"
        {"add_const", METAFN_ADD_CONST, METAFN_KIND_INFO_TINFO,},
! #line 640 "metafns.gperf"
        {"is_destructible_type", METAFN_IS_DESTRUCTIBLE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 545 "metafns.gperf"
!       {"is_literal_operator_template", METAFN_IS_LITERAL_OPERATOR_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 601 "metafns.gperf"
!       {"is_rvalue_reference_type", METAFN_IS_RVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 674 "metafns.gperf"
        {"is_invocable_r_type", METAFN_IS_INVOCABLE_R_TYPE, METAFN_KIND_BOOL_TINFO_TINFO_REFLECTION_RANGET,},
! #line 638 "metafns.gperf"
!       {"is_swappable_with_type", METAFN_IS_SWAPPABLE_WITH_TYPE, METAFN_KIND_BOOL_TINFO_TINFO,},
! #line 566 "metafns.gperf"
        {"is_accessible", METAFN_IS_ACCESSIBLE, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
! #line 473 "metafns.gperf"
        {"operator_of", METAFN_OPERATOR_OF, METAFN_KIND_OPERATORS_INFO,},
! #line 624 "metafns.gperf"
!       {"is_aggregate_type", METAFN_IS_AGGREGATE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 606 "metafns.gperf"
!       {"is_class_type", METAFN_IS_CLASS_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 491 "metafns.gperf"
!       {"is_final", METAFN_IS_FINAL, METAFN_KIND_BOOL_INFO,},
! #line 524 "metafns.gperf"
!       {"is_literal_operator", METAFN_IS_LITERAL_OPERATOR, METAFN_KIND_BOOL_INFO,},
! #line 600 "metafns.gperf"
!       {"is_lvalue_reference_type", METAFN_IS_LVALUE_REFERENCE_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 598 "metafns.gperf"
        {"is_array_type", METAFN_IS_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 500 "metafns.gperf"
        {"is_annotation", METAFN_IS_ANNOTATION, METAFN_KIND_BOOL_INFO,},
! #line 592 "metafns.gperf"
        {"is_data_member_spec", METAFN_IS_DATA_MEMBER_SPEC, METAFN_KIND_BOOL_INFO,},
! #line 506 "metafns.gperf"
!       {"has_static_storage_duration", METAFN_HAS_STATIC_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
! #line 591 "metafns.gperf"
!       {"data_member_spec", METAFN_DATA_MEMBER_SPEC, METAFN_KIND_INFO_TINFO_DATA_MEMBER_OPTIONS,},
! #line 479 "metafns.gperf"
        {"display_string_of", METAFN_DISPLAY_STRING_OF, METAFN_KIND_STRING_VIEW_INFO,},
! #line 602 "metafns.gperf"
        {"is_member_object_pointer_type", METAFN_IS_MEMBER_OBJECT_POINTER_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 511 "metafns.gperf"
!       {"has_external_linkage", METAFN_HAS_EXTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 622 "metafns.gperf"
!       {"is_abstract_type", METAFN_IS_ABSTRACT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 492 "metafns.gperf"
        {"is_deleted", METAFN_IS_DELETED, METAFN_KIND_BOOL_INFO,},
! #line 597 "metafns.gperf"
        {"is_floating_point_type", METAFN_IS_FLOATING_POINT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 587 "metafns.gperf"
!       {"reflect_object", METAFN_REFLECT_OBJECT, METAFN_KIND_INFO_TEMPLATE_PARM_REF,},
! #line 699 "metafns.gperf"
!       {"unwrap_ref_decay", METAFN_UNWRAP_REF_DECAY, METAFN_KIND_INFO_TINFO,},
! #line 493 "metafns.gperf"
        {"is_defaulted", METAFN_IS_DEFAULTED, METAFN_KIND_BOOL_INFO,},
! #line 661 "metafns.gperf"
!       {"has_unique_object_representations", METAFN_HAS_UNIQUE_OBJECT_REPRESENTATIONS, METAFN_KIND_BOOL_TINFO,},
! #line 614 "metafns.gperf"
!       {"is_compound_type", METAFN_IS_COMPOUND_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 483 "metafns.gperf"
        {"object_of", METAFN_OBJECT_OF, METAFN_KIND_INFO_INFO,},
! #line 681 "metafns.gperf"
!       {"add_volatile", METAFN_ADD_VOLATILE, METAFN_KIND_INFO_TINFO,},
! #line 475 "metafns.gperf"
!       {"u8symbol_of", METAFN_U8SYMBOL_OF, METAFN_KIND_U8STRING_VIEW_OPERATORS,},
! #line 568 "metafns.gperf"
!       {"has_inaccessible_bases", METAFN_HAS_INACCESSIBLE_BASES, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
! #line 569 "metafns.gperf"
!       {"has_inaccessible_subobjects", METAFN_HAS_INACCESSIBLE_SUBOBJECTS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
! #line 495 "metafns.gperf"
        {"is_user_declared", METAFN_IS_USER_DECLARED, METAFN_KIND_BOOL_INFO,},
! #line 523 "metafns.gperf"
        {"is_operator_function", METAFN_IS_OPERATOR_FUNCTION, METAFN_KIND_BOOL_INFO,},
! #line 697 "metafns.gperf"
        {"invoke_result", METAFN_INVOKE_RESULT, METAFN_KIND_INFO_TINFO_REFLECTION_RANGET,},
! #line 708 "metafns.gperf"
!       {"_S_exception_cvt_to_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_TO_UTF8, METAFN_KIND_U8STRING_VIEW_INPUT_RANGE,},
! #line 709 "metafns.gperf"
!       {"_S_exception_cvt_from_utf8", METAFN_EXCEPTION__S_EXCEPTION_CVT_FROM_UTF8, METAFN_KIND_STRING_VIEW_INPUT_RANGE,},
! #line 567 "metafns.gperf"
!       {"has_inaccessible_nonstatic_data_members", METAFN_HAS_INACCESSIBLE_NONSTATIC_DATA_MEMBERS, METAFN_KIND_BOOL_INFO_ACCESS_CONTEXT,},
! #line 544 "metafns.gperf"
        {"is_operator_function_template", METAFN_IS_OPERATOR_FUNCTION_TEMPLATE, METAFN_KIND_BOOL_INFO,},
! #line 490 "metafns.gperf"
!       {"is_override", METAFN_IS_OVERRIDE, METAFN_KIND_BOOL_INFO,},
! #line 686 "metafns.gperf"
!       {"make_signed", METAFN_MAKE_SIGNED, METAFN_KIND_INFO_TINFO,},
! #line 590 "metafns.gperf"
!       {"reflect_constant_array", METAFN_REFLECT_CONSTANT_ARRAY, METAFN_KIND_INFO_INPUT_RANGE,},
! #line 679 "metafns.gperf"
!       {"remove_cv", METAFN_REMOVE_CV, METAFN_KIND_INFO_TINFO,},
! #line 575 "metafns.gperf"
!       {"static_data_members_of", METAFN_STATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 559 "metafns.gperf"
!       {"dealias", METAFN_DEALIAS, METAFN_KIND_INFO_INFO,},
! #line 560 "metafns.gperf"
!       {"has_template_arguments", METAFN_HAS_TEMPLATE_ARGUMENTS, METAFN_KIND_BOOL_INFO,},
! #line 683 "metafns.gperf"
!       {"remove_reference", METAFN_REMOVE_REFERENCE, METAFN_KIND_INFO_TINFO,},
! #line 660 "metafns.gperf"
!       {"has_virtual_destructor", METAFN_HAS_VIRTUAL_DESTRUCTOR, METAFN_KIND_BOOL_TINFO,},
! #line 596 "metafns.gperf"
        {"is_integral_type", METAFN_IS_INTEGRAL_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 512 "metafns.gperf"
!       {"has_c_language_linkage", METAFN_HAS_C_LANGUAGE_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 498 "metafns.gperf"
!       {"is_bit_field", METAFN_IS_BIT_FIELD, METAFN_KIND_BOOL_INFO,},
! #line 623 "metafns.gperf"
!       {"is_final_type", METAFN_IS_FINAL_TYPE, METAFN_KIND_BOOL_TINFO,},
  #line 688 "metafns.gperf"
!       {"remove_extent", METAFN_REMOVE_EXTENT, METAFN_KIND_INFO_TINFO,},
! #line 476 "metafns.gperf"
!       {"has_identifier", METAFN_HAS_IDENTIFIER, METAFN_KIND_BOOL_INFO,},
! #line 693 "metafns.gperf"
        {"decay", METAFN_DECAY, METAFN_KIND_INFO_TINFO,},
! #line 619 "metafns.gperf"
!       {"is_standard_layout_type", METAFN_IS_STANDARD_LAYOUT_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 677 "metafns.gperf"
!       {"remove_const", METAFN_REMOVE_CONST, METAFN_KIND_INFO_TINFO,},
! #line 505 "metafns.gperf"
!       {"is_rvalue_reference_qualified", METAFN_IS_RVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
! #line 507 "metafns.gperf"
!       {"has_thread_storage_duration", METAFN_HAS_THREAD_STORAGE_DURATION, METAFN_KIND_BOOL_INFO,},
! #line 689 "metafns.gperf"
!       {"remove_all_extents", METAFN_REMOVE_ALL_EXTENTS, METAFN_KIND_INFO_TINFO,},
! #line 629 "metafns.gperf"
        {"is_unbounded_array_type", METAFN_IS_UNBOUNDED_ARRAY_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 692 "metafns.gperf"
!       {"remove_cvref", METAFN_REMOVE_CVREF, METAFN_KIND_INFO_TINFO,},
! #line 690 "metafns.gperf"
!       {"remove_pointer", METAFN_REMOVE_POINTER, METAFN_KIND_INFO_TINFO,},
! #line 504 "metafns.gperf"
!       {"is_lvalue_reference_qualified", METAFN_IS_LVALUE_REFERENCE_QUALIFIED, METAFN_KIND_BOOL_INFO,},
! #line 576 "metafns.gperf"
        {"nonstatic_data_members_of", METAFN_NONSTATIC_DATA_MEMBERS_OF, METAFN_KIND_VECTOR_INFO_INFO_ACCESS_CONTEXT,},
! #line 605 "metafns.gperf"
        {"is_union_type", METAFN_IS_UNION_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 706 "metafns.gperf"
        {"annotations_of_with_type", METAFN_ANNOTATIONS_OF_WITH_TYPE, METAFN_KIND_VECTOR_INFO_INFO_INFO,},
! #line 593 "metafns.gperf"
        {"define_aggregate", METAFN_DEFINE_AGGREGATE, METAFN_KIND_INFO_INFO_REFLECTION_RANGE,},
! #line 509 "metafns.gperf"
!       {"has_internal_linkage", METAFN_HAS_INTERNAL_LINKAGE, METAFN_KIND_BOOL_INFO,},
! #line 705 "metafns.gperf"
        {"annotations_of", METAFN_ANNOTATIONS_OF, METAFN_KIND_VECTOR_INFO_INFO,},
! #line 481 "metafns.gperf"
        {"source_location_of", METAFN_SOURCE_LOCATION_OF, METAFN_KIND_SOURCE_LOCATION_INFO,},
! #line 581 "metafns.gperf"
        {"alignment_of", METAFN_ALIGNMENT_OF, METAFN_KIND_SIZE_T_INFO,},
! #line 478 "metafns.gperf"
        {"u8identifier_of", METAFN_U8IDENTIFIER_OF, METAFN_KIND_U8STRING_VIEW_INFO,},
! #line 678 "metafns.gperf"
!       {"remove_volatile", METAFN_REMOVE_VOLATILE, METAFN_KIND_INFO_TINFO,},
! #line 627 "metafns.gperf"
        {"is_unsigned_type", METAFN_IS_UNSIGNED_TYPE, METAFN_KIND_BOOL_TINFO,},
! #line 494 "metafns.gperf"
        {"is_user_provided", METAFN_IS_USER_PROVIDED, METAFN_KIND_BOOL_INFO,}
      };
  #if (defined __GNUC__ && __GNUC__ + (__GNUC_MINOR__ >= 6) > 4) || (defined __clang__ && __clang_major__ >= 3)
*************** metafn_lookup::find (const char *str, si
*** 1100,1181 ****
         -1,  -1,   1,  -1,  -1,   2,   3,  -1,   4,  -1,
         -1,  -1,   5,  -1,  -1,   6,   7,   8,  -1,   9,
         10,  11,  12,  -1,  13,  14,  15,  16,  -1,  17,
!        18,  -1,  -1,  -1,  -1,  19,  20,  -1,  21,  22,
!        -1,  23,  24,  -1,  25,  -1,  -1,  -1,  -1,  26,
!        -1,  27,  28,  -1,  29,  30,  31,  32,  33,  -1,
!        34,  -1,  35,  36,  -1,  -1,  -1,  -1,  -1,  -1,
!        37,  -1,  38,  39,  40,  41,  -1,  -1,  -1,  -1,
!        42,  43,  44,  -1,  45,  -1,  46,  -1,  47,  -1,
!        -1,  48,  49,  -1,  -1,  -1,  -1,  50,  -1,  -1,
!        -1,  -1,  -1,  51,  -1,  -1,  52,  53,  54,  -1,
!        -1,  -1,  -1,  55,  56,  57,  58,  -1,  59,  -1,
!        -1,  60,  -1,  -1,  61,  62,  -1,  63,  -1,  -1,
!        -1,  64,  -1,  65,  -1,  -1,  66,  -1,  67,  -1,
!        -1,  68,  -1,  69,  -1,  -1,  70,  -1,  -1,  -1,
!        71,  -1,  -1,  72,  73,  74,  75,  -1,  -1,  -1,
!        76,  77,  78,  -1,  79,  80,  81,  82,  83,  -1,
!        84,  85,  86,  -1,  -1,  87,  -1,  -1,  88,  89,
!        90,  91,  -1,  -1,  -1,  -1,  92,  -1,  93,  94,
!        95,  96,  -1,  97,  98,  99,  -1,  -1, 100, 101,
!       102,  -1,  -1,  -1,  -1,  -1,  -1, 103,  -1,  -1,
!        -1, 104,  -1, 105,  -1, 106, 107,  -1, 108,  -1,
!       109, 110, 111, 112,  -1,  -1, 113, 114,  -1, 115,
!        -1, 116,  -1, 117, 118,  -1, 119,  -1,  -1, 120,
!       121, 122, 123,  -1, 124,  -1,  -1,  -1, 125, 126,
!        -1,  -1,  -1,  -1,  -1,  -1, 127,  -1,  -1,  -1,
!        -1,  -1, 128, 129, 130,  -1, 131, 132,  -1,  -1,
!        -1,  -1,  -1, 133, 134,  -1,  -1, 135, 136, 137,
!        -1, 138, 139,  -1,  -1,  -1, 140, 141,  -1,  -1,
!        -1,  -1,  -1, 142,  -1,  -1, 143,  -1, 144,  -1,
!       145,  -1,  -1, 146, 147, 148, 149,  -1, 150,  -1,
!       151, 152, 153, 154,  -1,  -1, 155, 156, 157, 158,
!       159,  -1, 160, 161,  -1,  -1, 162,  -1,  -1, 163,
!        -1, 164,  -1,  -1, 165, 166, 167, 168, 169,  -1,
!        -1,  -1,  -1, 170,  -1, 171, 172,  -1,  -1,  -1,
!        -1, 173,  -1,  -1, 174,  -1, 175,  -1,  -1,  -1,
!        -1,  -1, 176,  -1,  -1, 177, 178,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1, 179, 180, 181,
!        -1,  -1,  -1,  -1, 182,  -1,  -1,  -1,  -1, 183,
!        -1,  -1,  -1,  -1,  -1, 184,  -1,  -1,  -1, 185,
!        -1, 186, 187, 188,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1, 189,  -1, 190,  -1,  -1, 191,
!        -1,  -1,  -1,  -1, 192, 193, 194,  -1,  -1, 195,
!        -1,  -1, 196,  -1,  -1,  -1, 197,  -1, 198,  -1,
!        -1, 199,  -1, 200,  -1,  -1,  -1,  -1,  -1, 201,
!       202, 203, 204,  -1, 205,  -1,  -1, 206,  -1,  -1,
!       207,  -1, 208,  -1,  -1,  -1,  -1,  -1, 209,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1, 210,  -1,  -1,  -1,  -1,  -1, 211,
!        -1, 212,  -1,  -1,  -1,  -1,  -1,  -1, 213,  -1,
!        -1,  -1,  -1, 214,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1, 215,  -1,  -1,  -1, 216,  -1,  -1,  -1, 217,
!       218,  -1,  -1, 219,  -1,  -1,  -1,  -1, 220,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1, 221,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1, 222,  -1,  -1,  -1,  -1,
!       223,  -1,  -1,  -1,  -1, 224,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 225,  -1,
!        -1,  -1, 226, 227,  -1,  -1,  -1,  -1, 228,  -1,
!       229,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 230,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 231,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1, 232,  -1,  -1, 233,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1, 234,  -1,  -1, 235,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
-        -1,  -1,  -1, 236,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!       237
      };
  
    if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
--- 1097,1178 ----
         -1,  -1,   1,  -1,  -1,   2,   3,  -1,   4,  -1,
         -1,  -1,   5,  -1,  -1,   6,   7,   8,  -1,   9,
         10,  11,  12,  -1,  13,  14,  15,  16,  -1,  17,
!        18,  -1,  19,  -1,  -1,  20,  21,  22,  23,  24,
!        -1,  25,  26,  -1,  27,  28,  -1,  -1,  -1,  29,
!        -1,  30,  31,  -1,  32,  33,  34,  35,  36,  -1,
!        37,  -1,  38,  39,  -1,  -1,  -1,  -1,  -1,  -1,
!        40,  -1,  41,  42,  43,  44,  -1,  -1,  45,  -1,
!        -1,  46,  47,  -1,  48,  -1,  49,  -1,  50,  -1,
!        -1,  51,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  52,  53,  -1,  -1,
!        -1,  -1,  -1,  54,  55,  56,  57,  -1,  58,  -1,
!        -1,  59,  -1,  -1,  60,  61,  -1,  62,  -1,  -1,
!        -1,  63,  -1,  64,  -1,  -1,  65,  -1,  66,  -1,
!        -1,  67,  -1,  68,  -1,  -1,  69,  70,  -1,  -1,
!        -1,  -1,  -1,  71,  72,  -1,  73,  -1,  -1,  -1,
!        74,  75,  76,  -1,  -1,  77,  78,  -1,  79,  -1,
!        80,  81,  82,  -1,  -1,  83,  -1,  -1,  84,  85,
!        -1,  86,  -1,  -1,  -1,  -1,  -1,  -1,  87,  88,
!        -1,  89,  -1,  90,  91,  92,  -1,  -1,  93,  94,
!        95,  -1,  -1,  96,  -1,  -1,  -1,  97,  -1,  -1,
!        -1,  98,  -1,  99,  -1, 100, 101,  -1, 102, 103,
!       104, 105, 106, 107,  -1,  -1,  -1, 108,  -1, 109,
!        -1, 110,  -1, 111,  -1,  -1, 112,  -1,  -1, 113,
!       114, 115, 116, 117,  -1,  -1, 118,  -1, 119, 120,
!       121, 122,  -1,  -1,  -1,  -1, 123,  -1,  -1,  -1,
!        -1, 124, 125, 126, 127,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1, 128, 129,  -1,  -1, 130, 131, 132,
!        -1, 133,  -1, 134,  -1,  -1,  -1, 135, 136,  -1,
!        -1, 137,  -1, 138,  -1,  -1, 139,  -1, 140,  -1,
!        -1,  -1, 141, 142, 143, 144, 145,  -1, 146,  -1,
!       147, 148,  -1, 149,  -1,  -1, 150, 151, 152, 153,
!       154,  -1, 155,  -1,  -1,  -1, 156,  -1,  -1, 157,
!        -1, 158,  -1,  -1, 159, 160, 161, 162, 163,  -1,
!       164,  -1,  -1, 165,  -1, 166,  -1,  -1,  -1,  -1,
!        -1, 167,  -1, 168,  -1,  -1, 169, 170,  -1,  -1,
!        -1,  -1, 171, 172,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1, 173,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 174,
!        -1,  -1,  -1,  -1,  -1, 175,  -1,  -1,  -1,  -1,
!        -1, 176, 177, 178, 179,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1, 180,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1, 181, 182, 183,  -1,  -1,
!        -1, 184, 185,  -1,  -1, 186, 187,  -1, 188,  -1,
!       189, 190,  -1,  -1, 191,  -1,  -1,  -1,  -1, 192,
!        -1, 193,  -1,  -1, 194,  -1,  -1, 195, 196,  -1,
!       197, 198,  -1,  -1,  -1,  -1,  -1,  -1, 199,  -1,
!        -1,  -1,  -1, 200,  -1,  -1, 201, 202,  -1,  -1,
!        -1, 203,  -1,  -1,  -1, 204,  -1,  -1,  -1,  -1,
!       205, 206,  -1, 207, 208,  -1,  -1,  -1,  -1,  -1,
!       209, 210,  -1,  -1,  -1, 211, 212,  -1,  -1,  -1,
!       213, 214,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!       215,  -1,  -1, 216, 217,  -1,  -1, 218,  -1,  -1,
!       219,  -1,  -1,  -1,  -1, 220,  -1, 221,  -1, 222,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+        -1, 223, 224,  -1,  -1, 225,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1, 226,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 227,  -1,
!       228,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1, 229,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 230,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+        -1,  -1, 231,  -1,  -1, 232,  -1,  -1,  -1,  -1,
+        -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1, 233,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
+        -1,  -1, 234,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
         -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!       235,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,  -1,
!       236
      };
  
    if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
diff -Nrcpad gcc-16-20260405/gcc/cp/module.cc gcc-16-20260412/gcc/cp/module.cc
*** gcc-16-20260405/gcc/cp/module.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/module.cc	Sun Apr 12 22:32:07 2026
*************** trees_in::is_matching_decl (tree existin
*** 12619,12630 ****
        tree d_spec = TYPE_RAISES_EXCEPTIONS (d_type);
        if (DECL_MAYBE_DELETED (e_inner) || DEFERRED_NOEXCEPT_SPEC_P (e_spec))
  	{
! 	  if (!DEFERRED_NOEXCEPT_SPEC_P (d_spec)
  	      || (UNEVALUATED_NOEXCEPT_SPEC_P (e_spec)
  		  && !UNEVALUATED_NOEXCEPT_SPEC_P (d_spec)))
  	    {
  	      dump (dumper::MERGE)
  		&& dump ("Propagating instantiated noexcept to %N", existing);
  	      TREE_TYPE (existing) = d_type;
  
  	      /* Propagate to existing clones.  */
--- 12619,12632 ----
        tree d_spec = TYPE_RAISES_EXCEPTIONS (d_type);
        if (DECL_MAYBE_DELETED (e_inner) || DEFERRED_NOEXCEPT_SPEC_P (e_spec))
  	{
! 	  if (!(DECL_MAYBE_DELETED (d_inner)
! 		|| DEFERRED_NOEXCEPT_SPEC_P (d_spec))
  	      || (UNEVALUATED_NOEXCEPT_SPEC_P (e_spec)
  		  && !UNEVALUATED_NOEXCEPT_SPEC_P (d_spec)))
  	    {
  	      dump (dumper::MERGE)
  		&& dump ("Propagating instantiated noexcept to %N", existing);
+ 	      gcc_checking_assert (existing == e_inner);
  	      TREE_TYPE (existing) = d_type;
  
  	      /* Propagate to existing clones.  */
*************** trees_in::is_matching_decl (tree existin
*** 12650,12656 ****
  
        /* Similarly if EXISTING has an undeduced return type, but DECL's
  	 is already deduced.  */
!       if (undeduced_auto_decl (existing) && !undeduced_auto_decl (decl))
  	{
  	  dump (dumper::MERGE)
  	    && dump ("Propagating deduced return type to %N", existing);
--- 12652,12660 ----
  
        /* Similarly if EXISTING has an undeduced return type, but DECL's
  	 is already deduced.  */
!       bool e_undeduced = undeduced_auto_decl (existing);
!       bool d_undeduced = undeduced_auto_decl (decl);
!       if (e_undeduced && !d_undeduced)
  	{
  	  dump (dumper::MERGE)
  	    && dump ("Propagating deduced return type to %N", existing);
*************** trees_in::is_matching_decl (tree existin
*** 12659,12664 ****
--- 12663,12670 ----
  	  DECL_SAVED_AUTO_RETURN_TYPE (existing) = TREE_TYPE (e_type);
  	  TREE_TYPE (existing) = change_return_type (TREE_TYPE (d_type), e_type);
  	}
+       else if (d_undeduced && !e_undeduced)
+ 	/* EXISTING was deduced, leave it alone.  */;
        else if (type_uses_auto (d_ret)
  	       && !same_type_p (TREE_TYPE (d_type), TREE_TYPE (e_type)))
  	{
*************** instantiating_tu_local_entity (tree decl
*** 14525,14531 ****
      return false;
  
    auto_diagnostic_group d;
!   warning (OPT_Wexpose_global_module_tu_local,
  	   "instantiation exposes TU-local entity %qD", decl);
    inform (DECL_SOURCE_LOCATION (decl), "declared here");
  
--- 14531,14537 ----
      return false;
  
    auto_diagnostic_group d;
!   pedwarn (input_location, OPT_Wexpose_global_module_tu_local,
  	   "instantiation exposes TU-local entity %qD", decl);
    inform (DECL_SOURCE_LOCATION (decl), "declared here");
  
*************** depset::hash::add_dependency (depset *de
*** 14855,14863 ****
       details.  */
    if (writing_merge_key)
      {
!       dep->set_flag_bit<DB_MAYBE_RECURSIVE_BIT> ();
!       if (!current->is_maybe_recursive ())
  	current->set_flag_bit<DB_ENTRY_BIT> ();
      }
  
    if (dep->is_unreached ())
--- 14861,14870 ----
       details.  */
    if (writing_merge_key)
      {
!       if (!dep->is_maybe_recursive () && !current->is_maybe_recursive ())
  	current->set_flag_bit<DB_ENTRY_BIT> ();
+       dep->set_flag_bit<DB_MAYBE_RECURSIVE_BIT> ();
+       current->set_flag_bit<DB_MAYBE_RECURSIVE_BIT> ();
      }
  
    if (dep->is_unreached ())
*************** depset::hash::add_binding_entity (tree d
*** 14965,14971 ****
  	return false;
  
        bool internal_decl = false;
!       if (!header_module_p () && is_tu_local_entity (decl))
  	{
  	  /* A TU-local entity.  For ADL we still need to create bindings
  	     for internal-linkage functions attached to a named module.  */
--- 14972,14979 ----
  	return false;
  
        bool internal_decl = false;
!       if (!header_module_p () && is_tu_local_entity (decl)
! 	  && !((flags & WMB_Using) && (flags & WMB_Export)))
  	{
  	  /* A TU-local entity.  For ADL we still need to create bindings
  	     for internal-linkage functions attached to a named module.  */
*************** depset::hash::finalize_dependencies ()
*** 15991,15996 ****
--- 15999,16009 ----
        if (dep->is_tu_local ())
  	continue;
  
+       /* We already complained about usings of non-external entities in
+ 	 check_can_export_using_decl, don't do it again here.  */
+       if (dep->get_entity_kind () == EK_USING)
+ 	continue;
+ 
        if (dep->is_exposure ())
  	{
  	  bool explained = diagnose_bad_internal_ref (dep);
*************** set_defining_module_for_partial_spec (tr
*** 22076,22087 ****
      vec_safe_push (partial_specializations, decl);
  }
  
  void
  set_originating_module (tree decl, bool friend_p ATTRIBUTE_UNUSED)
  {
    set_instantiating_module (decl);
  
!   if (!DECL_NAMESPACE_SCOPE_P (decl))
      return;
  
    gcc_checking_assert (friend_p || decl == get_originating_module_decl (decl));
--- 22089,22106 ----
      vec_safe_push (partial_specializations, decl);
  }
  
+ /* Record that DECL is declared in this TU, and note attachment and
+    exporting for namespace-scope entities.  FRIEND_P is true if
+    this is a friend declaration.  */
+ 
  void
  set_originating_module (tree decl, bool friend_p ATTRIBUTE_UNUSED)
  {
    set_instantiating_module (decl);
  
!   /* DECL_CONTEXT may not be set yet when we're called for
!      non-namespace-scope entities.  */
!   if (!DECL_CONTEXT (decl) || !DECL_NAMESPACE_SCOPE_P (decl))
      return;
  
    gcc_checking_assert (friend_p || decl == get_originating_module_decl (decl));
*************** check_module_decl_linkage (tree decl)
*** 22134,22140 ****
  	 internal namespace as exporting a declaration with internal
  	 linkage, as this would also implicitly export the internal
  	 linkage namespace.  */
!       if (decl_internal_context_p (decl))
  	{
  	  error_at (DECL_SOURCE_LOCATION (decl),
  		    "exporting declaration %qD declared in unnamed namespace",
--- 22153,22159 ----
  	 internal namespace as exporting a declaration with internal
  	 linkage, as this would also implicitly export the internal
  	 linkage namespace.  */
!       if (decl_anon_ns_mem_p (decl))
  	{
  	  error_at (DECL_SOURCE_LOCATION (decl),
  		    "exporting declaration %qD declared in unnamed namespace",
diff -Nrcpad gcc-16-20260405/gcc/cp/name-lookup.cc gcc-16-20260412/gcc/cp/name-lookup.cc
*** gcc-16-20260405/gcc/cp/name-lookup.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/name-lookup.cc	Sun Apr 12 22:32:07 2026
*************** check_can_export_using_decl (tree bindin
*** 5496,5513 ****
  	  && !DECL_MODULE_EXPORT_P (not_tmpl)))
      {
        auto_diagnostic_group d;
!       error ("exporting %q#D that does not have external linkage",
! 	     binding);
!       if (linkage == lk_none)
! 	inform (DECL_SOURCE_LOCATION (entity),
! 		"%q#D declared here with no linkage", entity);
!       else if (linkage == lk_internal)
! 	inform (DECL_SOURCE_LOCATION (entity),
! 		"%q#D declared here with internal linkage", entity);
        else
! 	inform (DECL_SOURCE_LOCATION (entity),
! 		"%q#D declared here with module linkage", entity);
!       return false;
      }
  
    return true;
--- 5496,5537 ----
  	  && !DECL_MODULE_EXPORT_P (not_tmpl)))
      {
        auto_diagnostic_group d;
!       bool diag = true;
! 
!       /* As an extension, we'll allow exposing internal entities from
! 	 the GMF, to aid in migration to modules.  For now, we only
! 	 support this for functions and variables; see also 
! 	 depset::is_tu_local.  */
!       bool relaxed = (VAR_OR_FUNCTION_DECL_P (not_tmpl)
! 		      && !(DECL_LANG_SPECIFIC (not_tmpl)
! 			   && DECL_MODULE_PURVIEW_P (not_tmpl)));
!       if (relaxed)
! 	{
! 	  gcc_checking_assert (linkage != lk_external);
! 	  diag = (warning_enabled_at (DECL_SOURCE_LOCATION (entity),
! 				      OPT_Wexpose_global_module_tu_local)
! 		  && pedwarn (input_location,
! 			      OPT_Wexpose_global_module_tu_local,
! 			      "exporting %q#D that does not have "
! 			      "external linkage", binding));
! 	}
        else
! 	error ("exporting %q#D that does not have external linkage", binding);
! 
!       if (diag)
! 	{
! 	  if (linkage == lk_none)
! 	    inform (DECL_SOURCE_LOCATION (entity),
! 		    "%q#D declared here with no linkage", entity);
! 	  else if (linkage == lk_internal)
! 	    inform (DECL_SOURCE_LOCATION (entity),
! 		    "%q#D declared here with internal linkage", entity);
! 	  else
! 	    inform (DECL_SOURCE_LOCATION (entity),
! 		    "%q#D declared here with module linkage", entity);
! 	}
! 
!       return relaxed;
      }
  
    return true;
diff -Nrcpad gcc-16-20260405/gcc/cp/parser.cc gcc-16-20260412/gcc/cp/parser.cc
*** gcc-16-20260405/gcc/cp/parser.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/parser.cc	Sun Apr 12 22:32:07 2026
*************** cp_parser_splice_expression (cp_parser *
*** 6318,6323 ****
--- 6318,6325 ----
        SET_SPLICE_EXPR_EXPRESSION_P (t);
        SET_SPLICE_EXPR_MEMBER_ACCESS_P (t, member_access_p);
        SET_SPLICE_EXPR_ADDRESS_P (t, address_p);
+       SET_SPLICE_EXPR_TEMPLATE_P (t, template_p);
+       SET_SPLICE_EXPR_TARGS_P (t, targs_p);
        return t;
      }
  
*************** cp_parser_splice_expression (cp_parser *
*** 6330,6367 ****
  
    /* Make sure this splice-expression produces an expression.  */
    if (!check_splice_expr (loc, expr.get_start (), t, address_p,
! 			  member_access_p, /*complain=*/true))
      return error_mark_node;
  
!   if (template_p)
!     {
!       /* [expr.prim.splice] For a splice-expression of the form template
! 	 splice-specifier, the splice-specifier shall designate a function
! 	 template.  */
!       if (!targs_p
! 	  && !really_overloaded_fn (t)
! 	  && !dependent_splice_p (t))
! 	{
! 	  auto_diagnostic_group d;
! 	  error_at (loc, "expected a reflection of a function template");
! 	  inform_tree_category (t);
! 	  return error_mark_node;
! 	}
!       /* [expr.prim.splice] For a splice-expression of the form
! 	 template splice-specialization-specifier, the splice-specifier of the
! 	 splice-specialization-specifier shall designate a template.  Since
! 	 we would have already complained, just check that we have a template.  */
!       gcc_checking_assert (really_overloaded_fn (t)
! 			   || get_template_info (t)
! 			   || TREE_CODE (t) == TEMPLATE_ID_EXPR
! 			   || dependent_splice_p (t));
!     }
!   else if (/* No 'template' but there were template arguments?  */
! 	   (targs_p
! 	    /* No 'template' but the splice-specifier designates a function
! 	       template?  */
! 	    || really_overloaded_fn (t))
! 	   && warning_enabled_at (loc, OPT_Wmissing_template_keyword))
      /* Were 'template' present, this would be valid code, so keep going.  */
      missing_template_diag (loc, diagnostics::kind::pedwarn);
  
--- 6332,6348 ----
  
    /* Make sure this splice-expression produces an expression.  */
    if (!check_splice_expr (loc, expr.get_start (), t, address_p,
! 			  member_access_p, template_p, targs_p,
! 			  /*complain=*/true))
      return error_mark_node;
  
!   if (!template_p
!       /* No 'template' but there were template arguments?  */
!       && (targs_p
! 	  /* No 'template' but the splice-specifier designates a function
! 	     template?  */
! 	  || really_overloaded_fn (t))
!       && warning_enabled_at (loc, OPT_Wmissing_template_keyword))
      /* Were 'template' present, this would be valid code, so keep going.  */
      missing_template_diag (loc, diagnostics::kind::pedwarn);
  
*************** cp_parser_reflect_expression (cp_parser
*** 10155,10160 ****
--- 10136,10150 ----
  	 ^^B <int> is a type alias though.  */
        if (TYPE_P (t) && !type_alias_p)
  	t = strip_typedefs (t);
+       /* [expr.reflect] If the type-id designates a placeholder type, R is
+ 	 ill-formed.  This check is here rather than in get_reflection so
+ 	 that we don't wrongly error for a return-type-requirement which is
+ 	 represented as a constrained auto.  */
+       if (is_auto (t))
+ 	{
+ 	  error_at (loc, "%<^^%> cannot be applied to a placeholder type");
+ 	  return error_mark_node;
+ 	}
        return get_reflection (loc, t);
      }
    /* Try an id-expression.  */
*************** cp_parser_reflect_expression (cp_parser
*** 10190,10195 ****
--- 10180,10187 ----
  	&& variable_template_p (TREE_OPERAND (t, 0))
  	&& !concept_check_p (t))
        t = finish_template_variable (t);
+     else if (is_overloaded_fn (t))
+       t = baselink_for_fns (t);
      if (cp_parser_parse_definitely (parser))
        return get_reflection (loc, t);
    }
*************** cp_parser_range_for (cp_parser *parser,
*** 15854,15869 ****
     builds up the range temporary.  */
  
  tree
! build_range_temp (tree range_expr, bool expansion_stmt_p /* = false */)
  {
    tree range_type, auto_node;
  
!   if (expansion_stmt_p)
      {
        /* Build const decltype(auto) __range = range_expr;
  	 - range_expr provided by the caller already is (range_expr).  */
!       auto_node = make_decltype_auto ();
!       range_type = cp_build_qualified_type (auto_node, TYPE_QUAL_CONST);
      }
    else
      {
--- 15846,15862 ----
     builds up the range temporary.  */
  
  tree
! build_range_temp (tree range_expr, tree expansion_stmt_decl /* = NULL_TREE */)
  {
    tree range_type, auto_node;
  
!   if (expansion_stmt_decl)
      {
        /* Build const decltype(auto) __range = range_expr;
  	 - range_expr provided by the caller already is (range_expr).  */
!       range_type = auto_node = make_decltype_auto ();
!       if (DECL_DECLARED_CONSTEXPR_P (expansion_stmt_decl))
! 	range_type = cp_build_qualified_type (auto_node, TYPE_QUAL_CONST);
      }
    else
      {
*************** warn_for_range_copy (tree decl, tree exp
*** 16007,16017 ****
  
  /* Helper function for cp_convert_range_for and finish_expansion_stmt.
     Build the __range, __begin and __end declarations.  Return the
!    __begin VAR_DECL, set *END_P to the __end VAR_DECL.  */
  
  tree
  cp_build_range_for_decls (location_t loc, tree range_expr, tree *end_p,
! 			  bool expansion_stmt_p)
  {
    tree iter_type, begin_expr, end_expr;
  
--- 16000,16012 ----
  
  /* Helper function for cp_convert_range_for and finish_expansion_stmt.
     Build the __range, __begin and __end declarations.  Return the
!    __begin VAR_DECL, set *END_P to the __end VAR_DECL.  If
!    EXPANSION_STMT_DECL, don't create __end and instead store
!    begin_expr to END_P[0] and end_expr to END_P[1].  */
  
  tree
  cp_build_range_for_decls (location_t loc, tree range_expr, tree *end_p,
! 			  tree expansion_stmt_decl)
  {
    tree iter_type, begin_expr, end_expr;
  
*************** cp_build_range_for_decls (location_t loc
*** 16023,16052 ****
      {
        tree range_temp;
  
!       if (!expansion_stmt_p
  	  && VAR_P (range_expr)
  	  && array_of_runtime_bound_p (TREE_TYPE (range_expr)))
  	/* Can't bind a reference to an array of runtime bound.  */
  	range_temp = range_expr;
        else
  	{
! 	  if (expansion_stmt_p)
  	    {
  	      /* Build constexpr decltype(auto) __for_range = (range_expr);  */
  	      location_t range_loc = cp_expr_loc_or_loc (range_expr, loc);
  	      range_expr
  		= finish_parenthesized_expr (cp_expr (range_expr, range_loc));
! 	      range_temp = build_range_temp (range_expr, true);
  
  	      /* When P2686R4 is fully implemented, these 3 sets of TREE_STATIC
  		 (on range_temp, begin and end) should be removed as per
! 		 CWG3044.  */
! 	      TREE_STATIC (range_temp) = 1;
! 	      TREE_PUBLIC (range_temp) = 0;
! 	      DECL_COMMON (range_temp) = 0;
! 	      DECL_INTERFACE_KNOWN (range_temp) = 1;
! 	      DECL_DECLARED_CONSTEXPR_P (range_temp) = 1;
! 	      TREE_READONLY (range_temp) = 1;
  	    }
  	  else
  	    /* Build auto &&__for_range = range_expr;  */
--- 16018,16051 ----
      {
        tree range_temp;
  
!       if (!expansion_stmt_decl
  	  && VAR_P (range_expr)
  	  && array_of_runtime_bound_p (TREE_TYPE (range_expr)))
  	/* Can't bind a reference to an array of runtime bound.  */
  	range_temp = range_expr;
        else
  	{
! 	  if (expansion_stmt_decl)
  	    {
  	      /* Build constexpr decltype(auto) __for_range = (range_expr);  */
  	      location_t range_loc = cp_expr_loc_or_loc (range_expr, loc);
  	      range_expr
  		= finish_parenthesized_expr (cp_expr (range_expr, range_loc));
! 	      range_temp = build_range_temp (range_expr, expansion_stmt_decl);
  
  	      /* When P2686R4 is fully implemented, these 3 sets of TREE_STATIC
  		 (on range_temp, begin and end) should be removed as per
! 		 CWG3044.  If expansion_stmt_decl is not constexpr, we don't
! 		 need the static though.  */
! 	      if (DECL_DECLARED_CONSTEXPR_P (expansion_stmt_decl))
! 		{
! 		  TREE_STATIC (range_temp) = 1;
! 		  TREE_PUBLIC (range_temp) = 0;
! 		  DECL_COMMON (range_temp) = 0;
! 		  DECL_INTERFACE_KNOWN (range_temp) = 1;
! 		  DECL_DECLARED_CONSTEXPR_P (range_temp) = 1;
! 		  TREE_READONLY (range_temp) = 1;
! 		}
  	    }
  	  else
  	    /* Build auto &&__for_range = range_expr;  */
*************** cp_build_range_for_decls (location_t loc
*** 16063,16074 ****
      }
  
    /* The new for initialization statement.  */
!   if (expansion_stmt_p && !TYPE_REF_P (iter_type))
      iter_type = cp_build_qualified_type (iter_type, TYPE_QUAL_CONST);
    tree begin = build_decl (loc, VAR_DECL, for_begin__identifier, iter_type);
    TREE_USED (begin) = 1;
    DECL_ARTIFICIAL (begin) = 1;
!   if (expansion_stmt_p)
      {
        TREE_STATIC (begin) = 1;
        DECL_DECLARED_CONSTEXPR_P (begin) = 1;
--- 16062,16075 ----
      }
  
    /* The new for initialization statement.  */
!   if (expansion_stmt_decl
!       && DECL_DECLARED_CONSTEXPR_P (expansion_stmt_decl)
!       && !TYPE_REF_P (iter_type))
      iter_type = cp_build_qualified_type (iter_type, TYPE_QUAL_CONST);
    tree begin = build_decl (loc, VAR_DECL, for_begin__identifier, iter_type);
    TREE_USED (begin) = 1;
    DECL_ARTIFICIAL (begin) = 1;
!   if (expansion_stmt_decl && DECL_DECLARED_CONSTEXPR_P (expansion_stmt_decl))
      {
        TREE_STATIC (begin) = 1;
        DECL_DECLARED_CONSTEXPR_P (begin) = 1;
*************** cp_build_range_for_decls (location_t loc
*** 16079,16099 ****
  		  /*is_constant_init*/false, NULL_TREE,
  		  LOOKUP_ONLYCONVERTING);
  
!   if (cxx_dialect >= cxx17)
      {
!       iter_type = cv_unqualified (TREE_TYPE (end_expr));
!       if (expansion_stmt_p && !TYPE_REF_P (iter_type))
! 	iter_type = cp_build_qualified_type (iter_type, TYPE_QUAL_CONST);
      }
    tree end = build_decl (loc, VAR_DECL, for_end__identifier, iter_type);
    TREE_USED (end) = 1;
    DECL_ARTIFICIAL (end) = 1;
-   if (expansion_stmt_p)
-     {
-       TREE_STATIC (end) = 1;
-       DECL_DECLARED_CONSTEXPR_P (end) = 1;
-       TREE_READONLY (end) = 1;
-     }
    pushdecl (end);
    cp_finish_decl (end, end_expr,
  		  /*is_constant_init*/false, NULL_TREE,
--- 16080,16097 ----
  		  /*is_constant_init*/false, NULL_TREE,
  		  LOOKUP_ONLYCONVERTING);
  
!   if (expansion_stmt_decl)
      {
!       end_p[0] = begin_expr;
!       end_p[1] = end_expr;
!       return begin;
      }
+ 
+   if (cxx_dialect >= cxx17)
+     iter_type = cv_unqualified (TREE_TYPE (end_expr));
    tree end = build_decl (loc, VAR_DECL, for_end__identifier, iter_type);
    TREE_USED (end) = 1;
    DECL_ARTIFICIAL (end) = 1;
    pushdecl (end);
    cp_finish_decl (end, end_expr,
  		  /*is_constant_init*/false, NULL_TREE,
*************** cp_convert_range_for (tree statement, tr
*** 16149,16155 ****
    if (range_decl == error_mark_node)
      range_expr = error_mark_node;
    tree begin
!     = cp_build_range_for_decls (input_location, range_expr, &end, false);
  
    finish_init_stmt (statement);
  
--- 16147,16153 ----
    if (range_decl == error_mark_node)
      range_expr = error_mark_node;
    tree begin
!     = cp_build_range_for_decls (input_location, range_expr, &end, NULL_TREE);
  
    finish_init_stmt (statement);
  
*************** cp_parser_expansion_statement (cp_parser
*** 16685,16690 ****
--- 16683,16702 ----
    TEMPLATE_FOR_EXPR (r) = expansion_init;
    TEMPLATE_FOR_BODY (r) = do_pushlevel (sk_block);
  
+   /* We don't know yet if range_decl will be initialized by constant
+      expression or not.  */
+   if (VAR_P (range_decl))
+     {
+       DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (range_decl) = 1;
+       if (decl_maybe_constant_var_p (range_decl)
+ 	  /* FIXME setting TREE_CONSTANT on refs breaks the back end.  */
+ 	  && !TYPE_REF_P (TREE_TYPE (range_decl)))
+ 	TREE_CONSTANT (range_decl) = true;
+       /* Make it value dependent.  */
+       retrofit_lang_decl (range_decl);
+       SET_DECL_DEPENDENT_INIT_P (range_decl, 1);
+     }
+ 
    /* Parse the body of the expansion-statement.  */
    parser->in_statement = IN_EXPANSION_STMT;
    bool prev = note_iteration_stmt_body_start ();
*************** cp_parser_template_id (cp_parser *parser
*** 21315,21321 ****
  	  return error_mark_node;
  	}
        else
! 	gcc_assert (false);
  
        template_id = lookup_template_function (templ, arguments);
        if (TREE_CODE (template_id) == TEMPLATE_ID_EXPR)
--- 21327,21333 ----
  	  return error_mark_node;
  	}
        else
! 	gcc_unreachable ();
  
        template_id = lookup_template_function (templ, arguments);
        if (TREE_CODE (template_id) == TEMPLATE_ID_EXPR)
*************** cp_parser_omp_clause_proc_bind (cp_parse
*** 45801,45807 ****
    return c;
  
   invalid_kind:
!   cp_parser_error (parser, "invalid depend kind");
   resync_fail:
    cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
  					 /*or_comma=*/false,
--- 45813,45819 ----
    return c;
  
   invalid_kind:
!   cp_parser_error (parser, "invalid proc_bind kind");
   resync_fail:
    cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
  					 /*or_comma=*/false,
*************** cp_parser_omp_clause_device_type (cp_par
*** 45868,45874 ****
    return c;
  
   invalid_kind:
!   cp_parser_error (parser, "invalid depend kind");
   resync_fail:
    cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
  					 /*or_comma=*/false,
--- 45880,45886 ----
    return c;
  
   invalid_kind:
!   cp_parser_error (parser, "expected %<host%>, %<nohost%> or %<any%>");
   resync_fail:
    cp_parser_skip_to_closing_parenthesis (parser, /*recovering=*/true,
  					 /*or_comma=*/false,
*************** cp_parser_omp_loop_nest (cp_parser *pars
*** 49501,49507 ****
  	  TREE_VEC_ELT (omp_for_parse_state->condv, depth) = NULL_TREE;
  	  TREE_VEC_ELT (omp_for_parse_state->incrv, depth) = NULL_TREE;
  	  if (omp_for_parse_state->orig_declv)
! 	    TREE_VEC_ELT (omp_for_parse_state->incrv, depth) = NULL_TREE;
  	  vec_safe_push (omp_for_parse_state->init_blockv, NULL_TREE);
  	  vec_safe_push (omp_for_parse_state->body_blockv, NULL_TREE);
  	  vec_safe_push (omp_for_parse_state->init_placeholderv, NULL_TREE);
--- 49513,49519 ----
  	  TREE_VEC_ELT (omp_for_parse_state->condv, depth) = NULL_TREE;
  	  TREE_VEC_ELT (omp_for_parse_state->incrv, depth) = NULL_TREE;
  	  if (omp_for_parse_state->orig_declv)
! 	    TREE_VEC_ELT (omp_for_parse_state->orig_declv, depth) = NULL_TREE;
  	  vec_safe_push (omp_for_parse_state->init_blockv, NULL_TREE);
  	  vec_safe_push (omp_for_parse_state->body_blockv, NULL_TREE);
  	  vec_safe_push (omp_for_parse_state->init_placeholderv, NULL_TREE);
diff -Nrcpad gcc-16-20260405/gcc/cp/pt.cc gcc-16-20260412/gcc/cp/pt.cc
*** gcc-16-20260405/gcc/cp/pt.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/pt.cc	Sun Apr 12 22:32:07 2026
*************** dependent_alias_template_spec_p (const_t
*** 6872,6877 ****
--- 6872,6885 ----
  bool
  dependent_opaque_alias_p (const_tree t)
  {
+   auto any_lambda_targ_p = [] (tree args)
+     {
+       for (tree arg : tree_vec_range (args))
+ 	if (TREE_CODE (arg) == LAMBDA_EXPR)
+ 	  return true;
+       return false;
+     };
+ 
    return (TYPE_P (t)
  	  && typedef_variant_p (t)
  	  && (any_dependent_type_attributes_p (DECL_ATTRIBUTES
*************** dependent_opaque_alias_p (const_tree t)
*** 6882,6888 ****
  		 alias would incorrectly yield a distinct lambda type.  */
  	      || (TREE_CODE (t) == DECLTYPE_TYPE
  		  && TREE_CODE (DECLTYPE_TYPE_EXPR (t)) == LAMBDA_EXPR
! 		  && !typedef_variant_p (DECL_ORIGINAL_TYPE (TYPE_NAME (t))))));
  }
  
  /* Return the number of innermost template parameters in TMPL.  */
--- 6890,6906 ----
  		 alias would incorrectly yield a distinct lambda type.  */
  	      || (TREE_CODE (t) == DECLTYPE_TYPE
  		  && TREE_CODE (DECLTYPE_TYPE_EXPR (t)) == LAMBDA_EXPR
! 		  && !typedef_variant_p (DECL_ORIGINAL_TYPE (TYPE_NAME (t))))
! 	      /* Also treat an alias to A<lambda> as opaque so that it doesn't
! 		 "leak" into a deeper template context which would cause us to
! 		 over substitute into the lambda.  */
! 	      /* FIXME These lambda checks don't recognize deeply nested lambda
! 		 subexpressions, and we can't use walk_tree here because it's
! 		 slow.  Maybe a tree flag indicating typedef opaqueness?  */
! 	      || (TYPE_TEMPLATE_INFO (t)
! 		  && PRIMARY_TEMPLATE_P (TYPE_TI_TEMPLATE (t))
! 		  && any_lambda_targ_p (INNERMOST_TEMPLATE_ARGS
! 					(TYPE_TI_ARGS (t))))));
  }
  
  /* Return the number of innermost template parameters in TMPL.  */
*************** has_value_dependent_address (tree op)
*** 7121,7127 ****
        if (VAR_P (op)
  	  && TREE_STATIC (op)
  	  && TREE_CODE (ctx) == FUNCTION_DECL
! 	  && type_dependent_expression_p (ctx))
  	return true;
      }
  
--- 7139,7146 ----
        if (VAR_P (op)
  	  && TREE_STATIC (op)
  	  && TREE_CODE (ctx) == FUNCTION_DECL
! 	  && DECL_TEMPLATE_INFO (ctx)
! 	  && any_dependent_template_arguments_p (DECL_TI_ARGS (ctx)))
  	return true;
      }
  
*************** get_template_parm_object (tree expr, tre
*** 7532,7537 ****
--- 7551,7558 ----
    DECL_NAME (decl) = name;
    SET_DECL_ASSEMBLER_NAME (decl, name);
    comdat_linkage (decl);
+   if (check_init)
+     expr = unshare_expr_without_location (expr);
  
    if (!zero_init_p (type))
      {
*************** tsubst_splice_expr (tree t, tree args, t
*** 16814,16825 ****
--- 16835,16852 ----
  	SET_SPLICE_EXPR_MEMBER_ACCESS_P (op, true);
        if (SPLICE_EXPR_ADDRESS_P (t))
  	SET_SPLICE_EXPR_ADDRESS_P (op, true);
+       if (SPLICE_EXPR_TEMPLATE_P (t))
+ 	SET_SPLICE_EXPR_TEMPLATE_P (op, true);
+       if (SPLICE_EXPR_TARGS_P (t))
+ 	SET_SPLICE_EXPR_TARGS_P (op, true);
        return op;
      }
    if (SPLICE_EXPR_EXPRESSION_P (t)
        && !check_splice_expr (input_location, UNKNOWN_LOCATION, op,
  			     SPLICE_EXPR_ADDRESS_P (t),
  			     SPLICE_EXPR_MEMBER_ACCESS_P (t),
+ 			     SPLICE_EXPR_TEMPLATE_P (t),
+ 			     SPLICE_EXPR_TARGS_P (t),
  			     (complain & tf_error)))
      return error_mark_node;
  
*************** tsubst_stmt (tree t, tree args, tsubst_f
*** 19776,19781 ****
--- 19803,19813 ----
  	      orig_decl = TREE_VEC_ELT (orig_decl, 0);
  	    tree decl = tsubst (orig_decl, args, complain, in_decl);
  	    maybe_push_decl (decl);
+ 	    if (VAR_P (decl))
+ 	      {
+ 		retrofit_lang_decl (decl);
+ 		SET_DECL_DEPENDENT_INIT_P (decl, 1);
+ 	      }
  
  	    cp_decomp decomp_d, *decomp = NULL;
  	    if (DECL_DECOMPOSITION_P (decl))
*************** tsubst_expr (tree t, tree args, tsubst_f
*** 22343,22349 ****
  						 complain);
  	else if (concept_check_p (function))
  	  /* Calls to concepts should have been previously diagnosed.  */
! 	  gcc_assert (false);
  	else
  	  ret = finish_call_expr (function, &call_args,
  				  /*disallow_virtual=*/qualified_p,
--- 22375,22381 ----
  						 complain);
  	else if (concept_check_p (function))
  	  /* Calls to concepts should have been previously diagnosed.  */
! 	  gcc_unreachable ();
  	else
  	  ret = finish_call_expr (function, &call_args,
  				  /*disallow_virtual=*/qualified_p,
*************** finish_expansion_stmt (tree expansion_st
*** 33329,33362 ****
    if (kind == esk_iterating)
      {
        /* Iterating expansion statements.  */
!       tree end;
!       begin = cp_build_range_for_decls (loc, expansion_init, &end, true);
!       if (!error_operand_p (begin) && !error_operand_p (end))
  	{
  	  /* In the standard this is all evaluated inside of a consteval
  	     lambda.  So, force in_immediate_context () around this.  */
  	  in_consteval_if_p_temp_override icip;
  	  in_consteval_if_p = true;
! 	  tree i
! 	    = build_target_expr_with_type (begin,
! 					   cv_unqualified (TREE_TYPE (begin)),
! 					   tf_warning_or_error);
  	  tree w = build_stmt (loc, WHILE_STMT, NULL_TREE, NULL_TREE,
  			       NULL_TREE, NULL_TREE, NULL_TREE);
  	  tree r = get_target_expr (build_zero_cst (ptrdiff_type_node));
! 	  tree iinc = build_x_unary_op (loc, PREINCREMENT_EXPR,
! 					TARGET_EXPR_SLOT (i), NULL_TREE,
  					tf_warning_or_error);
  	  tree rinc = build2 (PREINCREMENT_EXPR, ptrdiff_type_node,
  			      TARGET_EXPR_SLOT (r),
  			      build_int_cst (ptrdiff_type_node, 1));
! 	  WHILE_BODY (w) = build_compound_expr (loc, iinc, rinc);
! 	  WHILE_COND (w) = build_x_binary_op (loc, NE_EXPR, i, ERROR_MARK,
! 					      end, ERROR_MARK, NULL_TREE, NULL,
  					      tf_warning_or_error);
! 	  tree e = build_compound_expr (loc, r, i);
! 	  e = build_compound_expr (loc, e, w);
! 	  e = build_compound_expr (loc, e, TARGET_EXPR_SLOT (r));
  	  e = cxx_constant_value (e);
  	  if (tree_fits_uhwi_p (e))
  	    n = tree_to_uhwi (e);
--- 33361,33412 ----
    if (kind == esk_iterating)
      {
        /* Iterating expansion statements.  */
!       tree exprs[2];
!       begin = cp_build_range_for_decls (loc, expansion_init, exprs, range_decl);
!       if (!error_operand_p (begin)
! 	  && !error_operand_p (exprs[0])
! 	  && !error_operand_p (exprs[1]))
  	{
  	  /* In the standard this is all evaluated inside of a consteval
  	     lambda.  So, force in_immediate_context () around this.  */
  	  in_consteval_if_p_temp_override icip;
  	  in_consteval_if_p = true;
! 	  tree b = exprs[0], e = exprs[1];
! 	  /* The begin-expr and end-expr expressions will be usually wrapped
! 	     in TARGET_EXPR if they return a class iterator.  The b
! 	     and e artificial variables need to have cv-unqualified type
! 	     so that e.g. b can be incremented, so unwrap the TARGET_EXPRs
! 	     and force TARGET_EXPR with the cv-unqualified type which is
! 	     a hack replacement for a VAR_DECL in a lambda.  */
! 	  if (TREE_CODE (b) == TARGET_EXPR)
! 	    b = TARGET_EXPR_INITIAL (b);
! 	  if (TREE_CODE (e) == TARGET_EXPR)
! 	    e = TARGET_EXPR_INITIAL (e);
! 	  b = force_target_expr (cv_unqualified (TREE_TYPE (b)), b,
! 				 tf_warning_or_error);
! 	  e = force_target_expr (cv_unqualified (TREE_TYPE (e)), e,
! 				 tf_warning_or_error);
  	  tree w = build_stmt (loc, WHILE_STMT, NULL_TREE, NULL_TREE,
  			       NULL_TREE, NULL_TREE, NULL_TREE);
  	  tree r = get_target_expr (build_zero_cst (ptrdiff_type_node));
! 	  tree binc = build_x_unary_op (loc, PREINCREMENT_EXPR,
! 					TARGET_EXPR_SLOT (b), NULL_TREE,
  					tf_warning_or_error);
  	  tree rinc = build2 (PREINCREMENT_EXPR, ptrdiff_type_node,
  			      TARGET_EXPR_SLOT (r),
  			      build_int_cst (ptrdiff_type_node, 1));
! 	  WHILE_BODY (w) = build_compound_expr (loc, binc, rinc);
! 	  WHILE_COND (w) = build_x_binary_op (loc, NE_EXPR, b, ERROR_MARK,
! 					      e, ERROR_MARK, NULL_TREE, NULL,
  					      tf_warning_or_error);
! 	  {
! 	    warning_sentinel wur (warn_unused_result);
! 	    e = build_compound_expr (loc, b, e);
! 	    e = build_compound_expr (loc, r, e);
! 	    e = build_compound_expr (loc, e, w);
! 	    e = build_compound_expr (loc, e, TARGET_EXPR_SLOT (r));
! 	  }
! 	  e = fold_build_cleanup_point_expr (TREE_TYPE (e), e);
  	  e = cxx_constant_value (e);
  	  if (tree_fits_uhwi_p (e))
  	    n = tree_to_uhwi (e);
*************** finish_expansion_stmt (tree expansion_st
*** 33481,33493 ****
  				 tf_warning_or_error);
  	  auto_node = make_auto ();
  	  iter_type = do_auto_deduction (auto_node, iter_init, auto_node);
! 	  if (!TYPE_REF_P (iter_type))
  	    iter_type = cp_build_qualified_type (iter_type, TYPE_QUAL_CONST);
  	  iter = build_decl (loc, VAR_DECL, NULL_TREE, iter_type);
  	  TREE_USED (iter) = 1;
  	  DECL_ARTIFICIAL (iter) = 1;
! 	  TREE_STATIC (iter) = 1;
! 	  DECL_DECLARED_CONSTEXPR_P (iter) = 1;
  	  pushdecl (iter);
  	  cp_finish_decl (iter, iter_init, /*is_constant_init*/false,
  			  NULL_TREE, LOOKUP_ONLYCONVERTING);
--- 33531,33548 ----
  				 tf_warning_or_error);
  	  auto_node = make_auto ();
  	  iter_type = do_auto_deduction (auto_node, iter_init, auto_node);
! 	  if (DECL_DECLARED_CONSTEXPR_P (range_decl)
! 	      && !TYPE_REF_P (iter_type))
  	    iter_type = cp_build_qualified_type (iter_type, TYPE_QUAL_CONST);
  	  iter = build_decl (loc, VAR_DECL, NULL_TREE, iter_type);
  	  TREE_USED (iter) = 1;
  	  DECL_ARTIFICIAL (iter) = 1;
! 	  if (DECL_DECLARED_CONSTEXPR_P (range_decl))
! 	    {
! 	      TREE_STATIC (iter) = 1;
! 	      DECL_DECLARED_CONSTEXPR_P (iter) = 1;
! 	      TREE_READONLY (iter) = 1;
! 	    }
  	  pushdecl (iter);
  	  cp_finish_decl (iter, iter_init, /*is_constant_init*/false,
  			  NULL_TREE, LOOKUP_ONLYCONVERTING);
diff -Nrcpad gcc-16-20260405/gcc/cp/reflect.cc gcc-16-20260412/gcc/cp/reflect.cc
*** gcc-16-20260405/gcc/cp/reflect.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/reflect.cc	Sun Apr 12 22:32:07 2026
*************** get_reflection (location_t loc, tree t,
*** 123,138 ****
  {
    STRIP_ANY_LOCATION_WRAPPER (t);
  
-   /* [expr.reflect] If the type-id designates a placeholder type, R is
-      ill-formed.  */
-   if (is_auto (t))
-     {
-       error_at (loc, "%<^^%> cannot be applied to a placeholder type");
-       return error_mark_node;
-     }
    /* Constant template parameters and pack-index-expressions cannot
       appear as operands of the reflection operator.  */
!   else if (PACK_INDEX_P (t))
      {
        error_at (loc, "%<^^%> cannot be applied to a pack index");
        return error_mark_node;
--- 123,131 ----
  {
    STRIP_ANY_LOCATION_WRAPPER (t);
  
    /* Constant template parameters and pack-index-expressions cannot
       appear as operands of the reflection operator.  */
!   if (PACK_INDEX_P (t))
      {
        error_at (loc, "%<^^%> cannot be applied to a pack index");
        return error_mark_node;
*************** get_reflection (location_t loc, tree t,
*** 219,224 ****
--- 212,221 ----
  	 instantiate it now to find out its type.  */
        if (!mark_used (t))
  	return error_mark_node;
+       /* Avoid -Wunused-but-set* warnings when a variable or parameter
+ 	 is just set and reflected.  */
+       if (VAR_P (t) || TREE_CODE (t) == PARM_DECL)
+ 	mark_exp_read (t);
      }
  
    /* For injected-class-name, use the main variant so that comparing
*************** eval_constant_of (location_t loc, const
*** 2755,2760 ****
--- 2752,2759 ----
    else if (!check_splice_expr (loc, UNKNOWN_LOCATION, r,
  			       /*address_p=*/false,
  			       /*member_access_p=*/false,
+ 			       /*template_p=*/false,
+ 			       /*targs_p=*/false,
  			       /*complain_p=*/false)
  	   /* One cannot query the value of a function template.
  	      ??? But if [:^^X:] where X is a template is OK, should we
*************** eval_template_of (location_t loc, const
*** 2908,2914 ****
    else if (VAR_OR_FUNCTION_DECL_P (r) && DECL_TEMPLATE_INFO (r))
      r = DECL_TI_TEMPLATE (r);
    else
!     gcc_assert (false);
  
    gcc_assert (TREE_CODE (r) == TEMPLATE_DECL);
    return get_reflection_raw (loc, r);
--- 2907,2913 ----
    else if (VAR_OR_FUNCTION_DECL_P (r) && DECL_TEMPLATE_INFO (r))
      r = DECL_TI_TEMPLATE (r);
    else
!     gcc_unreachable ();
  
    gcc_assert (TREE_CODE (r) == TEMPLATE_DECL);
    return get_reflection_raw (loc, r);
*************** eval_display_string_of (location_t loc,
*** 3702,3714 ****
    if (str == NULL_TREE)
      {
        if (elt_type == char_type_node)
! 	return throw_exception (loc, ctx, "identifier_of not representable"
  					  " in ordinary literal encoding",
  				fun, non_constant_p, jump_target);
        else
! 	return throw_exception (loc, ctx, "u8identifier_of not representable"
! 					  " in UTF-8", fun, non_constant_p,
! 					  jump_target);
      }
    releasing_vec args (make_tree_vector_single (str));
    tree ret = build_special_member_call (NULL_TREE, complete_ctor_identifier,
--- 3701,3714 ----
    if (str == NULL_TREE)
      {
        if (elt_type == char_type_node)
! 	return throw_exception (loc, ctx, "display_string_of not representable"
  					  " in ordinary literal encoding",
  				fun, non_constant_p, jump_target);
        else
! 	return throw_exception (loc, ctx,
! 				"u8display_string_of not representable"
! 				" in UTF-8",
! 				fun, non_constant_p, jump_target);
      }
    releasing_vec args (make_tree_vector_single (str));
    tree ret = build_special_member_call (NULL_TREE, complete_ctor_identifier,
*************** eval_annotations_of (location_t loc, con
*** 3840,3853 ****
  	|| eval_is_type_alias (r) == boolean_true_node
  	|| eval_is_variable (r, kind) == boolean_true_node
  	|| eval_is_function (r) == boolean_true_node
  	|| eval_is_namespace (r) == boolean_true_node
  	|| eval_is_enumerator (r) == boolean_true_node
  	|| eval_is_base (r, kind) == boolean_true_node
  	|| eval_is_nonstatic_data_member (r) == boolean_true_node))
      return throw_exception (loc, ctx,
  			    "reflection does not represent a type,"
! 			    " type alias, variable, function, namespace,"
! 			    " enumerator, direct base class relationship,"
  			    " or non-static data member",
  			    fun, non_constant_p, jump_target);
  
--- 3840,3855 ----
  	|| eval_is_type_alias (r) == boolean_true_node
  	|| eval_is_variable (r, kind) == boolean_true_node
  	|| eval_is_function (r) == boolean_true_node
+ 	|| eval_is_function_parameter (r, kind) == boolean_true_node
  	|| eval_is_namespace (r) == boolean_true_node
  	|| eval_is_enumerator (r) == boolean_true_node
  	|| eval_is_base (r, kind) == boolean_true_node
  	|| eval_is_nonstatic_data_member (r) == boolean_true_node))
      return throw_exception (loc, ctx,
  			    "reflection does not represent a type,"
! 			    " type alias, variable, function, function"
! 			    " parameter, namespace, enumerator,"
! 			    " direct base class relationship,"
  			    " or non-static data member",
  			    fun, non_constant_p, jump_target);
  
*************** eval_annotations_of (location_t loc, con
*** 3864,3869 ****
--- 3866,3872 ----
      }
  
    r = maybe_get_first_fn (r);
+   bool var_of = false;
    if (kind == REFLECT_BASE)
      {
        gcc_assert (TREE_CODE (r) == TREE_BINFO);
*************** eval_annotations_of (location_t loc, con
*** 3888,3894 ****
  	r = TYPE_ATTRIBUTES (r);
      }
    else if (DECL_P (r))
!     r = DECL_ATTRIBUTES (r);
    else
      gcc_unreachable ();
    vec<constructor_elt, va_gc> *elts = nullptr;
--- 3891,3901 ----
  	r = TYPE_ATTRIBUTES (r);
      }
    else if (DECL_P (r))
!     {
!       if (TREE_CODE (r) == PARM_DECL && kind != REFLECT_PARM)
! 	var_of = true;
!       r = DECL_ATTRIBUTES (r);
!     }
    else
      gcc_unreachable ();
    vec<constructor_elt, va_gc> *elts = nullptr;
*************** eval_annotations_of (location_t loc, con
*** 3897,3902 ****
--- 3904,3919 ----
      {
        gcc_checking_assert (TREE_CODE (TREE_VALUE (a)) == TREE_LIST);
        tree val = TREE_VALUE (TREE_VALUE (a));
+       tree purpose = TREE_PURPOSE (TREE_VALUE (a));
+       if (var_of
+ 	  && (purpose == NULL_TREE
+ 	      || (TREE_CODE (purpose) == INTEGER_CST
+ 		  && !TYPE_UNSIGNED (TREE_TYPE (purpose)))))
+ 	/* For ^^fnparm or variable_of (parameters_of (^^fn)[N])
+ 	   filter out annotations not specified on the function
+ 	   definition.  TREE_PURPOSE is set in grokfndecl and/or in
+ 	   reflection_mangle_prefix.  */
+ 	continue;
        if (type)
  	{
  	  tree at = TREE_TYPE (val);
*************** eval_is_aggregate_type (tree type)
*** 4363,4379 ****
      return boolean_false_node;
  }
  
- /* Process std::meta::is_consteval_only_type.  */
- 
- static tree
- eval_is_consteval_only_type (tree type)
- {
-   if (consteval_only_p (type))
-     return boolean_true_node;
-   else
-     return boolean_false_node;
- }
- 
  /* Process std::meta::is_structural_type.  */
  
  static tree
--- 4380,4385 ----
*************** eval_current_function (location_t loc, c
*** 6423,6430 ****
    tree scope = reflect_current_scope (loc, ctx, call, non_constant_p,
  				      "std::meta::current_function");
    if (TREE_CODE (scope) != FUNCTION_DECL)
!     throw_exception (loc, ctx, "current scope does not represent a function",
! 		     fun, non_constant_p, jump_target);
    return get_reflection_raw (loc, scope);
  }
  
--- 6429,6437 ----
    tree scope = reflect_current_scope (loc, ctx, call, non_constant_p,
  				      "std::meta::current_function");
    if (TREE_CODE (scope) != FUNCTION_DECL)
!     return throw_exception (loc, ctx,
! 			    "current scope does not represent a function",
! 			    fun, non_constant_p, jump_target);
    return get_reflection_raw (loc, scope);
  }
  
*************** eval_current_class (location_t loc, cons
*** 6442,6450 ****
        && TYPE_P (DECL_CONTEXT (scope)))
      scope = DECL_CONTEXT (scope);
    if (!CLASS_TYPE_P (scope))
!     throw_exception (loc, ctx, "current scope does not represent a class"
! 			       " nor a member function",
! 		     fun, non_constant_p, jump_target);
    return get_reflection_raw (loc, scope);
  }
  
--- 6449,6458 ----
        && TYPE_P (DECL_CONTEXT (scope)))
      scope = DECL_CONTEXT (scope);
    if (!CLASS_TYPE_P (scope))
!     return throw_exception (loc, ctx,
! 			    "current scope does not represent a class"
! 			    " nor a member function",
! 			    fun, non_constant_p, jump_target);
    return get_reflection_raw (loc, scope);
  }
  
*************** namespace_members_of (location_t loc, tr
*** 6747,6752 ****
--- 6755,6778 ----
  	  return;
  	}
  
+       if (TREE_CODE (b) == CONST_DECL
+ 	  && enum_with_enumerator_for_linkage_p (CP_DECL_CONTEXT (b))
+ 	  && members_of_representable_p (data->ns, CP_DECL_CONTEXT (b)))
+ 	{
+ 	  /* TODO: This doesn't handle namespace N { enum {}; }
+ 	     but we pedwarn on that because it violates [dcl.pre]/6, so
+ 	     perhaps it doesn't need to be handled.  */
+ 	  tree type = CP_DECL_CONTEXT (b);
+ 	  if (!data->seen)
+ 	    data->seen = new hash_set<tree>;
+ 	  if (!data->seen->add (type))
+ 	    {
+ 	      CONSTRUCTOR_APPEND_ELT (data->elts, NULL_TREE,
+ 				      get_reflection_raw (data->loc, type));
+ 	      return;
+ 	    }
+ 	}
+ 
        if (TREE_CODE (b) == TYPE_DECL)
  	m = TREE_TYPE (b);
  
*************** process_metafunction (const constexpr_ct
*** 8171,8178 ****
        return eval_is_final_type (loc, h);
      case METAFN_IS_AGGREGATE_TYPE:
        return eval_is_aggregate_type (h);
-     case METAFN_IS_CONSTEVAL_ONLY_TYPE:
-       return eval_is_consteval_only_type (h);
      case METAFN_IS_STRUCTURAL_TYPE:
        return eval_is_structural_type (loc, h);
      case METAFN_IS_SIGNED_TYPE:
--- 8197,8202 ----
*************** check_consteval_only_fn (tree decl)
*** 8808,8820 ****
  
  /* Check if T is a valid result of splice-expression.  ADDRESS_P is true if
     we are taking the address of the splice.  MEMBER_ACCESS_P is true if this
!    splice is used in foo.[: bar :] or foo->[: bar :] context.  COMPLAIN_P is
!    true if any errors should be emitted.  Returns true is no problems are
!    found, false otherwise.  */
  
  bool
  check_splice_expr (location_t loc, location_t start_loc, tree t,
! 		   bool address_p, bool member_access_p, bool complain_p)
  {
    /* We may not have gotten an expression.  */
    if (TREE_CODE (t) == TYPE_DECL
--- 8832,8846 ----
  
  /* Check if T is a valid result of splice-expression.  ADDRESS_P is true if
     we are taking the address of the splice.  MEMBER_ACCESS_P is true if this
!    splice is used in foo.[: bar :] or foo->[: bar :] context.  TEMPLATE_P is
!    true if the splice-expression was preceded by 'template'.  TARGS_P is true
!    if there were template arguments.  COMPLAIN_P is true if any errors should
!    be emitted.  Returns true is no problems are found, false otherwise.  */
  
  bool
  check_splice_expr (location_t loc, location_t start_loc, tree t,
! 		   bool address_p, bool member_access_p, bool template_p,
! 		   bool targs_p, bool complain_p)
  {
    /* We may not have gotten an expression.  */
    if (TREE_CODE (t) == TYPE_DECL
*************** check_splice_expr (location_t loc, locat
*** 8880,8885 ****
--- 8906,8920 ----
  		  "through a splice", t);
        return false;
      }
+ 
+   /* One can't access a class template or alias template with . or ->.  */
+   if (member_access_p && DECL_TYPE_TEMPLATE_P (t))
+     {
+       if (complain_p)
+ 	error_at (loc, "invalid class member access of type template %qE", t);
+       return false;
+     }
+ 
    /* [expr.unary.op]/3.1 "If the operand [of unary &] is a qualified-id or
       splice-expression designating a non-static member m, other than an
       explicit object member function, m shall be a direct member of some
*************** check_splice_expr (location_t loc, locat
*** 8936,8941 ****
--- 8971,9017 ----
        return false;
      }
  
+   if (template_p)
+     {
+       /* [expr.prim.splice] For a splice-expression of the form template
+ 	 splice-specifier, the splice-specifier shall designate a function
+ 	 template.  */
+       if (!targs_p)
+ 	{
+ 	  if (!really_overloaded_fn (t) && !dependent_splice_p (t))
+ 	    {
+ 	      if (complain_p)
+ 		{
+ 		  auto_diagnostic_group d;
+ 		  error_at (loc, "expected a reflection of a function "
+ 			    "template");
+ 		  inform_tree_category (t);
+ 		}
+ 	      return false;
+ 	    }
+ 	}
+       /* [expr.prim.splice] For a splice-expression of the form
+ 	 template splice-specialization-specifier, the splice-specifier of the
+ 	 splice-specialization-specifier shall designate a template.  The
+ 	 template should be a function template or a variable template.  */
+       else if (DECL_TYPE_TEMPLATE_P (t))
+ 	{
+ 	  if (complain_p)
+ 	    {
+ 	      auto_diagnostic_group d;
+ 	      error_at (loc, "expected a reflection of a function or variable "
+ 			"template");
+ 	      inform_tree_category (t);
+ 	    }
+ 	  return false;
+ 	}
+       gcc_checking_assert (really_overloaded_fn (t)
+ 			   || get_template_info (t)
+ 			   || TREE_CODE (t) == TEMPLATE_ID_EXPR
+ 			   || variable_template_p (t)
+ 			   || dependent_splice_p (t));
+     }
+ 
    return true;
  }
  
*************** reflection_mangle_prefix (tree refl, cha
*** 9023,9029 ****
        strcpy (prefix, "an");
        if (TREE_PURPOSE (TREE_VALUE (h)) == NULL_TREE)
  	TREE_PURPOSE (TREE_VALUE (h))
! 	  = build_int_cst (integer_type_node, annotation_idx++);
        return TREE_PURPOSE (TREE_VALUE (h));
      }
    if (eval_is_type_alias (h) == boolean_true_node)
--- 9099,9111 ----
        strcpy (prefix, "an");
        if (TREE_PURPOSE (TREE_VALUE (h)) == NULL_TREE)
  	TREE_PURPOSE (TREE_VALUE (h))
! 	  = bitsize_int (annotation_idx++);
!       /* TREE_PURPOSE void_node or INTEGER_CST with signed type
! 	 means it is annotation which should appear in
! 	 variable_of list.  */
!       else if (TREE_PURPOSE (TREE_VALUE (h)) == void_node)
! 	TREE_PURPOSE (TREE_VALUE (h))
! 	  = sbitsize_int (annotation_idx++);
        return TREE_PURPOSE (TREE_VALUE (h));
      }
    if (eval_is_type_alias (h) == boolean_true_node)
diff -Nrcpad gcc-16-20260405/gcc/cp/semantics.cc gcc-16-20260412/gcc/cp/semantics.cc
*** gcc-16-20260405/gcc/cp/semantics.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/semantics.cc	Sun Apr 12 22:32:07 2026
*************** trait_expr_value (cp_trait_kind kind, tr
*** 14170,14178 ****
      case CPTK_IS_DEDUCIBLE:
        return type_targs_deducible_from (type1, type2);
  
-     case CPTK_IS_CONSTEVAL_ONLY:
-       return consteval_only_p (type1);
- 
      case CPTK_IS_STRUCTURAL:
        return structural_type_p (type1);
  
--- 14170,14175 ----
*************** finish_trait_expr (location_t loc, cp_tr
*** 14356,14362 ****
      case CPTK_IS_STD_LAYOUT:
      case CPTK_IS_TRIVIAL:
      case CPTK_IS_TRIVIALLY_COPYABLE:
-     case CPTK_IS_CONSTEVAL_ONLY:
      case CPTK_IS_STRUCTURAL:
      case CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS:
        if (!check_trait_type (type1, /* kind = */ 2))
--- 14353,14358 ----
diff -Nrcpad gcc-16-20260405/gcc/cp/tree.cc gcc-16-20260412/gcc/cp/tree.cc
*** gcc-16-20260405/gcc/cp/tree.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/tree.cc	Sun Apr 12 22:32:07 2026
*************** handle_annotation_attribute (tree *node,
*** 5920,5951 ****
        *no_add_attrs = true;
        return NULL_TREE;
      }
!   if (!type_dependent_expression_p (TREE_VALUE (args)))
      {
!       if (!structural_type_p (TREE_TYPE (TREE_VALUE (args))))
  	{
  	  auto_diagnostic_group d;
! 	  error ("annotation does not have structural type");
! 	  structural_type_p (TREE_TYPE (TREE_VALUE (args)), true);
  	  *no_add_attrs = true;
  	  return NULL_TREE;
  	}
-       if (CLASS_TYPE_P (TREE_TYPE (TREE_VALUE (args))))
- 	{
- 	  tree arg = make_tree_vec (1);
- 	  tree type = TREE_TYPE (TREE_VALUE (args));
- 	  TREE_VEC_ELT (arg, 0)
- 	    = build_stub_type (type, cp_type_quals (type) | TYPE_QUAL_CONST,
- 			       /*rvalue=*/false);
- 	  if (!is_xible (INIT_EXPR, type, arg))
- 	    {
- 	      auto_diagnostic_group d;
- 	      error ("annotation does not have copy constructible type");
- 	      is_xible (INIT_EXPR, type, arg, /*explain=*/true);
- 	      *no_add_attrs = true;
- 	      return NULL_TREE;
- 	    }
- 	}
      }
    if (!processing_template_decl)
      {
--- 5920,5957 ----
        *no_add_attrs = true;
        return NULL_TREE;
      }
! 
!   /* Annotations are treated as late attributes so we shouldn't see
!      anything type-dependent now.  */
!   gcc_assert (!type_dependent_expression_p (TREE_VALUE (args)));
!   /* FIXME We should be using convert_reflect_constant_arg here to
!      implement std::meta::reflect_constant(constant-expression)
!      properly, but that introduces new crashes.  */
!   TREE_VALUE (args) = decay_conversion (TREE_VALUE (args), tf_warning_or_error);
! 
!   if (!structural_type_p (TREE_TYPE (TREE_VALUE (args))))
      {
!       auto_diagnostic_group d;
!       error ("annotation does not have structural type");
!       structural_type_p (TREE_TYPE (TREE_VALUE (args)), true);
!       *no_add_attrs = true;
!       return NULL_TREE;
!     }
!   if (CLASS_TYPE_P (TREE_TYPE (TREE_VALUE (args))))
!     {
!       tree arg = make_tree_vec (1);
!       tree type = TREE_TYPE (TREE_VALUE (args));
!       TREE_VEC_ELT (arg, 0)
! 	= build_stub_type (type, cp_type_quals (type) | TYPE_QUAL_CONST,
! 			   /*rvalue=*/false);
!       if (!is_xible (INIT_EXPR, type, arg))
  	{
  	  auto_diagnostic_group d;
! 	  error ("annotation does not have copy constructible type");
! 	  is_xible (INIT_EXPR, type, arg, /*explain=*/true);
  	  *no_add_attrs = true;
  	  return NULL_TREE;
  	}
      }
    if (!processing_template_decl)
      {
diff -Nrcpad gcc-16-20260405/gcc/cp/typeck.cc gcc-16-20260412/gcc/cp/typeck.cc
*** gcc-16-20260405/gcc/cp/typeck.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/cp/typeck.cc	Sun Apr 12 22:32:07 2026
*************** finish_class_member_access_expr (cp_expr
*** 3599,3606 ****
  		   || VAR_P (name)
  		   || TREE_CODE (name) == CONST_DECL
  		   || TREE_CODE (name) == FUNCTION_DECL
! 		   || DECL_FUNCTION_TEMPLATE_P (OVL_FIRST (name))))
! 	scope = context_for_name_lookup (OVL_FIRST (name));
  
        if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
  	{
--- 3599,3619 ----
  		   || VAR_P (name)
  		   || TREE_CODE (name) == CONST_DECL
  		   || TREE_CODE (name) == FUNCTION_DECL
! 		   || DECL_FUNCTION_TEMPLATE_P (OVL_FIRST (name))
! 		   || variable_template_p (name)))
! 	{
! 	  scope = context_for_name_lookup (OVL_FIRST (name));
! 	  if (!CLASS_TYPE_P (scope))
! 	    {
! 	      if (complain & tf_error)
! 		{
! 		  auto_diagnostic_group d;
! 		  error ("%q#D is not a member of %qT", name, object_type);
! 		  inform (DECL_SOURCE_LOCATION (OVL_FIRST (name)), "declared here");
! 		}
! 	      return error_mark_node;
! 	    }
! 	}
  
        if (TREE_CODE (name) == TEMPLATE_ID_EXPR)
  	{
*************** cp_build_unary_op (enum tree_code code,
*** 7854,7861 ****
        if (gnu_vector_type_p (TREE_TYPE (arg)))
  	return cp_build_binary_op (input_location, EQ_EXPR, arg,
  				   build_zero_cst (TREE_TYPE (arg)), complain);
!       arg = perform_implicit_conversion (boolean_type_node, arg,
! 					 complain);
        if (arg != error_mark_node)
  	{
  	  if (processing_template_decl)
--- 7867,7873 ----
        if (gnu_vector_type_p (TREE_TYPE (arg)))
  	return cp_build_binary_op (input_location, EQ_EXPR, arg,
  				   build_zero_cst (TREE_TYPE (arg)), complain);
!       arg = contextual_conv_bool (arg, complain);
        if (arg != error_mark_node)
  	{
  	  if (processing_template_decl)
diff -Nrcpad gcc-16-20260405/gcc/d/ChangeLog gcc-16-20260412/gcc/d/ChangeLog
*** gcc-16-20260405/gcc/d/ChangeLog	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/d/ChangeLog	Sun Apr 12 22:32:07 2026
***************
*** 1,3 ****
--- 1,8 ----
+ 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/124784
+ 	* lang.opt.urls: Regenerated.
+ 
  2026-04-01  Iain Buclaw  <ibuclaw@gdcproject.org>
  
  	* dmd/MERGE: Merge upstream dmd 55e64690bc.
diff -Nrcpad gcc-16-20260405/gcc/d/lang.opt.urls gcc-16-20260412/gcc/d/lang.opt.urls
*** gcc-16-20260405/gcc/d/lang.opt.urls	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/d/lang.opt.urls	Sun Apr 12 22:32:07 2026
***************
*** 1,5 ****
--- 1,20 ----
  ; Autogenerated by regenerate-opt-urls.py from gcc/d/lang.opt and generated HTML
  
+ -dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-dependencies)
+ 
+ -print-missing-file-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-print-missing-file-dependencies)
+ 
+ -user-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-user-dependencies)
+ 
+ -write-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-write-dependencies)
+ 
+ -write-user-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-write-user-dependencies)
+ 
  H
  UrlSuffix(gcc/Preprocessor-Options.html#index-H) LangUrlSuffix_D(gdc/Code-Generation.html#index-H) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-H)
  
*************** LangUrlSuffix_D(gdc/Linking.html#index-d
*** 99,104 ****
--- 114,122 ----
  defaultlib=
  LangUrlSuffix_D(gdc/Linking.html#index-defaultlib_003d)
  
+ -verbose
+ UrlSuffix(gcc/Overall-Options.html#index-verbose)
+ 
  fall-instantiations
  LangUrlSuffix_D(gdc/Runtime-Options.html#index-fall-instantiations)
  
diff -Nrcpad gcc-16-20260405/gcc/doc/extend.texi gcc-16-20260412/gcc/doc/extend.texi
*** gcc-16-20260405/gcc/doc/extend.texi	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/doc/extend.texi	Sun Apr 12 22:32:07 2026
*************** temporarily paused or slowed down.
*** 27150,27158 ****
  @node RISC-V Vector Intrinsics
  @subsection RISC-V Vector Intrinsics
  
! GCC supports vector intrinsics as specified in version 0.11 of the RISC-V
! vector intrinsic specification, which is available at the following link:
! @uref{https://github.com/riscv-non-isa/rvv-intrinsic-doc/tree/v0.11.x}.
  All of these functions are declared in the include file @file{riscv_vector.h}.
  
  @node CORE-V Built-in Functions
--- 27150,27159 ----
  @node RISC-V Vector Intrinsics
  @subsection RISC-V Vector Intrinsics
  
! GCC supports vector intrinsics as specified in the ratified version 1.0 of the
! RISC-V vector intrinsic specification, which is available from the repository's
! release page:
! @uref{https://github.com/riscv-non-isa/rvv-intrinsic-doc/releases/tag/v1.0-ratified}.
  All of these functions are declared in the include file @file{riscv_vector.h}.
  
  @node CORE-V Built-in Functions
diff -Nrcpad gcc-16-20260405/gcc/doc/install.texi gcc-16-20260412/gcc/doc/install.texi
*** gcc-16-20260405/gcc/doc/install.texi	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/doc/install.texi	Sun Apr 12 22:32:07 2026
*************** information have to.
*** 3955,3962 ****
  @item
  @uref{#amdgcn-x-amdhsa,,amdgcn-*-amdhsa}
  @item
- @uref{#amd64-x-solaris2,,amd64-*-solaris2*}
- @item
  @uref{#arc-x-elf32,,arc-*-elf32}
  @item
  @uref{#arc-linux-uclibc,,arc-linux-uclibc}
--- 3955,3960 ----
*************** information have to.
*** 3987,3994 ****
  @item
  @uref{#ix86-x-linux,,i?86-*-linux*}
  @item
- @uref{#ix86-x-solaris2,,i?86-*-solaris2*}
- @item
  @uref{#ia64-x-linux,,ia64-*-linux}
  @item
  @uref{#ia64-x-hpux,,ia64-*-hpux*}
--- 3985,3990 ----
*************** information have to.
*** 4071,4084 ****
  @item
  @uref{#sparc-x-x,,sparc*-*-*}
  @item
- @uref{#sparc-sun-solaris2,,sparc-sun-solaris2*}
- @item
  @uref{#sparc-x-linux,,sparc-*-linux*}
  @item
- @uref{#sparc64-x-solaris2,,sparc64-*-solaris2*}
- @item
- @uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*}
- @item
  @uref{#c6x-x-x,,c6x-*-*}
  @item
  @uref{#visium-x-elf, visium-*-elf}
--- 4067,4074 ----
*************** information have to.
*** 4087,4094 ****
  @item
  @uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*}
  @item
- @uref{#x86-64-x-solaris2,,x86_64-*-solaris2*}
- @item
  @uref{#xtensa-x-elf,,xtensa*-*-elf}
  @item
  @uref{#xtensa-x-linux,,xtensa*-*-linux*}
--- 4077,4082 ----
*************** of the options are given at configure ti
*** 4151,4163 ****
  @html
  <hr />
  @end html
- @anchor{amd64-x-solaris2}
- @heading amd64-*-solaris2*
- This is a synonym for @samp{x86_64-*-solaris2*}.
- 
- @html
- <hr />
- @end html
  @anchor{amdgcn-x-amdhsa}
  @heading amdgcn-*-amdhsa
  AMD GCN GPU target.
--- 4139,4144 ----
*************** found on @uref{https://www.bitwizard.nl/
*** 4403,4418 ****
  @html
  <hr />
  @end html
- @anchor{ix86-x-solaris2}
- @heading i?86-*-solaris2*
- Use this for Solaris 11.4 on x86 and x86-64 systems.  Starting
- with GCC 4.7, there is also a 64-bit @samp{amd64-*-solaris2*} or
- @samp{x86_64-*-solaris2*} configuration that corresponds to
- @samp{sparcv9-sun-solaris2*}.
- 
- @html
- <hr />
- @end html
  @anchor{ia64-x-linux}
  @heading ia64-*-linux
  IA-64 processor (also known as IPF, or Itanium Processor Family)
--- 4384,4389 ----
*************** supported as cross-compilation target on
*** 5011,5085 ****
  @end html
  @anchor{x-x-solaris2}
  @heading *-*-solaris2*
! Support for Solaris 11.3 and earlier has been removed in GCC 15.
! Support for Solaris 10 has been removed in GCC 10.  Support for Solaris
! 9 has been removed in GCC 5.  Support for Solaris 8 has been removed in
! GCC 4.8.  Support for Solaris 7 has been removed in GCC 4.6.
  
! Solaris 11.4 provides one or more of GCC 5, 7, 9, 10, 11, 12, 13, 14,and 15.
  
  You need to install the @code{system/header}, @code{system/linker}, and
  @code{developer/assembler} packages.
  
! Trying to use the compatibility tools in @file{/usr/ucb}, from the
! @code{compatibility/ucb} package, to install GCC has been observed to
! cause trouble.  The fix is to remove @file{/usr/ucb} from your
! @env{PATH}.
  
! @c FIXME: Still?  Prefer /usr/gnu/bin instead?
! The build process works more smoothly with the legacy Solaris tools so,
! if you have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that
! you place @file{/usr/bin} before @file{/usr/xpg4/bin} for the duration
! of the build.
  
! We recommend the use of the Solaris assembler or the GNU assembler, in
! conjunction with the Solaris linker.
  
! The GNU @command{as} versions included in Solaris 11.4, from GNU
! binutils 2.30.1 or newer (in @file{/usr/bin/gas} and
! @file{/usr/gnu/bin/as}), are known to work.  This is the minimum
! supported version.  The version from GNU
! binutils 2.45 is known to work as well.  Recent versions of the Solaris
! assembler in @file{/usr/bin/as} work almost as well, though.  To use GNU
! @command{as}, configure with the options @option{--with-gnu-as
! --with-as=@//usr/@/gnu/@/bin/@/as}.
  
! For linking, the Solaris linker is preferred.  If you want to use the
! GNU linker instead, the version in Solaris 11.4, from GNU Binutils
! 2.30.1 or newer (in @file{/usr/gnu/bin/ld} and @file{/usr/bin/gld}),
! works.  However, it
! generally lacks platform specific features, so better stay with Solaris
! @command{ld}.  To use the LTO linker plugin
! (@option{-fuse-linker-plugin}) with GNU @command{ld}, GNU Binutils
! @emph{must} be configured with @option{--enable-largefile}.  To use
! Solaris @command{ld}, we recommend to configure with
! @option{--without-gnu-ld --with-ld=@//usr/@/bin/@/ld} to guarantee the
! right linker is found irrespective of the user's @env{PATH}.
  
! Note that your mileage may vary if you use a combination of the GNU
! tools and the Solaris tools: while the combination GNU @command{as} and
! Solaris @command{ld} works well, the reverse combination Solaris
! @command{as} with GNU @command{ld} may fail to build or cause memory
! corruption at runtime in some cases for C++ programs.
! @c FIXME: still?
  
  To enable symbol versioning in @samp{libstdc++} and other runtime
! libraries with the Solaris linker, you need to have any version of GNU
  @command{c++filt}, which is part of GNU Binutils.  Symbol versioning
  will be disabled if no appropriate version is found.  Solaris
  @command{c++filt} from the Solaris Studio compilers does @emph{not}
  work.
  
- In order to build the GNU Ada compiler, GNAT, a working GNAT is needed.
- Since Solaris 11.4 SRU 39, GNAT 11, 12, 13, 14, or 15 is bundled in the
- @code{developer/gcc/gcc-gnat} package.
- 
- In order to build the GNU D compiler, GDC, a working @samp{libphobos} is
- needed.  That library wasn't built by default in GCC 9--11 on SPARC, or
- on x86 when the Solaris assembler is used, but can be enabled by
- configuring with @option{--enable-libphobos}.  Also, GDC 9.4.0 is
- required on x86, while GDC 9.3.0 is known to work on SPARC.
- 
  The versions of the GNU Multiple Precision Library (GMP), the MPFR
  library and the MPC library bundled with Solaris 11.4 are
  recent enough to match GCC's requirements.
--- 4982,5085 ----
  @end html
  @anchor{x-x-solaris2}
  @heading *-*-solaris2*
! GCC only supports Solaris 11.4.  Support for Solaris 11.3 and earlier
! has been removed in GCC 15.  Support for Solaris 10 has been removed
! in GCC 10.
  
! Solaris 11.4 bundles several versions of GCC installed in parallel.
! They can be found in @file{/usr/gcc/@var{majorvers}}, with the default
! in @file{/usr/bin}. The exact set depends on the update installed.  It
! includes a subset of the available languages: since SRU 39 this
! consists of C, C++, Objective-C, Ada, Fortran, and Go.
! @c Missing D, Modula-2.
! 
! In order to build the GNU Ada compiler, GNAT, a working GNAT is
! needed.
! 
! In order to build the GNU D compiler, GDC, a working GDC is needed
! which isn't included with the bundled GCC.  At least GDC 11.5.0 is
! required on both SPARC and x86.  However, the @samp{libphobos} library
! wasn't built by default in GCC 11 on SPARC, or on x86 when the Solaris
! assembler is used, but can be enabled by configuring with
! @option{--enable-libphobos}.
  
  You need to install the @code{system/header}, @code{system/linker}, and
  @code{developer/assembler} packages.
  
! The build process works more smoothly with the GNU tools, so place
! @file{/usr/gnu/bin} before @file{/usr/bin} in your @env{PATH}.
  
! Unlike other systems, without special options a bi-arch compiler is
! built.  There are both 32-bit configurations which can also generate
! 64-bit code with the @option{-m64} switch, and 64-bit configurations
! capable of 32-bit code generation with @option{-m32}.
  
! In both cases, the build compiler must match the target configuration.
! Configure with @samp{CC='gcc -m32' CXX='g++ -m32' GDC='gdc -m32'} for
! a 32-bit target, or @option{-m64} for a 64-bit target.  The target
! must always be specified explicitly with @option{--build=@var{target}}
! because @file{config.guess} misdetects the situation, which can cause
! build failures.
  
! Use the following targets as appropriate:
  
! @table @asis
! @item 32-bit-default Solaris/x86
! @samp{i386-pc-solaris2.11}
! @item 64-bit-default Solaris/x86
! @samp{amd64-pc-solaris2.11} or @samp{x86_64-pc-solaris2.11}
! @item 32-bit-default Solaris/SPARC
! @samp{sparc-sun-solaris2.11}
! @item 64-bit-default Solaris/SPARC
! @samp{sparcv9-sun-solaris2.11} or @samp{sparc64-sun-solaris2.11}
! @end table
  
! GCC can use both the native Solaris assembler and linker and those
! from GNU Binutils, with 3 supported combinations.  One of those needs
! to be selected when configuring GCC.
! 
! @itemize
! @item Solaris @command{as} and @command{ld}
! @item GNU @command{as} and Solaris @command{ld}
! @item GNU @command{as} and @command{ld}
! @end itemize
! 
! However, the combination of Solaris @command{as} and GNU @command{ld}
! is broken and should be avoided.
! 
! Solaris 11.4 includes GNU Binutils 2.30.1 or newer.  This is the
! minimum supported version.  Either the bundled version or newer ones
! are known to work well.  When building a 32-bit-default version of GCC
! with either or both GNU @command{as} or GNU @command{ld}, GNU Binutils
! must be built separately as 32-bit executables.
! 
! Both the GNU assembler (in @file{/usr/bin/gas} and
! @file{/usr/gnu/bin/as}) and the Solaris assembler (in
! @file{/usr/bin/as}) work well.  Solaris @command{as} has support for
! for hardware capabilities, while GNU @command{as} supports newer x86
! ISAs.  With GNU @command{as}, the binaries produced are smaller than
! the ones produced using Solaris @command{as}; this difference can be
! quite significant for binaries containing debugging information.
! 
! For linking, the Solaris linker (in @file{/usr/bin/ld}) is preferred.
! The GNU linker (in @file{/usr/bin/gld} and @file{/usr/gnu/bin/ld})
! works, too.  However, it generally lacks platform specific features.
! To use the LTO linker plugin (@option{-fuse-linker-plugin}) with GNU
! @command{ld} in a 32-bit-default configuration, GNU Binutils
! @emph{must} be configured with @option{--enable-largefile}.
! 
! We @emph{strongly} recommend to specify both the assembler and linker
! with the @command{configure} options @option{--with-as=@var{pathname}}
! and @option{--with-ld=@var{pathname}} to guarantee the right tool is
! found irrespective of the user's @env{PATH}.
  
  To enable symbol versioning in @samp{libstdc++} and other runtime
! libraries with the Solaris linker, you need to have GNU
  @command{c++filt}, which is part of GNU Binutils.  Symbol versioning
  will be disabled if no appropriate version is found.  Solaris
  @command{c++filt} from the Solaris Studio compilers does @emph{not}
  work.
  
  The versions of the GNU Multiple Precision Library (GMP), the MPFR
  library and the MPC library bundled with Solaris 11.4 are
  recent enough to match GCC's requirements.
*************** in @uref{prerequisites.html,,the prerequ
*** 5102,5166 ****
  @html
  <hr />
  @end html
- @anchor{sparc-sun-solaris2}
- @heading sparc-sun-solaris2*
- When GCC is configured to use GNU Binutils 2.14 or later, the binaries
- produced are smaller than the ones produced using Solaris native tools;
- this difference is quite significant for binaries containing debugging
- information.
- 
- Starting with Solaris 7, the operating system is capable of executing
- 64-bit SPARC V9 binaries.  GCC 3.1 and later properly supports
- this; the @option{-m64} option enables 64-bit code generation.
- 
- When configuring the GNU Multiple Precision Library (GMP), the MPFR
- library or the MPC library on Solaris, the canonical target triplet must
- be specified as the @command{build} parameter on the @command{configure}
- line.  This target triplet can be obtained by invoking
- @command{./config.guess} in the toplevel source directory of GCC (and
- not that of GMP or MPFR or MPC).  For example:
- 
- @smallexample
- % @var{srcdir}/configure --build=sparc-sun-solaris2.11 --prefix=@var{dirname}
- @end smallexample
- 
- @html
- <hr />
- @end html
  @anchor{sparc-x-linux}
  @heading sparc-*-linux*
  
  @html
  <hr />
  @end html
- @anchor{sparc64-x-solaris2}
- @heading sparc64-*-solaris2*
- This is a synonym for @samp{sparcv9-*-solaris2*}.
- 
- @html
- <hr />
- @end html
- @anchor{sparcv9-x-solaris2}
- @heading sparcv9-*-solaris2*
- 
- When configuring a 64-bit-default GCC on Solaris/SPARC, you must use a
- build compiler that generates 64-bit code, either by default or by
- specifying @samp{CC='gcc -m64' CXX='g++ -m64' GDC='gdc -m64'} to @command{configure}.
- Additionally, you @emph{must} pass @option{--build=sparcv9-sun-solaris2.11}
- or @option{--build=sparc64-sun-solaris2.11} because @file{config.guess}
- misdetects this situation, which can cause build failures.
- 
- When configuring the GNU Multiple Precision Library (GMP), the MPFR
- library or the MPC library, the canonical target triplet must be specified
- as the @command{build} parameter on the @command{configure} line.  For example:
- 
- @smallexample
- % @var{srcdir}/configure --build=sparcv9-sun-solaris2.11 --prefix=@var{dirname}
- @end smallexample
- 
- @html
- <hr />
- @end html
  @anchor{c6x-x-x}
  @heading c6x-*-*
  The C6X family of processors. This port requires binutils 2.22 or newer.
--- 5102,5113 ----
*************** both 64-bit x86-64 and 32-bit x86 code (
*** 5221,5240 ****
  
  @html
  <hr />
- @end html
- @anchor{x86-64-x-solaris2}
- @heading x86_64-*-solaris2*
- Unlike other systems, without special options a
- bi-arch compiler is built which generates 32-bit code by default, but
- can generate 64-bit x86-64 code with the @option{-m64} switch.  Since
- GCC 4.7, there is also a configuration that defaults to 64-bit code, but
- can generate 32-bit code with @option{-m32}.  To configure and build
- this way, you have to provide all support libraries like @file{libgmp}
- as 64-bit code, configure with @option{--target=x86_64-pc-solaris2.11}
- and @samp{CC=gcc -m64}.
- 
- @html
- <hr />
  @end html
  @anchor{xtensa-x-elf}
  @heading xtensa*-*-elf
--- 5168,5173 ----
diff -Nrcpad gcc-16-20260405/gcc/doc/invoke.texi gcc-16-20260412/gcc/doc/invoke.texi
*** gcc-16-20260405/gcc/doc/invoke.texi	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/doc/invoke.texi	Sun Apr 12 22:32:07 2026
*************** Objective-C and Objective-C++ Dialects}.
*** 769,775 ****
  -e @var{entry}
  -pie  -pthread  -r  -rdynamic
  -s  -static  -static-pie  -static-libgcc  -static-libstdc++
! -static-libasan  -static-libtsan  -static-liblsan  -static-libubsan
  -shared  -shared-libgcc  -symbolic
  -T @var{script}  -Wl,@var{option}  -Xlinker @var{option}
  -u @var{symbol}
--- 769,776 ----
  -e @var{entry}
  -pie  -pthread  -r  -rdynamic
  -s  -static  -static-pie  -static-libgcc  -static-libstdc++
! -static-libasan  -static-libhwasan  -static-liblsan
! -static-libtsan  -static-libubsan
  -shared  -shared-libgcc  -symbolic
  -T @var{script}  -Wl,@var{option}  -Xlinker @var{option}
  -u @var{symbol}
*************** As an extension, GCC allows exposures of
*** 4898,4904 ****
  were declared in the global module fragment.  This warning indicates when such
  an invalid exposure has occurred, and can be silenced using diagnostic pragmas
  either at the site of the exposure, or at the point of declaration of the
! internal declaration.
  
  When combined with @option{-Wtemplate-names-tu-local}, GCC will also warn about
  non-exposure references to TU-local entities in template bodies. Such templates
--- 4899,4906 ----
  were declared in the global module fragment.  This warning indicates when such
  an invalid exposure has occurred, and can be silenced using diagnostic pragmas
  either at the site of the exposure, or at the point of declaration of the
! internal declaration.  This also applies to @code{export using} declarations
! naming such entities.
  
  When combined with @option{-Wtemplate-names-tu-local}, GCC will also warn about
  non-exposure references to TU-local entities in template bodies. Such templates
*************** option is not used, then this links agai
*** 18698,18711 ****
  driver to link @file{libasan} statically, without necessarily linking
  other libraries statically.
  
! @opindex static-libtsan
! @item -static-libtsan
! When the @option{-fsanitize=thread} option is used to link a program,
! the GCC driver automatically links against @option{libtsan}.  If
! @file{libtsan} is available as a shared library, and the @option{-static}
  option is not used, then this links against the shared version of
! @file{libtsan}.  The @option{-static-libtsan} option directs the GCC
! driver to link @file{libtsan} statically, without necessarily linking
  other libraries statically.
  
  @opindex static-liblsan
--- 18700,18713 ----
  driver to link @file{libasan} statically, without necessarily linking
  other libraries statically.
  
! @opindex static-libhwasan
! @item -static-libhwasan
! When the @option{-fsanitize=hwaddress} option is used to link a program,
! the GCC driver automatically links against @option{libhwasan}.  If
! @file{libhwasan} is available as a shared library, and the @option{-static}
  option is not used, then this links against the shared version of
! @file{libhwasan}.  The @option{-static-libhwasan} option directs the GCC
! driver to link @file{libhwasan} statically, without necessarily linking
  other libraries statically.
  
  @opindex static-liblsan
*************** option is not used, then this links agai
*** 18718,18723 ****
--- 18720,18735 ----
  driver to link @file{liblsan} statically, without necessarily linking
  other libraries statically.
  
+ @opindex static-libtsan
+ @item -static-libtsan
+ When the @option{-fsanitize=thread} option is used to link a program,
+ the GCC driver automatically links against @option{libtsan}.  If
+ @file{libtsan} is available as a shared library, and the @option{-static}
+ option is not used, then this links against the shared version of
+ @file{libtsan}.  The @option{-static-libtsan} option directs the GCC
+ driver to link @file{libtsan} statically, without necessarily linking
+ other libraries statically.
+ 
  @opindex static-libubsan
  @item -static-libubsan
  When the @option{-fsanitize=undefined} option is used to link a program,
diff -Nrcpad gcc-16-20260405/gcc/doc/params.texi gcc-16-20260412/gcc/doc/params.texi
*** gcc-16-20260405/gcc/doc/params.texi	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/doc/params.texi	Sun Apr 12 22:32:07 2026
*************** this parameter.  The default value of th
*** 1658,1668 ****
  @item vect-induction-float
  Enable loop vectorization of floating-point inductions.
  
! @paindex vect-scalar-cost-multiplier
! @item vect-scalar-cost-multiplier
! Apply the given multiplier percentage to scalar loop costing during
! vectorization.
! Increasing the cost multiplier makes vector loops more profitable.
  
  @paindex vrp-block-limit
  @item vrp-block-limit
--- 1658,1667 ----
  @item vect-induction-float
  Enable loop vectorization of floating-point inductions.
  
! @paindex vect_allow_possibly_not_worthwhile_vectorizations
! @item vect_allow_possibly_not_worthwhile_vectorizations
! Enable vectorization of loops that may not be profitable according to the cost
! model but still perform costing between vector modes.
  
  @paindex vrp-block-limit
  @item vrp-block-limit
diff -Nrcpad gcc-16-20260405/gcc/doc/trouble.texi gcc-16-20260412/gcc/doc/trouble.texi
*** gcc-16-20260405/gcc/doc/trouble.texi	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/doc/trouble.texi	Sun Apr 12 22:32:07 2026
*************** give rise to questions of this sort.
*** 638,643 ****
--- 638,644 ----
  * Name lookup::         Name lookup, templates, and accessing members of base classes
  * Temporaries::         Temporaries may vanish before you expect
  * Copy Assignment::     Copy Assignment operators copy virtual bases twice
+ * Linkage in Anonymous Namespaces::  Names have internal linkage
  @end menu
  
  @node Static Definitions
*************** copy-assignment operator removes any unc
*** 912,917 ****
--- 913,933 ----
  operator, the application can define whether and how the virtual base
  subobject is assigned.
  
+ @node Linkage in Anonymous Namespaces
+ @subsection Linkage in Anonymous Namespaces
+ 
+ The C++11 standard changed the linkage of anonymous namespaces from
+ external (using a unique generated name) to internal.  That means that
+ names declared in such a namespace now also have internal linkage, and
+ @code{extern "C"} has no effect.  GCC implemented this change in
+ behavior starting with the GCC 15 release; code using this idiom that
+ worked in earlier versions of GCC, or with @option{-std=} options
+ prior to C++11, may encounter unexpected linker issues due to changes
+ in name mangling.
+ 
+ For more information about the change to the C++ standard, see
+ @uref{https://cplusplus.github.io/CWG/issues/2772.html}.
+ 
  @node Non-bugs
  @section Certain Changes We Don't Want to Make
  
diff -Nrcpad gcc-16-20260405/gcc/fortran/ChangeLog gcc-16-20260412/gcc/fortran/ChangeLog
*** gcc-16-20260405/gcc/fortran/ChangeLog	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/ChangeLog	Sun Apr 12 22:32:08 2026
***************
*** 1,3 ****
--- 1,121 ----
+ 2026-04-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/93814
+ 	* trans-decl.cc (build_entry_thunks): Create local result buffer
+ 	and length temporaries for bind(c) CHARACTER entry thunks when the
+ 	master returns by reference but the thunk returns by value.
+ 
+ 2026-04-11  Harald Anlauf  <anlauf@gmx.de>
+ 	    Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/120140
+ 	* dependency.cc (gfc_check_argument_var_dependency): For elemental
+ 	subroutines skip the dependency check for array references.
+ 	Correct description of function return value.
+ 	* interface.cc (gfc_compare_actual_formal): Allow array sections
+ 	with vector subscripts as actual arguments to elemental procedures
+ 	in accordance with the Fortran standard.
+ 
+ 2026-04-10  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/94978
+ 	* frontend-passes.cc (evaluate_loop_bound): New helper.
+ 	(inner_loop_may_be_skipped): New helper.
+ 	(do_subscript): Skip outer-loop bound warnings when nested inner loops
+ 	may be zero-trip for the substituted bound.
+ 
+ 2026-04-09  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/103367
+ 	* trans-array.cc (gfc_conv_array_initializer): Emit an error for
+ 	invalid residual initializer expressions before returning a safe
+ 	empty constructor.
+ 
+ 2026-04-08  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/96986
+ 	* resolve.cc (resolve_global_procedure): Move entry symbol
+ 	lookup outside the resolved != -1 block.
+ 
+ 2026-04-08  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/93715
+ 	* trans-decl.cc (gfc_trans_deferred_vars): Skip auto array
+ 	allocation for scalar coarrays.
+ 
+ 2026-04-07  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102430
+ 	* openmp.cc (resolve_omp_clauses): Reject array/allocatable LINEAR on
+ 	worksharing-loop constructs.
+ 
+ 2026-04-07  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/103367
+ 	* trans-array.cc (gfc_conv_array_initializer): Return empty
+ 	constructor for unexpected expression types after parameter
+ 	substitution.
+ 
+ 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/124784
+ 	* lang.opt.urls: Regenerated.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/85352
+ 	* resolve.cc (specification_expr_symbol): New variable.
+ 	(entry_dummy_seen_p): Return whether a dummy appears in an already
+ 	seen ENTRY.
+ 	(gfc_resolve_formal_arglist): Remember the dummy whose specification
+ 	expressions are being resolved.
+ 	(resolve_variable): Accept unresolved sibling ENTRY dummy arguments
+ 	while resolving the current dummy's specification expressions.
+ 	(resolve_fl_variable): Preserve specification_expr_symbol.
+ 	(resolve_symbol_array_spec): Likewise.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/107425
+ 	* trans-decl.cc (gfc_finish_var_decl): Check for
+ 	omp_affinity_iterators namespace before FL_LABEL BLOCK check.
+ 	Only route actual iterator variables through add_decl_as_local;
+ 	add other variables to the enclosing function.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/124780
+ 	* resolve.cc (resolve_ordinary_assign): Do not add the class
+ 	data component to an operator expression.
+ 	* trans-expr.cc (gfc_trans_scalar_assign): If class to class
+ 	assignment uses ordinary scalar assignment and neither lhs or
+ 	rhs are class types, do a deep copy for allocatable components.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/124598
+ 	* trans-expr.cc (gfc_conv_structure): Do not add parameterized
+ 	components to a structure constructor.
+ 
+ 2026-04-06  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/79524
+ 	PR fortran/79524
+ 	* decl.cc (discard_pending_charlens): New helper.
+ 	(add_init_expr_to_sym): Drop statement-local charlens when
+ 	rejecting variable-length parameter arrays.
+ 	(variable_decl, do_parm, enumerator_decl): Save the current
+ 	namespace charlen list before parsing declarations with
+ 	initializers.
+ 	(match_procedure_decl): Adjust call to add_init_expr_to_sym.
+ 
+ 2026-04-05  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/109788
+ 	* iresolve.cc (copy_intrinsic_sym): New helper.
+ 	(gfc_resolve_spread): Copy the intrinsic descriptor before
+ 	specializing the character formal argument type.
+ 
  2026-04-04  Harald Anlauf  <anlauf@gmx.de>
  
  	PR fortran/66973
diff -Nrcpad gcc-16-20260405/gcc/fortran/decl.cc gcc-16-20260412/gcc/fortran/decl.cc
*** gcc-16-20260405/gcc/fortran/decl.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/decl.cc	Sun Apr 12 22:32:08 2026
*************** discard_pending_charlen (gfc_charlen *cl
*** 131,136 ****
--- 131,157 ----
    free (cl);
  }
  
+ /* Drop the charlen nodes created while matching a declaration that is about
+    to be rejected.  Callers must clear any surviving owners before using this
+    helper, so only the statement-local nodes remain on the namespace list.  */
+ 
+ static void
+ discard_pending_charlens (gfc_charlen *saved_cl)
+ {
+   if (!gfc_current_ns)
+     return;
+ 
+   while (gfc_current_ns->cl_list != saved_cl)
+     {
+       gfc_charlen *cl = gfc_current_ns->cl_list;
+ 
+       gcc_assert (cl);
+       gfc_current_ns->cl_list = cl->next;
+       gfc_free_expr (cl->length);
+       free (cl);
+     }
+ }
+ 
  /********************* DATA statement subroutines *********************/
  
  static bool in_match_data = false;
*************** fix_initializer_charlen (gfc_typespec *t
*** 2107,2113 ****
     expression to a symbol.  */
  
  static bool
! add_init_expr_to_sym (const char *name, gfc_expr **initp, locus *var_locus)
  {
    symbol_attribute attr;
    gfc_symbol *sym;
--- 2128,2135 ----
     expression to a symbol.  */
  
  static bool
! add_init_expr_to_sym (const char *name, gfc_expr **initp, locus *var_locus,
! 		      gfc_charlen *saved_cl_list)
  {
    symbol_attribute attr;
    gfc_symbol *sym;
*************** add_init_expr_to_sym (const char *name,
*** 2195,2200 ****
--- 2217,2232 ----
  					 "at %L "
  					 "with variable length elements",
  					 &sym->declared_at);
+ 
+ 			      /* This rejection path can leave several
+ 				 declaration-local charlens on cl_list,
+ 				 including the replacement symbol charlen and
+ 				 the array-constructor typespec charlen.
+ 				 Clear the surviving owners first, then drop
+ 				 only the nodes created by this declaration.  */
+ 			      sym->ts.u.cl = NULL;
+ 			      init->ts.u.cl = NULL;
+ 			      discard_pending_charlens (saved_cl_list);
  			      return false;
  			    }
  			  clen = mpz_get_si (length->value.integer);
*************** variable_decl (int elem)
*** 2725,2730 ****
--- 2757,2763 ----
    gfc_array_spec *as;
    gfc_array_spec *cp_as; /* Extra copy for Cray Pointees.  */
    gfc_charlen *cl;
+   gfc_charlen *saved_cl_list;
    bool cl_deferred;
    locus var_locus;
    match m;
*************** variable_decl (int elem)
*** 2735,2740 ****
--- 2768,2774 ----
    initializer = NULL;
    as = NULL;
    cp_as = NULL;
+   saved_cl_list = gfc_current_ns->cl_list;
  
    /* When we get here, we've just matched a list of attributes and
       maybe a type and a double colon.  The next thing we expect to see
*************** variable_decl (int elem)
*** 3284,3290 ****
       NULL here, because we sometimes also need to check if a
       declaration *must* have an initialization expression.  */
    if (!gfc_comp_struct (gfc_current_state ()))
!     t = add_init_expr_to_sym (name, &initializer, &var_locus);
    else
      {
        if (current_ts.type == BT_DERIVED
--- 3318,3325 ----
       NULL here, because we sometimes also need to check if a
       declaration *must* have an initialization expression.  */
    if (!gfc_comp_struct (gfc_current_state ()))
!     t = add_init_expr_to_sym (name, &initializer, &var_locus,
! 			      saved_cl_list);
    else
      {
        if (current_ts.type == BT_DERIVED
*************** match_procedure_decl (void)
*** 7882,7888 ****
  	  if (m != MATCH_YES)
  	    goto cleanup;
  
! 	  if (!add_init_expr_to_sym (sym->name, &initializer, &gfc_current_locus))
  	    goto cleanup;
  
  	}
--- 7917,7925 ----
  	  if (m != MATCH_YES)
  	    goto cleanup;
  
! 	  if (!add_init_expr_to_sym (sym->name, &initializer,
! 				     &gfc_current_locus,
! 				     gfc_current_ns->cl_list))
  	    goto cleanup;
  
  	}
*************** do_parm (void)
*** 10167,10175 ****
--- 10204,10215 ----
  {
    gfc_symbol *sym;
    gfc_expr *init;
+   gfc_charlen *saved_cl_list;
    match m;
    bool t;
  
+   saved_cl_list = gfc_current_ns->cl_list;
+ 
    m = gfc_match_symbol (&sym, 0);
    if (m == MATCH_NO)
      gfc_error ("Expected variable name at %C in PARAMETER statement");
*************** do_parm (void)
*** 10210,10216 ****
        goto cleanup;
      }
  
!   t = add_init_expr_to_sym (sym->name, &init, &gfc_current_locus);
    return (t) ? MATCH_YES : MATCH_ERROR;
  
  cleanup:
--- 10250,10257 ----
        goto cleanup;
      }
  
!   t = add_init_expr_to_sym (sym->name, &init, &gfc_current_locus,
! 			    saved_cl_list);
    return (t) ? MATCH_YES : MATCH_ERROR;
  
  cleanup:
*************** enumerator_decl (void)
*** 11630,11635 ****
--- 11671,11677 ----
    char name[GFC_MAX_SYMBOL_LEN + 1];
    gfc_expr *initializer;
    gfc_array_spec *as = NULL;
+   gfc_charlen *saved_cl_list;
    gfc_symbol *sym;
    locus var_locus;
    match m;
*************** enumerator_decl (void)
*** 11637,11642 ****
--- 11679,11685 ----
    locus old_locus;
  
    initializer = NULL;
+   saved_cl_list = gfc_current_ns->cl_list;
    old_locus = gfc_current_locus;
  
    /* When we get here, we've just matched a list of attributes and
*************** enumerator_decl (void)
*** 11693,11699 ****
       to be parsed.  add_init_expr_to_sym() zeros initializer, so we
       use last_initializer below.  */
    last_initializer = initializer;
!   t = add_init_expr_to_sym (name, &initializer, &var_locus);
  
    /* Maintain enumerator history.  */
    gfc_find_symbol (name, NULL, 0, &sym);
--- 11736,11743 ----
       to be parsed.  add_init_expr_to_sym() zeros initializer, so we
       use last_initializer below.  */
    last_initializer = initializer;
!   t = add_init_expr_to_sym (name, &initializer, &var_locus,
! 			    saved_cl_list);
  
    /* Maintain enumerator history.  */
    gfc_find_symbol (name, NULL, 0, &sym);
diff -Nrcpad gcc-16-20260405/gcc/fortran/dependency.cc gcc-16-20260412/gcc/fortran/dependency.cc
*** gcc-16-20260405/gcc/fortran/dependency.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/dependency.cc	Sun Apr 12 22:32:08 2026
*************** gfc_is_data_pointer (gfc_expr *e)
*** 975,981 ****
  }
  
  
! /* Return true if array variable VAR could be passed to the same function
     as argument EXPR without interfering with EXPR.  INTENT is the intent
     of VAR.
  
--- 975,981 ----
  }
  
  
! /* Return false if array variable VAR could be passed to the same function
     as argument EXPR without interfering with EXPR.  INTENT is the intent
     of VAR.
  
*************** gfc_check_argument_var_dependency (gfc_e
*** 997,1003 ****
      case EXPR_VARIABLE:
        /* In case of elemental subroutines, there is no dependency
           between two same-range array references.  */
!       if (gfc_ref_needs_temporary_p (expr->ref)
  	  || gfc_check_dependency (var, expr, elemental == NOT_ELEMENTAL))
  	{
  	  if (elemental == ELEM_DONT_CHECK_VARIABLE)
--- 997,1003 ----
      case EXPR_VARIABLE:
        /* In case of elemental subroutines, there is no dependency
           between two same-range array references.  */
!       if ((elemental == NOT_ELEMENTAL && gfc_ref_needs_temporary_p (expr->ref))
  	  || gfc_check_dependency (var, expr, elemental == NOT_ELEMENTAL))
  	{
  	  if (elemental == ELEM_DONT_CHECK_VARIABLE)
diff -Nrcpad gcc-16-20260405/gcc/fortran/frontend-passes.cc gcc-16-20260412/gcc/fortran/frontend-passes.cc
*** gcc-16-20260405/gcc/fortran/frontend-passes.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/frontend-passes.cc	Sun Apr 12 22:32:08 2026
*************** insert_index (gfc_expr *e, gfc_symbol *s
*** 2746,2751 ****
--- 2746,2811 ----
  
  }
  
+ static bool
+ evaluate_loop_bound (gfc_expr *e, gfc_symbol *sym, mpz_t val, mpz_t ret)
+ {
+   if (e->expr_type == EXPR_CONSTANT)
+     {
+       mpz_init_set (ret, e->value.integer);
+       return true;
+     }
+ 
+   return insert_index (e, sym, val, ret);
+ }
+ 
+ /* Return true if any loop nested inside LOOP_INDEX is not provably entered
+    after substituting OUTER_VAL for OUTER_SYM.  In that case the guarded array
+    reference may never be evaluated, so do not warn from the outer loop alone.  */
+ 
+ static bool
+ inner_loop_may_be_skipped (int loop_index, gfc_symbol *outer_sym, mpz_t outer_val)
+ {
+   int k;
+   do_t *lp;
+ 
+   FOR_EACH_VEC_ELT_FROM (doloop_list, k, lp, loop_index + 1)
+     {
+       gfc_code *loop = lp->c;
+       int sgn, cmp;
+       mpz_t do_start, do_end, do_step;
+ 
+       if (loop == NULL || loop->ext.iterator == NULL || loop->ext.iterator->var == NULL)
+ 	return true;
+ 
+       if (!evaluate_loop_bound (loop->ext.iterator->step, outer_sym, outer_val, do_step))
+ 	return true;
+ 
+       sgn = mpz_cmp_ui (do_step, 0);
+       if (sgn == 0)
+ 	{
+ 	  mpz_clear (do_step);
+ 	  return true;
+ 	}
+ 
+       if (!evaluate_loop_bound (loop->ext.iterator->start, outer_sym, outer_val, do_start)
+ 	  || !evaluate_loop_bound (loop->ext.iterator->end, outer_sym, outer_val, do_end))
+ 	{
+ 	  mpz_clear (do_step);
+ 	  return true;
+ 	}
+ 
+       cmp = mpz_cmp (do_end, do_start);
+       mpz_clear (do_start);
+       mpz_clear (do_end);
+       mpz_clear (do_step);
+ 
+       if ((sgn > 0 && cmp < 0) || (sgn < 0 && cmp > 0))
+ 	return true;
+     }
+ 
+   return false;
+ }
+ 
  /* Check array subscripts for possible out-of-bounds accesses in DO
     loops with constant bounds.  */
  
*************** do_subscript (gfc_expr **e)
*** 2880,2889 ****
  		  mpz_clear (rem);
  		}
  
  	      for (i = 0; i< ar->dimen; i++)
  		{
  		  mpz_t val;
! 		  if (ar->dimen_type[i] == DIMEN_ELEMENT && have_do_start
  		      && insert_index (ar->start[i], do_sym, do_start, val))
  		    {
  		      if (ar->as->lower[i]
--- 2940,2954 ----
  		  mpz_clear (rem);
  		}
  
+ 	      bool skip_start = have_do_start
+ 				&& inner_loop_may_be_skipped (j, do_sym, do_start);
+ 	      bool skip_end = have_do_end
+ 			      && inner_loop_may_be_skipped (j, do_sym, do_end);
+ 
  	      for (i = 0; i< ar->dimen; i++)
  		{
  		  mpz_t val;
! 		  if (ar->dimen_type[i] == DIMEN_ELEMENT && have_do_start && !skip_start
  		      && insert_index (ar->start[i], do_sym, do_start, val))
  		    {
  		      if (ar->as->lower[i]
*************** do_subscript (gfc_expr **e)
*** 2909,2915 ****
  		      mpz_clear (val);
  		    }
  
! 		  if (ar->dimen_type[i] == DIMEN_ELEMENT && have_do_end
  		      && insert_index (ar->start[i], do_sym, do_end, val))
  		    {
  		      if (ar->as->lower[i]
--- 2974,2980 ----
  		      mpz_clear (val);
  		    }
  
! 		  if (ar->dimen_type[i] == DIMEN_ELEMENT && have_do_end && !skip_end
  		      && insert_index (ar->start[i], do_sym, do_end, val))
  		    {
  		      if (ar->as->lower[i]
diff -Nrcpad gcc-16-20260405/gcc/fortran/interface.cc gcc-16-20260412/gcc/fortran/interface.cc
*** gcc-16-20260405/gcc/fortran/interface.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/interface.cc	Sun Apr 12 22:32:08 2026
*************** gfc_compare_actual_formal (gfc_actual_ar
*** 4053,4062 ****
--- 4053,4071 ----
  	    }
  	}
  
+       /* F2023: 15.5.2.5 Ordinary dummy variables:
+ 	 "(21) If the procedure is nonelemental, the dummy argument does not
+ 	 have the VALUE attribute, and the actual argument is an array section
+ 	 having a vector subscript, the dummy argument is not definable and
+ 	 shall not have the ASYNCHRONOUS, INTENT (OUT), INTENT (INOUT), or
+ 	 VOLATILE attributes."
+        */
        if ((f->sym->attr.intent == INTENT_OUT
  	   || f->sym->attr.intent == INTENT_INOUT
  	   || f->sym->attr.volatile_
  	   || f->sym->attr.asynchronous)
+ 	  && !f->sym->attr.value
+ 	  && !is_elemental
  	  && gfc_has_vector_subscript (a->expr))
  	{
  	  if (where)
diff -Nrcpad gcc-16-20260405/gcc/fortran/lang.opt.urls gcc-16-20260412/gcc/fortran/lang.opt.urls
*** gcc-16-20260405/gcc/fortran/lang.opt.urls	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/lang.opt.urls	Sun Apr 12 22:32:08 2026
***************
*** 1,5 ****
--- 1,91 ----
  ; Autogenerated by regenerate-opt-urls.py from gcc/fortran/lang.opt and generated HTML
  
+ -all-warnings
+ UrlSuffix(gcc/Warning-Options.html#index-all-warnings)
+ 
+ -comments
+ UrlSuffix(gcc/Preprocessor-Options.html#index-comments)
+ 
+ -comments-in-macros
+ UrlSuffix(gcc/Preprocessor-Options.html#index-comments-in-macros)
+ 
+ -define-macro
+ UrlSuffix(gcc/Preprocessor-Options.html#index-define-macro)
+ 
+ -define-macro=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-define-macro)
+ 
+ -dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-dependencies)
+ 
+ ; skipping UrlSuffix for '-dump' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
+ 
+ ; skipping UrlSuffix for '-dump=' due to multiple URLs:
+ ;   duplicate: 'gcc/Developer-Options.html#index-dump-1'
+ ;   duplicate: 'gcc/Preprocessor-Options.html#index-dump'
+ 
+ -include-barrier
+ UrlSuffix(gcc/Directory-Options.html#index-include-barrier)
+ 
+ -include-directory
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -include-directory=
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory)
+ 
+ -include-directory-after
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory-after)
+ 
+ -include-directory-after=
+ UrlSuffix(gcc/Directory-Options.html#index-include-directory-after)
+ 
+ -include-prefix
+ UrlSuffix(gcc/Directory-Options.html#index-include-prefix)
+ 
+ -include-prefix=
+ UrlSuffix(gcc/Directory-Options.html#index-include-prefix)
+ 
+ -no-line-commands
+ UrlSuffix(gcc/Preprocessor-Options.html#index-no-line-commands)
+ 
+ -no-standard-includes
+ UrlSuffix(gcc/Directory-Options.html#index-no-standard-includes)
+ 
+ -output
+ UrlSuffix(gcc/Overall-Options.html#index-output)
+ 
+ -output=
+ UrlSuffix(gcc/Overall-Options.html#index-output)
+ 
+ -preprocess
+ UrlSuffix(gcc/Overall-Options.html#index-preprocess)
+ 
+ -print-missing-file-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-print-missing-file-dependencies)
+ 
+ -trace-includes
+ UrlSuffix(gcc/Preprocessor-Options.html#index-trace-includes)
+ 
+ -undefine-macro
+ UrlSuffix(gcc/Preprocessor-Options.html#index-undefine-macro)
+ 
+ -undefine-macro=
+ UrlSuffix(gcc/Preprocessor-Options.html#index-undefine-macro)
+ 
+ -user-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-user-dependencies)
+ 
+ -verbose
+ UrlSuffix(gcc/Overall-Options.html#index-verbose)
+ 
+ -write-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-write-dependencies)
+ 
+ -write-user-dependencies
+ UrlSuffix(gcc/Preprocessor-Options.html#index-write-user-dependencies)
+ 
  C
  UrlSuffix(gcc/Preprocessor-Options.html#index-C) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-C)
  
diff -Nrcpad gcc-16-20260405/gcc/fortran/openmp.cc gcc-16-20260412/gcc/fortran/openmp.cc
*** gcc-16-20260405/gcc/fortran/openmp.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/openmp.cc	Sun Apr 12 22:32:08 2026
*************** resolve_omp_clauses (gfc_code *code, gfc
*** 10482,10487 ****
--- 10482,10522 ----
  		      }
  		    break;
  		  case OMP_LIST_LINEAR:
+ 		    if (code)
+ 		      {
+ 			bool is_worksharing_for = false;
+ 			switch (code->op)
+ 			  {
+ 			  case EXEC_OMP_DO:
+ 			  case EXEC_OMP_PARALLEL_DO:
+ 			  case EXEC_OMP_DISTRIBUTE_PARALLEL_DO:
+ 			  case EXEC_OMP_TARGET_PARALLEL_DO:
+ 			  case EXEC_OMP_TEAMS_DISTRIBUTE_PARALLEL_DO:
+ 			  case EXEC_OMP_TARGET_TEAMS_DISTRIBUTE_PARALLEL_DO:
+ 			    is_worksharing_for = true;
+ 			    break;
+ 			  default:
+ 			    break;
+ 			  }
+ 
+ 			if (is_worksharing_for
+ 			    && (n->sym->attr.dimension
+ 				|| n->sym->attr.allocatable))
+ 			  {
+ 			    if (n->sym->attr.allocatable)
+ 			      gfc_error ("Sorry, ALLOCATABLE object %qs in "
+ 					 "LINEAR clause on worksharing-loop "
+ 					 "construct at %L is not yet supported",
+ 					 n->sym->name, &n->where);
+ 			    else
+ 			      gfc_error ("Sorry, array %qs in LINEAR clause "
+ 					 "on worksharing-loop construct at %L "
+ 					 "is not yet supported",
+ 					 n->sym->name, &n->where);
+ 			    break;
+ 			  }
+ 		      }
+ 
  		    if (code
  			&& n->u.linear.op != OMP_LINEAR_DEFAULT
  			&& n->u.linear.op != linear_op)
diff -Nrcpad gcc-16-20260405/gcc/fortran/resolve.cc gcc-16-20260412/gcc/fortran/resolve.cc
*** gcc-16-20260405/gcc/fortran/resolve.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/resolve.cc	Sun Apr 12 22:32:08 2026
*************** static int omp_workshare_flag;
*** 82,87 ****
--- 82,90 ----
  
  /* True if we are resolving a specification expression.  */
  static bool specification_expr = false;
+ /* The dummy whose character length or array bounds are currently being
+    resolved as a specification expression.  */
+ static gfc_symbol *specification_expr_symbol = NULL;
  
  /* The id of the last entry seen.  */
  static int current_entry_id;
*************** static bitmap_obstack labels_obstack;
*** 92,97 ****
--- 95,118 ----
  /* True when simplifying a EXPR_VARIABLE argument to an inquiry function.  */
  static bool inquiry_argument = false;
  
+ static bool
+ entry_dummy_seen_p (gfc_symbol *sym)
+ {
+   gfc_entry_list *entry;
+   gfc_formal_arglist *formal;
+ 
+   gcc_checking_assert (sym->attr.dummy && sym->ns == gfc_current_ns);
+ 
+   for (entry = gfc_current_ns->entries;
+        entry && entry->id <= current_entry_id;
+        entry = entry->next)
+     for (formal = entry->sym->formal; formal; formal = formal->next)
+       if (formal->sym && sym->name == formal->sym->name)
+ 	return true;
+ 
+   return false;
+ }
+ 
  
  /* Is the symbol host associated?  */
  static bool
*************** gfc_resolve_formal_arglist (gfc_symbol *
*** 289,294 ****
--- 310,316 ----
    for (f = proc->formal; f; f = f->next)
      {
        gfc_array_spec *as;
+       gfc_symbol *saved_specification_expr_symbol;
  
        sym = f->sym;
  
*************** gfc_resolve_formal_arglist (gfc_symbol *
*** 337,345 ****
--- 359,370 ----
  	   ? CLASS_DATA (sym)->as : sym->as;
  
        saved_specification_expr = specification_expr;
+       saved_specification_expr_symbol = specification_expr_symbol;
        specification_expr = true;
+       specification_expr_symbol = sym;
        gfc_resolve_array_spec (as, 0);
        specification_expr = saved_specification_expr;
+       specification_expr_symbol = saved_specification_expr_symbol;
  
        /* We can't tell if an array with dimension (:) is assumed or deferred
  	 shape until we know if it has the pointer or allocatable attributes.
*************** resolve_global_procedure (gfc_symbol *sy
*** 2762,2778 ****
  	  /* This can happen if a binding name has been specified.  */
  	  if (gsym->binding_label && gsym->sym_name != def_sym->name)
  	    gfc_find_symbol (gsym->sym_name, gsym->ns, 0, &def_sym);
  
! 	  if (def_sym->attr.entry_master || def_sym->attr.entry)
! 	    {
! 	      gfc_entry_list *entry;
! 	      for (entry = gsym->ns->entries; entry; entry = entry->next)
! 		if (strcmp (entry->sym->name, sym->name) == 0)
! 		  {
! 		    def_sym = entry->sym;
! 		    break;
! 		  }
! 	    }
  	}
  
        if (sym->attr.function && !gfc_compare_types (&sym->ts, &def_sym->ts))
--- 2787,2808 ----
  	  /* This can happen if a binding name has been specified.  */
  	  if (gsym->binding_label && gsym->sym_name != def_sym->name)
  	    gfc_find_symbol (gsym->sym_name, gsym->ns, 0, &def_sym);
+ 	}
  
!       /* Look up the specific entry symbol so that interface checks use
! 	 the entry's own formal argument list, not the entry master's.
! 	 This must run even when resolved == -1 (recursive resolution in
! 	 progress), because def_sym starts as the namespace proc_name
! 	 which is the entry master with the combined formals.  */
!       if (def_sym->attr.entry_master || def_sym->attr.entry)
! 	{
! 	  gfc_entry_list *entry;
! 	  for (entry = gsym->ns->entries; entry; entry = entry->next)
! 	    if (strcmp (entry->sym->name, sym->name) == 0)
! 	      {
! 		def_sym = entry->sym;
! 		break;
! 	      }
  	}
  
        if (sym->attr.function && !gfc_compare_types (&sym->ts, &def_sym->ts))
*************** resolve_variable (gfc_expr *e)
*** 6669,6700 ****
        && cs_base->current
        && cs_base->current->op != EXEC_ENTRY)
      {
-       gfc_entry_list *entry;
-       gfc_formal_arglist *formal;
        int n;
!       bool seen, saved_specification_expr;
  
        /* If the symbol is a dummy...  */
        if (sym->attr.dummy && sym->ns == gfc_current_ns)
  	{
- 	  entry = gfc_current_ns->entries;
- 	  seen = false;
- 
- 	  /* ...test if the symbol is a parameter of previous entries.  */
- 	  for (; entry && entry->id <= current_entry_id; entry = entry->next)
- 	    for (formal = entry->sym->formal; formal; formal = formal->next)
- 	      {
- 		if (formal->sym && sym->name == formal->sym->name)
- 		  {
- 		    seen = true;
- 		    break;
- 		  }
- 	      }
- 
  	  /*  If it has not been seen as a dummy, this is an error.  */
! 	  if (!seen)
  	    {
! 	      if (specification_expr)
  		gfc_error ("Variable %qs, used in a specification expression"
  			   ", is referenced at %L before the ENTRY statement "
  			   "in which it is a parameter",
--- 6699,6721 ----
        && cs_base->current
        && cs_base->current->op != EXEC_ENTRY)
      {
        int n;
!       bool saved_specification_expr;
!       gfc_symbol *saved_specification_expr_symbol;
  
        /* If the symbol is a dummy...  */
        if (sym->attr.dummy && sym->ns == gfc_current_ns)
  	{
  	  /*  If it has not been seen as a dummy, this is an error.  */
! 	  if (!entry_dummy_seen_p (sym))
  	    {
! 	      if (specification_expr
! 		  && specification_expr_symbol
! 		  && specification_expr_symbol->attr.dummy
! 		  && specification_expr_symbol->ns == gfc_current_ns
! 		  && !entry_dummy_seen_p (specification_expr_symbol))
! 		;
! 	      else if (specification_expr)
  		gfc_error ("Variable %qs, used in a specification expression"
  			   ", is referenced at %L before the ENTRY statement "
  			   "in which it is a parameter",
*************** resolve_variable (gfc_expr *e)
*** 6709,6715 ****
--- 6730,6738 ----
  
        /* Now do the same check on the specification expressions.  */
        saved_specification_expr = specification_expr;
+       saved_specification_expr_symbol = specification_expr_symbol;
        specification_expr = true;
+       specification_expr_symbol = sym;
        if (sym->ts.type == BT_CHARACTER
  	  && !gfc_resolve_expr (sym->ts.u.cl->length))
  	t = false;
*************** resolve_variable (gfc_expr *e)
*** 6725,6730 ****
--- 6748,6754 ----
  	    }
  	}
        specification_expr = saved_specification_expr;
+       specification_expr_symbol = saved_specification_expr_symbol;
  
        if (t)
  	/* Update the symbol's entry level.  */
*************** resolve_ordinary_assign (gfc_code *code,
*** 13219,13225 ****
    /* Assign the 'data' of a class object to a derived type.  */
    if (lhs->ts.type == BT_DERIVED
        && rhs->ts.type == BT_CLASS
!       && rhs->expr_type != EXPR_ARRAY)
      gfc_add_data_component (rhs);
  
    /* Make sure there is a vtable and, in particular, a _copy for the
--- 13243,13250 ----
    /* Assign the 'data' of a class object to a derived type.  */
    if (lhs->ts.type == BT_DERIVED
        && rhs->ts.type == BT_CLASS
!       && (rhs->expr_type != EXPR_ARRAY
! 	  && rhs->expr_type != EXPR_OP))
      gfc_add_data_component (rhs);
  
    /* Make sure there is a vtable and, in particular, a _copy for the
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15339,15345 ****
--- 15364,15372 ----
       This check is effected by the call to gfc_resolve_expr through
       is_non_constant_shape_array.  */
    bool saved_specification_expr = specification_expr;
+   gfc_symbol *saved_specification_expr_symbol = specification_expr_symbol;
    specification_expr = true;
+   specification_expr_symbol = sym;
  
    if (sym->ns->proc_name
        && (sym->ns->proc_name->attr.flavor == FL_MODULE
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15354,15359 ****
--- 15381,15387 ----
        gfc_error ("The module or main program array %qs at %L must "
  		 "have constant shape", sym->name, &sym->declared_at);
        specification_expr = saved_specification_expr;
+       specification_expr_symbol = saved_specification_expr_symbol;
        return false;
      }
  
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15379,15384 ****
--- 15407,15413 ----
  	  gfc_error ("Entity with assumed character length at %L must be a "
  		     "dummy argument or a PARAMETER", &sym->declared_at);
  	  specification_expr = saved_specification_expr;
+ 	  specification_expr_symbol = saved_specification_expr_symbol;
  	  return false;
  	}
  
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15386,15391 ****
--- 15415,15421 ----
  	{
  	  gfc_error (auto_save_msg, sym->name, &sym->declared_at);
  	  specification_expr = saved_specification_expr;
+ 	  specification_expr_symbol = saved_specification_expr_symbol;
  	  return false;
  	}
  
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15400,15405 ****
--- 15430,15436 ----
  	      gfc_error ("%qs at %L must have constant character length "
  			"in this context", sym->name, &sym->declared_at);
  	      specification_expr = saved_specification_expr;
+ 	      specification_expr_symbol = saved_specification_expr_symbol;
  	      return false;
  	    }
  	  if (sym->attr.in_common)
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15407,15412 ****
--- 15438,15444 ----
  	      gfc_error ("COMMON variable %qs at %L must have constant "
  			 "character length", sym->name, &sym->declared_at);
  	      specification_expr = saved_specification_expr;
+ 	      specification_expr_symbol = saved_specification_expr_symbol;
  	      return false;
  	    }
  	}
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15439,15444 ****
--- 15471,15477 ----
  	{
  	  gfc_error (auto_save_msg, sym->name, &sym->declared_at);
  	  specification_expr = saved_specification_expr;
+ 	  specification_expr_symbol = saved_specification_expr_symbol;
  	  return false;
  	}
      }
*************** resolve_fl_variable (gfc_symbol *sym, in
*** 15472,15477 ****
--- 15505,15511 ----
        else
  	goto no_init_error;
        specification_expr = saved_specification_expr;
+       specification_expr_symbol = saved_specification_expr_symbol;
        return false;
      }
  
*************** no_init_error:
*** 15480,15489 ****
--- 15514,15525 ----
      {
        bool res = resolve_fl_variable_derived (sym, no_init_flag);
        specification_expr = saved_specification_expr;
+       specification_expr_symbol = saved_specification_expr_symbol;
        return res;
      }
  
    specification_expr = saved_specification_expr;
+   specification_expr_symbol = saved_specification_expr_symbol;
    return true;
  }
  
*************** resolve_symbol_array_spec (gfc_symbol *s
*** 18058,18068 ****
--- 18094,18107 ----
    gfc_current_ns = gfc_get_spec_ns (sym);
  
    bool saved_specification_expr = specification_expr;
+   gfc_symbol *saved_specification_expr_symbol = specification_expr_symbol;
    specification_expr = true;
+   specification_expr_symbol = sym;
  
    bool result = gfc_resolve_array_spec (sym->as, check_constant);
  
    specification_expr = saved_specification_expr;
+   specification_expr_symbol = saved_specification_expr_symbol;
    gfc_current_ns = orig_current_ns;
  
    return result;
diff -Nrcpad gcc-16-20260405/gcc/fortran/trans-array.cc gcc-16-20260412/gcc/fortran/trans-array.cc
*** gcc-16-20260405/gcc/fortran/trans-array.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/trans-array.cc	Sun Apr 12 22:32:08 2026
*************** gfc_conv_array_initializer (tree type, g
*** 7098,7103 ****
--- 7098,7116 ----
        && expr->symtree->n.sym->value)
      expr = expr->symtree->n.sym->value;
  
+   /* After parameter substitution the expression should be a constant, array
+      constructor, structure constructor, or NULL.  Anything else is invalid
+      and must not ICE later in lowering.  */
+   if (expr->expr_type != EXPR_CONSTANT
+       && expr->expr_type != EXPR_STRUCTURE
+       && expr->expr_type != EXPR_ARRAY
+       && expr->expr_type != EXPR_NULL)
+     {
+       gfc_error ("Array initializer at %L does not reduce to a constant "
+ 		 "expression", &expr->where);
+       return build_constructor (type, NULL);
+     }
+ 
    switch (expr->expr_type)
      {
      case EXPR_CONSTANT:
diff -Nrcpad gcc-16-20260405/gcc/fortran/trans-decl.cc gcc-16-20260412/gcc/fortran/trans-decl.cc
*** gcc-16-20260405/gcc/fortran/trans-decl.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/trans-decl.cc	Sun Apr 12 22:32:08 2026
*************** gfc_finish_var_decl (tree decl, gfc_symb
*** 666,678 ****
  	  && (sym->ns->proc_name->backend_decl == current_function_decl
  	      || sym->result == sym))
  	gfc_add_decl_to_function (decl);
        else if (sym->ns->proc_name
  	       && sym->ns->proc_name->attr.flavor == FL_LABEL)
  	/* This is a BLOCK construct.  */
  	add_decl_as_local (decl);
-       else if (sym->ns->omp_affinity_iterators)
- 	/* This is a block-local iterator.  */
- 	add_decl_as_local (decl);
        else
  	gfc_add_decl_to_parent_function (decl);
      }
--- 666,691 ----
  	  && (sym->ns->proc_name->backend_decl == current_function_decl
  	      || sym->result == sym))
  	gfc_add_decl_to_function (decl);
+       else if (sym->ns->omp_affinity_iterators)
+ 	{
+ 	  /* Iterator variables are block-local; other variables in the
+ 	     iterator namespace (e.g. implicitly typed host-associated
+ 	     ones used in locator expressions) belong in the enclosing
+ 	     function.  */
+ 	  gfc_symbol *iter;
+ 	  for (iter = sym->ns->omp_affinity_iterators; iter;
+ 	       iter = iter->tlink)
+ 	    if (iter == sym)
+ 	      break;
+ 	  if (iter)
+ 	    add_decl_as_local (decl);
+ 	  else
+ 	    gfc_add_decl_to_function (decl);
+ 	}
        else if (sym->ns->proc_name
  	       && sym->ns->proc_name->attr.flavor == FL_LABEL)
  	/* This is a BLOCK construct.  */
  	add_decl_as_local (decl);
        else
  	gfc_add_decl_to_parent_function (decl);
      }
*************** build_entry_thunks (gfc_namespace * ns,
*** 3129,3143 ****
        tmp = build_int_cst (gfc_array_index_type, el->id);
        vec_safe_push (args, tmp);
  
!       if (thunk_sym->attr.function)
  	{
! 	  if (gfc_return_by_reference (ns->proc_name))
  	    {
  	      tree ref = DECL_ARGUMENTS (current_function_decl);
  	      vec_safe_push (args, ref);
  	      if (ns->proc_name->ts.type == BT_CHARACTER)
  		vec_safe_push (args, DECL_CHAIN (ref));
  	    }
  	}
  
        for (formal = gfc_sym_get_dummy_args (ns->proc_name); formal;
--- 3142,3201 ----
        tmp = build_int_cst (gfc_array_index_type, el->id);
        vec_safe_push (args, tmp);
  
!       /* When the master returns by reference, pass the result reference
! 	 and (for CHARACTER) the string length to the master call.  If the
! 	 thunk itself also returns by reference these are forwarded from
! 	 its own argument list; otherwise (bind(c) CHARACTER entry) we
! 	 create local temporaries and load the value after the call.  */
!       tree result_ref = NULL_TREE;
!       if (thunk_sym->attr.function
! 	  && gfc_return_by_reference (ns->proc_name))
  	{
! 	  if (gfc_return_by_reference (thunk_sym))
  	    {
  	      tree ref = DECL_ARGUMENTS (current_function_decl);
  	      vec_safe_push (args, ref);
  	      if (ns->proc_name->ts.type == BT_CHARACTER)
  		vec_safe_push (args, DECL_CHAIN (ref));
  	    }
+ 	  else
+ 	    {
+ 	      /* The thunk is bind(c) and returns CHARACTER by value, but
+ 		 the master returns by reference.  Create a local buffer
+ 		 and length to pass to the master call.  */
+ 	      tree chartype = gfc_get_char_type (thunk_sym->ts.kind);
+ 	      tree len;
+ 
+ 	      if (thunk_sym->ts.u.cl && thunk_sym->ts.u.cl->length)
+ 		{
+ 		  gfc_se se;
+ 		  gfc_init_se (&se, NULL);
+ 		  gfc_conv_expr (&se, thunk_sym->ts.u.cl->length);
+ 		  gfc_add_block_to_block (&body, &se.pre);
+ 		  len = se.expr;
+ 		  gfc_add_block_to_block (&body, &se.post);
+ 		}
+ 	      else
+ 		len = build_int_cst (gfc_charlen_type_node, 1);
+ 
+ 	      result_ref = build_decl (input_location, VAR_DECL,
+ 				       get_identifier ("__entry_result"),
+ 				       build_array_type (chartype,
+ 					 build_range_type (gfc_array_index_type,
+ 					   gfc_index_one_node,
+ 					   fold_convert (gfc_array_index_type,
+ 							 len))));
+ 	      DECL_ARTIFICIAL (result_ref) = 1;
+ 	      TREE_USED (result_ref) = 1;
+ 	      DECL_CONTEXT (result_ref) = current_function_decl;
+ 	      layout_decl (result_ref, 0);
+ 	      pushdecl (result_ref);
+ 
+ 	      vec_safe_push (args,
+ 			     build_fold_addr_expr_loc (input_location,
+ 						       result_ref));
+ 	      vec_safe_push (args, len);
+ 	    }
  	}
  
        for (formal = gfc_sym_get_dummy_args (ns->proc_name); formal;
*************** build_entry_thunks (gfc_namespace * ns,
*** 3184,3190 ****
        vec_safe_splice (args, string_args);
        tmp = ns->proc_name->backend_decl;
        tmp = build_call_expr_loc_vec (input_location, tmp, args);
!       if (ns->proc_name->attr.mixed_entry_master)
  	{
  	  tree union_decl, field;
  	  tree master_type = TREE_TYPE (ns->proc_name->backend_decl);
--- 3242,3265 ----
        vec_safe_splice (args, string_args);
        tmp = ns->proc_name->backend_decl;
        tmp = build_call_expr_loc_vec (input_location, tmp, args);
!       if (result_ref != NULL_TREE)
! 	{
! 	  /* The master returns by reference (void) but the bind(c) thunk
! 	     returns CHARACTER by value.  Execute the master call, then
! 	     load the first character from the local buffer.  */
! 	  gfc_add_expr_to_block (&body, tmp);
! 	  tmp = build4_loc (input_location, ARRAY_REF,
! 			    TREE_TYPE (TREE_TYPE (result_ref)),
! 			    result_ref, gfc_index_one_node,
! 			    NULL_TREE, NULL_TREE);
! 	  tmp = fold_convert (TREE_TYPE (DECL_RESULT (current_function_decl)),
! 			      tmp);
! 	  tmp = fold_build2_loc (input_location, MODIFY_EXPR,
! 			     TREE_TYPE (DECL_RESULT (current_function_decl)),
! 			     DECL_RESULT (current_function_decl), tmp);
! 	  tmp = build1_v (RETURN_EXPR, tmp);
! 	}
!       else if (ns->proc_name->attr.mixed_entry_master)
  	{
  	  tree union_decl, field;
  	  tree master_type = TREE_TYPE (ns->proc_name->backend_decl);
*************** gfc_trans_deferred_vars (gfc_symbol * pr
*** 5147,5152 ****
--- 5222,5232 ----
  					NULL_TREE);
  		  continue;
  		}
+ 	      else if (sym->attr.codimension && !sym->attr.dimension)
+ 		{
+ 		  /* Scalar coarrays do not need array allocation.  */
+ 		  continue;
+ 		}
  	      else
  		{
  		  loc = input_location;
diff -Nrcpad gcc-16-20260405/gcc/fortran/trans-expr.cc gcc-16-20260412/gcc/fortran/trans-expr.cc
*** gcc-16-20260405/gcc/fortran/trans-expr.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/fortran/trans-expr.cc	Sun Apr 12 22:32:08 2026
*************** gfc_conv_structure (gfc_se * se, gfc_exp
*** 10528,10534 ****
  	 components.  Although the latter have a default initializer
  	 of EXPR_NULL,... by default, the static nullify is not needed
  	 since this is done every time we come into scope.  */
!       if (!c->expr || (cm->attr.allocatable && cm->attr.flavor != FL_PROCEDURE))
  	continue;
  
        if (cm->initializer && cm->initializer->expr_type != EXPR_NULL
--- 10528,10536 ----
  	 components.  Although the latter have a default initializer
  	 of EXPR_NULL,... by default, the static nullify is not needed
  	 since this is done every time we come into scope.  */
!       if (!c->expr
! 	  || (cm->attr.allocatable && cm->attr.flavor != FL_PROCEDURE)
! 	  || (IS_PDT (cm) && has_parameterized_comps (cm->ts.u.derived)))
  	continue;
  
        if (cm->initializer && cm->initializer->expr_type != EXPR_NULL
*************** gfc_trans_scalar_assign (gfc_se *lse, gf
*** 11775,11780 ****
--- 11777,11783 ----
    stmtblock_t block;
    tree tmp;
    tree cond;
+   int caf_mode;
  
    gfc_init_block (&block);
  
*************** gfc_trans_scalar_assign (gfc_se *lse, gf
*** 11863,11869 ****
  	 same as the lhs.  */
        if (deep_copy)
  	{
! 	  int caf_mode = in_coarray ? (GFC_STRUCTURE_CAF_MODE_ENABLE_COARRAY
  				       | GFC_STRUCTURE_CAF_MODE_IN_COARRAY) : 0;
  	  tmp = gfc_copy_alloc_comp (ts.u.derived, rse->expr, lse->expr, 0,
  				     caf_mode);
--- 11866,11872 ----
  	 same as the lhs.  */
        if (deep_copy)
  	{
! 	  caf_mode = in_coarray ? (GFC_STRUCTURE_CAF_MODE_ENABLE_COARRAY
  				       | GFC_STRUCTURE_CAF_MODE_IN_COARRAY) : 0;
  	  tmp = gfc_copy_alloc_comp (ts.u.derived, rse->expr, lse->expr, 0,
  				     caf_mode);
*************** gfc_trans_scalar_assign (gfc_se *lse, gf
*** 11890,11901 ****
  
        if (!trans_scalar_class_assign (&block, lse, rse))
  	{
! 	  /* ...otherwise assignment suffices. Note the use of VIEW_CONVERT_EXPR
! 	  for the lhs which ensures that class data rhs cast as a string assigns
! 	  correctly.  */
  	  tmp = fold_build1_loc (input_location, VIEW_CONVERT_EXPR,
  				 TREE_TYPE (rse->expr), lse->expr);
  	  gfc_add_modify (&block, tmp, rse->expr);
  	}
      }
    else if (ts.type != BT_CLASS)
--- 11893,11922 ----
  
        if (!trans_scalar_class_assign (&block, lse, rse))
  	{
! 	  /* ..otherwise assignment suffices. Note the use of VIEW_CONVERT_EXPR
! 	  for the lhs which ensures that class data rhs cast as a string
! 	  assigns correctly.  */
  	  tmp = fold_build1_loc (input_location, VIEW_CONVERT_EXPR,
  				 TREE_TYPE (rse->expr), lse->expr);
  	  gfc_add_modify (&block, tmp, rse->expr);
+ 
+ 	  /* Copy allocatable components but guard against class pointer
+ 	     assign, which arrives here.  */
+ #define DATA_DT ts.u.derived->components->ts.u.derived
+ 	  if (deep_copy
+ 	      && !(GFC_CLASS_TYPE_P (TREE_TYPE (lse->expr))
+ 		   && GFC_CLASS_TYPE_P (TREE_TYPE (rse->expr)))
+ 	      && ts.u.derived->components
+ 	      && DATA_DT && DATA_DT->attr.alloc_comp)
+ 	    {
+ 	      caf_mode = in_coarray ? (GFC_STRUCTURE_CAF_MODE_ENABLE_COARRAY
+ 				       | GFC_STRUCTURE_CAF_MODE_IN_COARRAY)
+ 				    : 0;
+ 	      tmp = gfc_copy_alloc_comp (DATA_DT, rse->expr, lse->expr, 0,
+ 					 caf_mode);
+ 	      gfc_add_expr_to_block (&block, tmp);
+ 	    }
+ #undef DATA_DT
  	}
      }
    else if (ts.type != BT_CLASS)
diff -Nrcpad gcc-16-20260405/gcc/gimple-ssa-warn-access.cc gcc-16-20260412/gcc/gimple-ssa-warn-access.cc
*** gcc-16-20260405/gcc/gimple-ssa-warn-access.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/gimple-ssa-warn-access.cc	Sun Apr 12 22:32:08 2026
*************** memmodel_name (unsigned HOST_WIDE_INT va
*** 2940,2946 ****
  /* Indices of valid MEMORY_MODELS above for corresponding atomic operations.  */
  static const unsigned char load_models[] = { 0, 1, 2, 3, UCHAR_MAX };
  static const unsigned char store_models[] = { 0, 1, 4, UCHAR_MAX };
- static const unsigned char xchg_models[] = { 0, 1, 3, 4, 5, UCHAR_MAX };
  static const unsigned char flag_clr_models[] = { 0, 1, 4, UCHAR_MAX };
  static const unsigned char all_models[] = { 0, 1, 2, 3, 4, 5, UCHAR_MAX };
  
--- 2940,2945 ----
*************** pass_waccess::check_atomic_builtin (gcal
*** 3097,3103 ****
    switch (DECL_FUNCTION_CODE (callee))
      {
  #define BUILTIN_ACCESS_SIZE_FNSPEC(N)			\
!       BUILT_IN_SYNC_FETCH_AND_ADD_ ## N:		\
      case BUILT_IN_SYNC_FETCH_AND_SUB_ ## N:		\
      case BUILT_IN_SYNC_FETCH_AND_OR_ ## N:		\
      case BUILT_IN_SYNC_FETCH_AND_AND_ ## N:		\
--- 3096,3102 ----
    switch (DECL_FUNCTION_CODE (callee))
      {
  #define BUILTIN_ACCESS_SIZE_FNSPEC(N)			\
! 	 BUILT_IN_SYNC_FETCH_AND_ADD_ ## N:		\
      case BUILT_IN_SYNC_FETCH_AND_SUB_ ## N:		\
      case BUILT_IN_SYNC_FETCH_AND_OR_ ## N:		\
      case BUILT_IN_SYNC_FETCH_AND_AND_ ## N:		\
*************** pass_waccess::check_atomic_builtin (gcal
*** 3135,3157 ****
      case BUILT_IN_ATOMIC_FETCH_NAND_ ## N:		\
      case BUILT_IN_ATOMIC_FETCH_OR_ ## N:		\
      case BUILT_IN_ATOMIC_FETCH_XOR_ ## N:		\
! 	bytes = N;					\
! 	if (sucs_arg == UINT_MAX)			\
! 	  sucs_arg = 2;					\
! 	if (!pvalid_models)				\
! 	  pvalid_models = all_models;			\
! 	break;						\
      case BUILT_IN_ATOMIC_EXCHANGE_ ## N:		\
! 	bytes = N;					\
! 	sucs_arg = 3;					\
! 	pvalid_models = xchg_models;			\
! 	break;						\
      case BUILT_IN_ATOMIC_COMPARE_EXCHANGE_ ## N:	\
! 	bytes = N;					\
! 	sucs_arg = 4;					\
! 	fail_arg = 5;					\
! 	pvalid_models = all_models;			\
! 	arg2 = 1
  
      case BUILTIN_ACCESS_SIZE_FNSPEC (1);
        break;
--- 3134,3156 ----
      case BUILT_IN_ATOMIC_FETCH_NAND_ ## N:		\
      case BUILT_IN_ATOMIC_FETCH_OR_ ## N:		\
      case BUILT_IN_ATOMIC_FETCH_XOR_ ## N:		\
!       bytes = N;					\
!       if (sucs_arg == UINT_MAX)				\
! 	sucs_arg = 2;					\
!       if (!pvalid_models)				\
! 	pvalid_models = all_models;			\
!       break;						\
      case BUILT_IN_ATOMIC_EXCHANGE_ ## N:		\
!       bytes = N;					\
!       sucs_arg = 2;					\
!       pvalid_models = all_models;			\
!       break;						\
      case BUILT_IN_ATOMIC_COMPARE_EXCHANGE_ ## N:	\
!       bytes = N;					\
!       sucs_arg = 4;					\
!       fail_arg = 5;					\
!       pvalid_models = all_models;			\
!       arg2 = 1
  
      case BUILTIN_ACCESS_SIZE_FNSPEC (1);
        break;
*************** pass_waccess::check_atomic_builtin (gcal
*** 3169,3174 ****
--- 3168,3222 ----
        pvalid_models = flag_clr_models;
        break;
  
+ #define BUILTIN_TSAN_ACCESS_SIZE_FNSPEC(N)		\
+ 	 BUILT_IN_TSAN_ATOMIC ## N ##_LOAD:		\
+       pvalid_models = load_models;			\
+       sucs_arg = 1;					\
+       /* FALLTHROUGH */					\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_STORE:		\
+       if (!pvalid_models)				\
+ 	pvalid_models = store_models;			\
+       /* FALLTHROUGH */					\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_FETCH_ADD:	\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_FETCH_SUB:	\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_FETCH_AND:	\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_FETCH_NAND:	\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_FETCH_OR:		\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_FETCH_XOR:	\
+       bytes = N / 8;					\
+       if (sucs_arg == UINT_MAX)				\
+ 	sucs_arg = 2;					\
+       if (!pvalid_models)				\
+ 	pvalid_models = all_models;			\
+       break;						\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_EXCHANGE:		\
+       bytes = N / 8;					\
+       sucs_arg = 2;					\
+       pvalid_models = all_models;			\
+       break;						\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_COMPARE_EXCHANGE_STRONG:	\
+     case BUILT_IN_TSAN_ATOMIC ## N ##_COMPARE_EXCHANGE_WEAK:	\
+       bytes = N / 8;					\
+       sucs_arg = 3;					\
+       fail_arg = 4;					\
+       pvalid_models = all_models;			\
+       arg2 = 1
+ 
+     case BUILTIN_TSAN_ACCESS_SIZE_FNSPEC (8);
+       break;
+ 
+     case BUILTIN_TSAN_ACCESS_SIZE_FNSPEC (16);
+       break;
+ 
+     case BUILTIN_TSAN_ACCESS_SIZE_FNSPEC (32);
+       break;
+ 
+     case BUILTIN_TSAN_ACCESS_SIZE_FNSPEC (64);
+       break;
+ 
+     case BUILTIN_TSAN_ACCESS_SIZE_FNSPEC (128);
+       break;
+ 
      default:
        return false;
      }
diff -Nrcpad gcc-16-20260405/gcc/ifcvt.cc gcc-16-20260412/gcc/ifcvt.cc
*** gcc-16-20260405/gcc/ifcvt.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/ifcvt.cc	Sun Apr 12 22:32:08 2026
*************** find_if_header (basic_block test_bb, int
*** 5180,5186 ****
        && cond_exec_find_if_block (&ce_info))
      goto success;
  
!   if (targetm.have_trap ()
        && optab_handler (ctrap_optab, word_mode) != CODE_FOR_nothing
        && find_cond_trap (test_bb, then_edge, else_edge))
      goto success;
--- 5180,5186 ----
        && cond_exec_find_if_block (&ce_info))
      goto success;
  
!   if (!reload_completed && targetm.have_trap ()
        && optab_handler (ctrap_optab, word_mode) != CODE_FOR_nothing
        && find_cond_trap (test_bb, then_edge, else_edge))
      goto success;
diff -Nrcpad gcc-16-20260405/gcc/lto/ChangeLog gcc-16-20260412/gcc/lto/ChangeLog
*** gcc-16-20260405/gcc/lto/ChangeLog	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/lto/ChangeLog	Sun Apr 12 22:32:08 2026
***************
*** 1,3 ****
--- 1,9 ----
+ 2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* Make-lang.in (create_fdas_for_lto1): Use $(AFDO_PROFILER) when passing
+ 	--profiler to create_gcov. Ensure that perf.data contains profile for
+ 	lto1. Make the console output more useful.
+ 
  2026-03-26  Michal Jires  <mjires@suse.cz>
  
  	* lto-partition.cc (enum map1to1_content): New.
diff -Nrcpad gcc-16-20260405/gcc/lto/Make-lang.in gcc-16-20260412/gcc/lto/Make-lang.in
*** gcc-16-20260405/gcc/lto/Make-lang.in	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/lto/Make-lang.in	Sun Apr 12 22:32:08 2026
*************** lto1.fda: create_fdas_for_lto1
*** 111,131 ****
  create_fdas_for_lto1: ../stage1-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev.fda; \
! 	    $(CREATE_GCOV) -binary ../stage1-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:"; \
! 	  echo $$perf_path; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev_target.fda; \
! 	    $(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version `../prev-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
  	  fi; \
  	done;
  
--- 111,137 ----
  create_fdas_for_lto1: ../stage1-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA)
  	for component_in_prev in "$(components_in_prev)"; do \
  	  perf_path=../prev-$$component_in_prev/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/lto1$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../stage1-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../stage1-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo "  warning: $$perf_path is missing lto1!"; \
! 	    fi; \
  	  fi; \
  	done;
  
  	for component_in_prev_target in "$(components_in_prev_target)"; do \
  	  perf_path=../prev-$(TARGET_SUBDIR)/$$component_in_prev_target/$(PERF_DATA); \
! 	  echo "Perf path:" $$perf_path "..." `[ -f $$perf_path ] && echo exists || echo does not exist`; \
  	  if [ -f $$perf_path ]; then \
  	    profile_name=lto1_$$component_in_prev_target.fda; \
! 	    if [ "x`$(PERF) buildid-list -i $$perf_path | grep '/lto1$$' && echo yes`" != "x" ]; then \
! 	      $(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -profiler $(AFDO_PROFILER) -gcov_version `../prev-gcc/xgcc$(exeext) --print-autofdo-gcov-version` || exit 1; \
! 	    else \
! 	      echo "  warning: $$perf_path is missing lto1!"; \
! 	    fi; \
  	  fi; \
  	done;
  
diff -Nrcpad gcc-16-20260405/gcc/m2/ChangeLog gcc-16-20260412/gcc/m2/ChangeLog
*** gcc-16-20260405/gcc/m2/ChangeLog	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/m2/ChangeLog	Sun Apr 12 22:32:08 2026
***************
*** 1,3 ****
--- 1,13 ----
+ 2026-04-10  Gaius Mulley  <gaiusmod2@gmail.com>
+ 
+ 	PR modula2/124840
+ 	* gm2-libs/BinDict.mod (Key): Return field key.
+ 
+ 2026-04-07  Sandra Loosemore  <sloosemore@baylibre.com>
+ 
+ 	PR other/124784
+ 	* lang.opt.urls: Regenerated.
+ 
  2026-01-25  Sandra Loosemore  <sloosemore@baylibre.com>
  
  	* lang.opt.urls: Regenerated.
diff -Nrcpad gcc-16-20260405/gcc/m2/gm2-libs/BinDict.mod gcc-16-20260412/gcc/m2/gm2-libs/BinDict.mod
*** gcc-16-20260405/gcc/m2/gm2-libs/BinDict.mod	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/m2/gm2-libs/BinDict.mod	Sun Apr 12 22:32:08 2026
*************** END Value ;
*** 205,211 ****
  
  PROCEDURE Key (node: Node) : ADDRESS ;
  BEGIN
!    RETURN node^.value
  END Key ;
  
  
--- 205,211 ----
  
  PROCEDURE Key (node: Node) : ADDRESS ;
  BEGIN
!    RETURN node^.key
  END Key ;
  
  
diff -Nrcpad gcc-16-20260405/gcc/m2/lang.opt.urls gcc-16-20260412/gcc/m2/lang.opt.urls
*** gcc-16-20260405/gcc/m2/lang.opt.urls	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/m2/lang.opt.urls	Sun Apr 12 22:32:08 2026
*************** UrlSuffix(gcc/Directory-Options.html#ind
*** 113,118 ****
--- 113,121 ----
  imultilib
  UrlSuffix(gcc/Directory-Options.html#index-imultilib) LangUrlSuffix_D(gdc/Directory-Options.html#index-imultilib) LangUrlSuffix_Fortran(gfortran/Preprocessing-Options.html#index-imultilib)
  
+ -save-temps
+ UrlSuffix(gcc/Developer-Options.html#index-save-temps)
+ 
  save-temps
  UrlSuffix(gcc/Developer-Options.html#index-save-temps)
  
diff -Nrcpad gcc-16-20260405/gcc/omp-expand.cc gcc-16-20260412/gcc/omp-expand.cc
*** gcc-16-20260405/gcc/omp-expand.cc	Sun Apr  5 22:32:07 2026
--- gcc-16-20260412/gcc/omp-expand.cc	Sun Apr 12 22:32:08 2026
*************** expand_oacc_for (struct omp_region *regi
*** 7718,7745 ****
    basic_block bottom_bb = NULL;
  
    /* entry_bb has two successors; the branch edge is to the exit
!      block, fallthrough edge to body.  */
!   gcc_assert (EDGE_COUNT (entry_bb->succs) == 2
! 	      && BRANCH_EDGE (entry_bb)->dest == exit_bb);
  
    /* If cont_bb non-NULL, it has 2 successors.  The branch successor is
       body_bb, or to a block whose only successor is the body_bb.  Its
       fallthrough successor is the final block (same as the branch
!      successor of the entry_bb).  */
    if (cont_bb)
      {
        basic_block body_bb = FALLTHRU_EDGE (entry_bb)->dest;
        basic_block bed = BRANCH_EDGE (cont_bb)->dest;
  
!       gcc_assert (FALLTHRU_EDGE (cont_bb)->dest == exit_bb);
        gcc_assert (bed == body_bb || single_succ_edge (bed)->dest == body_bb);
      }
    else
      gcc_assert (!gimple_in_ssa_p (cfun));
  
-   /* The exit block only has entry_bb and cont_bb as predecessors.  */
-   gcc_assert (EDGE_COUNT (exit_bb->preds) == 1 + (cont_bb != NULL));
- 
    tree chunk_no;
    tree chunk_max = NULL_TREE;
    tree bound, offset;
--- 7718,7742 ----
    basic_block bottom_bb = NULL;
  
    /* entry_bb has two successors; the branch edge is to the exit
!      block (or to finalization blocks preceding it), fallthrough edge
!      to body.  */
!   gcc_assert (EDGE_COUNT (entry_bb->succs) == 2);
  
    /* If cont_bb non-NULL, it has 2 successors.  The branch successor is
       body_bb, or to a block whose only successor is the body_bb.  Its
       fallthrough successor is the final block (same as the branch
!      successor of the entry_bb), possibly via finalization blocks.  */
    if (cont_bb)
      {
        basic_block body_bb = FALLTHRU_EDGE (entry_bb)->dest;
        basic_block bed = BRANCH_EDGE (cont_bb)->dest;
  
!       gcc_assert (EDGE_COUNT (cont_bb->succs) == 2);
        gcc_assert (bed == body_bb || single_succ_edge (bed)->dest == body_bb);
      }
    else
      gcc_assert (!gimple_in_ssa_p (cfun));
  
    tree chunk_no;
    tree chunk_max = NULL_TREE;
    tree bound, offset;
diff -Nrcpad gcc-16-20260405/gcc/params.opt gcc-16-20260412/gcc/params.opt
*** gcc-16-20260405/gcc/params.opt	Sun Apr  5 22:32:08 2026
--- gcc-16-20260412/gcc/params.opt	Sun Apr 12 22:32:08 2026
*************** The maximum factor which the loop vector
*** 1295,1303 ****
  Common Joined UInteger Var(param_vect_induction_float) Init(1) IntegerRange(0, 1) Param Optimization
  Enable loop vectorization of floating point inductions.
  
! -param=vect-scalar-cost-multiplier=
! Common Joined UInteger Var(param_vect_scalar_cost_multiplier) Init(100) IntegerRange(0, 10000) Param Optimization
! The scaling multiplier as a percentage to apply to all scalar loop costing when performing vectorization profitability analysis.  The default value is 100.
  
  -param=vrp-block-limit=
  Common Joined UInteger Var(param_vrp_block_limit) Init(150000) Optimization Param
--- 1295,1303 ----
  Common Joined UInteger Var(param_vect_induction_float) Init(1) IntegerRange(0, 1) Param Optimization
  Enable loop vectorization of floating point inductions.
  
! -param=vect_allow_possibly_not_worthwhile_vectorizations=
! Common Joined UInteger Var(param_vect_allow_possibly_not_worthwhile_vectorizations) Init(0) IntegerRange(0, 1) Param Optimization
! Enable vectorization of loops that may not be profitable according to the cost model but still perform costing between vector modes.
  
  -param=vrp-block-limit=
  Common Joined UInteger Var(param_vrp_block_limit) Init(150000) Optimization Param
diff -Nrcpad gcc-16-20260405/gcc/po/ChangeLog gcc-16-20260412/gcc/po/ChangeLog
*** gcc-16-20260405/gcc/po/ChangeLog	Sun Apr  5 22:32:08 2026
--- gcc-16-20260412/gcc/po/ChangeLog	Sun Apr 12 22:32:08 2026
***************
*** 1,3 ****
--- 1,11 ----
+ 2026-04-08  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* zh_CN.po: Update.
+ 
+ 2026-04-07  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* sv.po, zh_CN.po: Update.
+ 
  2026-03-31  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-20260405/gcc/po/sv.po gcc-16-20260412/gcc/po/sv.po
*** gcc-16-20260405/gcc/po/sv.po	Sun Apr  5 22:32:08 2026
--- gcc-16-20260412/gcc/po/sv.po	Sun Apr 12 22:32:08 2026
***************
*** 29,38 ****
  # thunk			snutt
  msgid ""
  msgstr ""
! "Project-Id-Version: gcc 16.1-b20260222\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-03-26 15:06+0000\n"
! "PO-Revision-Date: 2026-03-22 09:36+0100\n"
  "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
  "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
  "Language: sv\n"
--- 29,38 ----
  # thunk			snutt
  msgid ""
  msgstr ""
! "Project-Id-Version: gcc 16.1-b20260329\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-03-26 15:06+0000\n"
! "PO-Revision-Date: 2026-04-05 17:10+0200\n"
  "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
  "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
  "Language: sv\n"
*************** msgid "-minline-memops-threshold=<number
*** 2482,2491 ****
  msgstr "-minline-memops-threshold=<tal> Maximal storlek på memset/memmove/memcpy för att inline:a, större storlek kommer använda ett biblioteksanrop."
  
  #: config/bpf/bpf.opt:118
! #, fuzzy, no-c-format
! #| msgid "Warn when the field in a struct is not aligned."
  msgid "Warn when CO-RE support is not guaranteed."
! msgstr "Varna när fältet i en strukt inte är justerat."
  
  #: config/lm32/lm32.opt:24
  #, no-c-format
--- 2482,2490 ----
  msgstr "-minline-memops-threshold=<tal> Maximal storlek på memset/memmove/memcpy för att inline:a, större storlek kommer använda ett biblioteksanrop."
  
  #: config/bpf/bpf.opt:118
! #, no-c-format
  msgid "Warn when CO-RE support is not guaranteed."
! msgstr "Varna när stöd för CO-RE inte är garanterat."
  
  #: config/lm32/lm32.opt:24
  #, no-c-format
*************** msgid "Enable only function reordering w
*** 9891,9898 ****
  msgstr "Aktivera endast omflyttning av funktioner med auto-profil."
  
  #: params.opt:79
! #, fuzzy, no-c-format
! #| msgid "Whether the scheduling description is mostly a cycle-accurate model of the target processor and is likely to be spill aggressively to fill any pipeline bubbles."
  msgid "Whether the scheduling description is mostly a cycle-accurate model of the target processor and is likely to spill aggressively to fill any pipeline bubbles."
  msgstr "Huruvida schemaläggningsbeskrivningen är huvudsakligen en modell med cykelnoggrannhet av målprocessorn och troligen kommer att spilla över aggressivt för att fylla eventuella pipeline-bubblor."
  
--- 9890,9896 ----
  msgstr "Aktivera endast omflyttning av funktioner med auto-profil."
  
  #: params.opt:79
! #, no-c-format
  msgid "Whether the scheduling description is mostly a cycle-accurate model of the target processor and is likely to spill aggressively to fill any pipeline bubbles."
  msgstr "Huruvida schemaläggningsbeskrivningen är huvudsakligen en modell med cykelnoggrannhet av målprocessorn och troligen kommer att spilla över aggressivt för att fylla eventuella pipeline-bubblor."
  
*************** msgid "Maximum number of active local st
*** 10488,10495 ****
  msgstr "Maximalt antal aktiva lokala lagringar i RTL vid eliminering av döda lagringar."
  
  #: params.opt:591
! #, fuzzy, no-c-format
! #| msgid "Maximum number of targets to devirutalize."
  msgid "Maximum number of targets to devirtualize."
  msgstr "Maximalt antal mål att devirtualisera."
  
--- 10486,10492 ----
  msgstr "Maximalt antal aktiva lokala lagringar i RTL vid eliminering av döda lagringar."
  
  #: params.opt:591
! #, no-c-format
  msgid "Maximum number of targets to devirtualize."
  msgstr "Maximalt antal mål att devirtualisera."
  
*************** msgid "Maximum probability of the entry
*** 10875,10884 ****
  msgstr "Maximala sannolikheten för ingång i GB av delad region (som en procentsats i förhållande till ingång i GB av funktionen) för att partiell inlining skall ske."
  
  #: params.opt:947
! #, fuzzy, no-c-format
! #| msgid "Maximum number of statements allowed inbetween the statement and the end to considered not extending the liferange."
  msgid "Maximum number of statements allowed between a defining statement and the end of the basic block before extending the live range is considered profitable."
! msgstr "Maximalt antal satser som tillåts mellan satsen och slutet för att anses inte utöka livsintervallet."
  
  #: params.opt:951
  #, no-c-format
--- 10872,10880 ----
  msgstr "Maximala sannolikheten för ingång i GB av delad region (som en procentsats i förhållande till ingång i GB av funktionen) för att partiell inlining skall ske."
  
  #: params.opt:947
! #, no-c-format
  msgid "Maximum number of statements allowed between a defining statement and the end of the basic block before extending the live range is considered profitable."
! msgstr "Maximalt antal satser som tillåts mellan en definierande sats och slutet på grundblocket före en utökning av livsintervallet övervägs."
  
  #: params.opt:951
  #, no-c-format
*************** msgstr "Det maximala antalet omöjliga b
*** 11328,11334 ****
  #: analyzer/analyzer.opt:43
  #, no-c-format
  msgid "The maximum number of times a callsite can appear in a call stack within the analyzer, before terminating analysis of a call that would recurse deeper."
! msgstr "Det maximala antalet gånger en anropssajt kan förekomma i en anropsstack inom analyseraren, före analysen avslutas av ett anrop som skulle göra en djupare rekursion."
  
  #: analyzer/analyzer.opt:47
  #, no-c-format
--- 11324,11330 ----
  #: analyzer/analyzer.opt:43
  #, no-c-format
  msgid "The maximum number of times a callsite can appear in a call stack within the analyzer, before terminating analysis of a call that would recurse deeper."
! msgstr "Det maximala antalet gånger en anropsplats kan förekomma i en anropsstack inom analyseraren, före analysen avslutas av ett anrop som skulle göra en djupare rekursion."
  
  #: analyzer/analyzer.opt:47
  #, no-c-format
*************** msgstr "Utför partiell inline:ing."
*** 13490,13502 ****
  #: common.opt:2564
  #, no-c-format
  msgid "Report on memory allocation before interprocedural optimization."
! msgstr "Rapportera minnesallokering för interprocedurella optimeringar."
  
  #: common.opt:2568
! #, fuzzy, no-c-format
! #| msgid "Report on memory allocation before interprocedural optimization."
  msgid "Report on memory allocation after interprocedural optimization."
! msgstr "Rapportera minnesallokering för interprocedurella optimeringar."
  
  #: common.opt:2572
  #, no-c-format
--- 13486,13497 ----
  #: common.opt:2564
  #, no-c-format
  msgid "Report on memory allocation before interprocedural optimization."
! msgstr "Rapportera minnesallokering före interprocedurella optimeringar."
  
  #: common.opt:2568
! #, no-c-format
  msgid "Report on memory allocation after interprocedural optimization."
! msgstr "Rapportera minnesallokering efter interprocedurella optimeringar."
  
  #: common.opt:2572
  #, no-c-format
*************** msgstr "-frust-crate=<namn>
*** 14851,14857 ****
  #: rust/lang.opt:67
  #, no-c-format
  msgid "-frust-crate-attr=<attr>        Inject an attribute within the current crate."
! msgstr ""
  
  #: rust/lang.opt:71
  #, no-c-format
--- 14846,14852 ----
  #: rust/lang.opt:67
  #, no-c-format
  msgid "-frust-crate-attr=<attr>        Inject an attribute within the current crate."
! msgstr "-frust-crate-attr=<attr>        Skjut in ett attribut i den aktuella låren."
  
  #: rust/lang.opt:71
  #, no-c-format
*************** msgid "Warn if COMPUTATIONAL-6 is used."
*** 17578,17594 ****
  msgstr "Varna om COMPUTATIONAL-6 används."
  
  #: cobol/lang.opt:119
! #, fuzzy, no-c-format
  msgid "Warn if COMPUTATIONAL is used with PICTURE X."
  msgstr "Varna om COMPUTATIONAL används med PICTURE X."
  
  #: cobol/lang.opt:124
! #, fuzzy, no-c-format
  msgid "Warn if INSPECT ... TRAILING is used."
! msgstr "Varna om INSPECT ... TRAILING används."
  
  #: cobol/lang.opt:129
! #, fuzzy, no-c-format
  msgid "Warn if Level 01 is used with OCCURS."
  msgstr "Varna om nivå 01 används med OCCURS."
  
--- 17573,17589 ----
  msgstr "Varna om COMPUTATIONAL-6 används."
  
  #: cobol/lang.opt:119
! #, no-c-format
  msgid "Warn if COMPUTATIONAL is used with PICTURE X."
  msgstr "Varna om COMPUTATIONAL används med PICTURE X."
  
  #: cobol/lang.opt:124
! #, no-c-format
  msgid "Warn if INSPECT ... TRAILING is used."
! msgstr "Varna om INSPECT … TRAILING används."
  
  #: cobol/lang.opt:129
! #, no-c-format
  msgid "Warn if Level 01 is used with OCCURS."
  msgstr "Varna om nivå 01 används med OCCURS."
  
*************** msgid "Warn if ANY LENGTH is used in out
*** 17603,17624 ****
  msgstr "Varna om ANY LENGTH används i det yttersta programmet."
  
  #: cobol/lang.opt:144
! #, fuzzy, no-c-format
  msgid "Warn if MOVE INDEX is used."
  msgstr "Varna om MOVE INDEX används."
  
  #: cobol/lang.opt:149
! #, fuzzy, no-c-format
  msgid "Warn if MOVE POINTER is used."
  msgstr "Varna om MOVE POINTER används."
  
  #: cobol/lang.opt:154
! #, fuzzy, no-c-format
  msgid "Warn if RETURNING <number> is used."
  msgstr "Varna om RETURNING <nummer> används."
  
  #: cobol/lang.opt:159
! #, fuzzy, no-c-format
  msgid "Warn if USAGE IS TYPENAME is used."
  msgstr "Varna om USAGE IS TYPENAME används."
  
--- 17598,17619 ----
  msgstr "Varna om ANY LENGTH används i det yttersta programmet."
  
  #: cobol/lang.opt:144
! #, no-c-format
  msgid "Warn if MOVE INDEX is used."
  msgstr "Varna om MOVE INDEX används."
  
  #: cobol/lang.opt:149
! #, no-c-format
  msgid "Warn if MOVE POINTER is used."
  msgstr "Varna om MOVE POINTER används."
  
  #: cobol/lang.opt:154
! #, no-c-format
  msgid "Warn if RETURNING <number> is used."
  msgstr "Varna om RETURNING <nummer> används."
  
  #: cobol/lang.opt:159
! #, no-c-format
  msgid "Warn if USAGE IS TYPENAME is used."
  msgstr "Varna om USAGE IS TYPENAME används."
  
*************** msgid "Warn if referenced CDF name is no
*** 17638,17654 ****
  msgstr "Varna om ett refererat CDF-namn inte är definierat."
  
  #: cobol/lang.opt:179
! #, fuzzy, no-c-format
  msgid "Print message when copybook is processed."
! msgstr "Skriv ut meddelande när copybook bearbetas."
  
  #: cobol/lang.opt:184
! #, fuzzy, no-c-format
  msgid "Warn if unimplemented/unknown exception condition is referenced."
! msgstr "Warn if unimplemented/unknown exception condition is referenced."
  
  #: cobol/lang.opt:189
! #, fuzzy, no-c-format
  msgid "Print message when ENTRY CONVENTION is specified."
  msgstr "Skriv ut meddelande när ENTRY CONVENTION anges."
  
--- 17633,17649 ----
  msgstr "Varna om ett refererat CDF-namn inte är definierat."
  
  #: cobol/lang.opt:179
! #, no-c-format
  msgid "Print message when copybook is processed."
! msgstr "Skriv ut ett meddelande när en kopiebok bearbetas."
  
  #: cobol/lang.opt:184
! #, no-c-format
  msgid "Warn if unimplemented/unknown exception condition is referenced."
! msgstr "Varna om ett oimplementerat/okänt undantagsvillkor refereras."
  
  #: cobol/lang.opt:189
! #, no-c-format
  msgid "Print message when ENTRY CONVENTION is specified."
  msgstr "Skriv ut meddelande när ENTRY CONVENTION anges."
  
*************** msgid "Warn if concatenated literals use
*** 17663,17784 ****
  msgstr "Varna om sammanslagna litteraler använder olika kodningar."
  
  #: cobol/lang.opt:204
! #, fuzzy, no-c-format
  msgid "Warn if locale(3) fails."
  msgstr "Varna om locale(3) misslyckas."
  
  #: cobol/lang.opt:209
! #, fuzzy, no-c-format
  msgid "Warn if COBOL MOVE has no corresponding fields."
  msgstr "Varna om COBOL MOVE inte har några motsvarande fält."
  
  #: cobol/lang.opt:214
! #, fuzzy, no-c-format
  msgid "Warn if nlanglanginfo(3) fails."
  msgstr "Varna om nlanglanginfo(3) misslyckas."
  
  #: cobol/lang.opt:219
! #, fuzzy, no-c-format
  msgid "Warn if LENGTH OF is used."
  msgstr "Varna om LENGTH OF används."
  
  #: cobol/lang.opt:224
! #, fuzzy, no-c-format
  msgid "Warn if PROCEDURE POINTER is used."
! msgstr "Varna om PROCEDURSPECKER används."
  
  #: cobol/lang.opt:229
! #, fuzzy, no-c-format
  msgid "Warn if SECTION segments are used."
  msgstr "Varna om SECTION-segment används."
  
  #: cobol/lang.opt:234
! #, fuzzy, no-c-format
  msgid "Warn if resume is used (instead of error for IBM)."
! msgstr "Varna om CV används (istället för fel för IBM)."
  
  #: cobol/lang.opt:241
! #, fuzzy, no-c-format
  msgid "Warn if APPLY COMMIT is used."
  msgstr "Varna om APPLY COMMIT används."
  
  #: cobol/lang.opt:246
! #, fuzzy, no-c-format
  msgid "Warn if HIGH-ORDER-LEFT HIGH-ORDER-RIGHT is used."
  msgstr "Varna om HIGH-ORDER-LEFT HIGH-ORDER-RIGHT används."
  
  #: cobol/lang.opt:251
! #, fuzzy, no-c-format
  msgid "Warn if FILE CODE SET is used."
  msgstr "Varna om FILE CODE SET används."
  
  #: cobol/lang.opt:256
! #, fuzzy, no-c-format
  msgid "Warn if RECORDING MODE is used."
  msgstr "Varna om RECORDING MODE används."
  
  #: cobol/lang.opt:261
! #, fuzzy, no-c-format
  msgid "Warn if SET LOCALE ... TO is used."
! msgstr "Varna om SET LOCALE ... TO används."
  
  #: cobol/lang.opt:266
! #, fuzzy, no-c-format
  msgid "Warn if SET ... TO LOCALE is used."
! msgstr "Varna om SET ... TO LOCALE används."
  
  #: cobol/lang.opt:273
! #, fuzzy, no-c-format
  msgid "Warn if a line directive is malformed (instead of error)."
! msgstr "Varna om ett linjedirektiv är felaktigt (istället för fel)."
  
  #: cobol/lang.opt:278
! #, fuzzy, no-c-format
  msgid "Warn if EQUAL used as assignment operator (instead of error)."
  msgstr "Varna om EQUAL används som tilldelningsoperatör (istället för fel)."
  
  #: cobol/lang.opt:283
! #, fuzzy, no-c-format
  msgid "Warn if iconv(3) cannot convert between encodings (instead of error)."
  msgstr "Varna om iconv(3) inte kan konvertera mellan kodningar (istället för fel)."
  
  #: cobol/lang.opt:288
! #, fuzzy, no-c-format
  msgid "Warn if include file is not found (instead of error)."
  msgstr "Varna om inkluderingsfilen inte hittas (istället för fel)."
  
  #: cobol/lang.opt:293
! #, fuzzy, no-c-format
  msgid "Warn if a preprocessor fails (instead of error)."
  msgstr "Varna om en förprocessor misslyckas (istället för fel)."
  
  #: cobol/lang.opt:298
! #, fuzzy, no-c-format
  msgid "Warn if a referenced procedure is not found (instead of error)."
! msgstr "Varna om en refererad procedur inte hittas (istället för fel)."
  
  #: cobol/lang.opt:303
! #, fuzzy, no-c-format
  msgid "Warn if REPLACE cannot be processed (instead of error)."
  msgstr "Varna om REPLACE inte kan bearbetas (istället för fel)."
  
  #: cobol/lang.opt:308
! #, fuzzy, no-c-format
  msgid "Warn if a SEGMENT section is invalid (instead of error)."
  msgstr "Varna om ett SEGMENT-avsnitt är ogiltigt (istället för fel)."
  
  #: cobol/lang.opt:313
! #, fuzzy, no-c-format
  msgid "Warn if a SEGMENT range is negative (instead of error)."
  msgstr "Varna om ett SEGMENT-intervall är negativt (istället för fel)."
  
  #: cobol/lang.opt:318
! #, fuzzy, no-c-format
  msgid "Warn if indicator column has no recognized meaning (instead of error)."
! msgstr "Varna om indikatorkolumnen inte har någon erkänd betydelse (istället för fel)."
  
  #: cobol/lang.opt:323
! #, fuzzy, no-c-format
  msgid "Warn if relational operator not followed by space (instead of error)."
  msgstr "Varna om relationsoperatorn inte följs av mellanslag (istället för fel)."
  
--- 17658,17779 ----
  msgstr "Varna om sammanslagna litteraler använder olika kodningar."
  
  #: cobol/lang.opt:204
! #, no-c-format
  msgid "Warn if locale(3) fails."
  msgstr "Varna om locale(3) misslyckas."
  
  #: cobol/lang.opt:209
! #, no-c-format
  msgid "Warn if COBOL MOVE has no corresponding fields."
  msgstr "Varna om COBOL MOVE inte har några motsvarande fält."
  
  #: cobol/lang.opt:214
! #, no-c-format
  msgid "Warn if nlanglanginfo(3) fails."
  msgstr "Varna om nlanglanginfo(3) misslyckas."
  
  #: cobol/lang.opt:219
! #, no-c-format
  msgid "Warn if LENGTH OF is used."
  msgstr "Varna om LENGTH OF används."
  
  #: cobol/lang.opt:224
! #, no-c-format
  msgid "Warn if PROCEDURE POINTER is used."
! msgstr "Varna om PROCEDURE POINTER används."
  
  #: cobol/lang.opt:229
! #, no-c-format
  msgid "Warn if SECTION segments are used."
  msgstr "Varna om SECTION-segment används."
  
  #: cobol/lang.opt:234
! #, no-c-format
  msgid "Warn if resume is used (instead of error for IBM)."
! msgstr "Varna om återupptagande används (istället för fel för IBM)."
  
  #: cobol/lang.opt:241
! #, no-c-format
  msgid "Warn if APPLY COMMIT is used."
  msgstr "Varna om APPLY COMMIT används."
  
  #: cobol/lang.opt:246
! #, no-c-format
  msgid "Warn if HIGH-ORDER-LEFT HIGH-ORDER-RIGHT is used."
  msgstr "Varna om HIGH-ORDER-LEFT HIGH-ORDER-RIGHT används."
  
  #: cobol/lang.opt:251
! #, no-c-format
  msgid "Warn if FILE CODE SET is used."
  msgstr "Varna om FILE CODE SET används."
  
  #: cobol/lang.opt:256
! #, no-c-format
  msgid "Warn if RECORDING MODE is used."
  msgstr "Varna om RECORDING MODE används."
  
  #: cobol/lang.opt:261
! #, no-c-format
  msgid "Warn if SET LOCALE ... TO is used."
! msgstr "Varna om SET LOCALE … TO används."
  
  #: cobol/lang.opt:266
! #, no-c-format
  msgid "Warn if SET ... TO LOCALE is used."
! msgstr "Varna om SET … TO LOCALE används."
  
  #: cobol/lang.opt:273
! #, no-c-format
  msgid "Warn if a line directive is malformed (instead of error)."
! msgstr "Varna om ett raddirektiv är felaktigt (istället för fel)."
  
  #: cobol/lang.opt:278
! #, no-c-format
  msgid "Warn if EQUAL used as assignment operator (instead of error)."
  msgstr "Varna om EQUAL används som tilldelningsoperatör (istället för fel)."
  
  #: cobol/lang.opt:283
! #, no-c-format
  msgid "Warn if iconv(3) cannot convert between encodings (instead of error)."
  msgstr "Varna om iconv(3) inte kan konvertera mellan kodningar (istället för fel)."
  
  #: cobol/lang.opt:288
! #, no-c-format
  msgid "Warn if include file is not found (instead of error)."
  msgstr "Varna om inkluderingsfilen inte hittas (istället för fel)."
  
  #: cobol/lang.opt:293
! #, no-c-format
  msgid "Warn if a preprocessor fails (instead of error)."
  msgstr "Varna om en förprocessor misslyckas (istället för fel)."
  
  #: cobol/lang.opt:298
! #, no-c-format
  msgid "Warn if a referenced procedure is not found (instead of error)."
! msgstr "Varna om en refererad procedur inte finns (istället för fel)."
  
  #: cobol/lang.opt:303
! #, no-c-format
  msgid "Warn if REPLACE cannot be processed (instead of error)."
  msgstr "Varna om REPLACE inte kan bearbetas (istället för fel)."
  
  #: cobol/lang.opt:308
! #, no-c-format
  msgid "Warn if a SEGMENT section is invalid (instead of error)."
  msgstr "Varna om ett SEGMENT-avsnitt är ogiltigt (istället för fel)."
  
  #: cobol/lang.opt:313
! #, no-c-format
  msgid "Warn if a SEGMENT range is negative (instead of error)."
  msgstr "Varna om ett SEGMENT-intervall är negativt (istället för fel)."
  
  #: cobol/lang.opt:318
! #, no-c-format
  msgid "Warn if indicator column has no recognized meaning (instead of error)."
! msgstr "Varna om indikatorkolumnen inte har någon känd betydelse (istället för fel)."
  
  #: cobol/lang.opt:323
! #, no-c-format
  msgid "Warn if relational operator not followed by space (instead of error)."
  msgstr "Varna om relationsoperatorn inte följs av mellanslag (istället för fel)."
  
*************** msgid "Warn if IBM-style STOP <number> i
*** 17793,17801 ****
  msgstr "Varna om STOP <nummer> i IBM-stil används (istället för fel)."
  
  #: cobol/lang.opt:338
! #, fuzzy, no-c-format
  msgid "Warn if VOLATILE is used (instead of error if -dialect ibm)."
! msgstr "Varna om VOLATILE används (istället för error if -dialect ibm)."
  
  #: cobol/lang.opt:344
  #, no-c-format
--- 17788,17796 ----
  msgstr "Varna om STOP <nummer> i IBM-stil används (istället för fel)."
  
  #: cobol/lang.opt:338
! #, no-c-format
  msgid "Warn if VOLATILE is used (instead of error if -dialect ibm)."
! msgstr "Varna om VOLATILE används (istället för fel om -dialect ibm)."
  
  #: cobol/lang.opt:344
  #, no-c-format
*************** msgid "collect2 version %s\n"
*** 18289,18315 ****
  msgstr "collect2 version %s\n"
  
  #: collect2.cc:1671
! #, fuzzy, c-format
! #| msgid "%d constructor found\n"
  msgid "%d constructor found\n"
  msgid_plural "%d constructors found\n"
! msgstr[0] "%d konstruerare hittade\n"
  msgstr[1] "%d konstruerare hittade\n"
  
  #: collect2.cc:1675
! #, fuzzy, c-format
! #| msgid "%d destructor found\n"
  msgid "%d destructor found\n"
  msgid_plural "%d destructors found\n"
! msgstr[0] "%d destruerare hittade\n"
  msgstr[1] "%d destruerare hittade\n"
  
  #: collect2.cc:1679
! #, fuzzy, c-format
! #| msgid "%d frame table found\n"
  msgid "%d frame table found\n"
  msgid_plural "%d frame tables found\n"
! msgstr[0] "%d ramtabeller hittade\n"
  msgstr[1] "%d ramtabeller hittade\n"
  
  #: collect2.cc:1834
--- 18284,18307 ----
  msgstr "collect2 version %s\n"
  
  #: collect2.cc:1671
! #, c-format
  msgid "%d constructor found\n"
  msgid_plural "%d constructors found\n"
! msgstr[0] "%d konstruerare hittad\n"
  msgstr[1] "%d konstruerare hittade\n"
  
  #: collect2.cc:1675
! #, c-format
  msgid "%d destructor found\n"
  msgid_plural "%d destructors found\n"
! msgstr[0] "%d destruerare hittad\n"
  msgstr[1] "%d destruerare hittade\n"
  
  #: collect2.cc:1679
! #, c-format
  msgid "%d frame table found\n"
  msgid_plural "%d frame tables found\n"
! msgstr[0] "%d ramtabeller hittad\n"
  msgstr[1] "%d ramtabeller hittade\n"
  
  #: collect2.cc:1834
*************** msgid "'"
*** 19553,19573 ****
  msgstr "”"
  
  #: json-diagnostic.cc:236
! #, fuzzy, c-format
  msgid "In JSON value %e"
! msgstr "I JSON-värdet %qs"
  
  #: json-diagnostic.cc:239
! #, fuzzy, c-format
! #| msgid "In JSON object %qs"
  msgid "In JSON object %e"
! msgstr "I JSON-objekt %qs"
  
  #: json-diagnostic.cc:242
! #, fuzzy, c-format
! #| msgid "In JSON array %qs"
  msgid "In JSON array %e"
! msgstr "I JSON-vektor %qs"
  
  #: langhooks.cc:389
  msgid "At top level:"
--- 19545,19563 ----
  msgstr "”"
  
  #: json-diagnostic.cc:236
! #, c-format
  msgid "In JSON value %e"
! msgstr "I JSON-värdet %e"
  
  #: json-diagnostic.cc:239
! #, c-format
  msgid "In JSON object %e"
! msgstr "I JSON-objekt %e"
  
  #: json-diagnostic.cc:242
! #, c-format
  msgid "In JSON array %e"
! msgstr "I JSON-vektorn %e"
  
  #: langhooks.cc:389
  msgid "At top level:"
*************** msgid "In processing instruction %qs"
*** 19644,19650 ****
  msgstr "I bearbetningsinstruktionen %qs"
  
  #: libgdiagnostics.cc:1529
- #, fuzzy
  msgid "In DTD %qs"
  msgstr "I DTD %qs"
  
--- 19634,19639 ----
*************** msgid "In JSON array %qs"
*** 19662,19678 ****
  msgstr "I JSON-vektor %qs"
  
  #: libgdiagnostics.cc:1537
- #, fuzzy
  msgid "In JSON property %qs"
  msgstr "I JSON-egenskapen %qs"
  
  #: libgdiagnostics.cc:1538
- #, fuzzy
  msgid "In JSON value %qs"
  msgstr "I JSON-värdet %qs"
  
  #: libgdiagnostics.cc:1685
! #, fuzzy, c-format
  msgid "%e"
  msgstr "%e"
  
--- 19651,19665 ----
  msgstr "I JSON-vektor %qs"
  
  #: libgdiagnostics.cc:1537
  msgid "In JSON property %qs"
  msgstr "I JSON-egenskapen %qs"
  
  #: libgdiagnostics.cc:1538
  msgid "In JSON value %qs"
  msgstr "I JSON-värdet %qs"
  
  #: libgdiagnostics.cc:1685
! #, c-format
  msgid "%e"
  msgstr "%e"
  
*************** msgid "shift operation not permitted on
*** 20409,20417 ****
  msgstr "åtgärden skifta är inte tillåten på svbool_t"
  
  #: config/aarch64/aarch64.cc:31142
- #, fuzzy
  msgid "only == and != operations permitted on svbool_t"
! msgstr "endast == och != operationer tillåtna på svbool_t"
  
  #: config/aarch64/aarch64.cc:31144
  msgid "subscript operation not supported on svbool_t"
--- 20396,20403 ----
  msgstr "åtgärden skifta är inte tillåten på svbool_t"
  
  #: config/aarch64/aarch64.cc:31142
  msgid "only == and != operations permitted on svbool_t"
! msgstr "endast operationerna == och != tillåts på svbool_t"
  
  #: config/aarch64/aarch64.cc:31144
  msgid "subscript operation not supported on svbool_t"
*************** msgid "  after user-defined conversion:"
*** 22166,22176 ****
  msgstr "  efter användardefinierad konvertering:"
  
  #: cp/call.cc:8800 cp/pt.cc:27736
- #, fuzzy
- #| msgid "candidate is:"
  msgid "candidate is:"
  msgid_plural "candidates are:"
! msgstr[0] "kandidater är:"
  msgstr[1] "kandidater är:"
  
  #: cp/call.cc:13469 cp/call.cc:13921
--- 22152,22160 ----
  msgstr "  efter användardefinierad konvertering:"
  
  #: cp/call.cc:8800 cp/pt.cc:27736
  msgid "candidate is:"
  msgid_plural "candidates are:"
! msgstr[0] "kandidat är:"
  msgstr[1] "kandidater är:"
  
  #: cp/call.cc:13469 cp/call.cc:13921
*************** msgid "reflection does not represent a f
*** 22327,22335 ****
  msgstr "reflektionen representerar inte en funktion eller funktionstyp"
  
  #: cp/reflect.cc:2355
- #, fuzzy
  msgid "reflection does not represent an operator function or operator function template"
! msgstr "reflektion representerar inte en operatörsfunktion eller operatörsfunktionsmall"
  
  #: cp/reflect.cc:2405
  msgid "operators argument is not a valid operator"
--- 22311,22318 ----
  msgstr "reflektionen representerar inte en funktion eller funktionstyp"
  
  #: cp/reflect.cc:2355
  msgid "reflection does not represent an operator function or operator function template"
! msgstr "reflektionen representerar inte en operatorfunktion eller operatorfunktionsmall"
  
  #: cp/reflect.cc:2405
  msgid "operators argument is not a valid operator"
*************** msgid "reflection does not have a type"
*** 22340,22353 ****
  msgstr "reflektionen har inte en typ"
  
  #: cp/reflect.cc:2652
- #, fuzzy
  msgid "reflection does not represent an object with static storage duration, or a reference to such an object"
! msgstr "reflektion representerar inte ett objekt med statisk lagringstid, eller en referens till ett sådant objekt"
  
  #: cp/reflect.cc:2733
- #, fuzzy
  msgid "reflection does not represent an annotation or a valid argument to a splice-expression"
! msgstr "reflektion representerar inte en anteckning eller ett giltigt argument till ett splitsningsuttryck"
  
  #: cp/reflect.cc:2953
  msgid "reflection does not represent an entity with parent"
--- 22323,22334 ----
  msgstr "reflektionen har inte en typ"
  
  #: cp/reflect.cc:2652
  msgid "reflection does not represent an object with static storage duration, or a reference to such an object"
! msgstr "reflektionen representerar inte ett objekt med statisk lagringstid, eller en referens till ett sådant objekt"
  
  #: cp/reflect.cc:2733
  msgid "reflection does not represent an annotation or a valid argument to a splice-expression"
! msgstr "reflektionen representerar inte en annotering eller ett giltigt argument till ett spliice-uttryck"
  
  #: cp/reflect.cc:2953
  msgid "reflection does not represent an entity with parent"
*************** msgid "reflection does not represent a f
*** 22362,22384 ****
  msgstr "reflektionen representerar inte en funktion eller funktionstyp med en returtyp"
  
  #: cp/reflect.cc:3128
- #, fuzzy
  msgid "reflection of virtual direct base relationship with abstract derived class"
! msgstr "reflektion av virtuell direkt basrelation med abstrakt härledd klass"
  
  #: cp/reflect.cc:3134
- #, fuzzy
  msgid "reflection unsuitable for offset_of"
! msgstr "reflektion olämplig för offset_of"
  
  #: cp/reflect.cc:3139
  msgid "non-constant offset for offset_of"
  msgstr "icke-konstant avstånd för offset_of"
  
  #: cp/reflect.cc:3203
- #, fuzzy
  msgid "reflection not suitable for size_of"
! msgstr "reflektion inte lämplig för size_of"
  
  #: cp/reflect.cc:3222
  msgid "reflection with incomplete type in size_of"
--- 22343,22362 ----
  msgstr "reflektionen representerar inte en funktion eller funktionstyp med en returtyp"
  
  #: cp/reflect.cc:3128
  msgid "reflection of virtual direct base relationship with abstract derived class"
! msgstr "reflektion av en virtuell direkt basrelation med abstrakt härledd klass"
  
  #: cp/reflect.cc:3134
  msgid "reflection unsuitable for offset_of"
! msgstr "reflektionen passar inte offset_of"
  
  #: cp/reflect.cc:3139
  msgid "non-constant offset for offset_of"
  msgstr "icke-konstant avstånd för offset_of"
  
  #: cp/reflect.cc:3203
  msgid "reflection not suitable for size_of"
! msgstr "reflektionen passar inte size_of"
  
  #: cp/reflect.cc:3222
  msgid "reflection with incomplete type in size_of"
*************** msgid "reflection with incomplete type i
*** 22397,22437 ****
  msgstr "reflektion med en ofullständig typ i alignment_of"
  
  #: cp/reflect.cc:3338
- #, fuzzy
  msgid "reflection not suitable for bit_size_of"
! msgstr "reflektion inte lämplig för bit_size_of"
  
  #: cp/reflect.cc:3362
- #, fuzzy
  msgid "reflection with incomplete type in bit_size_of"
  msgstr "reflektion med ofullständig typ i bit_size_of"
  
  #: cp/reflect.cc:3538
- #, fuzzy
  msgid "reflection with has_identifier false"
! msgstr "reflektion med has_identifier false"
  
  #: cp/reflect.cc:3578 cp/reflect.cc:3668
- #, fuzzy
  msgid "identifier_of not representable in ordinary literal encoding"
  msgstr "identifier_of kan inte representeras i vanlig bokstavlig kodning"
  
  #: cp/reflect.cc:3582 cp/reflect.cc:3672
- #, fuzzy
  msgid "u8identifier_of not representable in UTF-8"
  msgstr "u8identifier_of kan inte representeras i UTF-8"
  
  #: cp/reflect.cc:3805
- #, fuzzy
  msgid "reflection does not represent a type, type alias, variable, function, namespace, enumerator, direct base class relationship, or non-static data member"
! msgstr "reflektion representerar inte en typ, ett typalias, en variabel, funktion, namnutrymme, enumerator, direkt basklassrelation eller icke-statisk datamedlem"
  
  #: cp/reflect.cc:3817
  msgid "reflection does not represent a complete type or type alias"
  msgstr "reflektionen representerar inte en fullständig typ eller typalias"
  
  #: cp/reflect.cc:3930
- #, fuzzy
  msgid "reflect_object failed"
  msgstr "reflect_object misslyckades"
  
--- 22375,22408 ----
  msgstr "reflektion med en ofullständig typ i alignment_of"
  
  #: cp/reflect.cc:3338
  msgid "reflection not suitable for bit_size_of"
! msgstr "reflektion passar inte bit_size_of"
  
  #: cp/reflect.cc:3362
  msgid "reflection with incomplete type in bit_size_of"
  msgstr "reflektion med ofullständig typ i bit_size_of"
  
  #: cp/reflect.cc:3538
  msgid "reflection with has_identifier false"
! msgstr "reflektion med has_identifier falskt"
  
  #: cp/reflect.cc:3578 cp/reflect.cc:3668
  msgid "identifier_of not representable in ordinary literal encoding"
  msgstr "identifier_of kan inte representeras i vanlig bokstavlig kodning"
  
  #: cp/reflect.cc:3582 cp/reflect.cc:3672
  msgid "u8identifier_of not representable in UTF-8"
  msgstr "u8identifier_of kan inte representeras i UTF-8"
  
  #: cp/reflect.cc:3805
  msgid "reflection does not represent a type, type alias, variable, function, namespace, enumerator, direct base class relationship, or non-static data member"
! msgstr "reflektionen representerar inte en typ, typalias, en variabel, funktion, namnutrymme, uppräknare, direkt basklassrelation eller icke-statisk datamedlem"
  
  #: cp/reflect.cc:3817
  msgid "reflection does not represent a complete type or type alias"
  msgstr "reflektionen representerar inte en fullständig typ eller typalias"
  
  #: cp/reflect.cc:3930
  msgid "reflect_object failed"
  msgstr "reflect_object misslyckades"
  
*************** msgid "unexpected value of value member"
*** 22448,22454 ****
  msgstr "oväntat värde på värdemedlem"
  
  #: cp/reflect.cc:4967
- #, fuzzy
  msgid "type member missing"
  msgstr "typmedlem saknas"
  
--- 22419,22424 ----
*************** msgid "invalid argument to can_substitut
*** 22473,22479 ****
  msgstr "ogiltigt argument till can_substitute"
  
  #: cp/reflect.cc:5428
- #, fuzzy
  msgid "can_substitute returned false"
  msgstr "can_substitute returnerade falskt"
  
--- 22443,22448 ----
*************** msgid "type is not object or reference t
*** 22482,22488 ****
  msgstr "typen är inte en objekt- eller referenstyp"
  
  #: cp/reflect.cc:5804
- #, fuzzy
  msgid "conversion from ordinary literal encoding to source charset failed"
  msgstr "konvertering från vanlig bokstavlig kodning till källteckenuppsättning misslyckades"
  
--- 22451,22456 ----
*************** msgid "name is not a valid identifier"
*** 22495,22503 ****
  msgstr "namnet är inte en giltig identifierare"
  
  #: cp/reflect.cc:5824
- #, fuzzy
  msgid "name is a keyword"
! msgstr "namn är ett nyckelord"
  
  #: cp/reflect.cc:5827
  msgid "name is a built-in trait"
--- 22463,22470 ----
  msgstr "namnet är inte en giltig identifierare"
  
  #: cp/reflect.cc:5824
  msgid "name is a keyword"
! msgstr "namnet är ett nyckelord"
  
  #: cp/reflect.cc:5827
  msgid "name is a built-in trait"
*************** msgid "neither name nor bit_width specif
*** 22508,22525 ****
  msgstr "varken namnet eller bit_width angivet"
  
  #: cp/reflect.cc:5842
- #, fuzzy
  msgid "bit_width specified with non-integral and non-enumeration type"
! msgstr "bit_width specificerad med icke-integral och icke-uppräkningstyp"
  
  #: cp/reflect.cc:5847
  msgid "both alignment and bit_width specified"
  msgstr "både justering och bit_width angivet"
  
  #: cp/reflect.cc:5851
- #, fuzzy
  msgid "bit_width specified with no_unique_address true"
! msgstr "bit_width specificerad med no_unique_address true"
  
  #: cp/reflect.cc:5856
  msgid "bit_width 0 with specified name"
--- 22475,22490 ----
  msgstr "varken namnet eller bit_width angivet"
  
  #: cp/reflect.cc:5842
  msgid "bit_width specified with non-integral and non-enumeration type"
! msgstr "bit_width specificerad med en typ som inte är ett heltal eller en uppräkningstyp"
  
  #: cp/reflect.cc:5847
  msgid "both alignment and bit_width specified"
  msgstr "både justering och bit_width angivet"
  
  #: cp/reflect.cc:5851
  msgid "bit_width specified with no_unique_address true"
! msgstr "bit_width specificerad med no_unique_address sant"
  
  #: cp/reflect.cc:5856
  msgid "bit_width 0 with specified name"
*************** msgid "not a complete class type"
*** 22555,22563 ****
  msgstr "inte en fullständig klasstyp"
  
  #: cp/reflect.cc:7012
- #, fuzzy
  msgid "closure type"
! msgstr "stängningstyp"
  
  #: cp/reflect.cc:7188 cp/reflect.cc:7247 cp/reflect.cc:7321
  msgid "value cannot be extracted"
--- 22520,22527 ----
  msgstr "inte en fullständig klasstyp"
  
  #: cp/reflect.cc:7012
  msgid "closure type"
! msgstr "höljestyp (closure)"
  
  #: cp/reflect.cc:7188 cp/reflect.cc:7247 cp/reflect.cc:7321
  msgid "value cannot be extracted"
*************** msgid "%s:%d: invalid %<symbol_type_t%>
*** 24044,24052 ****
  msgstr "%s:%d: felaktig %<symbol_type_t%> %d"
  
  #: cobol/parse_ante.h:3259
! #, fuzzy, gcc-internal-format
  msgid "SET identifier-11 TO LOCALE"
! msgstr "STÄLL in identifierare-11 TILL LOKAL"
  
  #: cobol/parse_util.h:455
  #, gcc-internal-format
--- 24008,24016 ----
  msgstr "%s:%d: felaktig %<symbol_type_t%> %d"
  
  #: cobol/parse_ante.h:3259
! #, gcc-internal-format
  msgid "SET identifier-11 TO LOCALE"
! msgstr "SET identifierare-11 TO LOKALE"
  
  #: cobol/parse_util.h:455
  #, gcc-internal-format
*************** msgid "argument no. %d is not an address
*** 24588,24596 ****
  msgstr "argument nr. %d är inte en adress till en funktion"
  
  #: attr-callback.cc:275
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "argument number mismatch, %d expected, got %d"
! msgstr "argumentnummer stämmer inte överens, %d förväntat, fick %d"
  
  #: attr-callback.cc:293
  #, gcc-internal-format, gfc-internal-format
--- 24552,24560 ----
  msgstr "argument nr. %d är inte en adress till en funktion"
  
  #: attr-callback.cc:275
! #, gcc-internal-format, gfc-internal-format
  msgid "argument number mismatch, %d expected, got %d"
! msgstr "argumentantalet stämmer inte, %d förväntades, fick %d"
  
  #: attr-callback.cc:293
  #, gcc-internal-format, gfc-internal-format
*************** msgid "argument type at index %d is not
*** 24608,24616 ****
  msgstr "argumenttypen vid index %d är inte kompatibelt med återanropsargumentets typ vid index %d"
  
  #: attr-callback.cc:339
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "function declaration has multiple callback attributes describing argument no. %d"
! msgstr "funktionsdeklarationen har flera callback-attribut som beskriver argument nr. %d"
  
  #: attribs.cc:245 attribs.cc:268 attribs.cc:281
  #, gcc-internal-format
--- 24572,24580 ----
  msgstr "argumenttypen vid index %d är inte kompatibelt med återanropsargumentets typ vid index %d"
  
  #: attr-callback.cc:339
! #, gcc-internal-format, gfc-internal-format
  msgid "function declaration has multiple callback attributes describing argument no. %d"
! msgstr "funktionsdeklarationen har flera återanropsattribut som beskriver argument nr. %d"
  
  #: attribs.cc:245 attribs.cc:268 attribs.cc:281
  #, gcc-internal-format
*************** msgid "%qE implies default visibility, b
*** 24820,24830 ****
  msgstr "%qE implicerar standardsynlighet, men %qD har redan deklarerats med annan synlighet"
  
  #: attribs.cc:2370
- #, fuzzy
- #| msgid "%qD specifies more restrictive attribute than its target %qD: %e"
  msgid "%qD specifies more restrictive attribute than its target %qD: %e"
  msgid_plural "%qD specifies more restrictive attributes than its target %qD: %e"
! msgstr[0] "%qD anger mer restriktiva attribut än sitt mål %qD: %e"
  msgstr[1] "%qD anger mer restriktiva attribut än sitt mål %qD: %e"
  
  #: attribs.cc:2376 attribs.cc:2398
--- 24784,24792 ----
  msgstr "%qE implicerar standardsynlighet, men %qD har redan deklarerats med annan synlighet"
  
  #: attribs.cc:2370
  msgid "%qD specifies more restrictive attribute than its target %qD: %e"
  msgid_plural "%qD specifies more restrictive attributes than its target %qD: %e"
! msgstr[0] "%qD anger ett mer restriktivt attribut än sitt mål %qD: %e"
  msgstr[1] "%qD anger mer restriktiva attribut än sitt mål %qD: %e"
  
  #: attribs.cc:2376 attribs.cc:2398
*************** msgid "%qD target declared here"
*** 24833,24849 ****
  msgstr "%qD målet deklarerades här"
  
  #: attribs.cc:2392
- #, fuzzy
- #| msgid "%qD specifies less restrictive attribute than its target %qD: %e"
  msgid "%qD specifies less restrictive attribute than its target %qD: %e"
  msgid_plural "%qD specifies less restrictive attributes than its target %qD: %e"
! msgstr[0] "%qD anger mindre restriktiva attribut än sitt mål %qD: %e"
  msgstr[1] "%qD anger mindre restriktiva attribut än sitt mål %qD: %e"
  
  #: auto-profile.cc:822
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "auto-profile cannot encode offset %i that exceeds 16 bytes"
! msgstr "auto-profilen kan inte koda offset %i som överstiger 16 byte"
  
  #: auto-profile.cc:826
  #, gcc-internal-format
--- 24795,24809 ----
  msgstr "%qD målet deklarerades här"
  
  #: attribs.cc:2392
  msgid "%qD specifies less restrictive attribute than its target %qD: %e"
  msgid_plural "%qD specifies less restrictive attributes than its target %qD: %e"
! msgstr[0] "%qD anger ett mindre restriktivt attribut än sitt mål %qD: %e"
  msgstr[1] "%qD anger mindre restriktiva attribut än sitt mål %qD: %e"
  
  #: auto-profile.cc:822
! #, gcc-internal-format, gfc-internal-format
  msgid "auto-profile cannot encode offset %i that exceeds 16 bytes"
! msgstr "autoprofilen kan inte koda avståndet %i som överstiger 16 byte"
  
  #: auto-profile.cc:826
  #, gcc-internal-format
*************** msgid "location offset is related to"
*** 24851,24859 ****
  msgstr "platsavståndet är relaterat till"
  
  #: auto-profile.cc:829
! #, fuzzy, gcc-internal-format
  msgid "auto-profile cannot encode discriminators that exceeds 16 bytes"
! msgstr "auto-profile kan inte koda diskriminatorer som överstiger 16 byte"
  
  #: auto-profile.cc:865
  #, gcc-internal-format
--- 24811,24819 ----
  msgstr "platsavståndet är relaterat till"
  
  #: auto-profile.cc:829
! #, gcc-internal-format
  msgid "auto-profile cannot encode discriminators that exceeds 16 bytes"
! msgstr "autoprofile kan inte koda diskriminatorer som överstiger 16 byte"
  
  #: auto-profile.cc:865
  #, gcc-internal-format
*************** msgid "auto-profile is not supported for
*** 24861,24879 ****
  msgstr "autoprofilering stödjs inte för mål med användaretikettsprefix"
  
  #: auto-profile.cc:1085
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "auto-profile contains invalid symbol name index %d"
! msgstr "auto-profilen innehåller ogiltigt symbolnamn index %d"
  
  #: auto-profile.cc:1101
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "auto-profile contains invalid filename index %d"
! msgstr "auto-profilen innehåller ogiltigt filnamnsindex %d"
  
  #: auto-profile.cc:1603
! #, fuzzy, gcc-internal-format
  msgid "auto-profile of %q+F contains inlined function with symbol name %s instead of symbol name %s"
! msgstr "auto-profilen för %q+F innehåller infogad funktion med symbolnamn %s istället för symbolnamn %s"
  
  #: auto-profile.cc:1606 auto-profile.cc:1832 auto-profile.cc:1841
  #: auto-profile.cc:1883
--- 24821,24839 ----
  msgstr "autoprofilering stödjs inte för mål med användaretikettsprefix"
  
  #: auto-profile.cc:1085
! #, gcc-internal-format, gfc-internal-format
  msgid "auto-profile contains invalid symbol name index %d"
! msgstr "autoprofilen innehåller ett ogiltigt symbolnamnsindex %d"
  
  #: auto-profile.cc:1101
! #, gcc-internal-format, gfc-internal-format
  msgid "auto-profile contains invalid filename index %d"
! msgstr "autoprofilen innehåller ett ogiltigt filnamnsindex %d"
  
  #: auto-profile.cc:1603
! #, gcc-internal-format
  msgid "auto-profile of %q+F contains inlined function with symbol name %s instead of symbol name %s"
! msgstr "autoprofilen för %q+F innehåller en inline:ad funktion med symbolnamnet %s istället för symbolnamnet %s"
  
  #: auto-profile.cc:1606 auto-profile.cc:1832 auto-profile.cc:1841
  #: auto-profile.cc:1883
*************** msgid "corresponding call"
*** 24882,24890 ****
  msgstr "motsvarande anrop"
  
  #: auto-profile.cc:1651
! #, fuzzy, gcc-internal-format
  msgid "duplicated count information in auto-profile of %q+F with relative location %i discriminator %i"
! msgstr "duplicerad räkningsinformation i autoprofilen för %q+F med relativ plats %i diskriminator %i"
  
  #: auto-profile.cc:1656
  #, gcc-internal-format
--- 24842,24850 ----
  msgstr "motsvarande anrop"
  
  #: auto-profile.cc:1651
! #, gcc-internal-format
  msgid "duplicated count information in auto-profile of %q+F with relative location %i discriminator %i"
! msgstr "duplicerad antalsinformation i autoprofilen för %q+F med relativ plats %i diskriminator %i"
  
  #: auto-profile.cc:1656
  #, gcc-internal-format
*************** msgid "corresponding source location"
*** 24892,24925 ****
  msgstr "motsvarande källplats"
  
  #: auto-profile.cc:1827
! #, fuzzy, gcc-internal-format
  msgid "duplicated callsite in auto-profile of %q+F with relative location %i, discriminator %i"
! msgstr "duplicerad callsite i autoprofilen %q+F med relativ plats %i, diskriminator %i"
  
  #: auto-profile.cc:1835
! #, fuzzy, gcc-internal-format
  msgid "both call targets and inline callsite information is present in auto-profile of function %q+F with relative location %i, discriminator %i"
! msgstr "både samtalsmål och inline samtalsplatsinformation finns i autoprofilen för funktionen %q+F med relativ plats %i, diskriminator %i"
  
  #: auto-profile.cc:1875
! #, fuzzy, gcc-internal-format
  msgid "auto-profile of %q+F seem to contain lost discriminator %i for call of %s at relative location %i"
  msgstr "autoprofilen för %q+F verkar innehålla förlorad diskriminator %i för anrop av %s på relativ plats %i"
  
  #: auto-profile.cc:1919
! #, fuzzy, gcc-internal-format
  msgid "auto-profile of %q+F contains multiple targets for a direct call with relative location %i, discriminator %i"
! msgstr "autoprofilen för %q+F innehåller flera mål för ett direktsamtal med relativ plats %i, diskriminator %i"
  
  #: auto-profile.cc:1935
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "function contains two calls of the same relative location +%i, discriminator %i, that leads to lost auto-profile"
  msgstr "funktionen innehåller två anrop med samma relativa plats +%i, diskriminator %i, som leder till förlorad autoprofil"
  
  #: auto-profile.cc:1943
! #, fuzzy, gcc-internal-format
  msgid "location of the first call"
! msgstr "plats för det första samtalet"
  
  #: auto-profile.cc:1945
  #, gcc-internal-format
--- 24852,24885 ----
  msgstr "motsvarande källplats"
  
  #: auto-profile.cc:1827
! #, gcc-internal-format
  msgid "duplicated callsite in auto-profile of %q+F with relative location %i, discriminator %i"
! msgstr "duplicerad anropsplats i autoprofilen för %q+F med relativ plats %i, diskriminator %i"
  
  #: auto-profile.cc:1835
! #, gcc-internal-format
  msgid "both call targets and inline callsite information is present in auto-profile of function %q+F with relative location %i, discriminator %i"
! msgstr "information om både anropsmål och inline:ad anropsplats finns i autoprofilen för funktionen %q+F med relativ plats %i, diskriminator %i"
  
  #: auto-profile.cc:1875
! #, gcc-internal-format
  msgid "auto-profile of %q+F seem to contain lost discriminator %i for call of %s at relative location %i"
  msgstr "autoprofilen för %q+F verkar innehålla förlorad diskriminator %i för anrop av %s på relativ plats %i"
  
  #: auto-profile.cc:1919
! #, gcc-internal-format
  msgid "auto-profile of %q+F contains multiple targets for a direct call with relative location %i, discriminator %i"
! msgstr "autoprofilen för %q+F innehåller flera mål för ett direkt anrop med relativ plats %i, diskriminator %i"
  
  #: auto-profile.cc:1935
! #, gcc-internal-format, gfc-internal-format
  msgid "function contains two calls of the same relative location +%i, discriminator %i, that leads to lost auto-profile"
  msgstr "funktionen innehåller två anrop med samma relativa plats +%i, diskriminator %i, som leder till förlorad autoprofil"
  
  #: auto-profile.cc:1943
! #, gcc-internal-format
  msgid "location of the first call"
! msgstr "platsen för det första anropet"
  
  #: auto-profile.cc:1945
  #, gcc-internal-format
*************** msgid "location of the second call"
*** 24927,24958 ****
  msgstr "platsen för den det andra anropet"
  
  #: auto-profile.cc:1999
! #, fuzzy, gcc-internal-format
  msgid "auto-profile of %q+F contains indirect call targets not associated with an indirect call statement"
! msgstr "autoprofilen för %q+F innehåller indirekta samtalsmål som inte är associerade med en indirekt samtalssats"
  
  #: auto-profile.cc:2004 auto-profile.cc:2051
! #, fuzzy, gcc-internal-format
  msgid "count %<PRIu64> with relative location +%i, discriminator %i"
! msgstr "räkna %<PRIu64> med relativ plats +%i, diskriminator %i"
  
  #: auto-profile.cc:2047
! #, fuzzy, gcc-internal-format
  msgid "auto-profile of %q+F contains extra statements"
  msgstr "autoprofilen för %q+F innehåller extra satser"
  
  #: auto-profile.cc:2057 auto-profile.cc:2098
! #, fuzzy, gcc-internal-format
  msgid "location is after end of function"
! msgstr "platsen är efter avslutad funktion"
  
  #: auto-profile.cc:2086
! #, fuzzy, gcc-internal-format
  msgid "auto-profile of %q+F contains extra callsites"
! msgstr "auto-profilen för %q+F innehåller extra callsites"
  
  #: auto-profile.cc:2091
! #, fuzzy, gcc-internal-format
  msgid "call of %s with total count %<PRId64>, relative location +%i, discriminator %i"
  msgstr "anrop av %s med totalt antal %<PRId64>, relativ plats +%i, diskriminator %i"
  
--- 24887,24918 ----
  msgstr "platsen för den det andra anropet"
  
  #: auto-profile.cc:1999
! #, gcc-internal-format
  msgid "auto-profile of %q+F contains indirect call targets not associated with an indirect call statement"
! msgstr "autoprofilen för %q+F innehåller indirekta anropmål som inte är associerade med en indirekt anropssats"
  
  #: auto-profile.cc:2004 auto-profile.cc:2051
! #, gcc-internal-format
  msgid "count %<PRIu64> with relative location +%i, discriminator %i"
! msgstr "räknare %<PRIu64> med relativ plats +%i, diskriminator %i"
  
  #: auto-profile.cc:2047
! #, gcc-internal-format
  msgid "auto-profile of %q+F contains extra statements"
  msgstr "autoprofilen för %q+F innehåller extra satser"
  
  #: auto-profile.cc:2057 auto-profile.cc:2098
! #, gcc-internal-format
  msgid "location is after end of function"
! msgstr "platsen är efter slutet på funktion"
  
  #: auto-profile.cc:2086
! #, gcc-internal-format
  msgid "auto-profile of %q+F contains extra callsites"
! msgstr "auto-profilen för %q+F innehåller extra anropsplatser"
  
  #: auto-profile.cc:2091
! #, gcc-internal-format
  msgid "call of %s with total count %<PRId64>, relative location +%i, discriminator %i"
  msgstr "anrop av %s med totalt antal %<PRId64>, relativ plats +%i, diskriminator %i"
  
*************** msgid "Not expected TAG."
*** 24962,24970 ****
  msgstr "Ej förväntades TAGG."
  
  #: auto-profile.cc:3048
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "auto-profile contains duplicated function instance %s"
! msgstr "auto-profilen innehåller duplicerad funktionsinstans %s"
  
  #: auto-profile.cc:3210
  #, gcc-internal-format, gfc-internal-format
--- 24922,24930 ----
  msgstr "Ej förväntades TAGG."
  
  #: auto-profile.cc:3048
! #, gcc-internal-format, gfc-internal-format
  msgid "auto-profile contains duplicated function instance %s"
! msgstr "auto-profilen innehåller en duplicerad funktionsinstans %s"
  
  #: auto-profile.cc:3210
  #, gcc-internal-format, gfc-internal-format
*************** msgid "reference to dead statement"
*** 26117,26125 ****
  msgstr "referens till död sats"
  
  #: cgraph.cc:4385
! #, fuzzy, gcc-internal-format
  msgid "non-callback edge has callback_id set"
! msgstr "non-callback edge har callback_id inställt"
  
  #: cgraph.cc:4391
  #, gcc-internal-format
--- 26077,26085 ----
  msgstr "referens till död sats"
  
  #: cgraph.cc:4385
! #, gcc-internal-format
  msgid "non-callback edge has callback_id set"
! msgstr "en båge som inte är ett återanrop har callback_id satt"
  
  #: cgraph.cc:4391
  #, gcc-internal-format
*************** msgid "edge has both callback and has_ca
*** 26127,26145 ****
  msgstr "bågen har både callback och has_callback satta"
  
  #: cgraph.cc:4399
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "callback edge %s->%s has no callback-carrying"
! msgstr "återuppringningskant %s->%s har ingen återuppringningsbärande"
  
  #: cgraph.cc:4427
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "callback edge %s->%s callback edge count mismatch, expected at most %d, found %d"
! msgstr "callback edge %s->%s callback edge count missmatch, förväntad som mest %d, hittade %d"
  
  #: cgraph.cc:4440
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "callback-carrying edge is pointing towards __builtin_unreachable, but its callback edge %s -> %s is not"
! msgstr "den återuppringningsbärande kanten pekar mot __builtin_unreachable, men dess återuppringningskant %s -> %s är inte"
  
  #: cgraph.cc:4447
  #, gcc-internal-format, gfc-internal-format
--- 26087,26105 ----
  msgstr "bågen har både callback och has_callback satta"
  
  #: cgraph.cc:4399
! #, gcc-internal-format, gfc-internal-format
  msgid "callback edge %s->%s has no callback-carrying"
! msgstr "återanopsbågen %s→%s har ingen återanropsbärare"
  
  #: cgraph.cc:4427
! #, gcc-internal-format, gfc-internal-format
  msgid "callback edge %s->%s callback edge count mismatch, expected at most %d, found %d"
! msgstr "återanropsbågen %s→%s har räknare för återanropsbåge som inte stämmer, förväntade högst %d, hittade %d"
  
  #: cgraph.cc:4440
! #, gcc-internal-format, gfc-internal-format
  msgid "callback-carrying edge is pointing towards __builtin_unreachable, but its callback edge %s -> %s is not"
! msgstr "återanropsbärande bågen pekar mot __builtin_unreachable, men dess återanropsbåge %s → %s gör inte det"
  
  #: cgraph.cc:4447
  #, gcc-internal-format, gfc-internal-format
*************** msgid "%qE writing a terminating nul pas
*** 27719,27742 ****
  msgstr "%qE skriver en avslutande nolla efter slutet på destinationen"
  
  #: gimple-ssa-sprintf.cc:2855
! #, fuzzy, gcc-internal-format
! #| msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
  msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
  msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
  msgstr[0] "direktivet %<%.*s%> skrev %wu byte till en region av storlek %wu"
  msgstr[1] "direktivet %<%.*s%> skrev %wu byte till en region av storlek %wu"
  
  #: gimple-ssa-sprintf.cc:2862
! #, fuzzy, gcc-internal-format
! #| msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
  msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
  msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek %wu"
  msgstr[1] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek %wu"
  
  #: gimple-ssa-sprintf.cc:2869
! #, fuzzy, gcc-internal-format
! #| msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
  msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
  msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek %wu"
--- 27679,27699 ----
  msgstr "%qE skriver en avslutande nolla efter slutet på destinationen"
  
  #: gimple-ssa-sprintf.cc:2855
! #, gcc-internal-format
  msgid "%<%.*s%> directive writing %wu byte into a region of size %wu"
  msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size %wu"
  msgstr[0] "direktivet %<%.*s%> skrev %wu byte till en region av storlek %wu"
  msgstr[1] "direktivet %<%.*s%> skrev %wu byte till en region av storlek %wu"
  
  #: gimple-ssa-sprintf.cc:2862
! #, gcc-internal-format
  msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size %wu"
  msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek %wu"
  msgstr[1] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek %wu"
  
  #: gimple-ssa-sprintf.cc:2869
! #, gcc-internal-format
  msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size %wu"
  msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek %wu"
*************** msgid "%<%.*s%> directive writing %wu or
*** 27803,27826 ****
  msgstr "direktivet %<%.*s%> skrev %wu eller fler byte till en region av storlek %wu"
  
  #: gimple-ssa-sprintf.cc:2974
! #, fuzzy, gcc-internal-format
! #| msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
  msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
  msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
  msgstr[0] "direktivet %<%.*s%> skrev %wu byte till en region av storlek mellan %wu och %wu"
  msgstr[1] "direktivet %<%.*s%> skrev %wu byte till en region av storlek mellan %wu och %wu"
  
  #: gimple-ssa-sprintf.cc:2981
! #, fuzzy, gcc-internal-format
! #| msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
  msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
  msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek mellan %wu och %wu"
  msgstr[1] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek mellan %wu och %wu"
  
  #: gimple-ssa-sprintf.cc:2989
! #, fuzzy, gcc-internal-format
! #| msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
  msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
  msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek mellan %wu och %wu"
--- 27760,27780 ----
  msgstr "direktivet %<%.*s%> skrev %wu eller fler byte till en region av storlek %wu"
  
  #: gimple-ssa-sprintf.cc:2974
! #, gcc-internal-format
  msgid "%<%.*s%> directive writing %wu byte into a region of size between %wu and %wu"
  msgid_plural "%<%.*s%> directive writing %wu bytes into a region of size between %wu and %wu"
  msgstr[0] "direktivet %<%.*s%> skrev %wu byte till en region av storlek mellan %wu och %wu"
  msgstr[1] "direktivet %<%.*s%> skrev %wu byte till en region av storlek mellan %wu och %wu"
  
  #: gimple-ssa-sprintf.cc:2981
! #, gcc-internal-format
  msgid "%<%.*s%> directive output may be truncated writing %wu byte into a region of size between %wu and %wu"
  msgid_plural "%<%.*s%> directive output may be truncated writing %wu bytes into a region of size between %wu and %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek mellan %wu och %wu"
  msgstr[1] "utdata från direktivet %<%.*s%> kan ha huggits av när %wu byte skrevs till en region av storlek mellan %wu och %wu"
  
  #: gimple-ssa-sprintf.cc:2989
! #, gcc-internal-format
  msgid "%<%.*s%> directive output truncated writing %wu byte into a region of size between %wu and %wu"
  msgid_plural "%<%.*s%> directive output truncated writing %wu bytes into a region of size between %wu and %wu"
  msgstr[0] "utdata från direktivet %<%.*s%> avhugget när %wu byte skrevs till en region av storlek mellan %wu och %wu"
*************** msgid "referenced argument declared here
*** 27942,27949 ****
  msgstr "det refererade argumentet deklarerades här"
  
  #: gimple-ssa-sprintf.cc:3357
! #, fuzzy, gcc-internal-format
! #| msgid "assuming directive output of %wu byte"
  msgid "assuming directive output of %wu byte"
  msgid_plural "assuming directive output of %wu bytes"
  msgstr[0] "antar direktivutdata på %wu byte"
--- 27896,27902 ----
  msgstr "det refererade argumentet deklarerades här"
  
  #: gimple-ssa-sprintf.cc:3357
! #, gcc-internal-format
  msgid "assuming directive output of %wu byte"
  msgid_plural "assuming directive output of %wu bytes"
  msgstr[0] "antar direktivutdata på %wu byte"
*************** msgid "using the range [%E, %E] for dire
*** 27965,27972 ****
  msgstr "använder intervallet [%E, %E] som direktivargument"
  
  #: gimple-ssa-sprintf.cc:3390
! #, fuzzy, gcc-internal-format
! #| msgid "%qE output %wu byte into a destination of size %wu"
  msgid "%qE output %wu byte into a destination of size %wu"
  msgid_plural "%qE output %wu bytes into a destination of size %wu"
  msgstr[0] "%qE-utdata på %wu byte in i en destination med storlek %wu"
--- 27918,27924 ----
  msgstr "använder intervallet [%E, %E] som direktivargument"
  
  #: gimple-ssa-sprintf.cc:3390
! #, gcc-internal-format
  msgid "%qE output %wu byte into a destination of size %wu"
  msgid_plural "%qE output %wu bytes into a destination of size %wu"
  msgstr[0] "%qE-utdata på %wu byte in i en destination med storlek %wu"
*************** msgid "%qE output %wu or more bytes into
*** 27988,27995 ****
  msgstr "%qE-utdata på %wu eller fler byte in i en destination med storlek %wu"
  
  #: gimple-ssa-sprintf.cc:3416
! #, fuzzy, gcc-internal-format
! #| msgid "%qE output %wu byte"
  msgid "%qE output %wu byte"
  msgid_plural "%qE output %wu bytes"
  msgstr[0] "%qE-utdata %wu byte"
--- 27940,27946 ----
  msgstr "%qE-utdata på %wu eller fler byte in i en destination med storlek %wu"
  
  #: gimple-ssa-sprintf.cc:3416
! #, gcc-internal-format
  msgid "%qE output %wu byte"
  msgid_plural "%qE output %wu bytes"
  msgstr[0] "%qE-utdata %wu byte"
*************** msgid "%qE arguments %Z and maybe %Z ove
*** 28025,28040 ****
  msgstr "argumentet %qE %Z och kanske %Z överlappar destinationsobjektet %qE"
  
  #: gimple-ssa-sprintf.cc:3991
- #, fuzzy
- #| msgid "%qE argument %Z overlaps destination object %qE"
  msgid "%qE argument %Z overlaps destination object %qE"
  msgid_plural "%qE arguments %Z overlap destination object %qE"
  msgstr[0] "%qE:s argument %Z överlappar destinationsobjektet %qE"
  msgstr[1] "%qE:s argument %Z överlappar destinationsobjektet %qE"
  
  #: gimple-ssa-sprintf.cc:4002
- #, fuzzy
- #| msgid "%qE argument %Z may overlap destination object %qE"
  msgid "%qE argument %Z may overlap destination object %qE"
  msgid_plural "%qE arguments %Z may overlap destination object %qE"
  msgstr[0] "%qE:s argument %Z kan överlappa destinationsobjektet %qE"
--- 27976,27987 ----
*************** msgid "reading between %E and %E bytes f
*** 28551,28566 ****
  msgstr "läser mellan %E och %E byte från en region av storlek %E"
  
  #: gimple-ssa-warn-access.cc:1165
! #, fuzzy, gcc-internal-format
! #| msgid "%qD expecting %E byte in a region of size %E"
  msgid "%qD expecting %E byte in a region of size %E"
  msgid_plural "%qD expecting %E bytes in a region of size %E"
  msgstr[0] "%qD förväntar sig %E byte i en region av storlek %E"
  msgstr[1] "%qD förväntar sig %E byte i en region av storlek %E"
  
  #: gimple-ssa-warn-access.cc:1170
! #, fuzzy, gcc-internal-format
! #| msgid "expecting %E byte in a region of size %E"
  msgid "expecting %E byte in a region of size %E"
  msgid_plural "expecting %E bytes in a region of size %E"
  msgstr[0] "förväntar sig %E byte från en region av storlek %E"
--- 28498,28511 ----
  msgstr "läser mellan %E och %E byte från en region av storlek %E"
  
  #: gimple-ssa-warn-access.cc:1165
! #, gcc-internal-format
  msgid "%qD expecting %E byte in a region of size %E"
  msgid_plural "%qD expecting %E bytes in a region of size %E"
  msgstr[0] "%qD förväntar sig %E byte i en region av storlek %E"
  msgstr[1] "%qD förväntar sig %E byte i en region av storlek %E"
  
  #: gimple-ssa-warn-access.cc:1170
! #, gcc-internal-format
  msgid "expecting %E byte in a region of size %E"
  msgid_plural "expecting %E bytes in a region of size %E"
  msgstr[0] "förväntar sig %E byte från en region av storlek %E"
*************** msgid "%qD accessing %wu bytes at offset
*** 28944,28967 ****
  msgstr "%qD åtkomst av %wu byte på avstånden %s och %s överlappar %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1528
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing %wu byte at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
  msgid "%qD accessing %wu byte at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar mellan %wu och %wu byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar mellan %wu och %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1538
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing %wu byte at offsets %s and %s overlaps %wu or more bytes at offset %s"
  msgid "%qD accessing %wu byte at offsets %s and %s overlaps %wu or more bytes at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s overlaps %wu or more bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1551
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu byte at offset %s"
  msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu byte at offset %s"
  msgid_plural "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst mellan %wu och %wu byte på avstånden %s och %s överlappar %wu byte på avståndet %s"
--- 28889,28909 ----
  msgstr "%qD åtkomst av %wu byte på avstånden %s och %s överlappar %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1528
! #, gcc-internal-format
  msgid "%qD accessing %wu byte at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s overlaps between %wu and %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar mellan %wu och %wu byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar mellan %wu och %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1538
! #, gcc-internal-format
  msgid "%qD accessing %wu byte at offsets %s and %s overlaps %wu or more bytes at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s overlaps %wu or more bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1551
! #, gcc-internal-format
  msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu byte at offset %s"
  msgid_plural "%qD accessing between %wu and %wu bytes at offsets %s and %s overlaps %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst mellan %wu och %wu byte på avstånden %s och %s överlappar %wu byte på avståndet %s"
*************** msgid "%qD accessing between %wu and %wu
*** 28978,28985 ****
  msgstr "%qD åtkomst av mellan %wu och %wu byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1582
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu byte at offset %s"
  msgid "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu byte at offset %s"
  msgid_plural "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu eller fler byte på avstånden %s och %s överlappar %wu byte på avståndet %s"
--- 28920,28926 ----
  msgstr "%qD åtkomst av mellan %wu och %wu byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1582
! #, gcc-internal-format
  msgid "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu byte at offset %s"
  msgid_plural "%qD accessing %wu or more bytes at offsets %s and %s overlaps %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu eller fler byte på avstånden %s och %s överlappar %wu byte på avståndet %s"
*************** msgid "%qD accessing %wu or more bytes a
*** 28996,29043 ****
  msgstr "%qD åtkomst av %wu eller fler byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1625
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing %wu byte may overlap %wu byte"
  msgid "%qD accessing %wu byte may overlap %wu byte"
  msgid_plural "%qD accessing %wu bytes may overlap %wu byte"
  msgstr[0] "%qD åtkomst av %wu byte kan överlappa %wu byte"
  msgstr[1] "%qD åtkomst av %wu byte kan överlappa %wu byte"
  
  #: gimple-ssa-warn-restrict.cc:1632
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing %wu byte at offsets %s and %s may overlap %wu byte at offset %s"
  msgid "%qD accessing %wu byte at offsets %s and %s may overlap %wu byte at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s may overlap %wu byte at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa %wu byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1643
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing %wu byte may overlap up to %wu bytes"
  msgid "%qD accessing %wu byte may overlap up to %wu bytes"
  msgid_plural "%qD accessing %wu bytes may overlap up to %wu bytes"
  msgstr[0] "%qD åtkomst av %wu byte kan överlappa upp till %wu byte"
  msgstr[1] "%qD åtkomst av %wu byte kan överlappa upp till %wu byte"
  
  #: gimple-ssa-warn-restrict.cc:1650
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing %wu byte at offsets %s and %s may overlap up to %wu bytes at offset %s"
  msgid "%qD accessing %wu byte at offsets %s and %s may overlap up to %wu bytes at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s may overlap up to %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa upp till %wu byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa upp till %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1663
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing between %wu and %wu bytes may overlap %wu byte"
  msgid "%qD accessing between %wu and %wu bytes may overlap %wu byte"
  msgid_plural "%qD accessing between %wu and %wu bytes may overlap up to %wu bytes"
  msgstr[0] "%qD åtkomst mellan %wu och %wu byte kan överlappa %wu byte"
  msgstr[1] "%qD åtkomst mellan %wu och %wu byte kan överlappa %wu byte"
  
  #: gimple-ssa-warn-restrict.cc:1670
! #, fuzzy, gcc-internal-format
! #| msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap %wu byte at offset %s"
  msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap %wu byte at offset %s"
  msgid_plural "%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap up to %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst mellan %wu och %wu byte på avstånden %s och %s kan överlappa %wu byte på avståndet %s"
--- 28937,28978 ----
  msgstr "%qD åtkomst av %wu eller fler byte på avstånden %s och %s överlappar %wu eller fler byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1625
! #, gcc-internal-format
  msgid "%qD accessing %wu byte may overlap %wu byte"
  msgid_plural "%qD accessing %wu bytes may overlap %wu byte"
  msgstr[0] "%qD åtkomst av %wu byte kan överlappa %wu byte"
  msgstr[1] "%qD åtkomst av %wu byte kan överlappa %wu byte"
  
  #: gimple-ssa-warn-restrict.cc:1632
! #, gcc-internal-format
  msgid "%qD accessing %wu byte at offsets %s and %s may overlap %wu byte at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s may overlap %wu byte at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa %wu byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1643
! #, gcc-internal-format
  msgid "%qD accessing %wu byte may overlap up to %wu bytes"
  msgid_plural "%qD accessing %wu bytes may overlap up to %wu bytes"
  msgstr[0] "%qD åtkomst av %wu byte kan överlappa upp till %wu byte"
  msgstr[1] "%qD åtkomst av %wu byte kan överlappa upp till %wu byte"
  
  #: gimple-ssa-warn-restrict.cc:1650
! #, gcc-internal-format
  msgid "%qD accessing %wu byte at offsets %s and %s may overlap up to %wu bytes at offset %s"
  msgid_plural "%qD accessing %wu bytes at offsets %s and %s may overlap up to %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa upp till %wu byte på avståndet %s"
  msgstr[1] "%qD åtkomst av %wu byte på avstånden %s och %s kan överlappa upp till %wu byte på avståndet %s"
  
  #: gimple-ssa-warn-restrict.cc:1663
! #, gcc-internal-format
  msgid "%qD accessing between %wu and %wu bytes may overlap %wu byte"
  msgid_plural "%qD accessing between %wu and %wu bytes may overlap up to %wu bytes"
  msgstr[0] "%qD åtkomst mellan %wu och %wu byte kan överlappa %wu byte"
  msgstr[1] "%qD åtkomst mellan %wu och %wu byte kan överlappa %wu byte"
  
  #: gimple-ssa-warn-restrict.cc:1670
! #, gcc-internal-format
  msgid "%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap %wu byte at offset %s"
  msgid_plural "%qD accessing between %wu and %wu bytes at offsets %s and %s may overlap up to %wu bytes at offset %s"
  msgstr[0] "%qD åtkomst mellan %wu och %wu byte på avstånden %s och %s kan överlappa %wu byte på avståndet %s"
*************** msgstr "avbildningsfältet %qE med varia
*** 29403,29409 ****
  #: gimplify.cc:13635
  #, gcc-internal-format
  msgid "user-defined mapper that uses a %<map%> clause with %<iterator%>"
! msgstr ""
  
  #: gimplify.cc:13685 c-family/c-omp.cc:4459 c-family/c-omp.cc:4559
  #, fuzzy, gcc-internal-format
--- 29338,29344 ----
  #: gimplify.cc:13635
  #, gcc-internal-format
  msgid "user-defined mapper that uses a %<map%> clause with %<iterator%>"
! msgstr "användardefinierad avbildare som använder en %<map%>-klausul med %<iterator%>"
  
  #: gimplify.cc:13685 c-family/c-omp.cc:4459 c-family/c-omp.cc:4559
  #, fuzzy, gcc-internal-format
*************** msgstr "statisk lagringskonflikt - flera
*** 40162,40168 ****
  #: config/aarch64/aarch64-json-tunings-parser.cc:134
  #, gcc-internal-format
  msgid "JSON tuning overrides an unspecified structure in the base tuning; fields not provided in JSON will default to 0"
! msgstr ""
  
  #: config/aarch64/aarch64-json-tunings-parser.cc:152
  #, fuzzy, gcc-internal-format
--- 40097,40103 ----
  #: config/aarch64/aarch64-json-tunings-parser.cc:134
  #, gcc-internal-format
  msgid "JSON tuning overrides an unspecified structure in the base tuning; fields not provided in JSON will default to 0"
! msgstr "JSON-trimning åsidosätter en ospecificerad post i bastrimningen; fälten som inte finns i JSON kommer få standardvärdet 0"
  
  #: config/aarch64/aarch64-json-tunings-parser.cc:152
  #, fuzzy, gcc-internal-format
*************** msgstr "%qT är inte en objekttyp"
*** 40173,40179 ****
  #: config/aarch64/aarch64-json-tunings-parser.cc:155
  #, gcc-internal-format
  msgid "...but got an array instead"
! msgstr ""
  
  #: config/aarch64/aarch64-json-tunings-parser.cc:158
  #, fuzzy, gcc-internal-format
--- 40108,40114 ----
  #: config/aarch64/aarch64-json-tunings-parser.cc:155
  #, gcc-internal-format
  msgid "...but got an array instead"
! msgstr "… men fick en vektor istället"
  
  #: config/aarch64/aarch64-json-tunings-parser.cc:158
  #, fuzzy, gcc-internal-format
*************** msgstr "%q#T använt där ett flyttalsv�
*** 40190,40196 ****
  #: config/aarch64/aarch64-json-tunings-parser.cc:164
  #, gcc-internal-format
  msgid "...but got a string instead"
! msgstr ""
  
  #: config/aarch64/aarch64-json-tunings-parser.cc:167
  #: config/aarch64/aarch64-json-tunings-parser.cc:170
--- 40125,40131 ----
  #: config/aarch64/aarch64-json-tunings-parser.cc:164
  #, gcc-internal-format
  msgid "...but got a string instead"
! msgstr "… men fick en sträng istället"
  
  #: config/aarch64/aarch64-json-tunings-parser.cc:167
  #: config/aarch64/aarch64-json-tunings-parser.cc:170
*************** msgstr "kunde int inline:a anropet av %<
*** 42578,42584 ****
  #: config/bpf/core-builtins.cc:1796
  #, gcc-internal-format
  msgid "Access through packed struct may not be possible to patch for CO-RE"
! msgstr ""
  
  #: config/c6x/c6x.cc:245
  #, gcc-internal-format
--- 42513,42519 ----
  #: config/bpf/core-builtins.cc:1796
  #, gcc-internal-format
  msgid "Access through packed struct may not be possible to patch for CO-RE"
! msgstr "Åtkomst via en packad post är kanske inte möjlig att uppdatera för CO-RE"
  
  #: config/c6x/c6x.cc:245
  #, gcc-internal-format
*************** msgstr "felaktig typ %qT av %<std::range
*** 69487,69498 ****
  #: cp/reflect.cc:965
  #, gcc-internal-format
  msgid "%qD should throw %qs; %<what()%>: %qs"
! msgstr ""
  
  #: cp/reflect.cc:967
  #, gcc-internal-format
  msgid "exceptions are disabled, treating as non-constant"
! msgstr ""
  
  #: cp/reflect.cc:977
  #, fuzzy, gcc-internal-format
--- 69422,69433 ----
  #: cp/reflect.cc:965
  #, gcc-internal-format
  msgid "%qD should throw %qs; %<what()%>: %qs"
! msgstr "%qD skall kasta %qs; %<what()%>: %qs"
  
  #: cp/reflect.cc:967
  #, gcc-internal-format
  msgid "exceptions are disabled, treating as non-constant"
! msgstr "undantag är avaktiverade, hanteras som en icke-konstant"
  
  #: cp/reflect.cc:977
  #, fuzzy, gcc-internal-format
*************** msgstr "Postkonstrueraren vid %L har avs
*** 88420,88426 ****
  #: fortran/trans-array.cc:4023
  #, gcc-internal-format
  msgid "Bounds checking of the elemental index at %L will cause two calls to %qs, which is not declared to be PURE or is not implicitly pure."
! msgstr ""
  
  #. Problems occur when we get something like
  #. integer :: a(lots) = (/(i, i=1, lots)/)
--- 88355,88361 ----
  #: fortran/trans-array.cc:4023
  #, gcc-internal-format
  msgid "Bounds checking of the elemental index at %L will cause two calls to %qs, which is not declared to be PURE or is not implicitly pure."
! msgstr "Kontroll av gränser för elementindex vid %L kommer orsaka två anrop av %qs, vilken inte är declarerad PURE och inte är implicit ren."
  
  #. Problems occur when we get something like
  #. integer :: a(lots) = (/(i, i=1, lots)/)
diff -Nrcpad gcc-16-20260405/gcc/po/zh_CN.po gcc-16-20260412/gcc/po/zh_CN.po
*** gcc-16-20260405/gcc/po/zh_CN.po	Sun Apr  5 22:32:08 2026
--- gcc-16-20260412/gcc/po/zh_CN.po	Sun Apr 12 22:32:08 2026
***************
*** 1,12 ****
  # Simplified Chinese translation for gcc.
! # Copyright (C) 2005 Free Software Foundation, Inc.
  # This file is distributed under the same license as the gcc package.
  # Meng Jie <zuxy.meng@gmail.com>, 2005-2014.
  # Jeff Bai <jeffbai@aosc.xyz>, 2015.
  # Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2015, 2016.
  # Boyuan Yang <073plan@gmail.com>, 2019, 2023-2025.
  # Zixing Zhou <zixingzhou@foxmail.com>, 2023.
! # Zhanhaoxiang Zhang <zzhx2006@outlook.com>, 2024.
  #
  # Fellow translatiors:
  # Many of the fuzzy strings are caused by an addition of a period (".")
--- 1,12 ----
  # Simplified Chinese translation for gcc.
! # Copyright (C) 2026 Free Software Foundation, Inc.
  # This file is distributed under the same license as the gcc package.
  # Meng Jie <zuxy.meng@gmail.com>, 2005-2014.
  # Jeff Bai <jeffbai@aosc.xyz>, 2015.
  # Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2015, 2016.
  # Boyuan Yang <073plan@gmail.com>, 2019, 2023-2025.
  # Zixing Zhou <zixingzhou@foxmail.com>, 2023.
! # Zhanhaoxiang Zhang <zzhx2006@outlook.com>, 2024, 2026.
  #
  # Fellow translatiors:
  # Many of the fuzzy strings are caused by an addition of a period (".")
***************
*** 33,43 ****
  #
  msgid ""
  msgstr ""
! "Project-Id-Version: gcc 15.1.0\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-03-26 15:06+0000\n"
! "PO-Revision-Date: 2025-05-15 13:53-0400\n"
! "Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
  "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
  "Language: zh_CN\n"
  "MIME-Version: 1.0\n"
--- 33,43 ----
  #
  msgid ""
  msgstr ""
! "Project-Id-Version: gcc-16.1-b20260329\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-03-26 15:06+0000\n"
! "PO-Revision-Date: 2026-04-08 19:22+0800\n"
! "Last-Translator: Zhanhaoxiang Zhang <zzhx2006@outlook.com>\n"
  "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
  "Language: zh_CN\n"
  "MIME-Version: 1.0\n"
*************** msgstr ""
*** 45,51 ****
  "Content-Transfer-Encoding: 8bit\n"
  "Plural-Forms: nplurals=1; plural=0;\n"
  "X-Bugs: Report translation errors to the Language-Team address.\n"
! "X-Generator: Poedit 3.6\n"
  
  #: cif-code.def:39
  msgid "function not considered for inlining"
--- 45,51 ----
  "Content-Transfer-Encoding: 8bit\n"
  "Plural-Forms: nplurals=1; plural=0;\n"
  "X-Bugs: Report translation errors to the Language-Team address.\n"
! "X-Generator: Poedit 3.8\n"
  
  #: cif-code.def:39
  msgid "function not considered for inlining"
*************** msgid "-fconst-string-class=<name>\tUse
*** 18014,18079 ****
  msgstr "-fconst-string-class=<名字>\t使用<名字>作为常量字符串类的名称。"
  
  #: c-family/c.opt:1885
! #, fuzzy, no-c-format
  msgid "-fconstexpr-depth=<number>\tSpecify maximum constexpr recursion depth."
! msgstr "-ftemplate-depth=<N>\t指定模板实例化的最大深度"
  
  #: c-family/c.opt:1889
! #, fuzzy, no-c-format
  msgid "-fconstexpr-cache-depth=<number>\tSpecify maximum constexpr recursion cache depth."
! msgstr "-ftemplate-depth=<N>\t指定模板实例化的最大深度"
  
  #: c-family/c.opt:1893
! #, fuzzy, no-c-format
! #| msgid "lambda-expression in a constant expression"
  msgid "Allow IEC559 floating point exceptions in constant expressions."
! msgstr "常量表达式中的 Lambda 表达式"
  
  #: c-family/c.opt:1897
! #, fuzzy, no-c-format
  msgid "-fconstexpr-loop-limit=<number>\tSpecify maximum constexpr loop iteration count."
! msgstr "-ftemplate-depth=<N>\t指定模板实例化的最大深度"
  
  #: c-family/c.opt:1901
! #, fuzzy, no-c-format
  msgid "-fconstexpr-ops-limit=<number>\tSpecify maximum number of constexpr operations during a single constexpr evaluation."
! msgstr "-ftemplate-depth=<N>\t指定模板实例化的最大深度"
  
  #: c-family/c.opt:1905
! #, fuzzy, no-c-format
! #| msgid "Warn about features not present in traditional C"
  msgid "Enable features proposed for C++26 Contracts."
! msgstr "使用了传统 C 不支持的特性时给出警告"
  
  #: c-family/c.opt:1926
  #, no-c-format
  msgid "-fcontract-evaluation-semantic=[ignore|observe|enforce|quick_enforce]\tSelect the contract evaluation semantic (defaults to enforce)."
! msgstr ""
  
  #: c-family/c.opt:1930
  #, no-c-format
  msgid "-fcontracts-conservative-ipa\tDo not allow certain optimisations between functions in contract assertions."
! msgstr ""
  
  #: c-family/c.opt:1935
  #, no-c-format
  msgid "-fcontract-checks-outlined\tBuild contract checks using outlined functions."
! msgstr ""
  
  #: c-family/c.opt:1939
  #, no-c-format
  msgid "-fcontract-disable-optimized-checks\tDisable optimisation of contract checks."
! msgstr ""
  
  #: c-family/c.opt:1955
  #, no-c-format
  msgid "-fcontracts-client-check=[none|pre|all] Select which contracts will be checked on the client side for non virtual functions."
! msgstr ""
  
  #: c-family/c.opt:1968
  #, no-c-format
  msgid "-fcontracts-definition-check=[on|off]\tEnable or disable contract checks on the definition side for all functions (default on)."
! msgstr ""
  
  #: c-family/c.opt:1972
  #, no-c-format
--- 18014,18077 ----
  msgstr "-fconst-string-class=<名字>\t使用<名字>作为常量字符串类的名称。"
  
  #: c-family/c.opt:1885
! #, no-c-format
  msgid "-fconstexpr-depth=<number>\tSpecify maximum constexpr recursion depth."
! msgstr "-fconstexpr-depth=<数字>\t指定最大 constexpr 递归深度。"
  
  #: c-family/c.opt:1889
! #, no-c-format
  msgid "-fconstexpr-cache-depth=<number>\tSpecify maximum constexpr recursion cache depth."
! msgstr "-fconstexpr-cache-depth=<数字>\t指定最大 constexpr 递归缓存深度。"
  
  #: c-family/c.opt:1893
! #, no-c-format
  msgid "Allow IEC559 floating point exceptions in constant expressions."
! msgstr "在常量表达式中允许 IEC559 浮点异常。"
  
  #: c-family/c.opt:1897
! #, no-c-format
  msgid "-fconstexpr-loop-limit=<number>\tSpecify maximum constexpr loop iteration count."
! msgstr "-fconstexpr-loop-limit=<数字>\t指定最大 constexpr 循环迭代次数。"
  
  #: c-family/c.opt:1901
! #, no-c-format
  msgid "-fconstexpr-ops-limit=<number>\tSpecify maximum number of constexpr operations during a single constexpr evaluation."
! msgstr "-fconstexpr-ops-limit=<数字>\t指定单次 constexpr 求值期间的最大 constexpr 操作数。"
  
  #: c-family/c.opt:1905
! #, no-c-format
  msgid "Enable features proposed for C++26 Contracts."
! msgstr "启用 C++26 契约特性。"
  
  #: c-family/c.opt:1926
  #, no-c-format
  msgid "-fcontract-evaluation-semantic=[ignore|observe|enforce|quick_enforce]\tSelect the contract evaluation semantic (defaults to enforce)."
! msgstr "-fcontract-evaluation-semantic=[ignore|observe|enforce|quick_enforce]\t选择契约求值语义（默认值为 enforce）。"
  
  #: c-family/c.opt:1930
  #, no-c-format
  msgid "-fcontracts-conservative-ipa\tDo not allow certain optimisations between functions in contract assertions."
! msgstr "-fcontracts-conservative-ipa\t不允许在契约断言中的函数之间进行某些优化。"
  
  #: c-family/c.opt:1935
  #, no-c-format
  msgid "-fcontract-checks-outlined\tBuild contract checks using outlined functions."
! msgstr "-fcontract-checks-outlined\t使用外联函数构建契约检查。"
  
  #: c-family/c.opt:1939
  #, no-c-format
  msgid "-fcontract-disable-optimized-checks\tDisable optimisation of contract checks."
! msgstr "-fcontract-disable-optimized-checks\t禁用对契约检查的优化。"
  
  #: c-family/c.opt:1955
  #, no-c-format
  msgid "-fcontracts-client-check=[none|pre|all] Select which contracts will be checked on the client side for non virtual functions."
! msgstr "-fcontracts-client-check=[none|pre|all]\t选择对于非虚函数，哪些契约将在客户端进行检查。"
  
  #: c-family/c.opt:1968
  #, no-c-format
  msgid "-fcontracts-definition-check=[on|off]\tEnable or disable contract checks on the definition side for all functions (default on)."
! msgstr "-fcontracts-definition-check=[on|off]\t为所有函数启用或禁用定义侧的契约检查（默认值为 on）。"
  
  #: c-family/c.opt:1972
  #, no-c-format
*************** msgstr "启用 C++ 头文件模块（实
*** 18251,18315 ****
  #: c-family/c.opt:2146
  #, no-c-format
  msgid "Member functions defined within their class are inline in module purview."
! msgstr ""
  
  #: c-family/c.opt:2150
  #, no-c-format
  msgid "Only emit Compiled Module Interface."
! msgstr ""
  
  #: c-family/c.opt:2154
  #, no-c-format
  msgid "Mapper for module to CMI files."
! msgstr ""
  
  #: c-family/c.opt:2158
! #, fuzzy, no-c-format
! #| msgid "Enable dead store elimination"
  msgid "Enable lazy module importing."
! msgstr "删除死存储"
  
  #: c-family/c.opt:2166
! #, fuzzy, no-c-format
! #| msgid "Warn about implicit function declarations"
  msgid "Warn about macros that have conflicting header units definitions."
! msgstr "对隐式函数声明给出警告"
  
  #: c-family/c.opt:2170
! #, fuzzy, no-c-format
! #| msgid "return makes pointer from integer without a cast"
  msgid "Warn if pointers of distinct types are compared without a cast."
! msgstr "返回时将整数赋给指针，未作类型转换"
  
  #: c-family/c.opt:2174
  #, no-c-format
  msgid "Note #include directives translated to import declarations."
! msgstr ""
  
  #: c-family/c.opt:2178
  #, no-c-format
  msgid "Note #include directives not translated to import declarations, and not known to be textual."
! msgstr ""
  
  #: c-family/c.opt:2182
  #, no-c-format
  msgid "Note a #include translation of a specific header."
! msgstr ""
  
  #: c-family/c.opt:2186
  #, no-c-format
  msgid "Note Compiled Module Interface pathnames."
! msgstr ""
  
  #: c-family/c.opt:2190
  #, no-c-format
  msgid "Note Compiled Module Interface pathname of a specific module or header-unit."
! msgstr ""
  
  #: c-family/c.opt:2194
  #, no-c-format
  msgid "fmax-include-depth=<number> Set the maximum depth of the nested #include."
! msgstr ""
  
  #: c-family/c.opt:2198
  #, no-c-format
--- 18249,18310 ----
  #: c-family/c.opt:2146
  #, no-c-format
  msgid "Member functions defined within their class are inline in module purview."
! msgstr "在类中定义的成员函数在模块作用域中是内联的。"
  
  #: c-family/c.opt:2150
  #, no-c-format
  msgid "Only emit Compiled Module Interface."
! msgstr "仅发出已编译模块接口(CMI)。"
  
  #: c-family/c.opt:2154
  #, no-c-format
  msgid "Mapper for module to CMI files."
! msgstr "模块到 CMI 文件的映射器(Mapper)。"
  
  #: c-family/c.opt:2158
! #, no-c-format
  msgid "Enable lazy module importing."
! msgstr "启用惰性模块导入。"
  
  #: c-family/c.opt:2166
! #, no-c-format
  msgid "Warn about macros that have conflicting header units definitions."
! msgstr "警告具有冲突头文件单元定义的宏。"
  
  #: c-family/c.opt:2170
! #, no-c-format
  msgid "Warn if pointers of distinct types are compared without a cast."
! msgstr "警告不同类型的指针在没有强制转换的情况下进行比较。"
  
  #: c-family/c.opt:2174
  #, no-c-format
  msgid "Note #include directives translated to import declarations."
! msgstr "注意 #include 指令已转换为 import 声明。"
  
  #: c-family/c.opt:2178
  #, no-c-format
  msgid "Note #include directives not translated to import declarations, and not known to be textual."
! msgstr "注意 #include 指令未转换为 import 声明，且尚不已知其为文本形式的。"
  
  #: c-family/c.opt:2182
  #, no-c-format
  msgid "Note a #include translation of a specific header."
! msgstr "注意特定头文件的 #include 转换。"
  
  #: c-family/c.opt:2186
  #, no-c-format
  msgid "Note Compiled Module Interface pathnames."
! msgstr "注意已编译模块接口(CMI)路径名。"
  
  #: c-family/c.opt:2190
  #, no-c-format
  msgid "Note Compiled Module Interface pathname of a specific module or header-unit."
! msgstr "注意特定模块或头文件单元的已编译模块接口(CMI)路径名。"
  
  #: c-family/c.opt:2194
  #, no-c-format
  msgid "fmax-include-depth=<number> Set the maximum depth of the nested #include."
! msgstr "fmax-include-depth=<数字> 设置嵌套 #include 的最大深度。"
  
  #: c-family/c.opt:2198
  #, no-c-format
*************** msgstr "使用微软扩展时不给出�
*** 18319,18325 ****
  #: c-family/c.opt:2217
  #, no-c-format
  msgid "Implement resolution of DR 150 for matching of template template arguments."
! msgstr ""
  
  #: c-family/c.opt:2221
  #, fuzzy, no-c-format
--- 18314,18320 ----
  #: c-family/c.opt:2217
  #, no-c-format
  msgid "Implement resolution of DR 150 for matching of template template arguments."
! msgstr "实现 DR 150 的解决方案，用于匹配模板模板实参。"
  
  #: c-family/c.opt:2221
  #, fuzzy, no-c-format
*************** msgid "Enable lifetime extension of rang
*** 18466,18475 ****
  msgstr ""
  
  #: c-family/c.opt:2362
! #, fuzzy, no-c-format
! #| msgid "Enable experimental Fortran 202y features."
  msgid "Enable experimental C++26 Reflection."
! msgstr "启用实验性的 Fortuan 202y 特性。"
  
  #: c-family/c.opt:2366
  #, fuzzy, no-c-format
--- 18461,18469 ----
  msgstr ""
  
  #: c-family/c.opt:2362
! #, no-c-format
  msgid "Enable experimental C++26 Reflection."
! msgstr "启用实验性的C++26 Reflection特性。"
  
  #: c-family/c.opt:2366
  #, fuzzy, no-c-format
*************** msgid "Conform to the ISO 2017 C++ stand
*** 18740,18761 ****
  msgstr "遵循 ISO 2017 C++ 标准。"
  
  #: c-family/c.opt:2657
! #, fuzzy, no-c-format
! #| msgid "Deprecated in favor of -std=c++11."
  msgid "Deprecated in favor of -std=c++20."
! msgstr "已弃用，请改用 -std=c++11。"
  
  #: c-family/c.opt:2661
! #, fuzzy, no-c-format
! #| msgid "Conform to the ISO 2011 C++ standard."
  msgid "Conform to the ISO 2020 C++ standard."
! msgstr "遵循 ISO 2011 C++ 标准。"
  
  #: c-family/c.opt:2665
! #, fuzzy, no-c-format
! #| msgid "Deprecated in favor of -std=c23."
  msgid "Deprecated in favor of -std=c++23."
! msgstr "已弃用，请改用 -std=c23。"
  
  #: c-family/c.opt:2669
  #, no-c-format
--- 18734,18752 ----
  msgstr "遵循 ISO 2017 C++ 标准。"
  
  #: c-family/c.opt:2657
! #, no-c-format
  msgid "Deprecated in favor of -std=c++20."
! msgstr "已弃用，请改用 -std=c++20。"
  
  #: c-family/c.opt:2661
! #, no-c-format
  msgid "Conform to the ISO 2020 C++ standard."
! msgstr "遵循 ISO 2020 C++ 标准。"
  
  #: c-family/c.opt:2665
! #, no-c-format
  msgid "Deprecated in favor of -std=c++23."
! msgstr "已弃用，请改用 -std=c++23。"
  
  #: c-family/c.opt:2669
  #, no-c-format
*************** msgid "Conform to the ISO 2017 C++ stand
*** 18849,18882 ****
  msgstr "遵循 ISO 2017 C++ 标准，也支持 GNU 扩展。"
  
  #: c-family/c.opt:2759
! #, fuzzy, no-c-format
! #| msgid "Deprecated in favor of -std=gnu++11."
  msgid "Deprecated in favor of -std=gnu++20."
! msgstr "已弃用，请改用 -std=gnu++11。"
  
  #: c-family/c.opt:2763
! #, fuzzy, no-c-format
! #| msgid "Conform to the ISO 2011 C++ standard with GNU extensions."
  msgid "Conform to the ISO 2020 C++ standard with GNU extensions."
! msgstr "遵循 ISO 2011 C++ 标准，也支持 GNU 扩展。"
  
  #: c-family/c.opt:2767
! #, fuzzy, no-c-format
! #| msgid "Deprecated in favor of -std=gnu23."
  msgid "Deprecated in favor of -std=gnu++23."
! msgstr "已弃用，请改用 -std=gnu23。"
  
  #: c-family/c.opt:2771
! #, fuzzy, no-c-format
! #| msgid "Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support)."
  msgid "Conform to the ISO 2023 C++ standard with GNU extensions (published in 2024; experimental and incomplete support)."
! msgstr "遵循 ISO 2020 C++ 标准和 GNU 扩展（试验性质的不完全支持）"
  
  #: c-family/c.opt:2775 c-family/c.opt:2779
! #, fuzzy, no-c-format
! #| msgid "Conform to the ISO 201z(7?) C++ draft standard with GNU extensions (experimental and incomplete support)"
  msgid "Conform to the ISO 2026 C++ draft standard with GNU extensions (experimental and incomplete support)."
! msgstr "遵循 ISO 201z(7?) C++ 标准草案和 GNU 扩展(试验性质的不完全支持)"
  
  #: c-family/c.opt:2783
  #, no-c-format
--- 18840,18868 ----
  msgstr "遵循 ISO 2017 C++ 标准，也支持 GNU 扩展。"
  
  #: c-family/c.opt:2759
! #, no-c-format
  msgid "Deprecated in favor of -std=gnu++20."
! msgstr "已弃用，请改用 -std=gnu++20。"
  
  #: c-family/c.opt:2763
! #, no-c-format
  msgid "Conform to the ISO 2020 C++ standard with GNU extensions."
! msgstr "遵循 ISO 2020 C++ 标准，也支持 GNU 扩展。"
  
  #: c-family/c.opt:2767
! #, no-c-format
  msgid "Deprecated in favor of -std=gnu++23."
! msgstr "已弃用，请改用 -std=gnu++23。"
  
  #: c-family/c.opt:2771
! #, no-c-format
  msgid "Conform to the ISO 2023 C++ standard with GNU extensions (published in 2024; experimental and incomplete support)."
! msgstr "遵循 ISO 2023 C++ 标准和 GNU 扩展（发布于 2024 年；试验性质的不完全支持）。"
  
  #: c-family/c.opt:2775 c-family/c.opt:2779
! #, no-c-format
  msgid "Conform to the ISO 2026 C++ draft standard with GNU extensions (experimental and incomplete support)."
! msgstr "遵循 ISO 2026 C++ 标准草案和 GNU 扩展(试验性质的不完全支持)。"
  
  #: c-family/c.opt:2783
  #, no-c-format
*************** msgid "Conform to the ISO 2017 C standar
*** 18894,18903 ****
  msgstr "遵循 ISO 2017 C 标准（发布于2018年），也支持 GNU 扩展。"
  
  #: c-family/c.opt:2799
! #, fuzzy, no-c-format
! #| msgid "Conform to the ISO 2017 C standard (published in 2018) with GNU extensions."
  msgid "Conform to the ISO 2023 C standard (published in 2024) with GNU extensions."
! msgstr "遵循 ISO 2017 C 标准（发布于2018年），也支持 GNU 扩展。"
  
  #: c-family/c.opt:2803
  #, no-c-format
--- 18880,18888 ----
  msgstr "遵循 ISO 2017 C 标准（发布于2018年），也支持 GNU 扩展。"
  
  #: c-family/c.opt:2799
! #, no-c-format
  msgid "Conform to the ISO 2023 C standard (published in 2024) with GNU extensions."
! msgstr "遵循 ISO 2023 C 标准（发布于 2024 年），也支持 GNU 扩展。"
  
  #: c-family/c.opt:2803
  #, no-c-format
*************** msgid "Deprecated in favor of -std=gnu23
*** 18905,18914 ****
  msgstr "已弃用，请改用 -std=gnu23。"
  
  #: c-family/c.opt:2807
! #, fuzzy, no-c-format
! #| msgid "Conform to the ISO 2020 C++ standard with GNU extensions (experimental and incomplete support)."
  msgid "Conform to the ISO 202Y C standard draft with GNU extensions (experimental and incomplete support)."
! msgstr "遵循 ISO 2020 C++ 标准和 GNU 扩展（试验性质的不完全支持）"
  
  #: c-family/c.opt:2811 c-family/c.opt:2815
  #, no-c-format
--- 18890,18898 ----
  msgstr "已弃用，请改用 -std=gnu23。"
  
  #: c-family/c.opt:2807
! #, no-c-format
  msgid "Conform to the ISO 202Y C standard draft with GNU extensions (experimental and incomplete support)."
! msgstr "遵循 ISO 202Y C++ 标准和 GNU 扩展（试验性质的不完全支持）"
  
  #: c-family/c.opt:2811 c-family/c.opt:2815
  #, no-c-format
*************** msgid "short read while reading export d
*** 23566,23575 ****
  msgstr "读取请求时没有读入足够的数据：%s"
  
  #: c/c-objc-common.cc:237
- #, fuzzy
- #| msgid "{anonymous}"
  msgid "{erroneous}"
! msgstr "{匿名}"
  
  #: c/c-objc-common.cc:282
  msgid "aka"
--- 23550,23557 ----
  msgstr "读取请求时没有读入足够的数据：%s"
  
  #: c/c-objc-common.cc:237
  msgid "{erroneous}"
! msgstr "{错误}"
  
  #: c/c-objc-common.cc:282
  msgid "aka"
*************** msgid "expected %<}%>"
*** 23757,23766 ****
  msgstr "需要 %<}%>"
  
  #: c/c-parser.cc:24164 cp/parser.cc:47786
! #, fuzzy, gcc-internal-format
! #| msgid "expected %<delete%>"
  msgid "expected %<else%>"
! msgstr "需要%<delete%>"
  
  #: c/c-parser.cc:26083 c/c-parser.cc:26072 cp/parser.cc:50747
  #, gcc-internal-format
--- 23739,23747 ----
  msgstr "需要 %<}%>"
  
  #: c/c-parser.cc:24164 cp/parser.cc:47786
! #, gcc-internal-format
  msgid "expected %<else%>"
! msgstr "需要 %<else%>"
  
  #: c/c-parser.cc:26083 c/c-parser.cc:26072 cp/parser.cc:50747
  #, gcc-internal-format
*************** msgstr "需要%<#pragma omp section%>或
*** 23769,23775 ****
  
  #: c/c-parser.cc:30216 cp/parser.cc:56058
  msgid "<message unknown at compile time>"
! msgstr ""
  
  #: c/c-typeck.cc:10458
  msgid "(anonymous)"
--- 23750,23756 ----
  
  #: c/c-parser.cc:30216 cp/parser.cc:56058
  msgid "<message unknown at compile time>"
! msgstr "<编译时消息未知>"
  
  #: c/c-typeck.cc:10458
  msgid "(anonymous)"
*************** msgstr "需要%<<%>"
*** 23782,23810 ****
  
  #: c/gimple-parser.cc:2547 c/gimple-parser.cc:2574 c/gimple-parser.cc:2413
  #: c/gimple-parser.cc:2450
! #, fuzzy, gcc-internal-format
! #| msgid "expected channel"
  msgid "expected label"
! msgstr "需要通道"
  
  #: cobol/gcobolspec.cc:549
! #, fuzzy, c-format
! #| msgid "Driving:"
  msgid "Driving: ("
! msgstr "驱动："
  
  #: cp/call.cc:4281
! #, fuzzy, c-format
! #| msgid "candidate is:"
! #| msgid_plural "candidates are:"
  msgid "candidate %i:"
! msgstr "备选是:"
  
  #: cp/call.cc:8590
- #, fuzzy
- #| msgid "Enable user-defined instructions"
  msgid "  after user-defined conversion:"
! msgstr "启用用户自定义指令"
  
  #: cp/call.cc:8800 cp/pt.cc:27736
  msgid "candidate is:"
--- 23763,23785 ----
  
  #: c/gimple-parser.cc:2547 c/gimple-parser.cc:2574 c/gimple-parser.cc:2413
  #: c/gimple-parser.cc:2450
! #, gcc-internal-format
  msgid "expected label"
! msgstr "需要标签"
  
  #: cobol/gcobolspec.cc:549
! #, c-format
  msgid "Driving: ("
! msgstr "驱动：（"
  
  #: cp/call.cc:4281
! #, c-format
  msgid "candidate %i:"
! msgstr "备选 %i:"
  
  #: cp/call.cc:8590
  msgid "  after user-defined conversion:"
! msgstr "  用户定义转换后："
  
  #: cp/call.cc:8800 cp/pt.cc:27736
  msgid "candidate is:"
*************** msgid "<unnamed>"
*** 23847,23856 ****
  msgstr "<无名>"
  
  #: cp/error.cc:1017
! #, fuzzy, c-format
! #| msgid "<unnamed>"
  msgid "<unnamed %s>"
! msgstr "<无名>"
  
  #: cp/error.cc:1158
  msgid "<typeprefixerror>"
--- 23822,23830 ----
  msgstr "<无名>"
  
  #: cp/error.cc:1017
! #, c-format
  msgid "<unnamed %s>"
! msgstr "<无名 %s>"
  
  #: cp/error.cc:1158
  msgid "<typeprefixerror>"
*************** msgstr "(%s 的静态析构函数)"
*** 23868,23874 ****
  
  #: cp/error.cc:1375
  msgid "<structured bindings>"
! msgstr ""
  
  #: cp/error.cc:1501
  msgid "vtable for "
--- 23842,23848 ----
  
  #: cp/error.cc:1375
  msgid "<structured bindings>"
! msgstr "<结构化绑定>"
  
  #: cp/error.cc:1501
  msgid "vtable for "
*************** msgstr "<返回值> "
*** 23880,23895 ****
  
  #: cp/error.cc:1540
  msgid "{anonymous}"
! msgstr ""
  
  #: cp/error.cc:1542
  msgid "(anonymous namespace)"
  msgstr "(匿名命名空间)"
  
  #: cp/error.cc:1641
- #, fuzzy
  msgid "<template arguments error>"
! msgstr "<模板参数数错误>"
  
  #: cp/error.cc:1666
  msgid "<enumerator>"
--- 23854,23868 ----
  
  #: cp/error.cc:1540
  msgid "{anonymous}"
! msgstr "{匿名}"
  
  #: cp/error.cc:1542
  msgid "(anonymous namespace)"
  msgstr "(匿名命名空间)"
  
  #: cp/error.cc:1641
  msgid "<template arguments error>"
! msgstr "<模板参数错误>"
  
  #: cp/error.cc:1666
  msgid "<enumerator>"
*************** msgstr "<throw 表达式>"
*** 23920,23935 ****
  
  #: cp/error.cc:2574
  msgid "<ubsan routine call>"
! msgstr ""
  
  #: cp/error.cc:3091
  msgid "<unparsed>"
  msgstr "<未解析>"
  
  #: cp/error.cc:3251
- #, fuzzy
  msgid "<lambda>"
! msgstr "<lambda"
  
  #: cp/error.cc:3289
  msgid "*this"
--- 23893,23907 ----
  
  #: cp/error.cc:2574
  msgid "<ubsan routine call>"
! msgstr "<ubsan 例程调用>"
  
  #: cp/error.cc:3091
  msgid "<unparsed>"
  msgstr "<未解析>"
  
  #: cp/error.cc:3251
  msgid "<lambda>"
! msgstr "<lambda>"
  
  #: cp/error.cc:3289
  msgid "*this"
*************** msgid "At global scope:"
*** 23948,24259 ****
  msgstr "在全局域："
  
  #: cp/reflect.cc:565
- #, fuzzy
- #| msgid "accumulator is not a constant integer"
  msgid "array element not a constant integer"
! msgstr "累加数不是一个整常量"
  
  #: cp/reflect.cc:573 cp/reflect.cc:3906
- #, fuzzy
- #| msgid "expected initializer"
  msgid "reflect_constant failed"
! msgstr "需要初始值设定"
  
  #: cp/reflect.cc:1031
- #, fuzzy
- #| msgid "function does not return string type"
  msgid "reflection does not represent a type"
! msgstr "函数不返回字符串类型"
  
  #: cp/reflect.cc:1043
- #, fuzzy
- #| msgid "redeclaration of friend %q#D may not have default template arguments"
  msgid "reflection does not have template arguments"
! msgstr "友元%q#D的重声明不能有默认模板参数"
  
  #: cp/reflect.cc:1054
- #, fuzzy
  msgid "reflection does not represent a function or function type"
! msgstr "被调用的对象%qE不是一个函数"
  
  #: cp/reflect.cc:2355
  msgid "reflection does not represent an operator function or operator function template"
! msgstr ""
  
  #: cp/reflect.cc:2405
- #, fuzzy
- #| msgid "%qs is not valid for %qs"
  msgid "operators argument is not a valid operator"
! msgstr "%qs对%qs而言无效"
  
  #: cp/reflect.cc:2536
- #, fuzzy
- #| msgid "%qE does not name a type"
  msgid "reflection does not have a type"
! msgstr "%qE不是一个类型名"
  
  #: cp/reflect.cc:2652
  msgid "reflection does not represent an object with static storage duration, or a reference to such an object"
! msgstr ""
  
  #: cp/reflect.cc:2733
  msgid "reflection does not represent an annotation or a valid argument to a splice-expression"
! msgstr ""
  
  #: cp/reflect.cc:2953
- #, fuzzy
- #| msgid "function does not return string type"
  msgid "reflection does not represent an entity with parent"
! msgstr "函数不返回字符串类型"
  
  #: cp/reflect.cc:3076
- #, fuzzy
- #| msgid "friend declaration does not name a class or function"
  msgid "reflection does not represent parameter of current function"
! msgstr "友元声明没有指定类或函数名"
  
  #: cp/reflect.cc:3097
- #, fuzzy
  msgid "reflection does not represent a function or function type with a return type"
! msgstr "被调用的对象%qE不是一个函数"
  
  #: cp/reflect.cc:3128
  msgid "reflection of virtual direct base relationship with abstract derived class"
! msgstr ""
  
  #: cp/reflect.cc:3134
  msgid "reflection unsuitable for offset_of"
! msgstr ""
  
  #: cp/reflect.cc:3139
- #, fuzzy
- #| msgid "non-constant condition for static assertion"
  msgid "non-constant offset for offset_of"
! msgstr "静态断言中出现非常量条件"
  
  #: cp/reflect.cc:3203
  msgid "reflection not suitable for size_of"
! msgstr ""
  
  #: cp/reflect.cc:3222
- #, fuzzy
  msgid "reflection with incomplete type in size_of"
! msgstr "指向不完全类型%qT的指针不能自减"
  
  #: cp/reflect.cc:3258
- #, fuzzy
- #| msgid "Do not tune writable data alignment"
  msgid "reflection not suitable for alignment_of"
! msgstr "不调整可写数据对齐"
  
  #: cp/reflect.cc:3294
- #, fuzzy
- #| msgid "assignment of function %qD"
  msgid "alignment_of on function type"
! msgstr "向函数%qD赋值"
  
  #: cp/reflect.cc:3303
- #, fuzzy
- #| msgid "indirection will not access object of incomplete type %qT in statement"
  msgid "reflection with incomplete type in alignment_of"
! msgstr "提领不会访问语句中具有不完全类型的对象%qT"
  
  #: cp/reflect.cc:3338
  msgid "reflection not suitable for bit_size_of"
! msgstr ""
  
  #: cp/reflect.cc:3362
- #, fuzzy
  msgid "reflection with incomplete type in bit_size_of"
! msgstr "指向不完全类型%qT的指针不能自减"
  
  #: cp/reflect.cc:3538
  msgid "reflection with has_identifier false"
! msgstr ""
  
  #: cp/reflect.cc:3578 cp/reflect.cc:3668
  msgid "identifier_of not representable in ordinary literal encoding"
! msgstr ""
  
  #: cp/reflect.cc:3582 cp/reflect.cc:3672
  msgid "u8identifier_of not representable in UTF-8"
! msgstr ""
  
  #: cp/reflect.cc:3805
  msgid "reflection does not represent a type, type alias, variable, function, namespace, enumerator, direct base class relationship, or non-static data member"
! msgstr ""
  
  #: cp/reflect.cc:3817
- #, fuzzy
- #| msgid "function does not return string type"
  msgid "reflection does not represent a complete type or type alias"
! msgstr "函数不返回字符串类型"
  
  #: cp/reflect.cc:3930
  msgid "reflect_object failed"
! msgstr ""
  
  #: cp/reflect.cc:3957
- #, fuzzy
- #| msgid "expected function"
  msgid "reflect_function failed"
! msgstr "需要函数"
  
  #: cp/reflect.cc:4840
- #, fuzzy
- #| msgid "invalid embedcfg: missing Files"
  msgid "value member missing"
! msgstr "无效的 embedcfg：缺失文件"
  
  #: cp/reflect.cc:4851 cp/reflect.cc:4860
- #, fuzzy
- #| msgid "expected pointer"
  msgid "unexpected value of value member"
! msgstr "需要指针"
  
  #: cp/reflect.cc:4967
  msgid "type member missing"
! msgstr ""
  
  #: cp/reflect.cc:4991
- #, fuzzy
- #| msgid "function does not return string type"
  msgid "reflection does not represent a complete enumeration type"
! msgstr "函数不返回字符串类型"
  
  #: cp/reflect.cc:5048
- #, fuzzy
- #| msgid "%qD does not have integral or enumeration type"
  msgid "reflection does not represent an enumerable enumeration type"
! msgstr "%qD 不是整型或枚举类型"
  
  #: cp/reflect.cc:5204
- #, fuzzy
- #| msgid "bit-field %qD with non-integral type"
  msgid "reflection represents non-integral or bool type"
! msgstr "位段%qD非整型"
  
  #: cp/reflect.cc:5343
- #, fuzzy
- #| msgid "function does not return string type"
  msgid "reflection does not represent a template"
! msgstr "函数不返回字符串类型"
  
  #: cp/reflect.cc:5366
- #, fuzzy
- #| msgid "invalid argument of %qE attribute"
  msgid "invalid argument to can_substitute"
! msgstr "属性%qE的参数无效"
  
  #: cp/reflect.cc:5428
  msgid "can_substitute returned false"
! msgstr ""
  
  #: cp/reflect.cc:5559
- #, fuzzy
- #| msgid "target is not pointer or reference"
  msgid "type is not object or reference type"
! msgstr "目标不是一个指针或引用"
  
  #: cp/reflect.cc:5804
  msgid "conversion from ordinary literal encoding to source charset failed"
! msgstr ""
  
  #: cp/reflect.cc:5810
- #, fuzzy
- #| msgid "conversion to %qT from %qT may alter its value"
  msgid "conversion from UTF-8 encoding to source charset failed"
! msgstr "%qT转换自%qT时可能改变值"
  
  #: cp/reflect.cc:5818
- #, fuzzy
  msgid "name is not a valid identifier"
! msgstr "请输入有效字符"
  
  #: cp/reflect.cc:5824
  msgid "name is a keyword"
! msgstr ""
  
  #: cp/reflect.cc:5827
  msgid "name is a built-in trait"
! msgstr ""
  
  #: cp/reflect.cc:5836
- #, fuzzy
- #| msgid "register name not specified for %q+D"
  msgid "neither name nor bit_width specified"
! msgstr "%q+D的寄存器名无效"
  
  #: cp/reflect.cc:5842
  msgid "bit_width specified with non-integral and non-enumeration type"
! msgstr ""
  
  #: cp/reflect.cc:5847
- #, fuzzy
- #| msgid "alignment may not be specified for %q+D"
  msgid "both alignment and bit_width specified"
! msgstr "不能为%q+D指定对齐"
  
  #: cp/reflect.cc:5851
  msgid "bit_width specified with no_unique_address true"
! msgstr ""
  
  #: cp/reflect.cc:5856
- #, fuzzy
- #| msgid "field width specifier"
  msgid "bit_width 0 with specified name"
! msgstr "字段宽度限定"
  
  #: cp/reflect.cc:5859
- #, fuzzy
- #| msgid "execution count is negative"
  msgid "bit_width is negative"
! msgstr "执行次数为负"
  
  #: cp/reflect.cc:5866
- #, fuzzy
  msgid "alignment is not power of two"
! msgstr "要求的对齐边界不是 2 的某次方"
  
  #: cp/reflect.cc:5869
- #, fuzzy
- #| msgid "execution count is negative"
  msgid "alignment is negative"
! msgstr "执行次数为负"
  
  #: cp/reflect.cc:5876
- #, fuzzy
- #| msgid "alignment of %qD is bigger than original declaration"
  msgid "alignment is smaller than alignment_of"
! msgstr "%qD的对齐"
  
  #: cp/reflect.cc:6413
- #, fuzzy
- #| msgid "incomplete implementation of class %qE"
  msgid "incomplete parent class"
! msgstr "类%qE的实现不完全"
  
  #: cp/reflect.cc:6859
- #, fuzzy
- #| msgid "%qE is not a class or namespace"
  msgid "neither complete class type nor namespace"
! msgstr "%qE既不是类也不是命名空间"
  
  #: cp/reflect.cc:6889 cp/reflect.cc:6917 cp/reflect.cc:6946 cp/reflect.cc:6984
  #: cp/reflect.cc:7022 cp/reflect.cc:7053
- #, fuzzy
- #| msgid "source is of incomplete class type"
  msgid "not a complete class type"
! msgstr "源有不完全的类类型"
  
  #: cp/reflect.cc:7012
  msgid "closure type"
! msgstr ""
  
  #: cp/reflect.cc:7188 cp/reflect.cc:7247 cp/reflect.cc:7321
- #, fuzzy
  msgid "value cannot be extracted"
! msgstr "%qD不能被默认化"
  
  #: cp/rtti.cc:592
  msgid "target is not pointer or reference to class"
--- 23920,24160 ----
  msgstr "在全局域："
  
  #: cp/reflect.cc:565
  msgid "array element not a constant integer"
! msgstr "数组元素不是整型常量"
  
  #: cp/reflect.cc:573 cp/reflect.cc:3906
  msgid "reflect_constant failed"
! msgstr "reflect_constant失败"
  
  #: cp/reflect.cc:1031
  msgid "reflection does not represent a type"
! msgstr "反射不代表一个类型"
  
  #: cp/reflect.cc:1043
  msgid "reflection does not have template arguments"
! msgstr "反射没有模板参数"
  
  #: cp/reflect.cc:1054
  msgid "reflection does not represent a function or function type"
! msgstr "反射未代表一个函数或函数类型"
  
  #: cp/reflect.cc:2355
  msgid "reflection does not represent an operator function or operator function template"
! msgstr "反射未代表一个运算符函数或运算符函数模板"
  
  #: cp/reflect.cc:2405
  msgid "operators argument is not a valid operator"
! msgstr "运算符参数不是一个有效的运算符"
  
  #: cp/reflect.cc:2536
  msgid "reflection does not have a type"
! msgstr "反射没有一个类型"
  
  #: cp/reflect.cc:2652
  msgid "reflection does not represent an object with static storage duration, or a reference to such an object"
! msgstr "反射未代表一个具有静态存储期的对象，或对这样一个对象的引用"
  
  #: cp/reflect.cc:2733
  msgid "reflection does not represent an annotation or a valid argument to a splice-expression"
! msgstr "反射未代表一个注解(annotation)，或一个拼接表达式(splice-expression)的有效参数"
  
  #: cp/reflect.cc:2953
  msgid "reflection does not represent an entity with parent"
! msgstr "反射未代表一个带有父实体的实体"
  
  #: cp/reflect.cc:3076
  msgid "reflection does not represent parameter of current function"
! msgstr "反射未代表当前函数的参数"
  
  #: cp/reflect.cc:3097
  msgid "reflection does not represent a function or function type with a return type"
! msgstr "反射未代表一个带有返回类型的函数或函数类型"
  
  #: cp/reflect.cc:3128
  msgid "reflection of virtual direct base relationship with abstract derived class"
! msgstr "对具有抽象派生类的虚直接基类关系(virtual direct base relationship)的反射"
  
  #: cp/reflect.cc:3134
  msgid "reflection unsuitable for offset_of"
! msgstr "反射不适用于offset_of"
  
  #: cp/reflect.cc:3139
  msgid "non-constant offset for offset_of"
! msgstr "offset_of的偏移量非常量"
  
  #: cp/reflect.cc:3203
  msgid "reflection not suitable for size_of"
! msgstr "反射不适用于size_of"
  
  #: cp/reflect.cc:3222
  msgid "reflection with incomplete type in size_of"
! msgstr "size_of中反射带有不完整的类型"
  
  #: cp/reflect.cc:3258
  msgid "reflection not suitable for alignment_of"
! msgstr "反射不适用于alignment_of"
  
  #: cp/reflect.cc:3294
  msgid "alignment_of on function type"
! msgstr "应用于函数类型的alignment_of"
  
  #: cp/reflect.cc:3303
  msgid "reflection with incomplete type in alignment_of"
! msgstr "alignment_of 中不完整类型的反射"
  
  #: cp/reflect.cc:3338
  msgid "reflection not suitable for bit_size_of"
! msgstr "反射不适用于 bit_size_of"
  
  #: cp/reflect.cc:3362
  msgid "reflection with incomplete type in bit_size_of"
! msgstr "bit_size_of 中不完整类型的反射"
  
  #: cp/reflect.cc:3538
  msgid "reflection with has_identifier false"
! msgstr "has_identifier 的反射失败"
  
  #: cp/reflect.cc:3578 cp/reflect.cc:3668
  msgid "identifier_of not representable in ordinary literal encoding"
! msgstr "identifier_of 在普通字面量编码中不可表示"
  
  #: cp/reflect.cc:3582 cp/reflect.cc:3672
  msgid "u8identifier_of not representable in UTF-8"
! msgstr "u8identifier_of 在 UTF-8 中不可表示"
  
  #: cp/reflect.cc:3805
  msgid "reflection does not represent a type, type alias, variable, function, namespace, enumerator, direct base class relationship, or non-static data member"
! msgstr "反射未表示类型、类型别名、变量、函数、命名空间、枚举项、直系基类关系或非静态数据成员"
  
  #: cp/reflect.cc:3817
  msgid "reflection does not represent a complete type or type alias"
! msgstr "反射未表示完整类型或类型别名"
  
  #: cp/reflect.cc:3930
  msgid "reflect_object failed"
! msgstr "reflect_object 失败"
  
  #: cp/reflect.cc:3957
  msgid "reflect_function failed"
! msgstr "reflect_function 失败"
  
  #: cp/reflect.cc:4840
  msgid "value member missing"
! msgstr "缺少 value 成员"
  
  #: cp/reflect.cc:4851 cp/reflect.cc:4860
  msgid "unexpected value of value member"
! msgstr "非预期的 value 成员的值"
  
  #: cp/reflect.cc:4967
  msgid "type member missing"
! msgstr "缺少 type 成员"
  
  #: cp/reflect.cc:4991
  msgid "reflection does not represent a complete enumeration type"
! msgstr "反射未表示完整枚举类型"
  
  #: cp/reflect.cc:5048
  msgid "reflection does not represent an enumerable enumeration type"
! msgstr "反射未表示可枚举的枚举类型"
  
  #: cp/reflect.cc:5204
  msgid "reflection represents non-integral or bool type"
! msgstr "反射表示非整型或 bool 类型"
  
  #: cp/reflect.cc:5343
  msgid "reflection does not represent a template"
! msgstr "反射未表示模板"
  
  #: cp/reflect.cc:5366
  msgid "invalid argument to can_substitute"
! msgstr "传递给 can_substitute 的参数无效"
  
  #: cp/reflect.cc:5428
  msgid "can_substitute returned false"
! msgstr "can_substitute 返回 false"
  
  #: cp/reflect.cc:5559
  msgid "type is not object or reference type"
! msgstr "类型不是对象或引用类型"
  
  #: cp/reflect.cc:5804
  msgid "conversion from ordinary literal encoding to source charset failed"
! msgstr "从普通字面量编码到源代码字符集的转换失败"
  
  #: cp/reflect.cc:5810
  msgid "conversion from UTF-8 encoding to source charset failed"
! msgstr "从 UTF-8 到源代码字符集的转换失败"
  
  #: cp/reflect.cc:5818
  msgid "name is not a valid identifier"
! msgstr "名称不是有效的标识符"
  
  #: cp/reflect.cc:5824
  msgid "name is a keyword"
! msgstr "名称是关键字"
  
  #: cp/reflect.cc:5827
  msgid "name is a built-in trait"
! msgstr "名称是内置特征(trait)"
  
  #: cp/reflect.cc:5836
  msgid "neither name nor bit_width specified"
! msgstr "既未指定名称也未指定位宽"
  
  #: cp/reflect.cc:5842
  msgid "bit_width specified with non-integral and non-enumeration type"
! msgstr "为非整型且非枚举类型指定位宽"
  
  #: cp/reflect.cc:5847
  msgid "both alignment and bit_width specified"
! msgstr "同时指定了对齐和位宽"
  
  #: cp/reflect.cc:5851
  msgid "bit_width specified with no_unique_address true"
! msgstr "在 no_unique_address 为 true 时指定位宽"
  
  #: cp/reflect.cc:5856
  msgid "bit_width 0 with specified name"
! msgstr "指定位宽 0 的同时指定了名称"
  
  #: cp/reflect.cc:5859
  msgid "bit_width is negative"
! msgstr "位宽为负数"
  
  #: cp/reflect.cc:5866
  msgid "alignment is not power of two"
! msgstr "对齐值不是 2 的幂"
  
  #: cp/reflect.cc:5869
  msgid "alignment is negative"
! msgstr "对齐值为负数"
  
  #: cp/reflect.cc:5876
  msgid "alignment is smaller than alignment_of"
! msgstr "对齐值小于 alignment_of"
  
  #: cp/reflect.cc:6413
  msgid "incomplete parent class"
! msgstr "父类不完整"
  
  #: cp/reflect.cc:6859
  msgid "neither complete class type nor namespace"
! msgstr "既不是完整的类类型也不是命名空间"
  
  #: cp/reflect.cc:6889 cp/reflect.cc:6917 cp/reflect.cc:6946 cp/reflect.cc:6984
  #: cp/reflect.cc:7022 cp/reflect.cc:7053
  msgid "not a complete class type"
! msgstr "不是完整的类类型"
  
  #: cp/reflect.cc:7012
  msgid "closure type"
! msgstr "闭包类型"
  
  #: cp/reflect.cc:7188 cp/reflect.cc:7247 cp/reflect.cc:7321
  msgid "value cannot be extracted"
! msgstr "值无法提取"
  
  #: cp/rtti.cc:592
  msgid "target is not pointer or reference to class"
*************** msgid "defaulted function %q+D with defa
*** 67605,67958 ****
  msgstr "默认化函数%q+D有默认参数"
  
  #: cp/module.cc:1606
! #, fuzzy, gcc-internal-format
  msgid "section %qs is missing or corrupted"
! msgstr "在 %s %s 中有缺失的“%s”\n"
  
  #: cp/module.cc:1608
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "section #%u is missing or corrupted"
! msgstr "在 %s %s 中有缺失的“%s”\n"
  
  #: cp/module.cc:1830
  #, gcc-internal-format
  msgid "not Encapsulated Lazy Records of Named Declarations"
! msgstr ""
  
  #: cp/module.cc:1845
! #, fuzzy, gcc-internal-format
  msgid "unexpected encapsulation format or type"
! msgstr "需要模板 ID"
  
  #: cp/module.cc:1854
  #, gcc-internal-format
  msgid "encapsulation is malformed"
! msgstr ""
  
  #: cp/module.cc:3466
  #, gcc-internal-format
  msgid "unable to represent further imported source locations"
! msgstr ""
  
  #: cp/module.cc:6693
! #, fuzzy, gcc-internal-format
! #| msgid "target attribute is not supported on this machine"
  msgid "%<target%> attribute currently unsupported in modules"
! msgstr "target 属性在此目标机上不受支持"
  
  #: cp/module.cc:6696
! #, fuzzy, gcc-internal-format
! #| msgid "%qE attribute ignored on non-class types"
  msgid "%<optimize%> attribute currently unsupported in modules"
! msgstr "%qE属性在不是类的类型上被忽略"
  
  #: cp/module.cc:12518
  #, gcc-internal-format
  msgid "mismatching abi tags for %qD with tags %qE"
! msgstr ""
  
  #: cp/module.cc:12522
  #, gcc-internal-format
  msgid "mismatching abi tags for %qD with no tags"
! msgstr ""
  
  #: cp/module.cc:12525
! #, fuzzy, gcc-internal-format
! #| msgid "in declaration %q+D"
  msgid "existing declaration here with tags %qE"
! msgstr "在声明%q+D中"
  
  #: cp/module.cc:12528
! #, fuzzy, gcc-internal-format
! #| msgid "in declaration %q+D"
  msgid "existing declaration here with no tags"
! msgstr "在声明%q+D中"
  
  #: cp/module.cc:12573
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting language linkage for imported declaration %#qD"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12587 cp/module.cc:12715
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting type for imported declaration %#qD"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12601
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting argument list for imported declaration %#qD"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12608
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting argument types for imported declaration %#qD"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12646
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting %<noexcept%> specifier for imported declaration %#qD"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12665
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting deduced return type for imported declaration %#qD"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12690
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting %<constexpr%> for imported declaration %#qD"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12706
! #, fuzzy, gcc-internal-format
! #| msgid "conflicting declaration %q#D"
  msgid "conflicting imported declaration %q#D"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:12732
! #, fuzzy, gcc-internal-format
! #| msgid "in declaration %q+D"
  msgid "existing declaration %#qD"
! msgstr "在声明%q+D中"
  
  #: cp/module.cc:12835
! #, fuzzy, gcc-internal-format
! #| msgid "no default argument for %qD"
  msgid "conflicting default argument for %#qD"
! msgstr "%qD没有默认参数"
  
  #: cp/module.cc:12837 cp/module.cc:12864
! #, fuzzy, gcc-internal-format
! #| msgid "%qD declared here"
  msgid "existing default declared here"
! msgstr "%qD在此声明"
  
  #: cp/module.cc:12861
! #, fuzzy, gcc-internal-format
! #| msgid "default argument missing for parameter %P of %q+#D"
  msgid "conflicting default argument for parameter %P of %#qD"
! msgstr "%2$q+#D的第 %1$P 个形参缺少默认实参"
  
  #: cp/module.cc:13986
! #, fuzzy, gcc-internal-format
  msgid "definition of %qD does not match"
! msgstr "%q#D的外部声明不匹配"
  
  #: cp/module.cc:13988
! #, fuzzy, gcc-internal-format
! #| msgid "missing definition"
  msgid "existing definition %qD"
! msgstr "定义缺失"
  
  #: cp/module.cc:14000
! #, fuzzy, gcc-internal-format
  msgid "enumerator %qD does not match ..."
! msgstr "%q#D的外部声明不匹配"
  
  #: cp/module.cc:14002
! #, fuzzy, gcc-internal-format
! #| msgid "redeclaration of enumerator %q+D"
  msgid "... this enumerator %qD"
! msgstr "枚举%q+D重声明"
  
  #: cp/module.cc:14008
  #, gcc-internal-format
  msgid "additional enumerators beginning with %qD"
! msgstr ""
  
  #: cp/module.cc:14012
  #, gcc-internal-format
  msgid "enumeration range differs"
! msgstr ""
  
  #: cp/module.cc:14229
! #, fuzzy, gcc-internal-format
! #| msgid "%qE is not of type %qT"
  msgid "%qD is an alias of TU-local type %qT"
! msgstr "%qE的类型不是%qT"
  
  #: cp/module.cc:14247
! #, fuzzy, gcc-internal-format
  msgid "%qD is a specialization of TU-local template %qD"
! msgstr "有歧义的模板特例化%qD(为%q+D)"
  
  #: cp/module.cc:14271
! #, fuzzy, gcc-internal-format
  msgid "%qD declared with internal linkage"
! msgstr "new 声明中的表达式必须具有整数或枚举类型"
  
  #: cp/module.cc:14289
! #, fuzzy, gcc-internal-format
! #| msgid "%qD may not be declared within a namespace"
  msgid "%qD has no linkage and is declared in an anonymous namespace"
! msgstr "%qD不能在命名空间声明"
  
  #: cp/module.cc:14301
! #, fuzzy, gcc-internal-format
! #| msgid "%qE has not been declared"
  msgid "%qD has no linkage and is declared within TU-local entity %qT"
! msgstr "%qE未声明"
  
  #: cp/module.cc:14312
! #, fuzzy, gcc-internal-format
! #| msgid "%qE has not been declared"
  msgid "%qD has no linkage and is declared within TU-local entity %qD"
! msgstr "%qE未声明"
  
  #: cp/module.cc:14344
  #, gcc-internal-format
  msgid "%qT has no name and cannot be differentiated from similar lambdas in other TUs"
! msgstr ""
  
  #: cp/module.cc:14353
  #, gcc-internal-format
  msgid "%qT has no name and is not defined within a class, function, or initializer"
! msgstr ""
  
  #: cp/module.cc:14389
! #, fuzzy, gcc-internal-format
! #| msgid "%qD used without template parameters"
  msgid "%qD has TU-local template argument %qD"
! msgstr "%qD使用时未带模板参数"
  
  #: cp/module.cc:14401
! #, fuzzy, gcc-internal-format
! #| msgid "%qE is not a valid template argument for type %qT"
  msgid "%qD has TU-local template argument %qT"
! msgstr "%qE不是类型%qT的有效模板参数"
  
  #: cp/module.cc:14453
  #, gcc-internal-format
  msgid "%qD refers to TU-local object %qD"
! msgstr ""
  
  #: cp/module.cc:14455
! #, fuzzy, gcc-internal-format
! #| msgid "%qD does not refer to a function"
  msgid "%qD refers to TU-local function %qD"
! msgstr "%qD 不引用一个函数"
  
  #: cp/module.cc:14485 cp/module.cc:14522
  #, gcc-internal-format
  msgid "instantiation exposes TU-local entity %qD"
! msgstr ""
  
  #: cp/module.cc:15866 cp/module.cc:15876
  #, gcc-internal-format
  msgid "%qD exposes TU-local entity %qD"
! msgstr ""
  
  #: cp/module.cc:15881
  #, gcc-internal-format
  msgid "%qD is also TU-local but has been exposed elsewhere"
! msgstr ""
  
  #: cp/module.cc:15934
  #, gcc-internal-format
  msgid "%qD refers to TU-local entity %qD, which may cause issues when instantiating in other TUs"
! msgstr ""
  
  #: cp/module.cc:15944
  #, gcc-internal-format
  msgid "%qD refers to TU-local entity %qD and cannot be instantiated in other TUs"
! msgstr ""
  
  #: cp/module.cc:16002
  #, gcc-internal-format
  msgid "%qD is declared %<constexpr%> and is initialized to a TU-local value"
! msgstr ""
  
  #: cp/module.cc:16009
  #, gcc-internal-format
  msgid "%qD is a reference declared %<inline%> and is constant-initialized to a TU-local value"
! msgstr ""
  
  #: cp/module.cc:16640
  #, gcc-internal-format
  msgid "recursive lazy load"
! msgstr ""
  
  #: cp/module.cc:16658
! #, fuzzy, gcc-internal-format
! #| msgid "module %qs declared here"
  msgid "module %qs depends on itself"
! msgstr "模组%qs在此声明"
  
  #: cp/module.cc:16660 cp/module.cc:22766
  #, gcc-internal-format
  msgid "module %qs declared here"
! msgstr "模组%qs在此声明"
  
  #: cp/module.cc:17015
  #, gcc-internal-format
  msgid "indirect import %qs is not already loaded"
! msgstr ""
  
  #: cp/module.cc:17021
  #, gcc-internal-format
  msgid "import %qs has CRC mismatch"
! msgstr ""
  
  #: cp/module.cc:20083
  #, gcc-internal-format
  msgid "not exporting %<#define %E%> as it is a keyword"
! msgstr ""
  
  #: cp/module.cc:20323
! #, fuzzy, gcc-internal-format
! #| msgid "previous definition of %q+D was here"
  msgid "macro definitions of %qE corrupted"
! msgstr "%q+D的上一个定义在此"
  
  #: cp/module.cc:20348 cp/module.cc:20351
! #, fuzzy, gcc-internal-format
  msgid "inconsistent imported macro definition %qE"
! msgstr "对%qT不一致的演绎：先是%qT然后是%qT"
  
  #: cp/module.cc:20357
  #, gcc-internal-format
  msgid "%<#undef %E%>"
! msgstr ""
  
  #: cp/module.cc:20359
  #, gcc-internal-format
  msgid "%<#define %s%>"
! msgstr ""
  
  #: cp/module.cc:20693
! #, fuzzy, gcc-internal-format
  msgid "compiled module file is %qs"
! msgstr "%s：无法找到模块文件 %s\n"
  
  #: cp/module.cc:20733 cp/module.cc:20738
! #, fuzzy, gcc-internal-format, gfc-internal-format
! #| msgid "Display the compiler's version"
  msgid "compiled module is %sversion %s"
! msgstr "显示编译器版本"
  
  #: cp/module.cc:20744
! #, fuzzy, gcc-internal-format, gfc-internal-format
! #| msgid "collect2 version %s\n"
  msgid "compiler is %sversion %s%s%s"
! msgstr "collect2 版本 %s\n"
  
  #: cp/module.cc:20774
! #, fuzzy, gcc-internal-format
! #| msgid "no %qs getter found"
  msgid "module %qs found"
! msgstr "找不到 %qs 的取值器"
  
  #: cp/module.cc:20776
  #, gcc-internal-format
  msgid "header module expected, module %qs found"
! msgstr ""
  
  #: cp/module.cc:20777
  #, gcc-internal-format
--- 67506,67829 ----
  msgstr "默认化函数%q+D有默认参数"
  
  #: cp/module.cc:1606
! #, gcc-internal-format
  msgid "section %qs is missing or corrupted"
! msgstr "节 %qs 缺失或损坏"
  
  #: cp/module.cc:1608
! #, gcc-internal-format, gfc-internal-format
  msgid "section #%u is missing or corrupted"
! msgstr "节 #%u 缺失或损坏"
  
  #: cp/module.cc:1830
  #, gcc-internal-format
  msgid "not Encapsulated Lazy Records of Named Declarations"
! msgstr "未封装的命名声明惰性记录(Lazy Records of Named Declarations)"
  
  #: cp/module.cc:1845
! #, gcc-internal-format
  msgid "unexpected encapsulation format or type"
! msgstr "意外的封装格式或类型"
  
  #: cp/module.cc:1854
  #, gcc-internal-format
  msgid "encapsulation is malformed"
! msgstr "封装格式错误"
  
  #: cp/module.cc:3466
  #, gcc-internal-format
  msgid "unable to represent further imported source locations"
! msgstr "无法表示更多已导入的源代码位置"
  
  #: cp/module.cc:6693
! #, gcc-internal-format
  msgid "%<target%> attribute currently unsupported in modules"
! msgstr "模块中目前不支持 %<target%> 属性"
  
  #: cp/module.cc:6696
! #, gcc-internal-format
  msgid "%<optimize%> attribute currently unsupported in modules"
! msgstr "模块中目前不支持 %<optimize%> 属性"
  
  #: cp/module.cc:12518
  #, gcc-internal-format
  msgid "mismatching abi tags for %qD with tags %qE"
! msgstr "%qD 的 abi 标签不匹配，标签为 %qE"
  
  #: cp/module.cc:12522
  #, gcc-internal-format
  msgid "mismatching abi tags for %qD with no tags"
! msgstr "%qD 的 abi 标签不匹配，无标签"
  
  #: cp/module.cc:12525
! #, gcc-internal-format
  msgid "existing declaration here with tags %qE"
! msgstr "此处已有带标签 %qE 的声明"
  
  #: cp/module.cc:12528
! #, gcc-internal-format
  msgid "existing declaration here with no tags"
! msgstr "此处已有不带标签的声明"
  
  #: cp/module.cc:12573
! #, gcc-internal-format
  msgid "conflicting language linkage for imported declaration %#qD"
! msgstr "导入的声明 %#qD 的语言链接冲突"
  
  #: cp/module.cc:12587 cp/module.cc:12715
! #, gcc-internal-format
  msgid "conflicting type for imported declaration %#qD"
! msgstr "导入的声明 %#qD 的类型冲突"
  
  #: cp/module.cc:12601
! #, gcc-internal-format
  msgid "conflicting argument list for imported declaration %#qD"
! msgstr "导入的声明 %#qD 的参数列表冲突"
  
  #: cp/module.cc:12608
! #, gcc-internal-format
  msgid "conflicting argument types for imported declaration %#qD"
! msgstr "导入的声明 %#qD 的参数类型冲突"
  
  #: cp/module.cc:12646
! #, gcc-internal-format
  msgid "conflicting %<noexcept%> specifier for imported declaration %#qD"
! msgstr "导入的声明 %#qD 的 %<noexcept%> 说明符冲突"
  
  #: cp/module.cc:12665
! #, gcc-internal-format
  msgid "conflicting deduced return type for imported declaration %#qD"
! msgstr "导入的声明 %#qD 的推导返回类型冲突"
  
  #: cp/module.cc:12690
! #, gcc-internal-format
  msgid "conflicting %<constexpr%> for imported declaration %#qD"
! msgstr "导入的声明 %#qD 的 %<constexpr%> 冲突"
  
  #: cp/module.cc:12706
! #, gcc-internal-format
  msgid "conflicting imported declaration %q#D"
! msgstr "导入的声明 %q#D 冲突"
  
  #: cp/module.cc:12732
! #, gcc-internal-format
  msgid "existing declaration %#qD"
! msgstr "已有的声明 %#qD"
  
  #: cp/module.cc:12835
! #, gcc-internal-format
  msgid "conflicting default argument for %#qD"
! msgstr "%#qD 的默认实参冲突"
  
  #: cp/module.cc:12837 cp/module.cc:12864
! #, gcc-internal-format
  msgid "existing default declared here"
! msgstr "此处已有的默认声明"
  
  #: cp/module.cc:12861
! #, gcc-internal-format
  msgid "conflicting default argument for parameter %P of %#qD"
! msgstr "参数 %P 的默认实参与 %#qD 冲突"
  
  #: cp/module.cc:13986
! #, gcc-internal-format
  msgid "definition of %qD does not match"
! msgstr "%qD 的定义不匹配"
  
  #: cp/module.cc:13988
! #, gcc-internal-format
  msgid "existing definition %qD"
! msgstr "已有的定义 %qD"
  
  #: cp/module.cc:14000
! #, gcc-internal-format
  msgid "enumerator %qD does not match ..."
! msgstr "枚举项 %qD 不匹配 ..."
  
  #: cp/module.cc:14002
! #, gcc-internal-format
  msgid "... this enumerator %qD"
! msgstr "... 此枚举项 %qD"
  
  #: cp/module.cc:14008
  #, gcc-internal-format
  msgid "additional enumerators beginning with %qD"
! msgstr "以 %qD 开头的额外枚举项"
  
  #: cp/module.cc:14012
  #, gcc-internal-format
  msgid "enumeration range differs"
! msgstr "枚举范围不同"
  
  #: cp/module.cc:14229
! #, gcc-internal-format
  msgid "%qD is an alias of TU-local type %qT"
! msgstr "%qD 是 TU 局部类型 %qT 的别名"
  
  #: cp/module.cc:14247
! #, gcc-internal-format
  msgid "%qD is a specialization of TU-local template %qD"
! msgstr "%qD 是 TU 局部模板 %qD 的特化"
  
  #: cp/module.cc:14271
! #, gcc-internal-format
  msgid "%qD declared with internal linkage"
! msgstr "%qD 声明为内部链接"
  
  #: cp/module.cc:14289
! #, gcc-internal-format
  msgid "%qD has no linkage and is declared in an anonymous namespace"
! msgstr "%qD 无链接且在匿名命名空间中声明"
  
  #: cp/module.cc:14301
! #, gcc-internal-format
  msgid "%qD has no linkage and is declared within TU-local entity %qT"
! msgstr "%qD 无链接且在 TU 局部实体 %qT 内声明"
  
  #: cp/module.cc:14312
! #, gcc-internal-format
  msgid "%qD has no linkage and is declared within TU-local entity %qD"
! msgstr "%qD 无链接且在 TU 局部实体 %qD 内声明"
  
  #: cp/module.cc:14344
  #, gcc-internal-format
  msgid "%qT has no name and cannot be differentiated from similar lambdas in other TUs"
! msgstr "%qT 没有名称，无法与其他 TU 中的相似 lambda 区分"
  
  #: cp/module.cc:14353
  #, gcc-internal-format
  msgid "%qT has no name and is not defined within a class, function, or initializer"
! msgstr "%qT 没有名称，且未在类、函数或初始化器内定义"
  
  #: cp/module.cc:14389
! #, gcc-internal-format
  msgid "%qD has TU-local template argument %qD"
! msgstr "%qD 具有 TU 局部的模板实参 %qD"
  
  #: cp/module.cc:14401
! #, gcc-internal-format
  msgid "%qD has TU-local template argument %qT"
! msgstr "%qD 具有 TU 局部的模板实参 %qT"
  
  #: cp/module.cc:14453
  #, gcc-internal-format
  msgid "%qD refers to TU-local object %qD"
! msgstr "%qD 引用 TU 局部对象 %qD"
  
  #: cp/module.cc:14455
! #, gcc-internal-format
  msgid "%qD refers to TU-local function %qD"
! msgstr "%qD 引用 TU 局部函数 %qD"
  
  #: cp/module.cc:14485 cp/module.cc:14522
  #, gcc-internal-format
  msgid "instantiation exposes TU-local entity %qD"
! msgstr "实例化暴露了 TU 局部实体 %qD"
  
  #: cp/module.cc:15866 cp/module.cc:15876
  #, gcc-internal-format
  msgid "%qD exposes TU-local entity %qD"
! msgstr "%qD 暴露了 TU 局部实体 %qD"
  
  #: cp/module.cc:15881
  #, gcc-internal-format
  msgid "%qD is also TU-local but has been exposed elsewhere"
! msgstr "%qD 也是 TU 局部的，但已在其他地方暴露"
  
  #: cp/module.cc:15934
  #, gcc-internal-format
  msgid "%qD refers to TU-local entity %qD, which may cause issues when instantiating in other TUs"
! msgstr "%qD 引用 TU 局部实体 %qD，这可能导致在其他 TU 中实例化时出现问题"
  
  #: cp/module.cc:15944
  #, gcc-internal-format
  msgid "%qD refers to TU-local entity %qD and cannot be instantiated in other TUs"
! msgstr "%qD 引用 TU 局部实体 %qD，且无法在其他 TU 中实例化"
  
  #: cp/module.cc:16002
  #, gcc-internal-format
  msgid "%qD is declared %<constexpr%> and is initialized to a TU-local value"
! msgstr "%qD 声明为 %<constexpr%> 且被初始化为 TU 局部值"
  
  #: cp/module.cc:16009
  #, gcc-internal-format
  msgid "%qD is a reference declared %<inline%> and is constant-initialized to a TU-local value"
! msgstr "%qD 是声明为 %<inline%> 的引用，且被常量初始化为 TU 局部值"
  
  #: cp/module.cc:16640
  #, gcc-internal-format
  msgid "recursive lazy load"
! msgstr "递归惰性加载"
  
  #: cp/module.cc:16658
! #, gcc-internal-format
  msgid "module %qs depends on itself"
! msgstr "模块 %qs 依赖于自身"
  
  #: cp/module.cc:16660 cp/module.cc:22766
  #, gcc-internal-format
  msgid "module %qs declared here"
! msgstr "模块 %qs 在此声明"
  
  #: cp/module.cc:17015
  #, gcc-internal-format
  msgid "indirect import %qs is not already loaded"
! msgstr "间接导入 %qs 尚未加载"
  
  #: cp/module.cc:17021
  #, gcc-internal-format
  msgid "import %qs has CRC mismatch"
! msgstr "导入 %qs 的 CRC 不匹配"
  
  #: cp/module.cc:20083
  #, gcc-internal-format
  msgid "not exporting %<#define %E%> as it is a keyword"
! msgstr "未导出 %<#define %E%>，因为它是一个关键字"
  
  #: cp/module.cc:20323
! #, gcc-internal-format
  msgid "macro definitions of %qE corrupted"
! msgstr "%qE 的宏定义损坏"
  
  #: cp/module.cc:20348 cp/module.cc:20351
! #, gcc-internal-format
  msgid "inconsistent imported macro definition %qE"
! msgstr "导入的宏定义 %qE 不一致"
  
  #: cp/module.cc:20357
  #, gcc-internal-format
  msgid "%<#undef %E%>"
! msgstr "%<#undef %E%>"
  
  #: cp/module.cc:20359
  #, gcc-internal-format
  msgid "%<#define %s%>"
! msgstr "%<#define %s%>"
  
  #: cp/module.cc:20693
! #, gcc-internal-format
  msgid "compiled module file is %qs"
! msgstr "编译后的模块文件是 %qs"
  
  #: cp/module.cc:20733 cp/module.cc:20738
! #, gcc-internal-format, gfc-internal-format
  msgid "compiled module is %sversion %s"
! msgstr "编译后的模块是 %sversion %s"
  
  #: cp/module.cc:20744
! #, gcc-internal-format, gfc-internal-format
  msgid "compiler is %sversion %s%s%s"
! msgstr "编译器是 %sversion %s%s%s"
  
  #: cp/module.cc:20774
! #, gcc-internal-format
  msgid "module %qs found"
! msgstr "找到模块 %qs"
  
  #: cp/module.cc:20776
  #, gcc-internal-format
  msgid "header module expected, module %qs found"
! msgstr "需要头文件模块，但找到了模块 %qs"
  
  #: cp/module.cc:20777
  #, gcc-internal-format
*************** msgstr "模块 %qs CRC 不匹配"
*** 67967,68008 ****
  #: cp/module.cc:20808
  #, gcc-internal-format
  msgid "target & host is %qs:%qs, expected %qs:%qs"
! msgstr ""
  
  #: cp/module.cc:20821
  #, gcc-internal-format
  msgid "language dialect differs %qs, expected %qs"
! msgstr ""
  
  #: cp/module.cc:20841
! #, fuzzy, gcc-internal-format
! #| msgid "exception handling disabled, use -fexceptions to enable"
  msgid "module contains OpenMP, use %<-fopenmp%> to enable"
! msgstr "异常处理已被禁用，使用 -fexceptions 启用"
  
  #: cp/module.cc:20843
! #, fuzzy, gcc-internal-format
! #| msgid "exception handling disabled, use -fexceptions to enable"
  msgid "module contains OpenMP, use %<-fopenmp%> or %<-fopenmp-simd%> to enable"
! msgstr "异常处理已被禁用，使用 -fexceptions 启用"
  
  #: cp/module.cc:20846
! #, fuzzy, gcc-internal-format
! #| msgid "exception handling disabled, use -fexceptions to enable"
  msgid "module contains OpenACC, use %<-fopenacc%> to enable"
! msgstr "异常处理已被禁用，使用 -fexceptions 启用"
  
  #: cp/module.cc:20864
  #, fuzzy, gcc-internal-format
- #| msgid "function attribute mismatch"
  msgid "fixed tree mismatch"
! msgstr "函数属性不匹配"
  
  #: cp/module.cc:20956
! #, fuzzy, gcc-internal-format
! #| msgid "stack limit expression is not supported"
  msgid "interface partition is not exported"
! msgstr "不支持堆栈限制表达式"
  
  # 还有可能是：
  # 读取编译后的模块集群 %u: %s 失败
--- 67838,67874 ----
  #: cp/module.cc:20808
  #, gcc-internal-format
  msgid "target & host is %qs:%qs, expected %qs:%qs"
! msgstr "目标与主机为 %qs:%qs，期望 %qs:%qs"
  
  #: cp/module.cc:20821
  #, gcc-internal-format
  msgid "language dialect differs %qs, expected %qs"
! msgstr "语言方言不同于 %qs，期望 %qs"
  
  #: cp/module.cc:20841
! #, gcc-internal-format
  msgid "module contains OpenMP, use %<-fopenmp%> to enable"
! msgstr "模块包含 OpenMP，请使用 %<-fopenmp%> 启用"
  
  #: cp/module.cc:20843
! #, gcc-internal-format
  msgid "module contains OpenMP, use %<-fopenmp%> or %<-fopenmp-simd%> to enable"
! msgstr "模块包含 OpenMP，请使用 %<-fopenmp%> 或 %<-fopenmp-simd%> 启用"
  
  #: cp/module.cc:20846
! #, gcc-internal-format
  msgid "module contains OpenACC, use %<-fopenacc%> to enable"
! msgstr "模块包含 OpenACC，请使用 %<-fopenacc%> 启用"
  
  #: cp/module.cc:20864
  #, fuzzy, gcc-internal-format
  msgid "fixed tree mismatch"
! msgstr "固定树不匹配"
  
  #: cp/module.cc:20956
! #, gcc-internal-format
  msgid "interface partition is not exported"
! msgstr "接口分区未导出"
  
  # 还有可能是：
  # 读取编译后的模块集群 %u: %s 失败
*************** msgid "failed to read compiled module cl
*** 68012,68021 ****
  msgstr "读取编译后的模块集群 %u 失败：%s"
  
  #: cp/module.cc:21570
! #, fuzzy, gcc-internal-format, gfc-internal-format
! #| msgid "failed to find class '%s'"
  msgid "failed to read compiled module: %s"
! msgstr "找不到类‘%s’"
  
  #: cp/module.cc:21580
  #, gcc-internal-format
--- 67878,67886 ----
  msgstr "读取编译后的模块集群 %u 失败：%s"
  
  #: cp/module.cc:21570
! #, gcc-internal-format, gfc-internal-format
  msgid "failed to read compiled module: %s"
! msgstr "读取已编译模块失败：%s"
  
  #: cp/module.cc:21580
  #, gcc-internal-format
*************** msgstr "考虑使用 %<-fno-module-lazy%
*** 68025,68031 ****
  #: cp/module.cc:21585
  #, gcc-internal-format
  msgid "imports must be built before being imported"
! msgstr ""
  
  #: cp/module.cc:21588
  #, gcc-internal-format
--- 67890,67896 ----
  #: cp/module.cc:21585
  #, gcc-internal-format
  msgid "imports must be built before being imported"
! msgstr "导入必须在被导入之前先被构建"
  
  #: cp/module.cc:21588
  #, gcc-internal-format
*************** msgid "returning to the gate for a mecha
*** 68033,68154 ****
  msgstr ""
  
  #: cp/module.cc:21940
! #, fuzzy, gcc-internal-format
  msgid "declaring %qD in module %qs conflicts with builtin in global module"
! msgstr "%q+D的节与早先的声明冲突"
  
  #: cp/module.cc:21943
! #, fuzzy, gcc-internal-format
  msgid "declaration %qD conflicts with builtin"
! msgstr "%q+D的节与早先的声明冲突"
  
  #: cp/module.cc:21949
! #, fuzzy, gcc-internal-format
  msgid "redeclaring %qD in module %qs conflicts with import"
! msgstr "%q+D的节与早先的声明冲突"
  
  #: cp/module.cc:21952
! #, fuzzy, gcc-internal-format
  msgid "redeclaring %qD in global module conflicts with import"
! msgstr "%q+D的节与早先的声明冲突"
  
  #: cp/module.cc:21957
! #, fuzzy, gcc-internal-format
! #| msgid "declared here"
  msgid "import declared attached to module %qs"
! msgstr "在此声明"
  
  #: cp/module.cc:21961
! #, fuzzy, gcc-internal-format
! #| msgid "using-declaration for non-member at class scope"
  msgid "import declared in global module"
! msgstr "在类作用域使用非成员的 using 声明"
  
  #: cp/module.cc:21967
! #, fuzzy, gcc-internal-format
  msgid "conflicting declaration of %qD in module %qs"
! msgstr "相互冲突的声明%q#D"
  
  #: cp/module.cc:21970
! #, fuzzy, gcc-internal-format
  msgid "conflicting declaration of %qD in global module"
! msgstr "%q+D声明为没有外部链接的，之前却有外部声明"
  
  #: cp/module.cc:21975
! #, fuzzy, gcc-internal-format
! #| msgid "previously declared here"
  msgid "previously declared in module %qs"
! msgstr "以前在此声明过"
  
  #: cp/module.cc:21979
! #, fuzzy, gcc-internal-format
! #| msgid "previously declared here"
  msgid "previously declared in global module"
! msgstr "以前在此声明过"
  
  #: cp/module.cc:22118
  #, gcc-internal-format
  msgid "external linkage definition of %qD in header module must be declared %<inline%>"
! msgstr ""
  
  #: cp/module.cc:22133
! #, fuzzy, gcc-internal-format
  msgid "exporting declaration %qD declared in unnamed namespace"
! msgstr "不允许在 using 声明中使用命名空间%qD"
  
  #: cp/module.cc:22140
! #, fuzzy, gcc-internal-format
! #| msgid "redeclaration of %q+D with no linkage"
  msgid "exporting declaration %qD with internal linkage"
! msgstr "%q+D重声明为没有外部链接"
  
  #: cp/module.cc:22403
! #, fuzzy, gcc-internal-format
! #| msgid "Creating '%s'\n"
  msgid "reading CMI %qs"
! msgstr "正在创建 '%s'\n"
  
  #: cp/module.cc:22590
  #, gcc-internal-format
  msgid "failed to load binding %<%E%s%E%>"
! msgstr ""
  
  #: cp/module.cc:22591
  #, gcc-internal-format
  msgid "failed to load binding %<%E%s%E@%s%>"
! msgstr ""
  
  #: cp/module.cc:22598
  #, gcc-internal-format
  msgid "during load of binding %<%E%s%E%>"
! msgstr ""
  
  #: cp/module.cc:22599
  #, gcc-internal-format
  msgid "during load of binding %<%E%s%E@%s%>"
! msgstr ""
  
  #: cp/module.cc:22661
  #, gcc-internal-format
  msgid "failed to load pendings for %<%E%s%E%>"
! msgstr ""
  
  #: cp/module.cc:22665
! #, fuzzy, gcc-internal-format
  msgid "during load of pendings for %<%E%s%E%>"
! msgstr "未知的选项：%s %s %s"
  
  #: cp/module.cc:22713
! #, fuzzy, gcc-internal-format
! #| msgid "method definition not in @implementation context"
  msgid "import of %qs within its own implementation unit"
! msgstr "方法定义不在 @implementation 上下文中"
  
  #: cp/module.cc:22715
! #, fuzzy, gcc-internal-format
! #| msgid "module %qs declared here"
  msgid "module declared here"
! msgstr "模组%qs在此声明"
  
  #. Only header units should appear inside language
  #. specifications.  The std doesn't specify this, but I think
--- 67898,68011 ----
  msgstr ""
  
  #: cp/module.cc:21940
! #, gcc-internal-format
  msgid "declaring %qD in module %qs conflicts with builtin in global module"
! msgstr "在模块 %2$qs 中声明 %1$qD 与全局模块中的内建声明冲突"
  
  #: cp/module.cc:21943
! #, gcc-internal-format
  msgid "declaration %qD conflicts with builtin"
! msgstr "声明 %qD 与内建声明冲突"
  
  #: cp/module.cc:21949
! #, gcc-internal-format
  msgid "redeclaring %qD in module %qs conflicts with import"
! msgstr "在模块 %2$qs 中重声明 %1$qD 与导入冲突"
  
  #: cp/module.cc:21952
! #, gcc-internal-format
  msgid "redeclaring %qD in global module conflicts with import"
! msgstr "在全局模块中重声明 %qD 与导入冲突"
  
  #: cp/module.cc:21957
! #, gcc-internal-format
  msgid "import declared attached to module %qs"
! msgstr "导入声明附着于模块 %qs"
  
  #: cp/module.cc:21961
! #, gcc-internal-format
  msgid "import declared in global module"
! msgstr "导入声明在全局模块中"
  
  #: cp/module.cc:21967
! #, gcc-internal-format
  msgid "conflicting declaration of %qD in module %qs"
! msgstr "在模块 %2$qs 中 %1$qD 的声明冲突"
  
  #: cp/module.cc:21970
! #, gcc-internal-format
  msgid "conflicting declaration of %qD in global module"
! msgstr "在全局模块中 %qD 的声明冲突"
  
  #: cp/module.cc:21975
! #, gcc-internal-format
  msgid "previously declared in module %qs"
! msgstr "先前在模块 %qs 中声明"
  
  #: cp/module.cc:21979
! #, gcc-internal-format
  msgid "previously declared in global module"
! msgstr "先前在全局模块中声明"
  
  #: cp/module.cc:22118
  #, gcc-internal-format
  msgid "external linkage definition of %qD in header module must be declared %<inline%>"
! msgstr "头文件模块中 %qD 的外部链接定义必须声明为 %<inline%>"
  
  #: cp/module.cc:22133
! #, gcc-internal-format
  msgid "exporting declaration %qD declared in unnamed namespace"
! msgstr "导出在未命名命名空间中声明的声明 %qD"
  
  #: cp/module.cc:22140
! #, gcc-internal-format
  msgid "exporting declaration %qD with internal linkage"
! msgstr "导出具有内部链接的声明 %qD"
  
  #: cp/module.cc:22403
! #, gcc-internal-format
  msgid "reading CMI %qs"
! msgstr "正在读取 CMI %qs"
  
  #: cp/module.cc:22590
  #, gcc-internal-format
  msgid "failed to load binding %<%E%s%E%>"
! msgstr "加载绑定 %<%E%s%E%> 失败"
  
  #: cp/module.cc:22591
  #, gcc-internal-format
  msgid "failed to load binding %<%E%s%E@%s%>"
! msgstr "加载绑定 %<%E%s%E@%s%> 失败"
  
  #: cp/module.cc:22598
  #, gcc-internal-format
  msgid "during load of binding %<%E%s%E%>"
! msgstr "在加载绑定 %<%E%s%E%> 期间"
  
  #: cp/module.cc:22599
  #, gcc-internal-format
  msgid "during load of binding %<%E%s%E@%s%>"
! msgstr "在加载绑定 %<%E%s%E@%s%> 期间"
  
  #: cp/module.cc:22661
  #, gcc-internal-format
  msgid "failed to load pendings for %<%E%s%E%>"
! msgstr "加载 %<%E%s%E%> 的待处理项失败"
  
  #: cp/module.cc:22665
! #, gcc-internal-format
  msgid "during load of pendings for %<%E%s%E%>"
! msgstr "在加载 %<%E%s%E%> 的待处理项期间"
  
  #: cp/module.cc:22713
! #, gcc-internal-format
  msgid "import of %qs within its own implementation unit"
! msgstr "在其自身实现单元内导入 %qs"
  
  #: cp/module.cc:22715
! #, gcc-internal-format
  msgid "module declared here"
! msgstr "模块在此声明"
  
  #. Only header units should appear inside language
  #. specifications.  The std doesn't specify this, but I think
*************** msgstr "模组%qs在此声明"
*** 68160,68213 ****
  #: cp/module.cc:22730
  #, gcc-internal-format
  msgid "import of named module %qs inside language-linkage block"
! msgstr ""
  
  #: cp/module.cc:22761 cp/module.cc:23299
! #, fuzzy, gcc-internal-format
  msgid "module already declared"
! msgstr "`%.*s' 已被定义为对照符号"
  
  #: cp/module.cc:22762 cp/module.cc:23300
! #, fuzzy, gcc-internal-format
! #| msgid "module procedure"
  msgid "module already imported"
! msgstr "模块过程"
  
  #: cp/module.cc:22767
! #, fuzzy, gcc-internal-format
! #| msgid "module procedure"
  msgid "module %qs imported here"
! msgstr "模块过程"
  
  #: cp/module.cc:22975
! #, fuzzy, gcc-internal-format
  msgid "mismatching compiled module interface: had %qs, got %qs"
! msgstr "PRINT_OPERAND：未知的标点‘%c’"
  
  #: cp/module.cc:22981
! #, fuzzy, gcc-internal-format, gfc-internal-format
  msgid "unknown compiled module interface: %s"
! msgstr "PRINT_OPERAND：未知的标点‘%c’"
  
  #: cp/module.cc:23085
  #, gcc-internal-format
  msgid "cannot determine %<#include%> translation of %s: %s"
! msgstr ""
  
  #: cp/module.cc:23125
  #, gcc-internal-format
  msgid "include %qs translated to import"
! msgstr ""
  
  #: cp/module.cc:23127
  #, gcc-internal-format
  msgid "import of %qs failed, falling back to include"
! msgstr ""
  
  #: cp/module.cc:23128
  #, gcc-internal-format
  msgid "include %qs processed textually"
! msgstr ""
  
  #: cp/module.cc:23507
  #, gcc-internal-format
--- 68017,68068 ----
  #: cp/module.cc:22730
  #, gcc-internal-format
  msgid "import of named module %qs inside language-linkage block"
! msgstr "在语言链接块内导入命名模块 %qs"
  
  #: cp/module.cc:22761 cp/module.cc:23299
! #, gcc-internal-format
  msgid "module already declared"
! msgstr "模块已声明"
  
  #: cp/module.cc:22762 cp/module.cc:23300
! #, gcc-internal-format
  msgid "module already imported"
! msgstr "模块已导入"
  
  #: cp/module.cc:22767
! #, gcc-internal-format
  msgid "module %qs imported here"
! msgstr "模块 %qs 在此导入"
  
  #: cp/module.cc:22975
! #, gcc-internal-format
  msgid "mismatching compiled module interface: had %qs, got %qs"
! msgstr "已编译模块接口不匹配：原为 %qs，得到 %qs"
  
  #: cp/module.cc:22981
! #, gcc-internal-format, gfc-internal-format
  msgid "unknown compiled module interface: %s"
! msgstr "未知的已编译模块接口：%s"
  
  #: cp/module.cc:23085
  #, gcc-internal-format
  msgid "cannot determine %<#include%> translation of %s: %s"
! msgstr "无法确定 %s 的 %<#include%> 转换：%s"
  
  #: cp/module.cc:23125
  #, gcc-internal-format
  msgid "include %qs translated to import"
! msgstr "include %qs 转换为导入"
  
  #: cp/module.cc:23127
  #, gcc-internal-format
  msgid "import of %qs failed, falling back to include"
! msgstr "导入 %qs 失败，回退为 include"
  
  #: cp/module.cc:23128
  #, gcc-internal-format
  msgid "include %qs processed textually"
! msgstr "include %qs 按文本处理"
  
  #: cp/module.cc:23507
  #, gcc-internal-format
*************** msgid "C++ modules are incompatible with
*** 68215,68236 ****
  msgstr "C++ 模块与预编译头文件不兼容"
  
  #: cp/module.cc:23511
! #, fuzzy, gcc-internal-format
! #| msgid "Enable traditional preprocessing."
  msgid "C++ modules are incompatible with traditional preprocessing"
! msgstr "启用传统预处理。"
  
  #: cp/module.cc:23543 cp/module.cc:23572
! #, fuzzy, gcc-internal-format
! #| msgid "invalid --param value %qs"
  msgid "invalid header name %qs"
! msgstr "无效的 --param 值%qs"
  
  #: cp/module.cc:23582
! #, fuzzy, gcc-internal-format
! #| msgid "invalid --param value %qs"
  msgid "invalid module name %qs"
! msgstr "无效的 --param 值%qs"
  
  #: cp/module.cc:23782
  #, gcc-internal-format
--- 68070,68088 ----
  msgstr "C++ 模块与预编译头文件不兼容"
  
  #: cp/module.cc:23511
! #, gcc-internal-format
  msgid "C++ modules are incompatible with traditional preprocessing"
! msgstr "C++ 模块与传统预处理不兼容"
  
  #: cp/module.cc:23543 cp/module.cc:23572
! #, gcc-internal-format
  msgid "invalid header name %qs"
! msgstr "无效的头文件名 %qs"
  
  #: cp/module.cc:23582
! #, gcc-internal-format
  msgid "invalid module name %qs"
! msgstr "无效的模块名 %qs"
  
  #: cp/module.cc:23782
  #, gcc-internal-format
*************** msgid "%<-fmodule-only%> used for non-in
*** 68238,68274 ****
  msgstr "%<-fmodule-only%> 用于非接口"
  
  #: cp/module.cc:23822
! #, fuzzy, gcc-internal-format
! #| msgid "error writing %qs"
  msgid "writing CMI %qs"
! msgstr "写入%qs时错误"
  
  #: cp/module.cc:23837
! #, fuzzy, gcc-internal-format
  msgid "not writing module %qs due to errors in template bodies"
! msgstr "未写入模块文件 %qs 因为错误"
  
  #: cp/module.cc:23840
  #, gcc-internal-format
  msgid "enable %<-Wtemplate-body%> for more details"
! msgstr ""
  
  #: cp/module.cc:23842
! #, fuzzy, gcc-internal-format
! #| msgid "%qD declared here"
  msgid "first error in %qD appeared here"
! msgstr "%qD在此声明"
  
  #: cp/module.cc:23906
! #, fuzzy, gcc-internal-format, gfc-internal-format
! #| msgid "failed to find class '%s'"
  msgid "failed to write compiled module: %s"
! msgstr "找不到类‘%s’"
  
  #: cp/module.cc:24003
! #, fuzzy, gcc-internal-format
  msgid "unknown header kind %qs"
! msgstr "spec 函数名格式错误"
  
  #: cp/name-lookup.cc:1313
  #, gcc-internal-format
--- 68090,68123 ----
  msgstr "%<-fmodule-only%> 用于非接口"
  
  #: cp/module.cc:23822
! #, gcc-internal-format
  msgid "writing CMI %qs"
! msgstr "正在写入 CMI %qs"
  
  #: cp/module.cc:23837
! #, gcc-internal-format
  msgid "not writing module %qs due to errors in template bodies"
! msgstr "由于模板体中的错误，未写入模块 %qs"
  
  #: cp/module.cc:23840
  #, gcc-internal-format
  msgid "enable %<-Wtemplate-body%> for more details"
! msgstr "启用 %<-Wtemplate-body%> 以获取更多详情"
  
  #: cp/module.cc:23842
! #, gcc-internal-format
  msgid "first error in %qD appeared here"
! msgstr "%qD 中的首个错误出现在此"
  
  #: cp/module.cc:23906
! #, gcc-internal-format, gfc-internal-format
  msgid "failed to write compiled module: %s"
! msgstr "写入已编译模块失败：%s"
  
  #: cp/module.cc:24003
! #, gcc-internal-format
  msgid "unknown header kind %qs"
! msgstr "未知的头文件种类 %qs"
  
  #: cp/name-lookup.cc:1313
  #, gcc-internal-format
*************** msgid "%q#D conflicts with a previous de
*** 68297,68306 ****
  msgstr "%q+D的节与早先的声明冲突"
  
  #: cp/name-lookup.cc:3163
! #, fuzzy, gcc-internal-format
! #| msgid "%q#D hides constructor for %q#T"
  msgid "%q#D hides constructor for %q#D"
! msgstr "%q#D隐藏了%q#T的构造函数"
  
  #: cp/name-lookup.cc:3310
  #, fuzzy, gcc-internal-format
--- 68146,68154 ----
  msgstr "%q+D的节与早先的声明冲突"
  
  #: cp/name-lookup.cc:3163
! #, gcc-internal-format
  msgid "%q#D hides constructor for %q#D"
! msgstr "%q#D隐藏了%q#D的构造函数"
  
  #: cp/name-lookup.cc:3310
  #, fuzzy, gcc-internal-format
*************** msgid "making multiple clones of %qD"
*** 68612,68645 ****
  msgstr "%qD做了多次复本"
  
  #: cp/parser.cc:1168
! #, fuzzy, gcc-internal-format
  msgid "identifier %qE is a keyword in C++11"
! msgstr "标识符%qE与 C++ 关键字冲突"
  
  #: cp/parser.cc:1182
! #, fuzzy, gcc-internal-format
  msgid "identifier %qE is a keyword in C++20"
! msgstr "标识符%qE与 C++ 关键字冲突"
  
  #: cp/parser.cc:1196
! #, fuzzy, gcc-internal-format
  msgid "identifier %qE is a keyword in C++26"
! msgstr "标识符%qE与 C++ 关键字冲突"
  
  #: cp/parser.cc:1746 cp/parser.cc:1759
  #, gcc-internal-format
  msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
! msgstr ""
  
  #: cp/parser.cc:1784 cp/parser.cc:52812
! #, fuzzy, gcc-internal-format
  msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
! msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
  
  #: cp/parser.cc:1824
! #, fuzzy, gcc-internal-format
  msgid "%<declare %s%> directive not immediately followed by function declaration or definition"
! msgstr "%<#pragma align%>必须出现在 %D 的声明之前，忽略"
  
  #: cp/parser.cc:3423
  #, gcc-internal-format
--- 68460,68493 ----
  msgstr "%qD做了多次复本"
  
  #: cp/parser.cc:1168
! #, gcc-internal-format
  msgid "identifier %qE is a keyword in C++11"
! msgstr "标识符%qE是C++11中的关键字"
  
  #: cp/parser.cc:1182
! #, gcc-internal-format
  msgid "identifier %qE is a keyword in C++20"
! msgstr "标识符%qE是C++20中的关键字"
  
  #: cp/parser.cc:1196
! #, gcc-internal-format
  msgid "identifier %qE is a keyword in C++26"
! msgstr "标识符%qE是C++26中的关键字"
  
  #: cp/parser.cc:1746 cp/parser.cc:1759
  #, gcc-internal-format
  msgid "%<LEXER_DEBUGGING_ENABLED_P%> is not set to true"
! msgstr "%<LEXER_DEBUGGING_ENABLED_P%>未设置为true"
  
  #: cp/parser.cc:1784 cp/parser.cc:52812
! #, gcc-internal-format
  msgid "%<#pragma omp declare %s%> not immediately followed by function declaration or definition"
! msgstr "%<#pragma omp declare %s%> 后面未紧跟函数声明或定义"
  
  #: cp/parser.cc:1824
! #, gcc-internal-format
  msgid "%<declare %s%> directive not immediately followed by function declaration or definition"
! msgstr "%<declare %s%> 指令后面未紧跟函数声明或定义"
  
  #: cp/parser.cc:3423
  #, gcc-internal-format
*************** msgid "%<#pragma%> is not allowed here"
*** 68647,68667 ****
  msgstr "在这里不允许使用%<#pragma%>"
  
  #: cp/parser.cc:3431
! #, fuzzy, gcc-internal-format
! #| msgid "expected function"
  msgid "unexpected module directive"
! msgstr "需要函数"
  
  #: cp/parser.cc:3433
  #, gcc-internal-format
  msgid "perhaps insert a line break after %qs, or other disambiguation, to prevent this being considered a module control-line"
! msgstr ""
  
  #: cp/parser.cc:3578
! #, fuzzy, gcc-internal-format
! #| msgid "%<::%D%> has not been declared"
  msgid "%<%E::%E%> has not been declared; did you mean %<%E::%s%>?"
! msgstr "%<::%D%>未被声明"
  
  #: cp/parser.cc:3584
  #, gcc-internal-format
--- 68495,68513 ----
  msgstr "在这里不允许使用%<#pragma%>"
  
  #: cp/parser.cc:3431
! #, gcc-internal-format
  msgid "unexpected module directive"
! msgstr "未预期的模块指令"
  
  #: cp/parser.cc:3433
  #, gcc-internal-format
  msgid "perhaps insert a line break after %qs, or other disambiguation, to prevent this being considered a module control-line"
! msgstr "或许在%qs之后插入一个换行符，或进行其他消歧，以防止这被视为模块控制行"
  
  #: cp/parser.cc:3578
! #, gcc-internal-format
  msgid "%<%E::%E%> has not been declared; did you mean %<%E::%s%>?"
! msgstr "%<%E::%E%>尚未声明；你是说%<%E::%s%>吗？"
  
  #: cp/parser.cc:3584
  #, gcc-internal-format
*************** msgid "%<%T::%E%> has not been declared"
*** 68684,68693 ****
  msgstr "%<%T::%E%>尚未声明"
  
  #: cp/parser.cc:3606
! #, fuzzy, gcc-internal-format
! #| msgid "%<::%D%> has not been declared"
  msgid "%qE has not been declared; did you mean %qs?"
! msgstr "%<::%D%>未被声明"
  
  #: cp/parser.cc:3618
  #, gcc-internal-format
--- 68530,68538 ----
  msgstr "%<%T::%E%>尚未声明"
  
  #: cp/parser.cc:3606
! #, gcc-internal-format
  msgid "%qE has not been declared; did you mean %qs?"
! msgstr "%qE尚未声明；你是说%qs吗？"
  
  #: cp/parser.cc:3618
  #, gcc-internal-format
*************** msgid "(perhaps a semicolon is missing a
*** 68745,68753 ****
  msgstr "(%qT的定义末尾可能缺少一个分号)"
  
  #: cp/parser.cc:3761
! #, fuzzy, gcc-internal-format
  msgid "%qE is not a class template"
! msgstr "需要一个类模板，却给出了%qE"
  
  #: cp/parser.cc:3763 cp/parser.cc:21305
  #, gcc-internal-format
--- 68590,68598 ----
  msgstr "(%qT的定义末尾可能缺少一个分号)"
  
  #: cp/parser.cc:3761
! #, gcc-internal-format
  msgid "%qE is not a class template"
! msgstr "%qE不是一个类模板"
  
  #: cp/parser.cc:3763 cp/parser.cc:21305
  #, gcc-internal-format
*************** msgid "invalid template-id"
*** 68760,68769 ****
  msgstr "无效的模板 ID"
  
  #: cp/parser.cc:3800
! #, fuzzy, gcc-internal-format
! #| msgid "floating-point literal cannot appear in a constant-expression"
  msgid "ISO C++ forbids using a floating-point literal in a constant-expression"
! msgstr "浮点字面量不能出现在常量表达式中"
  
  #: cp/parser.cc:3804
  #, gcc-internal-format
--- 68605,68613 ----
  msgstr "无效的模板 ID"
  
  #: cp/parser.cc:3800
! #, gcc-internal-format
  msgid "ISO C++ forbids using a floating-point literal in a constant-expression"
! msgstr "ISO C++禁止在常量表达式中使用浮点字面量"
  
  #: cp/parser.cc:3804
  #, gcc-internal-format
*************** msgid "a cast to a type other than an in
*** 68771,68784 ****
  msgstr "常量表达式中不能出现目标不是整型或枚举型的类型转换"
  
  #: cp/parser.cc:3809
! #, fuzzy, gcc-internal-format
  msgid "%<typeid%> operator cannot appear in a constant-expression"
! msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3813
! #, fuzzy, gcc-internal-format
  msgid "non-constant compound literals cannot appear in a constant-expression"
! msgstr "%qD不能出现在常量表达式中"
  
  #: cp/parser.cc:3817
  #, gcc-internal-format
--- 68615,68628 ----
  msgstr "常量表达式中不能出现目标不是整型或枚举型的类型转换"
  
  #: cp/parser.cc:3809
! #, gcc-internal-format
  msgid "%<typeid%> operator cannot appear in a constant-expression"
! msgstr "%<typeid%>运算符不能出现在常量表达式中"
  
  #: cp/parser.cc:3813
! #, gcc-internal-format
  msgid "non-constant compound literals cannot appear in a constant-expression"
! msgstr "非常量复合字面值不能出现在常量表达式中"
  
  #: cp/parser.cc:3817
  #, gcc-internal-format
*************** msgid "an increment cannot appear in a c
*** 68791,68845 ****
  msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3825
! #, fuzzy, gcc-internal-format
! #| msgid "an decrement cannot appear in a constant-expression"
  msgid "a decrement cannot appear in a constant-expression"
! msgstr "自减不能出现在常量表达式中"
  
  #: cp/parser.cc:3829
! #, fuzzy, gcc-internal-format
  msgid "an array reference cannot appear in a constant-expression"
! msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3833
! #, fuzzy, gcc-internal-format
  msgid "the address of a label cannot appear in a constant-expression"
! msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3837
! #, fuzzy, gcc-internal-format
  msgid "calls to overloaded operators cannot appear in a constant-expression"
! msgstr "%qD不能出现在常量表达式中"
  
  #: cp/parser.cc:3841
! #, fuzzy, gcc-internal-format
  msgid "an assignment cannot appear in a constant-expression"
! msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3844
! #, fuzzy, gcc-internal-format
  msgid "a comma operator cannot appear in a constant-expression"
! msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3848
! #, fuzzy, gcc-internal-format
  msgid "a call to a constructor cannot appear in a constant-expression"
! msgstr "函数调用不能出现在常量表达式中"
  
  #: cp/parser.cc:3852
! #, fuzzy, gcc-internal-format
  msgid "a transaction expression cannot appear in a constant-expression"
! msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3898
! #, fuzzy, gcc-internal-format
  msgid "%qs cannot appear in a constant-expression"
! msgstr "自减不能出现在常量表达式中"
  
  #: cp/parser.cc:3935
! #, fuzzy, gcc-internal-format
  msgid "class template argument deduction is only available with %<-std=c++17%> or %<-std=gnu++17%>"
! msgstr "可变参数模板只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:3940
  #, gcc-internal-format
--- 68635,68688 ----
  msgstr "自增不能出现在常量表达式中"
  
  #: cp/parser.cc:3825
! #, gcc-internal-format
  msgid "a decrement cannot appear in a constant-expression"
! msgstr "常量表达式中不能出现递减操作"
  
  #: cp/parser.cc:3829
! #, gcc-internal-format
  msgid "an array reference cannot appear in a constant-expression"
! msgstr "数组引用不能出现在常量表达式中"
  
  #: cp/parser.cc:3833
! #, gcc-internal-format
  msgid "the address of a label cannot appear in a constant-expression"
! msgstr "标签的地址不能出现在常量表达式中"
  
  #: cp/parser.cc:3837
! #, gcc-internal-format
  msgid "calls to overloaded operators cannot appear in a constant-expression"
! msgstr "对重载运算符的调用不能出现在常量表达式中"
  
  #: cp/parser.cc:3841
! #, gcc-internal-format
  msgid "an assignment cannot appear in a constant-expression"
! msgstr "赋值不能出现在常量表达式中"
  
  #: cp/parser.cc:3844
! #, gcc-internal-format
  msgid "a comma operator cannot appear in a constant-expression"
! msgstr "逗号运算符不能出现在常量表达式中"
  
  #: cp/parser.cc:3848
! #, gcc-internal-format
  msgid "a call to a constructor cannot appear in a constant-expression"
! msgstr "对构造函数的调用不能出现在常量表达式中"
  
  #: cp/parser.cc:3852
! #, gcc-internal-format
  msgid "a transaction expression cannot appear in a constant-expression"
! msgstr "事务表达式不能出现在常量表达式中"
  
  #: cp/parser.cc:3898
! #, gcc-internal-format
  msgid "%qs cannot appear in a constant-expression"
! msgstr "%qs不能出现在常量表达式中"
  
  #: cp/parser.cc:3935
! #, gcc-internal-format
  msgid "class template argument deduction is only available with %<-std=c++17%> or %<-std=gnu++17%>"
! msgstr "类模板参数推导仅在%<-std=c++17%>或%<-std=gnu++17%>下可用"
  
  #: cp/parser.cc:3940
  #, gcc-internal-format
*************** msgid "invalid combination of multiple t
*** 68853,68862 ****
  msgstr "无效的类型限定符组合"
  
  #: cp/parser.cc:3956
! #, fuzzy, gcc-internal-format
! #| msgid "%qE does not name a type"
  msgid "%qE does not name a type; did you mean %qs?"
! msgstr "%qE不是一个类型名"
  
  #: cp/parser.cc:3960
  #, gcc-internal-format
--- 68696,68704 ----
  msgstr "无效的类型限定符组合"
  
  #: cp/parser.cc:3956
! #, gcc-internal-format
  msgid "%qE does not name a type; did you mean %qs?"
! msgstr "%qE不是一个类型名；你是说%qs吗？"
  
  #: cp/parser.cc:3960
  #, gcc-internal-format
*************** msgid "%qE does not name a type"
*** 68864,68909 ****
  msgstr "%qE不是一个类型名"
  
  #: cp/parser.cc:3969
! #, fuzzy, gcc-internal-format
  msgid "C++11 %<constexpr%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
! msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:3972
! #, fuzzy, gcc-internal-format
  msgid "C++11 %<noexcept%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
! msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:3978
! #, fuzzy, gcc-internal-format
! #| msgid "%qE is an unrecognized format function type"
  msgid "%qE is not recognized as a module control-line"
! msgstr "%qE是一个无法识别的格式字符串函数类型"
  
  #: cp/parser.cc:3981
! #, fuzzy, gcc-internal-format
  msgid "C++20 %qE only available with %<-fmodules%>"
! msgstr "带作用域的枚举只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:3984
! #, fuzzy, gcc-internal-format
! #| msgid "C++20 %qE only available with %<-fmodules-ts%>, which is not yet enabled with %<-std=c++20%>"
  msgid "C++20 %qE only available with %<-fmodules%>, which is not yet enabled with %<-std=c++20%>"
! msgstr "C++20 %qE 仅在 %<-fmodules-ts%> 下可用，但目前尚未通过 %<-std=c++20%> 启用"
  
  #: cp/parser.cc:3990
! #, fuzzy, gcc-internal-format
  msgid "C++11 %<thread_local%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
! msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:3993
! #, fuzzy, gcc-internal-format
  msgid "C++20 %<constinit%> only available with %<-std=c++20%> or %<-std=gnu++20%>"
! msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:3996
! #, fuzzy, gcc-internal-format
  msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
! msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:4021
  #, gcc-internal-format
--- 68706,68749 ----
  msgstr "%qE不是一个类型名"
  
  #: cp/parser.cc:3969
! #, gcc-internal-format
  msgid "C++11 %<constexpr%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
! msgstr "C++11 %<constexpr%>仅在使用%<-std=c++11%>或%<-std=gnu++11%>时可用"
  
  #: cp/parser.cc:3972
! #, gcc-internal-format
  msgid "C++11 %<noexcept%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
! msgstr "C++11 %<noexcept%>仅在使用%<-std=c++11%>或%<-std=gnu++11%>时可用"
  
  #: cp/parser.cc:3978
! #, gcc-internal-format
  msgid "%qE is not recognized as a module control-line"
! msgstr "%qE未被识别为模块控制行"
  
  #: cp/parser.cc:3981
! #, gcc-internal-format
  msgid "C++20 %qE only available with %<-fmodules%>"
! msgstr "C++20 %qE仅在使用%<-fmodules%>时可用"
  
  #: cp/parser.cc:3984
! #, gcc-internal-format
  msgid "C++20 %qE only available with %<-fmodules%>, which is not yet enabled with %<-std=c++20%>"
! msgstr "C++20 %qE仅在使用%<-fmodules%>时可用，而%<-std=c++20%>尚未启用"
  
  #: cp/parser.cc:3990
! #, gcc-internal-format
  msgid "C++11 %<thread_local%> only available with %<-std=c++11%> or %<-std=gnu++11%>"
! msgstr "C++11 %<thread_local%>仅在使用%<-std=c++11%>或%<-std=gnu++11%>时可用"
  
  #: cp/parser.cc:3993
! #, gcc-internal-format
  msgid "C++20 %<constinit%> only available with %<-std=c++20%> or %<-std=gnu++20%>"
! msgstr "C++20 %<constinit%>仅在使用%<-std=c++20%>或%<-std=gnu++20%>时可用"
  
  #: cp/parser.cc:3996
! #, gcc-internal-format
  msgid "%<concept%> only available with %<-std=c++20%> or %<-fconcepts%>"
! msgstr "%<concept%>仅在使用%<-std=c++20%>或%<-fconcepts%>时可用"
  
  #: cp/parser.cc:4021
  #, gcc-internal-format
*************** msgid "(perhaps %<typename %T::%E%> was
*** 68911,68930 ****
  msgstr "(也许您本意是想用%<typename %T::%E%>)"
  
  #: cp/parser.cc:4049 cp/parser.cc:4061
! #, fuzzy, gcc-internal-format
  msgid "%qE in namespace %qE does not name a template type; did you mean %qs?"
! msgstr "%qE不是命名空间%qE中的一个类型名"
  
  #: cp/parser.cc:4054 cp/parser.cc:4066
! #, fuzzy, gcc-internal-format
  msgid "%qE in namespace %qE does not name a template type"
! msgstr "%qE不是命名空间%qE中的一个类型名"
  
  #: cp/parser.cc:4074
! #, fuzzy, gcc-internal-format
! #| msgid "%qE in namespace %qE does not name a type"
  msgid "%qE in namespace %qE does not name a type; did you mean %qs?"
! msgstr "%qE不是命名空间%qE中的一个类型名"
  
  #: cp/parser.cc:4079
  #, gcc-internal-format
--- 68751,68769 ----
  msgstr "(也许您本意是想用%<typename %T::%E%>)"
  
  #: cp/parser.cc:4049 cp/parser.cc:4061
! #, gcc-internal-format
  msgid "%qE in namespace %qE does not name a template type; did you mean %qs?"
! msgstr "%qE在命名空间%qE中不是一个模板类型名；你是说%qs吗？"
  
  #: cp/parser.cc:4054 cp/parser.cc:4066
! #, gcc-internal-format
  msgid "%qE in namespace %qE does not name a template type"
! msgstr "%qE在命名空间%qE中不是一个模板类型名"
  
  #: cp/parser.cc:4074
! #, gcc-internal-format
  msgid "%qE in namespace %qE does not name a type; did you mean %qs?"
! msgstr "%qE在命名空间%qE中不是一个类型名；你是说%qs吗？"
  
  #: cp/parser.cc:4079
  #, gcc-internal-format
*************** msgid "and %qT has no template construct
*** 68942,68951 ****
  msgstr "且%qT没有模板构造函数"
  
  #: cp/parser.cc:4103
! #, fuzzy, gcc-internal-format
! #| msgid "need %<typename%> before %<%T::%E%> because %qT is a dependent scope"
  msgid "need %<typename%> before %<%T::%D::%E%> because %<%T::%D%> is a dependent scope"
! msgstr "%<%T::%E%>之前需要%<typename%>，因为%qT是一个有依赖的作用域"
  
  #: cp/parser.cc:4111
  #, gcc-internal-format
--- 68781,68789 ----
  msgstr "且%qT没有模板构造函数"
  
  #: cp/parser.cc:4103
! #, gcc-internal-format
  msgid "need %<typename%> before %<%T::%D::%E%> because %<%T::%D%> is a dependent scope"
! msgstr "在%<%T::%D::%E%>前需要%<typename%>因为%<%T::%D%>是依赖作用域"
  
  #: cp/parser.cc:4111
  #, gcc-internal-format
*************** msgid "need %<typename%> before %<%T::%E
*** 68953,68966 ****
  msgstr "%<%T::%E%>之前需要%<typename%>，因为%qT是一个有依赖的作用域"
  
  #: cp/parser.cc:4124 cp/parser.cc:4128
! #, fuzzy, gcc-internal-format
  msgid "%qE in %q#T does not name a template type"
! msgstr "%qE不是类%qT中的一个类型名"
  
  #: cp/parser.cc:4132
! #, fuzzy, gcc-internal-format
  msgid "%qE in %q#T does not name a type"
! msgstr "%qE不是一个类型名"
  
  #: cp/parser.cc:4887
  #, gcc-internal-format
--- 68791,68804 ----
  msgstr "%<%T::%E%>之前需要%<typename%>，因为%qT是一个有依赖的作用域"
  
  #: cp/parser.cc:4124 cp/parser.cc:4128
! #, gcc-internal-format
  msgid "%qE in %q#T does not name a template type"
! msgstr "%qE在%q#T中不是一个模板类型名"
  
  #: cp/parser.cc:4132
! #, gcc-internal-format
  msgid "%qE in %q#T does not name a type"
! msgstr "%qE在%q#T中不是一个类型名"
  
  #: cp/parser.cc:4887
  #, gcc-internal-format
*************** msgid "global module fragment contents m
*** 69033,69042 ****
  msgstr ""
  
  #: cp/parser.cc:5978 cp/parser.cc:5994
! #, fuzzy, gcc-internal-format
! #| msgid "expected operator"
  msgid "expected binary operator"
! msgstr "需要操作符"
  
  #: cp/parser.cc:6000
  #, gcc-internal-format
--- 68871,68879 ----
  msgstr ""
  
  #: cp/parser.cc:5978 cp/parser.cc:5994
! #, gcc-internal-format
  msgid "expected binary operator"
! msgstr "需要二元操作符"
  
  #: cp/parser.cc:6000
  #, gcc-internal-format
*************** msgid "pack index missing"
*** 69070,69090 ****
  msgstr ""
  
  #: cp/parser.cc:6151 cp/parser.cc:10115
! #, fuzzy, gcc-internal-format
  msgid "reflection is only available with %<-freflection%>"
! msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:6261
! #, fuzzy, gcc-internal-format
! #| msgid "expected function"
  msgid "expected a reflection of a type"
! msgstr "需要函数"
  
  #: cp/parser.cc:6341
! #, fuzzy, gcc-internal-format
! #| msgid "Expected structure component name at %C"
  msgid "expected a reflection of a function template"
! msgstr "%C处需要结构组件名"
  
  #: cp/parser.cc:6439
  #, gcc-internal-format
--- 68907,68925 ----
  msgstr ""
  
  #: cp/parser.cc:6151 cp/parser.cc:10115
! #, gcc-internal-format
  msgid "reflection is only available with %<-freflection%>"
! msgstr "反射仅在启用 %<-freflection%> 选项时可用"
  
  #: cp/parser.cc:6261
! #, gcc-internal-format
  msgid "expected a reflection of a type"
! msgstr "需要类型的反射"
  
  #: cp/parser.cc:6341
! #, gcc-internal-format
  msgid "expected a reflection of a function template"
! msgstr "需要函数模板的反射"
  
  #: cp/parser.cc:6439
  #, gcc-internal-format
*************** msgid "%<template%> may only be omitted
*** 69103,69112 ****
  msgstr ""
  
  #: cp/parser.cc:6463
! #, fuzzy, gcc-internal-format
! #| msgid "%qE is not a class, namespace, or enumeration"
  msgid "expected a reflection of a class, namespace, or enumeration"
! msgstr "%qE不是一个类、命名空间或枚举"
  
  #: cp/parser.cc:6624
  #, gcc-internal-format
--- 68938,68946 ----
  msgstr ""
  
  #: cp/parser.cc:6463
! #, gcc-internal-format
  msgid "expected a reflection of a class, namespace, or enumeration"
! msgstr "需要类、命名空间或枚举的反射"
  
  #: cp/parser.cc:6624
  #, gcc-internal-format
*************** msgstr "Lambda 表达式只在 -std=c++0
*** 69131,69137 ****
  #: cp/parser.cc:6832 cp/parser.cc:7003 cp/parser.cc:7202 cp/semantics.cc:4857
  #, gcc-internal-format
  msgid "expected primary-expression"
! msgstr "需要元表达式"
  
  #: cp/parser.cc:6865
  #, gcc-internal-format
--- 68965,68971 ----
  #: cp/parser.cc:6832 cp/parser.cc:7003 cp/parser.cc:7202 cp/semantics.cc:4857
  #, gcc-internal-format
  msgid "expected primary-expression"
! msgstr "需要 primary-expression"
  
  #: cp/parser.cc:6865
  #, gcc-internal-format
*************** msgid "local variable %qD may not appear
*** 69155,69163 ****
  msgstr "局部变量%qD不应出现在此上下文中"
  
  #: cp/parser.cc:7194
! #, fuzzy, gcc-internal-format
  msgid "reflection is only available in C++26 with %<-freflection%>"
! msgstr "C++0x %<constexpr%>只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:7231
  #, gcc-internal-format
--- 68989,68997 ----
  msgstr "局部变量%qD不应出现在此上下文中"
  
  #: cp/parser.cc:7194
! #, gcc-internal-format
  msgid "reflection is only available in C++26 with %<-freflection%>"
! msgstr "反射仅在 C++26 下启用 %<-freflection%> 时可用"
  
  #: cp/parser.cc:7231
  #, gcc-internal-format
*************** msgid "expected %qs keyword before depen
*** 69165,69173 ****
  msgstr ""
  
  #: cp/parser.cc:7375
! #, fuzzy, gcc-internal-format
  msgid "expected id-expression"
! msgstr "? 预期于运算式中"
  
  #: cp/parser.cc:7540
  #, gcc-internal-format
--- 68999,69007 ----
  msgstr ""
  
  #: cp/parser.cc:7375
! #, gcc-internal-format
  msgid "expected id-expression"
! msgstr "需要标识符表达式"
  
  #: cp/parser.cc:7540
  #, gcc-internal-format
*************** msgid "%<template%> keyword not permitte
*** 69180,69188 ****
  msgstr "形参声明为%<auto%>"
  
  #: cp/parser.cc:7587 cp/parser.cc:9966
! #, fuzzy, gcc-internal-format
  msgid "%<~auto%> only available with %<-std=c++14%> or %<-std=gnu++14%>"
! msgstr "C++0x auto 只在 -std=c++0x 或 -std=gnu++0x 下可用"
  
  #: cp/parser.cc:7601 cp/parser.cc:7605
  #, fuzzy, gcc-internal-format
--- 69014,69022 ----
  msgstr "形参声明为%<auto%>"
  
  #: cp/parser.cc:7587 cp/parser.cc:9966
! #, gcc-internal-format
  msgid "%<~auto%> only available with %<-std=c++14%> or %<-std=gnu++14%>"
! msgstr "%<~auto%> 仅在 %<-std=c++14%> 或 %<-std=gnu++14%> 下可用"
  
  #: cp/parser.cc:7601 cp/parser.cc:7605
  #, fuzzy, gcc-internal-format
*************** msgid "template-id not allowed for destr
*** 69191,69200 ****
  msgstr "关键字%<typename%>不能在模板以外使用"
  
  #: cp/parser.cc:7607 cp/parser.cc:35946
! #, fuzzy, gcc-internal-format
! #| msgid "Expected left parenthesis"
  msgid "remove the %qs"
! msgstr "需要左圆括号"
  
  #: cp/parser.cc:7729
  #, gcc-internal-format
--- 69025,69033 ----
  msgstr "关键字%<typename%>不能在模板以外使用"
  
  #: cp/parser.cc:7607 cp/parser.cc:35946
! #, gcc-internal-format
  msgid "remove the %qs"
! msgstr "移除 %qs"
  
  #: cp/parser.cc:7729
  #, gcc-internal-format
*************** msgid "typedef-name %qD used as destruct
*** 69207,69215 ****
  msgstr "typedef 名%qD用于析构函数声明"
  
  #: cp/parser.cc:7787 cp/parser.cc:26949
! #, fuzzy, gcc-internal-format
  msgid "expected unqualified-id"
! msgstr "需要模板 ID"
  
  #: cp/parser.cc:7814 cp/typeck.cc:3304 cp/typeck.cc:3307 cp/typeck.cc:3324
  #, gcc-internal-format
--- 69040,69048 ----
  msgstr "typedef 名%qD用于析构函数声明"
  
  #: cp/parser.cc:7787 cp/parser.cc:26949
! #, gcc-internal-format
  msgid "expected unqualified-id"
! msgstr "需要非限定标识符"
  
  #: cp/parser.cc:7814 cp/typeck.cc:3304 cp/typeck.cc:3307 cp/typeck.cc:3324
  #, gcc-internal-format
*************** msgid "variable template-id %qD in neste
*** 69242,69250 ****
  msgstr "%C 期待访问指定符"
  
  #: cp/parser.cc:8242
! #, fuzzy, gcc-internal-format
  msgid "expected nested-name-specifier"
! msgstr "typedef 名不能是嵌套名指定"
  
  #: cp/parser.cc:8473 cp/parser.cc:11405
  #, gcc-internal-format
--- 69075,69083 ----
  msgstr "%C 期待访问指定符"
  
  #: cp/parser.cc:8242
! #, gcc-internal-format
  msgid "expected nested-name-specifier"
! msgstr "需要嵌套名称说明符(nested-name-specifier)"
  
  #: cp/parser.cc:8473 cp/parser.cc:11405
  #, gcc-internal-format
diff -Nrcpad gcc-16-20260405/gcc/regenerate-opt-urls.py gcc-16-20260412/gcc/regenerate-opt-urls.py
*** gcc-16-20260405/gcc/regenerate-opt-urls.py	Sun Apr  5 22:32:08 2026
--- gcc-16-20260412/gcc/regenerate-opt-urls.py	Sun Apr 12 22:32:08 2026
*************** import unittest
*** 46,51 ****
--- 46,57 ----
  def canonicalize_option_name(option_name):
      if option_name.endswith('='):
          option_name = option_name[0:-1]
+     # Options starting with two dashes are listed with one dash in the
+     # .opt file, plus we have already added the implicit dash to option_name.
+     # But the index entries have zero dashes, so we have to remove one of the
+     # dashes again to match them.
+     if option_name[:2] == '--':
+         option_name = option_name[1:]
      return option_name
  
  
*************** class TestParsingIndex(unittest.TestCase
*** 175,180 ****
--- 181,188 ----
                           {'gcc/Optimize-Options.html#index-O0'})
          self.assertEqual(index.get_url_suffixes('-Wframe-larger-than='),
                           {'gcc/Warning-Options.html#index-Wframe-larger-than_003d'})
+         self.assertEqual(index.get_url_suffixes('--static-pie'),
+                          {'gcc/Link-Options.html#index-static-pie'})
  
          # Check an option with duplicates: '-march'
          # The url_suffixes will be of the form
diff -Nrcpad gcc-16-20260405/gcc/testsuite/ChangeLog gcc-16-20260412/gcc/testsuite/ChangeLog
*** gcc-16-20260405/gcc/testsuite/ChangeLog	Sun Apr  5 22:32:08 2026
--- gcc-16-20260412/gcc/testsuite/ChangeLog	Sun Apr 12 22:32:08 2026
***************
*** 1,3 ****
--- 1,374 ----
+ 2026-04-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/93554
+ 	* gfortran.dg/goacc/pr93554.f90: New test.
+ 
+ 2026-04-11  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/93814
+ 	* gfortran.dg/pr93814.f90: New test.
+ 
+ 2026-04-11  Harald Anlauf  <anlauf@gmx.de>
+ 	    Mikael Morin  <mikael@gcc.gnu.org>
+ 
+ 	PR fortran/120140
+ 	* gfortran.dg/defined_assignment_13.f90: New test.
+ 
+ 2026-04-11  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR testsuite/124849
+ 	* lib/profopt.exp (profopt-execute): Pass --no-pager to perf.
+ 
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124844
+ 	* g++.dg/reflect/type_trait14.C (NLType::~NLType): Move definition out
+ 	of the class.
+ 
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124831
+ 	* g++.dg/reflect/members_of13.C: New test.
+ 
+ 2026-04-10  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/94978
+ 	* gfortran.dg/pr94978.f90: New test.
+ 
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/124827
+ 	* gcc.dg/tsan/atomic-invalid.c: New test.
+ 
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR lto/124828
+ 	* g++.dg/lto/20091022-2_0.C (_GLIBCXX_SYSHDR): Define before including
+ 	<string>.
+ 
+ 2026-04-10  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124792
+ 	* g++.dg/reflect/pr124792.C: New test.
+ 
+ 2026-04-10  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* g++.dg/reflect/range_args.C: Replace views::to_input with
+ 	views::as_input.
+ 
+ 2026-04-10  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	* gcc.target/riscv/predef-__riscv_v_intrinsic.c: Update expected
+ 	__riscv_v_intrinsic value.
+ 	* gcc.target/riscv/rvv/base/pr114017-1.c: Update version check and
+ 	expected warning text to v1.0.
+ 
+ 2026-04-09  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/123998
+ 	* g++.dg/reflect/crash11.C: Adjust dg-error.
+ 	* g++.dg/reflect/splice5.C: Likewise.
+ 
+ 2026-04-09  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/103367
+ 	* gfortran.dg/pr103367.f90: Expect a constant-expression error and
+ 	prune the legacy-extension warning.
+ 
+ 2026-04-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR testsuite/113276
+ 	* gcc.dg/torture/fp-double-convert-float-1.c: Xfail test for arm*
+ 	unless single- and double-precision FP.
+ 	* lib/target-supports.exp (check_effective_target_arm_mixed_fp):
+ 	New function.
+ 
+ 2026-04-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	PR testsuite/124326
+ 	* g++.dg/coroutines/pr110872.C (dg-ice): Add arm*-*-*.
+ 
+ 2026-04-09  Dhruv Chawla  <dhruvc@nvidia.com>
+ 
+ 	* lib/profopt.exp (profopt-execute): Add support for profiler type
+ 	detection.
+ 
+ 2026-04-09  Christoph Müllner  <christoph.muellner@vrull.eu>
+ 
+ 	PR target/124818
+ 	* gcc.target/riscv/pr124818.c: New test.
+ 
+ 2026-04-09  Tamar Christina  <tamar.christina@arm.com>
+ 
+ 	* gcc.target/aarch64/sve/cost_model_16.c: Updated.
+ 	* gcc.target/aarch64/sve/cost_model_19.c: New test.
+ 
+ 2026-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* gcc.target/i386/pr124759.c (dg-do): Restrict to Linux.
+ 
+ 2026-04-09  Xi Ruoyao  <xry111@xry111.site>
+ 
+ 	PR target/105192
+ 	* gcc.c-torture/compile/pr105192.c: New test.
+ 
+ 2026-04-08  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/96986
+ 	* gfortran.dg/pr96986.f90: New test.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 	    Boris Staletic  <boris.staletic@protonmail.com>
+ 
+ 	PR c++/123726
+ 	* g++.dg/reflect/member1.C: Adjust dg-error.
+ 	* g++.dg/reflect/member22.C: New test.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124457
+ 	* g++.dg/reflect/concept1.C: New test.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 	    Boris Staletic  <boris.staletic@protonmail.com>
+ 
+ 	PR c++/124177
+ 	* g++.dg/reflect/annotations18.C: New test.
+ 
+ 2026-04-08  Marek Polacek  <polacek@redhat.com>
+ 
+ 	PR c++/124617
+ 	* g++.dg/reflect/dep12.C: New test.
+ 	* g++.dg/reflect/dep13.C: New test.
+ 
+ 2026-04-08  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124810
+ 	* gcc.dg/torture/pr124810.c: New testcase.
+ 
+ 2026-04-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* g++.dg/modules/modules.exp: Use "@nul" for Windows,
+ 	"@/dev/null" for other environments.
+ 
+ 2026-04-08  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/93715
+ 	* gfortran.dg/pr93715.f90: New test.
+ 
+ 2026-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/reflect/is_consteval_only1.C: Remove.
+ 	* g++.dg/reflect/eh1.C: Remove is_consteval_only_type tests.
+ 	* g++.dg/reflect/eh2.C: Likewise.
+ 	* g++.dg/reflect/type_trait5.C: Likewise.
+ 
+ 2026-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/cpp26/decomp30.C: New test.
+ 	* g++.dg/gomp/pr108503.C: Adjust expected diagnostic locations.
+ 
+ 2026-04-07  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/102430
+ 	* gfortran.dg/gomp/pr102430.f90: New test.
+ 
+ 2026-04-07  H.J. Lu  <hjl.tools@gmail.com>
+ 
+ 	PR target/124759
+ 	PR target/124789
+ 	* gcc.target/i386/pr124759.c: New test.
+ 
+ 2026-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR libfortran/124543
+ 	* gfortran.dg/pr124543.f90: Add the dg-options "-O0" to
+ 	reduce testing time. Adjust test for the change above.
+ 
+ 2026-04-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124802
+ 	* gcc.dg/vect/vect-pr124802.c: New testcase.
+ 
+ 2026-04-07  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/103367
+ 	* gfortran.dg/pr103367.f90: New test.
+ 
+ 2026-04-07  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/104827
+ 	PR fortran/104827
+ 	* gfortran.dg/gomp/pr104827.f90: New test.
+ 
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123700
+ 	* g++.dg/cpp2a/lambda-targ24.C: New test.
+ 	* g++.dg/cpp2a/lambda-targ24a.C: New test.
+ 
+ 2026-04-07  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	PR c++/123529
+ 	PR c++/98930
+ 	* g++.dg/cpp1z/nontype9.C: New test.
+ 
+ 2026-04-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/cpp26/expansion-stmt11.C: Expect some extra diagnostics for
+ 	C++11.
+ 	* g++.dg/cpp26/expansion-stmt13.C: Likewise.  Make it dg-do compile
+ 	test for c++11_only and dg-do run only for c++14 and above.
+ 	* g++.dg/cpp26/expansion-stmt16.C: Adjust expected diagnostics.
+ 	* g++.dg/cpp26/expansion-stmt19.C: Expect some extra diagnostics for
+ 	C++11.  Make it dg-do compile test for c++11_only and dg-do run only
+ 	for c++14 and above.
+ 	* g++.dg/cpp26/expansion-stmt25.C (foo): Test both constexpr
+ 	range-for-decl and non-constexpr, adjust expected diagnostics.
+ 	* g++.dg/cpp26/expansion-stmt30.C: Adjust expected diagnostics.
+ 	* g++.dg/cpp26/expansion-stmt35.C: New test.
+ 	* g++.dg/cpp26/expansion-stmt36.C: New test.
+ 	* g++.dg/cpp26/expansion-stmt37.C: New test.
+ 	* g++.dg/cpp26/expansion-stmt38.C: New test.
+ 
+ 2026-04-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124487
+ 	* g++.dg/cpp26/pack-indexing9.C: Remove dg-sorry/dg-bogus, add
+ 	tests for mangled names and further test coverage.
+ 
+ 2026-04-07  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124790
+ 	* g++.dg/reflect/pr124790.C: New test.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/85352
+ 	* gfortran.dg/pr85352.f90: New test.
+ 
+ 2026-04-07  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* lib/target-supports.exp
+ 	(check_effective_target_recent_python3): Cache result of check.
+ 	(check_effective_target_python3_module): Likewise.
+ 	(check_effective_target_pytest3): Likewise.
+ 
+ 2026-04-07  Christophe Lyon  <christophe.lyon@arm.com>
+ 
+ 	PR target/124704
+ 	* lib/target-supports.exp
+ 	(check_effective_target_vect_cmdline_neeed): Handle arm_mve
+ 	similarly to arm_neon.
+ 
+ 2026-04-07  Richard Biener  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/124743
+ 	* gcc.dg/vect/vect-pr124743.c: New testcase.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/107425
+ 	* gfortran.dg/gomp/pr107425.f90: New test.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/124780
+ 	* gfortran.dg/pr124780.f90: New test.
+ 
+ 2026-04-07  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
+ 
+ 	* lib/target-supports.exp (check_fork_runtime): New function to
+ 	check that target has a working fork() implementation.
+ 	* lib/target-supports-dg.exp (dg-require-fork): When test is
+ 	"run", then call check_fork_runtime, else check_fork_available.
+ 
+ 2026-04-07  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR fortran/124598
+ 	* gfortran.dg/pdt_91.f03: New test.
+ 
+ 2026-04-07  Avinash Jayakar  <avinashd@linux.ibm.com>
+ 	    Surya Kumari Jangala  <jskumari@linux.ibm.com>
+ 
+ 	* gcc.target/powerpc/acmp-tst.c: New test.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR libstdc++/124268
+ 	* g++.dg/modules/using-34_a.C: New test.
+ 	* g++.dg/modules/using-34_b.C: New test.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124735
+ 	* g++.dg/modules/auto-8_a.H: New test.
+ 	* g++.dg/modules/auto-8_b.C: New test.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124781
+ 	* g++.dg/modules/export-7.C: New test.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/124785
+ 	* g++.dg/modules/noexcept-5.h: New test.
+ 	* g++.dg/modules/noexcept-5_a.C: New test.
+ 	* g++.dg/modules/noexcept-5_b.C: New test.
+ 	* g++.dg/modules/noexcept-5_c.C: New test.
+ 
+ 2026-04-06  Nathaniel Shead  <nathanieloshead@gmail.com>
+ 
+ 	PR c++/118630
+ 	* g++.dg/modules/late-ret-5.h: New test.
+ 	* g++.dg/modules/late-ret-5_a.H: New test.
+ 	* g++.dg/modules/late-ret-5_b.C: New test.
+ 
+ 2026-04-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124488
+ 	* g++.dg/cpp26/expansion-stmt33.C: New test.
+ 
+ 2026-04-06  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* g++.dg/reflect/annotations15.C: New test.
+ 
+ 2026-04-06  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/79524
+ 	PR fortran/79524
+ 	* gfortran.dg/pr79524.f90: New test.
+ 
+ 2026-04-06  Eczbek  <eczbek.void@gmail.com>
+ 
+ 	PR c++/123087
+ 	* g++.dg/DRs/dr1423.C: Additonal test.
+ 
+ 2026-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	* lib/target-supports-dg.exp (dg-do-if): Don't strip line number
+ 	from args.
+ 
+ 2026-04-05  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR c++/124689
+ 	* g++.dg/reflect/pr124689.C: New test.
+ 
+ 2026-04-05  Christopher Albert  <albert@tugraz.at>
+ 
+ 	PR fortran/109788
+ 	* gfortran.dg/pr109788.f90: New test.
+ 
+ 2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/aggr35_pkg.adb: Pass -gnatws.
+ 
+ 2026-04-05  Eric Botcazou  <ebotcazou@adacore.com>
+ 
+ 	* gnat.dg/aggr35.adb: New test.
+ 	* gnat.dg/aggr35_pkg.ads, gnat.dg/aggr35_pkg.adb: New helper.
+ 
  2026-04-04  Roger Sayle  <roger@nextmovesoftware.com>
  
  	PR c++/124573
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/DRs/dr1423.C gcc-16-20260412/gcc/testsuite/g++.dg/DRs/dr1423.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/DRs/dr1423.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/DRs/dr1423.C	Sun Apr 12 22:32:09 2026
*************** bool b = nullptr; // { dg-error "convert
*** 5,7 ****
--- 5,8 ----
  bool b2(nullptr);
  bool b3{nullptr};
  bool b4 = { nullptr }; // { dg-error "converting to .bool. from .std::nullptr_t. requires direct-initialization" }
+ bool b5 = !nullptr;
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/coroutines/pr110872.C gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr110872.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/coroutines/pr110872.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/coroutines/pr110872.C	Sun Apr 12 22:32:09 2026
***************
*** 3,9 ****
  // { dg-do compile { target c++26 } }
  // { dg-skip-if "requires hosted libstdc++ for iostream" { ! hostedlib } }
  // { dg-prune-output "during RTL pass: expand" }
! // { dg-ice "expand_expr_addr_expr_1" { lp64 || *-*-darwin* } }
  
  #include <iostream>
  #include <coroutine>
--- 3,9 ----
  // { dg-do compile { target c++26 } }
  // { dg-skip-if "requires hosted libstdc++ for iostream" { ! hostedlib } }
  // { dg-prune-output "during RTL pass: expand" }
! // { dg-ice "expand_expr_addr_expr_1" { lp64 || { *-*-darwin* arm*-*-* } } }
  
  #include <iostream>
  #include <coroutine>
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp1z/nontype9.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp1z/nontype9.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp1z/nontype9.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp1z/nontype9.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/123529
+ // { dg-do compile { target c++17 } }
+ 
+ template<int* P>
+ void f();
+ 
+ template<class T>
+ struct A {
+   static void g() {
+     static int i;
+     f<&i>();
+   }
+ };
+ 
+ template struct A<char>;
+ template struct A<int>;
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/decomp30.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/decomp30.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/decomp30.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/decomp30.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,35 ----
+ // CWG3135 - constexpr structured bindings with prvalues from tuples
+ // { dg-do compile { target c++14 } }
+ // { dg-options "" }
+ 
+ namespace std {
+   template <typename T> struct tuple_size;
+   template <int, typename> struct tuple_element;
+ }
+ 
+ struct A {
+   template <int I> constexpr int get () const { return I + 6; }
+ };
+ 
+ template <> struct std::tuple_size <A> { static const int value = 2; };
+ template <int I> struct std::tuple_element <I, A> { using type = int; };
+ template <> struct std::tuple_size <const A> { static const int value = 2; };
+ template <int I> struct std::tuple_element <I, const A> { using type = const int; };
+ 
+ constexpr A
+ bar ()
+ {
+   return A {};
+ }
+ 
+ template <int N>
+ constexpr int
+ foo ()
+ {
+   constexpr auto [...i] = bar ();	// { dg-warning "structured binding packs only available with" "" { target { c++17 && c++23_down } } }
+ 					// { dg-warning "structured binding declaration can be 'constexpr' only with" "" { target c++23_down } .-1 }
+ 					// { dg-warning "structured bindings only available with" "" { target c++14_down } .-2 }
+   return i...[0] + i...[1];		// { dg-warning "pack indexing only available with" "" { target c++23_down } }
+ }
+ 
+ static_assert (foo <42> () == 13);
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt11.C	Sun Apr 12 22:32:10 2026
*************** struct T { using type = T; int s; };
*** 9,15 ****
  T d = { 8 };
  struct U {
    constexpr const S *begin () const { return &c[0]; }
!   constexpr const S *end () const { return &c[s]; }
    int s;
  };
  struct V { int a; long b; double c; };
--- 9,15 ----
  T d = { 8 };
  struct U {
    constexpr const S *begin () const { return &c[0]; }
!   constexpr const S *end () const { return &c[s]; }	// { dg-error "is not usable in a constant expression" "" { target c++11_down } }
    int s;
  };
  struct V { int a; long b; double c; };
*************** foo ()
*** 29,35 ****
    template for (auto g : u)		// { dg-warning "'template for' only available with" "" { target c++23_down } }
      {
        decltype(g)::type h = g;
!     }
    V v = { 9, 10L, 11.0 };
    template for (auto g : v)		// { dg-warning "'template for' only available with" "" { target c++23_down } }
      {
--- 29,35 ----
    template for (auto g : u)		// { dg-warning "'template for' only available with" "" { target c++23_down } }
      {
        decltype(g)::type h = g;
!     }					// { dg-message "was not declared 'constexpr'" "" { target c++11_down } }
    V v = { 9, 10L, 11.0 };
    template for (auto g : v)		// { dg-warning "'template for' only available with" "" { target c++23_down } }
      {
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt13.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt13.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt13.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt13.C	Sun Apr 12 22:32:10 2026
***************
*** 1,5 ****
  // C++26 P1306R5 - Expansion statements
! // { dg-do run { target c++11 } }
  // { dg-options "" }
  
  namespace std {
--- 1,6 ----
  // C++26 P1306R5 - Expansion statements
! // { dg-do run { target c++14 } }
! // { dg-do compile { target c++11_only } }
  // { dg-options "" }
  
  namespace std {
*************** struct S { int s; };
*** 11,17 ****
  constexpr S c[] = { { 3 }, { 4 }, { 5 }, { 6 }, { 7 } };
  struct U {
    constexpr const S *begin () const { return &c[0]; }
!   constexpr const S *end () const { return &c[s]; }
    int s;
  };
  constexpr U u1 = { 3 }, u2 = { 0 };
--- 12,18 ----
  constexpr S c[] = { { 3 }, { 4 }, { 5 }, { 6 }, { 7 } };
  struct U {
    constexpr const S *begin () const { return &c[0]; }
!   constexpr const S *end () const { return &c[s]; }	// { dg-error "is not usable in a constant expression" "" { target c++11_down } }
    int s;
  };
  constexpr U u1 = { 3 }, u2 = { 0 };
*************** foo ()
*** 45,51 ****
    template for (auto h = 2; constexpr auto g : u1)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      r += g.s + h;
    template for (long long h = ++r; auto g : u2)		// { dg-warning "'template for' only available with" "" { target c++23_down } }
!     __builtin_abort ();
    return r;
  }
  
--- 46,52 ----
    template for (auto h = 2; constexpr auto g : u1)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      r += g.s + h;
    template for (long long h = ++r; auto g : u2)		// { dg-warning "'template for' only available with" "" { target c++23_down } }
!     __builtin_abort ();					// { dg-message "was not declared 'constexpr'" "" { target c++11_down } }
    return r;
  }
  
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt16.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt16.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt16.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt16.C	Sun Apr 12 22:32:10 2026
*************** foo ()
*** 49,60 ****
    template for (constexpr auto g : d)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;					// { dg-error "'d' is not a constant expression" "" { target c++14 } .-1 }
  					// { dg-error "call to non-'constexpr' function 'const A\\\* C::begin\\\(\\\) const'" "" { target c++11_down } .-1 }
! 					// { dg-error "call to non-'constexpr' function 'const A\\\* C::end\\\(\\\) const'" "" { target c++11_down } .-2 }
! 					// { dg-error "the type 'const C' of 'constexpr' variable '__for_range ' is not literal" "" { target c++11_down } .-3 }
    constexpr D e = { 3 };
    template for (constexpr auto g : e)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;					// { dg-error "'e' is not a constant expression" "" { target c++14 } .-1 }
! 					// { dg-error "call to non-'constexpr' function 'const A\\\* D::end\\\(\\\) const'" "" { target *-*-* } .-1 }
    constexpr E f = { 3 };
    template for (constexpr auto g : f)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;					// { dg-error "'f' is not a constant expression" "" { target c++14 } .-1 }
--- 49,59 ----
    template for (constexpr auto g : d)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;					// { dg-error "'d' is not a constant expression" "" { target c++14 } .-1 }
  					// { dg-error "call to non-'constexpr' function 'const A\\\* C::begin\\\(\\\) const'" "" { target c++11_down } .-1 }
! 					// { dg-error "the type 'const C' of 'constexpr' variable '__for_range ' is not literal" "" { target c++11_down } .-2 }
    constexpr D e = { 3 };
    template for (constexpr auto g : e)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;					// { dg-error "'e' is not a constant expression" "" { target c++14 } .-1 }
! 					// { dg-error "call to non-'constexpr' function 'const A\\\* D::end\\\(\\\) const'" "" { target c++11_down } .-1 }
    constexpr E f = { 3 };
    template for (constexpr auto g : f)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;					// { dg-error "'f' is not a constant expression" "" { target c++14 } .-1 }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt19.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt19.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt19.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt19.C	Sun Apr 12 22:32:10 2026
***************
*** 1,5 ****
  // C++26 P1306R5 - Expansion statements
! // { dg-do run { target c++11 } }
  // { dg-options "" }
  
  namespace std {
--- 1,6 ----
  // C++26 P1306R5 - Expansion statements
! // { dg-do run { target c++14 } }
! // { dg-do compile { target c++11_only } }
  // { dg-options "" }
  
  namespace std {
*************** template<int I> struct std::tuple_elemen
*** 18,24 ****
  constexpr V c[] = { { 3, 4 }, { 4, 5 }, { 5, 6 }, { 6, 7 }, { 7, 8 } };
  struct U {
    constexpr const V *begin () const { return &c[0]; }
!   constexpr const V *end () const { return &c[s]; }
    int s;
  };
  constexpr U u1 = { 3 }, u2 = { 0 };
--- 19,25 ----
  constexpr V c[] = { { 3, 4 }, { 4, 5 }, { 5, 6 }, { 6, 7 }, { 7, 8 } };
  struct U {
    constexpr const V *begin () const { return &c[0]; }
!   constexpr const V *end () const { return &c[s]; }	// { dg-error "is not usable in a constant expression" "" { target c++11_down } }
    int s;
  };
  constexpr U u1 = { 3 }, u2 = { 0 };
*************** foo ()
*** 51,56 ****
--- 52,58 ----
    template for (long long h = ++r; auto [...i, j] : u2)	// { dg-warning "'template for' only available with" "" { target c++23_down } }
      __builtin_abort ();					// { dg-warning "structured bindings only available with" "" { target c++14_down } .-1 }
  							// { dg-warning "structured binding packs only available with" "" { target { c++17 && c++23_down } } .-2 }
+ 							// { dg-message "was not declared 'constexpr'" "" { target c++11_down } .-3 }
    return r;
  }
  
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt25.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt25.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt25.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt25.C	Sun Apr 12 22:32:10 2026
*************** namespace N
*** 22,27 ****
  void
  foo ()
  {
!   template for (auto i : N::B {})				// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;								// { dg-error "no match for 'operator-' in '__for_begin  - __for_begin ' \\\(operand types are 'const A' and 'const A'\\\)" "" { target *-*-* } .-1 }
  }
--- 22,29 ----
  void
  foo ()
  {
!   template for (constexpr auto i : N::B {})			// { dg-warning "'template for' only available with" "" { target c++23_down } }
      ;								// { dg-error "no match for 'operator-' in '__for_begin  - __for_begin ' \\\(operand types are 'const A' and 'const A'\\\)" "" { target *-*-* } .-1 }
+   template for (auto i : N::B {})				// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     ;								// { dg-error "no match for 'operator-' in '__for_begin  - __for_begin ' \\\(operand types are 'A' and 'A'\\\)" "" { target *-*-* } .-1 }
  }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt30.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt30.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt30.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt30.C	Sun Apr 12 22:32:10 2026
*************** foo ()
*** 30,36 ****
    for (auto i : N::S {})		// { dg-error "call of overloaded 'begin\\\(N::S\\\&\\\)' is ambiguous" }
      ;
    template for (auto i : N::S {})
!     ;					// { dg-error "call of overloaded 'begin\\\(const N::S\\\&\\\)' is ambiguous" }
    template for (auto i : V {})
      ;					// { dg-error "cannot be used as a function" }
    template for (auto i : O::B {})
--- 30,36 ----
    for (auto i : N::S {})		// { dg-error "call of overloaded 'begin\\\(N::S\\\&\\\)' is ambiguous" }
      ;
    template for (auto i : N::S {})
!     ;					// { dg-error "call of overloaded 'begin\\\(N::S\\\&\\\)' is ambiguous" }
    template for (auto i : V {})
      ;					// { dg-error "cannot be used as a function" }
    template for (auto i : O::B {})
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt33.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt33.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt33.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt33.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/124488
+ // { dg-do compile { target c++11 } }
+ // { dg-options "" }
+ 
+ void
+ foo ()
+ {
+   template for (constexpr int a : { 42 })	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     auto b = [] () { return a; };
+ }
+ 
+ void
+ bar (int x)
+ {
+   template for (const int a : { 42, ++x, 5 })	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     const int b = a;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt35.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt35.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt35.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt35.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,60 ----
+ // CWG3140 - Allowing expansion over non-constant std::array
+ // { dg-do compile { target c++14 } }
+ // { dg-options "" }
+ 
+ struct A
+ {
+   int x;
+   constexpr explicit A (int v) : x(v) {}
+   constexpr A &operator ++ () { ++x; return *this; }
+   constexpr int operator * () const { return x; }
+   constexpr bool operator != (const A &o) const { return x != o.x; }
+   constexpr A operator + (int o) const { A r (x + o); return r; }
+   constexpr int operator - (const A &o) const { return x - o.x; }
+ };
+ 
+ namespace N
+ {
+   struct B { constexpr B (int n) : b (n) {} int b; };
+   constexpr A begin (const B &) { return A (0); }
+   constexpr A end (const B &x) { return A (x.b); }	// { dg-error "is not usable in a constant expression" }
+   struct C { };
+   constexpr A begin (const C &) { return A (0); }
+   constexpr A end (const C &x) { return A (6); }
+ }
+ 
+ int
+ foo ()
+ {
+   int r = 0;
+   template for (constexpr auto m : N::B (3))	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     r += m;
+   return r;
+ }
+ 
+ int
+ bar ()
+ {
+   int r = 0;
+   template for (auto m : N::B (3))		// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     r += m;					// { dg-message "was not declared 'constexpr'" }
+   return r;
+ }
+ 
+ int
+ baz ()
+ {
+   int r = 0;
+   template for (constexpr auto m : N::C ())	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     r += m;
+   return r;
+ }
+ 
+ int
+ qux ()
+ {
+   int r = 0;
+   template for (auto m : N::C ())		// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     r += m;
+   return r;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt36.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt36.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt36.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt36.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,21 ----
+ // CWG3140 - Allowing expansion over non-constant std::array
+ // { dg-do run { target c++17 } }
+ // { dg-options "" }
+ 
+ #include <array>
+ 
+ std::array <int, 5>
+ foo ()
+ {
+   return { 1, 2, 3, 4, 5 };
+ }
+ 
+ int
+ main ()
+ {
+   int r = 0;
+   template for (auto n : foo ())	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     r += n;
+   if (r != 15)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt37.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt37.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt37.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt37.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,19 ----
+ // CWG3140 - Allowing expansion over non-constant std::array
+ // { dg-do compile { target c++17 } }
+ // { dg-options "" }
+ 
+ #include <array>
+ 
+ std::array <int, 5>
+ foo ()
+ {
+   return { 1, 2, 3, 4, 5 };
+ }
+ 
+ void
+ bar ()
+ {
+   int r = 0;
+   template for (constexpr auto n : foo ())	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     r += n;					// { dg-error " call to non-'constexpr' function" "" { target *-*-* } .-1 }
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt38.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt38.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/expansion-stmt38.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/expansion-stmt38.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,36 ----
+ // CWG3140 - Allowing expansion over non-constant std::array
+ // { dg-do run { target c++17 } }
+ // { dg-options "" }
+ // { dg-additional-options "-frange-for-ext-temps" { target c++20_down } }
+ 
+ #include <array>
+ 
+ struct A {
+   A () { a++; }
+   A (const A &) { a++; }
+   ~A () { a--; }
+   static int a;
+ };
+ int A::a = 0;
+ 
+ std::array <int, 5>
+ foo (A, A, A)
+ {
+   return { 1, 2, 3, 4, 5 };
+ }
+ 
+ int
+ main ()
+ {
+   int r = 0;
+   if (A::a != 0)
+     __builtin_abort ();
+   template for (auto n : foo (A (), A (), A ()))	// { dg-warning "'template for' only available with" "" { target c++23_down } }
+     {
+       if (A::a != 3)
+ 	__builtin_abort ();
+       r += n;
+     }
+   if (r != 15 || A::a != 0)
+     __builtin_abort ();
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/pack-indexing9.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/pack-indexing9.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp26/pack-indexing9.C	Sun Apr  5 22:32:09 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp26/pack-indexing9.C	Sun Apr 12 22:32:10 2026
***************
*** 4,27 ****
  // From <https://github.com/itanium-cxx-abi/cxx-abi/issues/175>.
  
  template <class... T> struct tuple {
!   template <unsigned I> T...[I] get();  // { dg-bogus "sorry, unimplemented: mangling" "" { xfail *-*-* } }
  };
  
  int
  g ()
  {
    tuple<int> t;
    return t.get<0>();
  }
  
  template<typename T, typename U> concept C = true;
  template<typename ...T> struct A {
!     template<int I, typename ...U> void f(T...[I], U...[I]) requires C<T...[I], U...[I]>;  // { dg-message "sorry, unimplemented: mangling" }
  };
  
  void
  h ()
  {
    A<char, int, double> a;
    a.f<1, int, int, char>(1, 2);
  }
--- 4,45 ----
  // From <https://github.com/itanium-cxx-abi/cxx-abi/issues/175>.
  
  template <class... T> struct tuple {
!   template <unsigned I> T...[I] get();
  };
  
  int
  g ()
  {
    tuple<int> t;
+   // { dg-final { scan-assembler "_ZN5tupleIJiEE3getILj0EEEDyJiET_v" } }
    return t.get<0>();
  }
  
  template<typename T, typename U> concept C = true;
+ template<typename T, auto U> concept D = true;
  template<typename ...T> struct A {
!   template<int I, typename ...U> void f(T...[I], U...[I]) requires C<T...[I], U...[I]>;
!   template<int I, auto ...U> void h(T...[I], decltype(U...[I])) requires D<T...[I], U...[I]>;
  };
  
  void
  h ()
  {
    A<char, int, double> a;
+   // { dg-final { scan-assembler "_ZN1AIJcidEE1fILi1EJiicEEEvDyJcidET_DyT0_T_Q1CIDyT_TL0__DyTL0_0_TL0__E" } }
    a.f<1, int, int, char>(1, 2);
+   // { dg-final { scan-assembler "_ZN1AIJcidEE1hILi1EJLi2ELl3ELj4EEEEvDyJcidET_DtsyT0_T_EQ1DIDyT_TL0__XsyTL0_0_TL0__EE" } }
+   a.h<1, 2, 3L, 4U>(1, 3L);
+ }
+ 
+ template <auto... U> struct E {
+   template <unsigned I> decltype (U...[I]) get();
+ };
+ 
+ int
+ i ()
+ {
+   E<1, 2L, 3U, 4LL> t;
+   // { dg-final { scan-assembler "_ZN1EIJLi1ELl2ELj3ELx4EEE3getILj2EEEDtsyJLi1ELl2ELj3ELx4EET_Ev" } }
+   return t.get<2>();
  }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/lambda-targ24.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/123700
+ // { dg-do compile { target c++20 } }
+ 
+ template<class> constexpr int zero = 0;
+ template<auto> struct Type;
+ 
+ int outer(auto) {
+   using inner = Type<[](auto) {}>;
+   return [](auto) { return zero<inner>; }(0);
+ }
+ 
+ int main() { outer(0.0); }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/cpp2a/lambda-targ24a.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/123700
+ // { dg-do compile { target c++20 } }
+ // A version of lambda-targ24.C where zero is a class instead of variable
+ // template.
+ 
+ template<class> struct zero { };
+ template<auto> struct Type;
+ 
+ auto outer(auto) {
+   using inner = Type<[](auto) {}>;
+   return [](auto) { return zero<inner>{}; }(0);
+ }
+ 
+ int main() { outer(0.0); }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/gomp/pr108503.C gcc-16-20260412/gcc/testsuite/g++.dg/gomp/pr108503.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/gomp/pr108503.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/gomp/pr108503.C	Sun Apr 12 22:32:10 2026
*************** void
*** 21,27 ****
  foo (B a)
  {
    #pragma omp for collapse(2)
!   for (auto [i, j, k] : a)
!     for (int l = i; l < j; l += k)	// { dg-error "initializer expression refers to iteration variable 'i'" }
!       ;					// { dg-error "condition expression refers to iteration variable 'j'" "" { target *-*-* } .-1 }
! }					// { dg-error "increment expression refers to iteration variable 'k'" "" { target *-*-* } .-2 }
--- 21,27 ----
  foo (B a)
  {
    #pragma omp for collapse(2)
!   for (auto [i, j, k] : a)		// { dg-error "initializer expression refers to iteration variable 'i'" }
!     for (int l = i; l < j; l += k)	// { dg-error "condition expression refers to iteration variable 'j'" }
!       ;					// { dg-error "increment expression refers to iteration variable 'k'" "" { target *-*-* } .-2 }
! }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/lto/20091022-2_0.C gcc-16-20260412/gcc/testsuite/g++.dg/lto/20091022-2_0.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/lto/20091022-2_0.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/lto/20091022-2_0.C	Sun Apr 12 22:32:10 2026
***************
*** 2,7 ****
--- 2,8 ----
  // { dg-lto-options {{-O3 -flto -Winline}} }
  // { dg-skip-if "requires hosted libstdc++ for string" { ! hostedlib } }
  
+ #define _GLIBCXX_SYSHDR
  #include <string>
  
  int
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/auto-8_a.H gcc-16-20260412/gcc/testsuite/g++.dg/modules/auto-8_a.H
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/auto-8_a.H	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/auto-8_a.H	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124735
+ // { dg-additional-options "-fmodule-header" }
+ // { dg-module-cmi {} }
+ 
+ struct S {
+   auto foo();
+ };
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/auto-8_b.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/auto-8_b.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/auto-8_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/auto-8_b.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/124735
+ // { dg-additional-options "-fmodules" }
+ 
+ struct S {
+   auto foo();
+ };
+ 
+ auto S::foo() { return 123; }
+ auto pfn = &S::foo;
+ 
+ import "auto-8_a.H";
+ 
+ int main() {
+   return S{}.foo() != 123;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/export-7.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/export-7.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/export-7.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/export-7.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/124781
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi foo }
+ 
+ export module foo;
+ export using xx = decltype([] {
+   using yy = int;
+   int abc = 123;
+ }());
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/late-ret-5.h gcc-16-20260412/gcc/testsuite/g++.dg/modules/late-ret-5.h
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/late-ret-5.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/late-ret-5.h	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/118630
+ 
+ namespace test1 {
+   template <typename> decltype([]{}) a();
+ }
+ 
+ namespace test2 {
+   template <typename T> struct invoke_result {};
+   template <typename T> struct foo {};
+ 
+   template <typename T>
+   auto b(T&& arg) -> foo<invoke_result<decltype(arg)>> {
+     invoke_result<decltype(arg)> a;
+     return {};
+   }
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/late-ret-5_a.H gcc-16-20260412/gcc/testsuite/g++.dg/modules/late-ret-5_a.H
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/late-ret-5_a.H	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/late-ret-5_a.H	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/118630
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodule-header" }
+ // { dg-module-cmi {} }
+ 
+ #include "late-ret-5.h"
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/late-ret-5_b.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/late-ret-5_b.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/late-ret-5_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/late-ret-5_b.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/118630
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules -fno-module-lazy" }
+ 
+ #include "late-ret-5.h"
+ import "late-ret-5_a.H";
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/modules.exp gcc-16-20260412/gcc/testsuite/g++.dg/modules/modules.exp
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/modules.exp	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/modules.exp	Sun Apr 12 22:32:10 2026
*************** global module_cmis
*** 54,71 ****
  
  set DEFAULT_REPO "gcm.cache"
  
  # Return the pathname for <HNAME>.
  # On failure this will return garbage that results in the understandable
  # FAIL: g++.dg/modules/compile-std1.C module-cmi <bits/stdcx++.h> (gcm.cache/,/ader_path1095619.C:1:10: fatal error: bits/stdcx++.h: No such file or directory.gcm)
  # ??? it would be nice to have a simple --print-include-name flag.
  proc host_header_path {hname} {
      global tool
      set src header_path[pid].C
      set f [open $src "w"]
      puts $f "#include <$hname>"
      close $f
      set opts [list "additional_flags=-H" "additional_flags=-fdirectives-only"]
!     set lines [${tool}_target_compile $src /dev/null preprocess $opts]
      file delete $f
      # The first line of the -H output is ". /path/to/hname"
      set newline_idx [expr {[string first "\n" $lines] - 1}]
--- 54,78 ----
  
  set DEFAULT_REPO "gcm.cache"
  
+ set devnull "/dev/null"
+ if { [info exists ::env(OS)] && [string match "Windows*" $::env(OS)] } {
+     # Windows uses special file named "nul" as a substitute for /dev/null
+     set devnull "nul"
+ }
+ 
  # Return the pathname for <HNAME>.
  # On failure this will return garbage that results in the understandable
  # FAIL: g++.dg/modules/compile-std1.C module-cmi <bits/stdcx++.h> (gcm.cache/,/ader_path1095619.C:1:10: fatal error: bits/stdcx++.h: No such file or directory.gcm)
  # ??? it would be nice to have a simple --print-include-name flag.
  proc host_header_path {hname} {
      global tool
+     global devnull
      set src header_path[pid].C
      set f [open $src "w"]
      puts $f "#include <$hname>"
      close $f
      set opts [list "additional_flags=-H" "additional_flags=-fdirectives-only"]
!     set lines [${tool}_target_compile $src $devnull preprocess $opts]
      file delete $f
      # The first line of the -H output is ". /path/to/hname"
      set newline_idx [expr {[string first "\n" $lines] - 1}]
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5.h gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5.h
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5.h	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5.h	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,4 ----
+ // PR c++/124785
+ template <typename T> struct Iterator {
+   constexpr friend auto operator<=>(const Iterator&, const Iterator&) = default;
+ };
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5_a.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5_a.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5_a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5_a.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124785
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi M:A }
+ 
+ export module M:A;
+ #include "noexcept-5.h"
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5_b.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5_b.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5_b.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/124785
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules" }
+ // { dg-module-cmi M:B }
+ 
+ export module M:B;
+ #include "noexcept-5.h"
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5_c.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5_c.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/noexcept-5_c.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/noexcept-5_c.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/124785
+ // { dg-do compile { target c++20 } }
+ // { dg-additional-options "-fmodules -fdump-lang-module-alias" }
+ // { dg-module-cmi M }
+ 
+ export module M;
+ export import :A;
+ export import :B;
+ 
+ // The noexcept-specifiers are equivalent, no need to merge.
+ // { dg-final { scan-lang-dump-not {Propagating instantiated noexcept} module } }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/using-34_a.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/using-34_a.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/using-34_a.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/using-34_a.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR libstdc++/124268
+ // { dg-additional-options "-fmodules -Wno-global-module -Wno-error=expose-global-module-tu-local" }
+ // { dg-module-cmi M }
+ 
+ module;
+ 
+ static void f() {} // { dg-message "declared here with internal linkage" }
+ static int x;      // { dg-message "declared here with internal linkage" }
+ 
+ export module M;
+ 
+ namespace ns {
+   export using ::f;  // { dg-warning "does not have external linkage" }
+   export using ::x;  // { dg-warning "does not have external linkage" }
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/modules/using-34_b.C gcc-16-20260412/gcc/testsuite/g++.dg/modules/using-34_b.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/modules/using-34_b.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/modules/using-34_b.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,22 ----
+ // PR libstdc++/124268
+ // { dg-additional-options "-fmodules -Wno-global-module -Wno-global-module-tu-local" }
+ // { dg-module-cmi !K }
+ 
+ module;
+ 
+ // Non vars/functions cannot escape, even when relaxed.
+ namespace { struct Internal; };  // { dg-message "declared here with internal linkage" }
+ struct {} none;			 // { dg-message "declared here with no linkage" }
+ using NoneType = decltype(none);
+ 
+ export module K;
+ import M;
+ 
+ export using ::Internal;  // { dg-error "does not have external linkage" }
+ export using ::NoneType;  // { dg-error "does not have external linkage" }
+ 
+ // OK
+ int test() {
+   ns::f();
+   return ns::x;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/annotations15.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/annotations15.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/annotations15.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/annotations15.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,44 ----
+ // P3795R2 - Miscellaneous Reflection Cleanup
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ void foo ([[=1]] int x);
+ constexpr auto rf = parameters_of (^^foo)[0];
+ void foo ([[=2, =3]] int x);
+ 
+ void
+ foo ([[=4, =5]] int x)
+ {
+   static_assert (annotations_of (^^x).size () == 2);
+   static_assert ([: constant_of (annotations_of (^^x)[0]) :] == 4);
+   static_assert ([: constant_of (annotations_of (^^x)[1]) :] == 5);
+   static_assert (annotations_of (rf).size () == 5);
+   static_assert ([: constant_of (annotations_of (rf)[0]) :] == 1);
+   static_assert ([: constant_of (annotations_of (rf)[1]) :] == 2);
+   static_assert ([: constant_of (annotations_of (rf)[2]) :] == 3);
+   static_assert ([: constant_of (annotations_of (rf)[3]) :] == 4);
+   static_assert ([: constant_of (annotations_of (rf)[4]) :] == 5);
+   static_assert (annotations_of (variable_of (rf)).size () == 2);
+   static_assert ([: constant_of (annotations_of (variable_of (rf))[0]) :] == 4);
+   static_assert ([: constant_of (annotations_of (variable_of (rf))[1]) :] == 5);
+   static_assert (annotations_of (parameters_of (^^foo)[0]).size () == 5);
+   static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[0]) :] == 1);
+   static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[1]) :] == 2);
+   static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[2]) :] == 3);
+   static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[3]) :] == 4);
+   static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[4]) :] == 5);
+   static_assert (annotations_of (^^x)[0] == annotations_of (rf)[3]);
+   static_assert (annotations_of (^^x)[0] == annotations_of (variable_of (rf))[0]);
+   static_assert (annotations_of (^^x)[0] == annotations_of (parameters_of (^^foo)[0])[3]);
+ }
+ 
+ void foo ([[=6]] int x);
+ static_assert (annotations_of (parameters_of (^^foo)[0]).size () == 6);
+ static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[0]) :] == 1);
+ static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[1]) :] == 2);
+ static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[2]) :] == 3);
+ static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[3]) :] == 4);
+ static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[4]) :] == 5);
+ static_assert ([: constant_of (annotations_of (parameters_of (^^foo)[0])[5]) :] == 6);
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/annotations18.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/annotations18.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/annotations18.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/annotations18.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/124177
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ constexpr int f() { return 42; }
+ [[=f]] void g() {}
+ 
+ static_assert (annotations_of (^^g).size () == 1);
+ static_assert (extract<int(*)()> (annotations_of (^^g)[0])() == 42);
+ 
+ constexpr int x[5]{};
+ [[=x]] void h() {}
+ 
+ static_assert (annotations_of (^^h).size () == 1);
+ static_assert (type_of (annotations_of (^^h)[0]) == ^^const int*);
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/concept1.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/concept1.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/concept1.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/concept1.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/124457
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ template <class T, auto t = ^^T>
+ concept True = true;
+ 
+ template <class T>
+ concept AlsoTrue = requires (T t) {
+     { t } -> True;
+ };
+ void f1(True auto x);
+ template <True T> void f2(T );
+ auto f3(int) -> True auto;
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/crash11.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/crash11.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/crash11.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/crash11.C	Sun Apr 12 22:32:10 2026
*************** template<typename T, auto R>
*** 12,19 ****
  void
  g ()
  {
!   template [: R :]<int> c0; // { dg-error "not a function template|expected" }
!   template [: T::r :]<int> c1;  // { dg-error "not a function template|expected" }
  }
  
  void
--- 12,19 ----
  void
  g ()
  {
!   template [: R :]<int> c0; // { dg-error "function or variable template|expected" }
!   template [: T::r :]<int> c1;  // { dg-error "function or variable template|expected" }
  }
  
  void
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/dep12.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/dep12.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/dep12.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/dep12.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/124617
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ template <class T>
+ struct S {
+   template <class U>
+   static void f() {}
+ 
+   static constexpr auto p = ^^f<int>;
+ };
+ 
+ constexpr void (*p)() = extract<void(*)()>(S<int>::p);
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/dep13.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/dep13.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/dep13.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/dep13.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,25 ----
+ // PR c++/124617
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ template <class F>
+ struct S {
+     template <int I>
+     static constexpr int visit(F&&) { return 42; }
+ 
+     using Ptr = decltype(&visit<0>);
+     static constexpr std::meta::info fptrs = ^^visit<0>;
+ };
+ 
+ template <class F>
+ constexpr int foo(F&& f) {
+     using Impl = S<F>;
+     auto which = Impl::fptrs;
+     auto func = std::meta::extract<typename Impl::Ptr>(which);
+     return func((F&&)f);
+ }
+ 
+ struct Plus { };
+ static_assert(foo(Plus{}) == 42);
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/eh1.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/eh1.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/eh1.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/eh1.C	Sun Apr 12 22:32:10 2026
*************** eval (int n)
*** 146,154 ****
      case 46:
        is_aggregate_type (^^n);
        break;
-     case 47:
-       is_consteval_only_type (^^n);
-       break;
      case 48:
        is_signed_type (^^n);
        break;
--- 146,151 ----
*************** static_assert (test (43));
*** 319,325 ****
  static_assert (test (44));
  static_assert (test (45));
  static_assert (test (46));
- static_assert (test (47));
  static_assert (test (48));
  static_assert (test (49));
  static_assert (test (50));
--- 316,321 ----
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/eh2.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/eh2.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/eh2.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/eh2.C	Sun Apr 12 22:32:10 2026
*************** static_assert ((is_polymorphic_type (^^i
*** 52,58 ****
  static_assert ((is_abstract_type (^^i), true)); // { dg-error "non-constant|uncaught exception" }
  static_assert ((is_final_type (^^i), true)); // { dg-error "non-constant|uncaught exception" }
  static_assert ((is_aggregate_type (^^i), true)); // { dg-error "non-constant|uncaught exception" }
- static_assert ((is_consteval_only_type (^^i), true)); // { dg-error "non-constant|uncaught exception" }
  static_assert ((is_signed_type (^^i), true)); // { dg-error "non-constant|uncaught exception" }
  static_assert ((is_unsigned_type (^^i), true)); // { dg-error "non-constant|uncaught exception" }
  static_assert ((is_bounded_array_type (^^i), true)); // { dg-error "non-constant|uncaught exception" }
--- 52,57 ----
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/is_consteval_only1.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/is_consteval_only1.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/is_consteval_only1.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/is_consteval_only1.C	Thu Jan  1 00:00:00 1970
***************
*** 1,83 ****
- // { dg-do compile { target c++26 } }
- // { dg-additional-options "-freflection" }
- // Test std::meta::is_consteval_only.
- 
- #include <meta>
- using namespace std::meta;
- 
- struct A {
-   info i;
- };
- struct B : A { };
- struct C : virtual A { };
- struct D : B { };
- struct E { };
- struct F : E {
-   info i;
- };
- template<typename T>
- struct G {
-   T t;
-   using size_type = int;
- };
- struct H {
-   G<info>::size_type sz;
- };
- struct I {
-   std::initializer_list<std::meta::info>::size_type sz;
- };
- template<typename T>
- struct J : T { };
- 
- template<typename T>
- using U = J<T>;
- 
- template<typename T>
- struct K {
-   J<T> j;
- };
- 
- template<typename T>
- struct L {
-   U<T> u;
- };
- 
- template<typename T>
- struct M : J<T> { };
- 
- template<typename>
- struct N { };
- 
- static_assert (is_consteval_only_type (^^A));
- static_assert (is_consteval_only_type (^^B));
- static_assert (is_consteval_only_type (^^C));
- static_assert (is_consteval_only_type (^^D));
- static_assert (!is_consteval_only_type (^^E));
- static_assert (is_consteval_only_type (^^F));
- static_assert (!is_consteval_only_type (^^G<int>));
- static_assert (is_consteval_only_type (^^G<info>));
- static_assert (!is_consteval_only_type (^^H));
- static_assert (!is_consteval_only_type (^^I));
- static_assert (!is_consteval_only_type (^^J<E>));
- static_assert (is_consteval_only_type (^^J<A>));
- static_assert (!is_consteval_only_type (^^U<E>));
- static_assert (is_consteval_only_type (^^U<A>));
- static_assert (!is_consteval_only_type (^^K<E>));
- static_assert (is_consteval_only_type (^^K<A>));
- static_assert (!is_consteval_only_type (^^L<E>));
- static_assert (is_consteval_only_type (^^L<A>));
- static_assert (!is_consteval_only_type (^^M<E>));
- static_assert (is_consteval_only_type (^^M<A>));
- static_assert (!is_consteval_only_type (^^N<E>));
- static_assert (!is_consteval_only_type (^^N<A>));
- 
- static_assert (is_consteval_only_type (^^std::meta::exception));
- static_assert (is_consteval_only_type (^^std::meta::access_context));
- static_assert (!is_consteval_only_type (^^std::meta::member_offset));
- static_assert (is_consteval_only_type (^^std::meta::data_member_options));
- static_assert (is_consteval_only_type (type_of (^^std::meta::data_member_options::name)));
- 
- struct O;
- static_assert (!is_consteval_only_type (^^O));
- struct O { info i; };
- static_assert (is_consteval_only_type (^^O));
--- 0 ----
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/member1.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/member1.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/member1.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/member1.C	Sun Apr 12 22:32:10 2026
*************** f ()
*** 92,99 ****
    sp.[: ^^S::x :] = 2; // { dg-error "which is of pointer type" }
    c.[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
    cp->[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
!   s.template [: ^^S::N :].t;  // { dg-error "expected a reflection of a function template" }
!   // { dg-message "but .S::N. is a class template" "" { target *-*-* } 20 }
    S::template [: ^^S::N<int> :] e1;  // { dg-error "expected unqualified-id" }
    C<int>::template [: ^^S::N<int> :] e2;  // { dg-error "expected unqualified-id" }
    s.template [: ^^S::var<int> :] = 1;  // { dg-error "expected a reflection of a function template" }
--- 92,98 ----
    sp.[: ^^S::x :] = 2; // { dg-error "which is of pointer type" }
    c.[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
    cp->[: ^^C<char>::x :] = 1; // { dg-error "is not a base of" }
!   s.template [: ^^S::N :].t;  // { dg-error "invalid class member access of type template .S::N." }
    S::template [: ^^S::N<int> :] e1;  // { dg-error "expected unqualified-id" }
    C<int>::template [: ^^S::N<int> :] e2;  // { dg-error "expected unqualified-id" }
    s.template [: ^^S::var<int> :] = 1;  // { dg-error "expected a reflection of a function template" }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/member22.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/member22.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/member22.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/member22.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,37 ----
+ // PR c++/123726
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ struct S {
+   template<typename>
+   struct tt {};
+   template<typename T>
+   using tu = tt<T>;
+ };
+ int x;
+ void f() {}
+ 
+ template<typename>
+ struct tt {};
+ 
+ template<typename>
+ void tf() {}
+ 
+ template<typename>
+ int tv = 5;
+ 
+ template<typename T>
+ using tu = tt<T>;
+ 
+ int main() {
+   S s;
+   s.[:^^x:];		// { dg-error "not a member of .S." }
+   s.[:^^s:];		// { dg-error "not a member of .S." }
+   s.[:^^f:];		// { dg-error "not a member of .S." }
+   s.[:^^tt:];		// { dg-error "invalid class member access of type template .tt." }
+   s.template [:^^tf:];	// { dg-error "not a member of .S." }
+   s.[:^^tv:];		// { dg-error "not a member of .S." }
+   s.[:^^tu:];		// { dg-error "invalid class member access of type template .tu." }
+   s.[:^^S::tt:];	// { dg-error "invalid class member access of type template .S::tt." }
+   s.[:^^S::tu:];	// { dg-error "invalid class member access of type template .S::tu." }
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/members_of13.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/members_of13.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/members_of13.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/members_of13.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,31 ----
+ // PR c++/124831
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ namespace N
+ {
+   enum { A, B, C };
+   enum { D };
+   enum { E, F, G, H, I };
+ }
+ 
+ namespace O
+ {
+   typedef enum { A, B, C } J;
+   typedef enum { D } K;
+   typedef enum { E, F, G, H, I } L;
+ }
+ 
+ static_assert (members_of (^^N, std::meta::access_context::current ()).size () == 3);
+ static_assert (enumerators_of (members_of (^^N, std::meta::access_context::current ())[0])[0] == ^^N::A
+ 	       || enumerators_of (members_of (^^N, std::meta::access_context::current ())[1])[0] == ^^N::A
+ 	       || enumerators_of (members_of (^^N, std::meta::access_context::current ())[2])[0] == ^^N::A);
+ static_assert (enumerators_of (members_of (^^N, std::meta::access_context::current ())[0])[0] == ^^N::D
+ 	       || enumerators_of (members_of (^^N, std::meta::access_context::current ())[1])[0] == ^^N::D
+ 	       || enumerators_of (members_of (^^N, std::meta::access_context::current ())[2])[0] == ^^N::D);
+ static_assert (enumerators_of (members_of (^^N, std::meta::access_context::current ())[0])[0] == ^^N::E
+ 	       || enumerators_of (members_of (^^N, std::meta::access_context::current ())[1])[0] == ^^N::E
+ 	       || enumerators_of (members_of (^^N, std::meta::access_context::current ())[2])[0] == ^^N::E);
+ static_assert (members_of (^^O, std::meta::access_context::current ()).size () == 6);
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/pr124790.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/pr124790.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/pr124790.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/pr124790.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,38 ----
+ // PR c++/124790
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection -Wunused-but-set-variable -Wunused-but-set-parameter" }
+ 
+ consteval auto
+ foo ()
+ {
+   int a = 42;		// { dg-bogus "variable 'a' set but not used" }
+   return ^^a;
+ }
+ 
+ consteval auto
+ bar ()
+ {
+   int a = 42;		// { dg-bogus "variable 'a' set but not used" }
+   a = 7;
+   a = 9;
+   return ^^a;
+ }
+ 
+ consteval auto
+ baz (int a)		// { dg-bogus "parameter 'a' set but not used" }
+ {
+   return ^^a;
+ }
+ 
+ consteval auto
+ qux (int a)		// { dg-bogus "parameter 'a' set but not used" }
+ {
+   a = 7;
+   a = 9;
+   return ^^a;
+ }
+ 
+ constexpr auto a = foo ();
+ constexpr auto b = bar ();
+ constexpr auto c = baz (42);
+ constexpr auto d = qux (42);
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/pr124792.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/pr124792.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/pr124792.C	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/pr124792.C	Sun Apr 12 22:32:10 2026
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/124792
+ // { dg-do compile { target c++26 } }
+ // { dg-additional-options "-freflection" }
+ 
+ #include <meta>
+ 
+ struct S { const char *name = nullptr; };
+ 
+ constexpr auto a = std::define_static_array (std::vector { S { std::define_static_string ("foo") } });
+ constexpr auto b = std::define_static_array (std::vector { S { std::define_static_string ("foo") },
+ 							   S { std::define_static_string ("bar") } });
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/range_args.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/range_args.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/range_args.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/range_args.C	Sun Apr 12 22:32:10 2026
*************** test_type_range(Rg&& rg)
*** 45,51 ****
  constexpr info vt[] = {^^int, ^^int, ^^float, ^^int, ^^float, ^^double};
  static_assert (test_type_range (vt | std::views::filter (is_integral_type))); // bidirectional
  static_assert (test_type_range (vt | std::views::take_while (is_integral_type))); // non-common
! static_assert (test_type_range (vt | std::views::to_input)); // input
  static_assert (test_type_range (vt | std::views::cache_latest)); // input, move-only
  
  template<typename Rg>
--- 45,51 ----
  constexpr info vt[] = {^^int, ^^int, ^^float, ^^int, ^^float, ^^double};
  static_assert (test_type_range (vt | std::views::filter (is_integral_type))); // bidirectional
  static_assert (test_type_range (vt | std::views::take_while (is_integral_type))); // non-common
! static_assert (test_type_range (vt | std::views::as_input)); // input
  static_assert (test_type_range (vt | std::views::cache_latest)); // input, move-only
  
  template<typename Rg>
*************** constexpr bool not_digit(char c) {
*** 74,80 ****
  
  static_assert (test_value_range (vv | std::views::filter (not_digit))); // bidirectional
  static_assert (test_value_range (vv | std::views::take_while (not_digit))); // non-common
! static_assert (test_value_range (vv | std::views::to_input)); // input
  static_assert (test_value_range (vv | std::views::cache_latest)); // input, move-only
  								 
  template<int> struct Aggr;
--- 74,80 ----
  
  static_assert (test_value_range (vv | std::views::filter (not_digit))); // bidirectional
  static_assert (test_value_range (vv | std::views::take_while (not_digit))); // non-common
! static_assert (test_value_range (vv | std::views::as_input)); // input
  static_assert (test_value_range (vv | std::views::cache_latest)); // input, move-only
  								 
  template<int> struct Aggr;
*************** consteval bool of_int_type(info dm) {
*** 91,96 ****
  consteval {
    define_aggregate (^^Aggr<0>, dmt | std::views::filter (of_int_type)); // bidirectional
    define_aggregate (^^Aggr<1>, dmt | std::views::take_while (of_int_type)); // non-common
!   define_aggregate (^^Aggr<2>, dmt | std::views::to_input); // input
    define_aggregate (^^Aggr<3>, dmt | std::views::cache_latest); // input, move-only
  }
--- 91,96 ----
  consteval {
    define_aggregate (^^Aggr<0>, dmt | std::views::filter (of_int_type)); // bidirectional
    define_aggregate (^^Aggr<1>, dmt | std::views::take_while (of_int_type)); // non-common
!   define_aggregate (^^Aggr<2>, dmt | std::views::as_input); // input
    define_aggregate (^^Aggr<3>, dmt | std::views::cache_latest); // input, move-only
  }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/splice5.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/splice5.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/splice5.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/splice5.C	Sun Apr 12 22:32:10 2026
*************** template <int N>
*** 25,34 ****
  void
  qux (S &s)
  {
!   // TODO: We don't reject this one.
!   template [: N == 0 ? ^^foo : ^^:: :] (0);	// { dg-error "reflection 'foo' not usable in a template splice" "" { xfail *-*-* } }
!   template [: N == 0 ? ^^bar : ^^:: :] (0);	// { dg-message "only function templates are allowed here" "" { xfail *-*-* } .-1 }
!   s.template [: N == 0 ? ^^S::foo : ^^:: :] (0); // { dg-error "reflection 'foo' not usable in a template splice" "" { xfail *-*-* } }
    s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
  }
  
--- 25,33 ----
  void
  qux (S &s)
  {
!   template [: N == 0 ? ^^foo : ^^:: :] (0);	// { dg-error "expected a reflection of a function template" }
!   template [: N == 0 ? ^^bar : ^^:: :] (0);
!   s.template [: N == 0 ? ^^S::foo : ^^:: :] (0); // { dg-error "expected a reflection of a function template" }
    s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
  }
  
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/type_trait14.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/type_trait14.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/type_trait14.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/type_trait14.C	Sun Apr 12 22:32:10 2026
*************** struct NLType {
*** 25,32 ****
    NLType () : _M_i(0) { }
    constexpr NLType (int __i) : _M_i(__i) { }
    NLType (const NLType &__other) : _M_i(__other._M_i) { }
!   ~NLType () { _M_i = 0; }
  };
  
  static_assert (is_structural_type (^^int));
  static_assert (is_structural_type (^^float));
--- 25,33 ----
    NLType () : _M_i(0) { }
    constexpr NLType (int __i) : _M_i(__i) { }
    NLType (const NLType &__other) : _M_i(__other._M_i) { }
!   ~NLType ();
  };
+ NLType::~NLType () { _M_i = 0; }
  
  static_assert (is_structural_type (^^int));
  static_assert (is_structural_type (^^float));
diff -Nrcpad gcc-16-20260405/gcc/testsuite/g++.dg/reflect/type_trait5.C gcc-16-20260412/gcc/testsuite/g++.dg/reflect/type_trait5.C
*** gcc-16-20260405/gcc/testsuite/g++.dg/reflect/type_trait5.C	Sun Apr  5 22:32:10 2026
--- gcc-16-20260412/gcc/testsuite/g++.dg/reflect/type_trait5.C	Sun Apr 12 22:32:10 2026
*************** namespace N
*** 207,219 ****
    void foo ();
  }
  
- int v = 1;
- struct S1 { decltype (^^long) a; };
- union U2 { int a; decltype (^^N::foo) b; };
- struct S3 { const decltype (^^N) *c; };
- struct S4 : public S3 {};
- struct S5 { int a; long *b; };
- 
  static_assert (is_const_type (^^const int));
  static_assert (is_const_type (^^const volatile int));
  static_assert (is_const_type (^^cClassType));
--- 207,212 ----
*************** static_assert (!is_aggregate_type (^^Enu
*** 339,355 ****
  static_assert (!is_aggregate_type (^^void));
  static_assert (!is_aggregate_type (^^NoexceptMoveAssignClass));
  
- static_assert (is_consteval_only_type (^^decltype (^^long)));
- static_assert (is_consteval_only_type (^^const decltype (^^N::foo)));
- static_assert (is_consteval_only_type (^^volatile decltype (^^N)));
- static_assert (is_consteval_only_type (^^const volatile decltype (^^v)));
- static_assert (is_consteval_only_type (^^const S1));
- static_assert (is_consteval_only_type (^^U2));
- static_assert (is_consteval_only_type (^^S3));
- static_assert (is_consteval_only_type (^^S4));
- static_assert (!is_consteval_only_type (^^int));
- static_assert (!is_consteval_only_type (^^S5));
- 
  static_assert (!is_signed_type (^^void));
  static_assert (char (-1) < char (0) ? is_signed_type (^^char) : !is_signed_type (^^char));
  static_assert (is_signed_type (^^signed char));
--- 332,337 ----
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.c-torture/compile/pr105192.c gcc-16-20260412/gcc/testsuite/gcc.c-torture/compile/pr105192.c
*** gcc-16-20260405/gcc/testsuite/gcc.c-torture/compile/pr105192.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.c-torture/compile/pr105192.c	Sun Apr 12 22:32:11 2026
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-additional-options "-fno-if-conversion -fharden-compares" } */
+ 
+ int a, b;
+ 
+ void
+ foo (void)
+ {
+   b = a % 0 > 0;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c gcc-16-20260412/gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c
*** gcc-16-20260405/gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c	Sun Apr  5 22:32:13 2026
--- gcc-16-20260412/gcc/testsuite/gcc.dg/torture/fp-double-convert-float-1.c	Sun Apr 12 22:32:11 2026
***************
*** 1,5 ****
  /* PR57245 */
! /* { dg-do run } */
  /* { dg-require-effective-target fenv } */
  /* { dg-require-effective-target hard_float } */
  /* { dg-additional-options "-frounding-math" } */
--- 1,5 ----
  /* PR57245 */
! /* { dg-do run { xfail { arm_mixed_fp } } } */
  /* { dg-require-effective-target fenv } */
  /* { dg-require-effective-target hard_float } */
  /* { dg-additional-options "-frounding-math" } */
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.dg/torture/pr124810.c gcc-16-20260412/gcc/testsuite/gcc.dg/torture/pr124810.c
*** gcc-16-20260405/gcc/testsuite/gcc.dg/torture/pr124810.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.dg/torture/pr124810.c	Sun Apr 12 22:32:11 2026
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-additional-options "-fno-tree-ch -fno-tree-dce -fno-tree-dominator-opts -fno-tree-vrp -fno-tree-dse" } */
+ 
+ int a, b[9], c, d;
+ static void e() {
+   int f[9];
+   unsigned char g;
+ h:
+ i:
+   if (a)
+     goto h;
+   g = 0;
+   for (; g < 9; g++) {
+     b[g] = f[8] ? 0 : g;
+     if (g)
+       goto i;
+     d ? c && d < 0 : c;
+   }
+ }
+ int main() {
+   while (c)
+     e();
+   return 0;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.dg/tsan/atomic-invalid.c gcc-16-20260412/gcc/testsuite/gcc.dg/tsan/atomic-invalid.c
*** gcc-16-20260405/gcc/testsuite/gcc.dg/tsan/atomic-invalid.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.dg/tsan/atomic-invalid.c	Sun Apr 12 22:32:12 2026
***************
*** 0 ****
--- 1,39 ----
+ /* PR middle-end/124827 */
+ /* Test __atomic routines for invalid memory model errors. This only needs
+    to be tested on a single size.  */
+ /* { dg-do compile } */
+ /* { dg-require-effective-target sync_int_long } */
+ /* { dg-options "-fsanitize=thread -Winvalid-memory-model" } */
+ 
+ int i, e, b;
+ bool x;
+ 
+ [[gnu::always_inline]] static inline void
+ foo (int relaxed, int seq_cst, int acquire, int release, int acq_rel, int consume)
+ {
+   __atomic_compare_exchange_n (&i, &e, 1, 0, relaxed, seq_cst); /* { dg-warning "failure memory model 'memory_order_seq_cst' cannot be stronger" } */
+   __atomic_compare_exchange_n (&i, &e, 1, 0, seq_cst, release); /* { dg-warning "invalid failure memory" } */
+   __atomic_compare_exchange_n (&i, &e, 1, 1, seq_cst, acq_rel); /* { dg-warning "invalid failure memory" } */
+ 
+   __atomic_load_n (&i, release); /* { dg-warning "invalid memory model" } */
+   __atomic_load_n (&i, acq_rel); /* { dg-warning "invalid memory model" } */
+ 
+   __atomic_store_n (&i, 1, acquire); /* { dg-warning "invalid memory model" } */
+   __atomic_store_n (&i, 1, consume); /* { dg-warning "invalid memory model" } */
+   __atomic_store_n (&i, 1, acq_rel); /* { dg-warning "invalid memory model" } */
+ 
+   __atomic_load_n (&i, 44); /* { dg-warning "invalid memory model" } */
+ 
+   __atomic_clear (&x, consume); /* { dg-warning "invalid memory model" } */
+   __atomic_clear (&x, acquire); /* { dg-warning "invalid memory model" } */
+ 
+   __atomic_clear (&x, acq_rel); /* { dg-warning "invalid memory model" } */
+ 
+ }
+ 
+ int
+ main ()
+ {
+   foo (__ATOMIC_RELAXED, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE, __ATOMIC_RELEASE,
+        __ATOMIC_ACQ_REL, __ATOMIC_CONSUME);
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.dg/vect/vect-pr124743.c gcc-16-20260412/gcc/testsuite/gcc.dg/vect/vect-pr124743.c
*** gcc-16-20260405/gcc/testsuite/gcc.dg/vect/vect-pr124743.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.dg/vect/vect-pr124743.c	Sun Apr 12 22:32:12 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-additional-options "-O3 -fno-tree-loop-distribute-patterns -fno-tree-loop-distribution -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dse" } */
+ 
+ int a, b, c, d;
+ int e(int f, int g) { return g < 0 || g > 1 ? 0 : f >> g; }
+ int h(int i) { return a > 1 ? 0 : i << a; }
+ int main()
+ {
+   for (; b; b++)
+     c = e(h(1), d);
+   return 0;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.dg/vect/vect-pr124802.c gcc-16-20260412/gcc/testsuite/gcc.dg/vect/vect-pr124802.c
*** gcc-16-20260405/gcc/testsuite/gcc.dg/vect/vect-pr124802.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.dg/vect/vect-pr124802.c	Sun Apr 12 22:32:12 2026
***************
*** 0 ****
--- 1,118 ----
+ /* { dg-skip-if "requires x86 intrinsic header" { ! { x86_64-*-* i?86-*-* } } } */
+ /* { dg-require-effective-target avx2_runtime } */
+ /* { dg-require-effective-target fma } */
+ /* { dg-additional-options "-mavx2 -mfma" } */
+ 
+ /* PR tree-optimization/NNNNN
+    Wrong code with AVX2 complex double multiply at -O2.
+    Reduced from a sparse matrix kernel.  */
+ 
+ #include <immintrin.h>
+ 
+ #include "tree-vect.h"
+ 
+ static inline __m256d
+ cmul (__m256d a, __m256d b)
+ {
+   __m256d t = _mm256_mul_pd (_mm256_movedup_pd (_mm256_permute_pd (a, 0x5)), b);
+   return _mm256_fmaddsub_pd (_mm256_movedup_pd (a), b,
+      _mm256_permute_pd (t, 0x5));
+ }
+ 
+ __attribute__((noipa)) void
+ kern (long n, long nnz, const double *alpha, const double *val,
+       const long *col, const double *B, long ldb, double *C)
+ {
+   for (long p = 0; p < nnz; p += 4)
+     {
+       long blkr, p0, p1, p2, p3;
+       long left = nnz - p;
+       if (left == 1)      { blkr=1; p0=p; p1=p;   p2=p;   p3=p;   }
+       else if (left == 2) { blkr=2; p0=p; p1=p+1; p2=p;   p3=p;   }
+       else if (left == 3) { blkr=3; p0=p; p1=p+1; p2=p+2; p3=p;   }
+       else                { blkr=4; p0=p; p1=p+1; p2=p+2; p3=p+3; }
+ 
+       double ar0 = alpha[0]*val[p0*2] - alpha[1]*val[p0*2+1];
+       double ai0 = alpha[0]*val[p0*2+1] + alpha[1]*val[p0*2];
+       double ar1 = alpha[0]*val[p1*2] - alpha[1]*val[p1*2+1];
+       double ai1 = alpha[0]*val[p1*2+1] + alpha[1]*val[p1*2];
+       double ar2 = alpha[0]*val[p2*2] - alpha[1]*val[p2*2+1];
+       double ai2 = alpha[0]*val[p2*2+1] + alpha[1]*val[p2*2];
+       double ar3 = alpha[0]*val[p3*2] - alpha[1]*val[p3*2+1];
+       double ai3 = alpha[0]*val[p3*2+1] + alpha[1]*val[p3*2];
+ 
+       long b0 = col[p0]*ldb*2, b1 = col[p1]*ldb*2;
+       long b2 = col[p2]*ldb*2, b3 = col[p3]*ldb*2;
+ 
+       for (long j = 0; j < n * 2; j += 4)
+ {
+   __m256d cv  = _mm256_loadu_pd (&C[j]);
+   __m256d bv0 = _mm256_loadu_pd (&B[j + b0]);
+   __m256d bv1 = _mm256_loadu_pd (&B[j + b1]);
+   __m256d bv2 = _mm256_loadu_pd (&B[j + b2]);
+   __m256d bv3 = _mm256_loadu_pd (&B[j + b3]);
+   __m256d av0 = _mm256_set_pd (ai0, ar0, ai0, ar0);
+   __m256d av1 = _mm256_set_pd (ai1, ar1, ai1, ar1);
+   __m256d av2 = _mm256_set_pd (ai2, ar2, ai2, ar2);
+   __m256d av3 = _mm256_set_pd (ai3, ar3, ai3, ar3);
+ 
+   switch (blkr)
+     {
+     case 4: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     cv = _mm256_add_pd (cmul (av1, bv1), cv);
+     cv = _mm256_add_pd (cmul (av2, bv2), cv);
+     cv = _mm256_add_pd (cmul (av3, bv3), cv);
+     break;
+     case 3: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     cv = _mm256_add_pd (cmul (av1, bv1), cv);
+     cv = _mm256_add_pd (cmul (av2, bv2), cv);
+     break;
+     case 2: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     cv = _mm256_add_pd (cmul (av1, bv1), cv);
+     break;
+     case 1: cv = _mm256_add_pd (cmul (av0, bv0), cv);
+     break;
+     }
+   _mm256_storeu_pd (&C[j], cv);
+ }
+     }
+ }
+ 
+ int
+ main (void)
+ {
+   check_vect ();
+ 
+   double alpha[2] = { 1.0, -2.0 };
+   double val[] = { 5, 12, 5, 40, -1, 5 };
+   long col[] = { 0, 1, 2 };
+   double B[] = {
+     10, 240, 24, 523,
+     -23, 233, 55, 28,
+     1, 2, 2, 52
+   };
+   double ref[4] = { 0 }, res[4] = { 0 };
+   int i, j, k;
+ 
+   for (k = 0; k < 3; k++)
+     {
+       double ar = alpha[0]*val[k*2] - alpha[1]*val[k*2+1];
+       double ai = alpha[0]*val[k*2+1] + alpha[1]*val[k*2];
+       for (j = 0; j < 2; j++)
+ 	{
+ 	  ref[j*2]   += ar*B[(col[k]*2+j)*2] - ai*B[(col[k]*2+j)*2+1];
+ 	  ref[j*2+1] += ar*B[(col[k]*2+j)*2+1] + ai*B[(col[k]*2+j)*2];
+ 	}
+     }
+ 
+   kern (2, 3, alpha, val, col, B, 2, res);
+ 
+   for (i = 0; i < 4; i++)
+     {
+       double d = res[i] - ref[i];
+       if (d * d > 1e-10)
+ 	__builtin_abort ();
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.target/aarch64/sve/cost_model_16.c gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/sve/cost_model_16.c
*** gcc-16-20260405/gcc/testsuite/gcc.target/aarch64/sve/cost_model_16.c	Sun Apr  5 22:32:14 2026
--- gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/sve/cost_model_16.c	Sun Apr 12 22:32:12 2026
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-Ofast -march=armv8-a+sve --param vect-scalar-cost-multiplier=1000 -fdump-tree-vect-details" } */
  
  void
  foo (char *restrict a, int *restrict b, int *restrict c,
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-Ofast -march=armv8-a+sve --param vect_allow_possibly_not_worthwhile_vectorizations=1 -fdump-tree-vect-details" } */
  
  void
  foo (char *restrict a, int *restrict b, int *restrict c,
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.target/aarch64/sve/cost_model_19.c gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/sve/cost_model_19.c
*** gcc-16-20260405/gcc/testsuite/gcc.target/aarch64/sve/cost_model_19.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.target/aarch64/sve/cost_model_19.c	Sun Apr 12 22:32:12 2026
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Ofast -march=armv8-a+sve -mmax-vectorization -ffreestanding -fdump-tree-vect-details" } */
+ 
+ unsigned long f(const char *s)
+ {
+     unsigned long i = 0;
+     while (*s++)
+         i++;
+     return i;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" } } */
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.target/i386/pr124759.c gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124759.c
*** gcc-16-20260405/gcc/testsuite/gcc.target/i386/pr124759.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.target/i386/pr124759.c	Sun Apr 12 22:32:13 2026
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run { target { avx_runtime && { *-*-linux* *-*-gnu* } } } } */
+ /* { dg-options "-fhardened -O3 -mavx" } */
+ 
+ struct a {
+   unsigned long long b;
+   unsigned long long c;
+   int d;
+   char e;
+   int f;
+ } g;
+ int h = 1, i, j;
+ long long k, l, n;
+ int m[1]={};
+ short o;
+ static inline short p(short q, short r) { return q + r; }
+ int main() {
+   for (; h < 3; h = p(h, 1))
+     if (h) {
+       k |= 4;
+       struct a s = {8, 2, 2, 4, 15};
+       for (int n = 0; n != 54; n++)
+         if (m[l])
+           if (i)
+             o = 0;
+       g = s;
+       j &= 4073709551610LL;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.target/powerpc/acmp-tst.c gcc-16-20260412/gcc/testsuite/gcc.target/powerpc/acmp-tst.c
*** gcc-16-20260405/gcc/testsuite/gcc.target/powerpc/acmp-tst.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.target/powerpc/acmp-tst.c	Sun Apr 12 22:32:13 2026
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ #define TESTS \
+   X(signed char, qi) \
+   X(unsigned char, uqi) \
+   X(short, hi) \
+   X(signed short, shi) \
+   X(unsigned short, uhi) \
+   X(int, si) \
+   X(signed int, ssi) \
+   X(unsigned int, usi) \
+   X(long, di) \
+   X(signed long, sdi) \
+   X(unsigned long, udi) \
+   X(vector signed __int128, sti) \
+   X(vector unsigned __int128, uti)
+ 
+ #define X(T, name) \
+ bool word_exchange_##name (T *ptr, T *expected, T * desired) \
+ { \
+   return __builtin_ppc_atomic_cas_local (ptr, expected, desired, 0, \
+ 					 __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE); \
+ }
+ 
+ TESTS
+ 
+ /* { dg-final { scan-assembler-times {\mlbarx +[0-9]+,[0-9]+,[0-9]+,1} 2 } } */
+ /* { dg-final { scan-assembler-times {\mlharx +[0-9]+,[0-9]+,[0-9]+,1} 3 } } */
+ /* { dg-final { scan-assembler-times {\mlwarx +[0-9]+,[0-9]+,[0-9]+,1} 3 } } */
+ /* { dg-final { scan-assembler-times {\mldarx +[0-9]+,[0-9]+,[0-9]+,1} 3 } } */
+ /* { dg-final { scan-assembler-times {\mlqarx +[0-9]+,[0-9]+,[0-9]+,1} 2 } } */
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.target/riscv/pr124818.c gcc-16-20260412/gcc/testsuite/gcc.target/riscv/pr124818.c
*** gcc-16-20260405/gcc/testsuite/gcc.target/riscv/pr124818.c	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gcc.target/riscv/pr124818.c	Sun Apr 12 22:32:13 2026
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target { riscv32*-*-* } } } */
+ /* { dg-options "-O2 -march=rv32gc_zbkb -mabi=ilp32" } */
+ 
+ int
+ f (unsigned int *flags)
+ {
+   *flags |= 0x20000U;
+   return 1;
+ }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c gcc-16-20260412/gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c
*** gcc-16-20260405/gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c	Sun Apr  5 22:32:15 2026
--- gcc-16-20260412/gcc/testsuite/gcc.target/riscv/predef-__riscv_v_intrinsic.c	Sun Apr 12 22:32:13 2026
***************
*** 3,9 ****
  
  int main () {
  
! #if __riscv_v_intrinsic != 12000
  #error "__riscv_v_intrinsic"
  #endif
  
--- 3,9 ----
  
  int main () {
  
! #if __riscv_v_intrinsic != 1000000
  #error "__riscv_v_intrinsic"
  #endif
  
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c gcc-16-20260412/gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c
*** gcc-16-20260405/gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c	Sun Apr  5 22:32:15 2026
--- gcc-16-20260412/gcc/testsuite/gcc.target/riscv/rvv/base/pr114017-1.c	Sun Apr 12 22:32:14 2026
*************** test (vuint16m1_t val, size_t shift, siz
*** 11,19 ****
    return __riscv_vnclipu (val, shift, vl);
  #endif
  
! #if __riscv_v_intrinsic == 12000
!   #warning "RVV Intrinsics v0.12" /* { dg-warning "RVV Intrinsics v0.12" } */
    return __riscv_vnclipu (val, shift, 0, vl);
  #endif
  }
- 
--- 11,18 ----
    return __riscv_vnclipu (val, shift, vl);
  #endif
  
! #if __riscv_v_intrinsic == 1000000
!   #warning "RVV Intrinsics v1.0" /* { dg-warning "RVV Intrinsics v1.0" } */
    return __riscv_vnclipu (val, shift, 0, vl);
  #endif
  }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/defined_assignment_13.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/defined_assignment_13.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/defined_assignment_13.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/defined_assignment_13.f90	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,298 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/120140 - defined assignment and vector subscripts
+ 
+ !---------------------------------------
+ ! Part 1: Derived from original testcase
+ !---------------------------------------
+ module mod1
+   implicit none
+ 
+   type typ1
+      integer :: i
+    contains
+      procedure, pass(y) :: assign_typ1
+      generic :: assignment(=) => assign_typ1
+   end type typ1
+ 
+ contains
+ 
+   elemental subroutine assign_typ1(x,y)
+     class(typ1), intent(inout) :: x
+     class(typ1), intent(in)    :: y
+     x%i = y%i + 42
+   end subroutine assign_typ1
+ 
+   subroutine test1(x,y)
+     class(typ1), intent(inout) :: x(:)
+     class(typ1), intent(in)    :: y(:)
+     x([2,1]) = y([1,2])
+   end subroutine test1
+ 
+ end module mod1
+ 
+ module mod2
+   implicit none
+ 
+   type typ2
+      integer i
+   end type typ2
+ 
+   interface assignment(=)
+      module procedure sub
+   end interface assignment(=)
+ 
+ contains
+ 
+   elemental subroutine sub(x, y)
+     class(typ2), intent(inout) :: x
+     class(typ2), intent(in)    :: y
+     x%i = y%i + 42
+   end subroutine sub
+ 
+   subroutine test2(x,y)
+     class(typ2), intent(inout) :: x(:)
+     class(typ2), intent(in)    :: y(:)
+     x([2,1]) = y([1,2])
+   end subroutine test2
+ 
+ end module mod2
+ 
+ subroutine pr120140
+   use mod1
+   use mod2
+   implicit none
+ 
+   type(typ1) :: p1(8), q1(8)
+   type(typ2) :: p2(8), q2(8)
+   integer    :: j
+ 
+   p1%i = 0
+   q1%i = [(j,j=1,8)]
+   call test1 (p1, q1)
+   if (any(p1%i /= [44, 43, 0, 0, 0, 0, 0, 0])) then
+      print *, p1%i
+      stop 1
+   end if
+ 
+   p2%i = 0
+   q2%i = [(j,j=1,8)]
+   call test2 (p2, q2)
+   if (any(p2%i /= [44, 43, 0, 0, 0, 0, 0, 0])) then
+      print *, p2%i
+      stop 2
+   end if
+ end subroutine pr120140
+ 
+ !---------------------------
+ ! Part 2: Supplemental tests
+ !---------------------------
+ module pr120140_extras
+   implicit none
+   public :: extra_tests
+   private
+ 
+   type t1
+      integer :: i = 0
+   end type t1
+ 
+   type t2
+      integer :: i = 0
+   end type t2
+ 
+   interface assignment(=)
+      module procedure sub1
+      module procedure sub2
+   end interface assignment(=)
+ 
+ contains
+ 
+   elemental subroutine sub1 (x, y)
+     type(t1), intent(inout) :: x
+     type(t1), intent(in)    :: y
+     x%i = y%i + 23
+   end subroutine sub1
+ 
+   elemental subroutine sub2 (x, y)
+     class(t2), intent(inout) :: x
+     class(t2), intent(in)    :: y
+     x%i = y%i + 42
+   end subroutine sub2
+ 
+   subroutine extra_tests ()
+     integer :: j
+     type(t1) :: p1(4), q1(4) = [(t1(j),j=1,4)]
+     type(t2) :: p2(4), q2(4) = [(t2(j),j=1,4)]
+     integer  :: operm(2) = [2,1]
+     integer  :: iperm(2) = [1,2]
+     integer  :: expect1(4) = [25,24,0,0]
+     integer  :: expect2(4) = [44,43,0,0]
+ 
+     !-----------------------------------
+     ! (1) l.h.s. not depending on r.h.s.
+     ! check type and class
+     !-----------------------------------
+     ! l.h.s. array section, r.h.s. array section
+     p1%i       = 0
+     p1(2:1:-1) = q1(1:2)
+     call check (p1%i, expect1, 11)
+ 
+     p2%i       = 0
+     p2(2:1:-1) = q2(1:2)
+     call check (p2%i, expect2, 21)
+ 
+     p1%i       = 0
+     call sub1  (p1(2:1:-1), q1(1:2))
+     call check (p1%i, expect1, 31)
+ 
+     p2%i       = 0
+     call sub2  (p2(2:1:-1), q2(1:2))
+     call check (p2%i, expect2, 41)
+ 
+     ! l.h.s. vector indices, r.h.s. array section
+     p1%i       = 0
+     p1([2,1])  = q1(1:2)
+     call check (p1%i, expect1, 12)
+ 
+     p1%i       = 0
+     call sub1  (p1([2,1]), q1(1:2))
+     call check (p1%i, expect1, 22)
+ 
+     p2%i       = 0
+     p2([2,1])  = q2(1:2)
+     call check (p2%i, expect2, 32)
+ 
+     p2%i       = 0
+     call sub2  (p2([2,1]), q2(1:2))
+     call check (p2%i, expect2, 42)
+ 
+     ! l.h.s. permutation vector, r.h.s. array section
+     p1%i       = 0
+     p1(operm)  = q1(1:2)
+     call check (p1%i, expect1, 13)
+ 
+     p1%i       = 0
+     call sub1  (p1(operm), q1(1:2))
+     call check (p1%i, expect1, 23)
+ 
+     p2%i       = 0
+     p2(operm)  = q2(1:2)
+     call check (p2%i, expect2, 33)
+ 
+     p2%i       = 0
+     call sub2  (p2(operm), q2(1:2))
+     call check (p2%i, expect2, 43)
+ 
+     ! l.h.s. array section, r.h.s vector indices
+     p1%i       = 0
+     p1(2:1:-1) = q1([1,2])
+     call check (p1%i, expect1, 14)
+ 
+     p1%i       = 0
+     call sub1  (p1(2:1:-1), q1([1,2]))
+     call check (p1%i, expect1, 24)
+ 
+     p2%i       = 0
+     p2(2:1:-1) = q2([1,2])
+     call check (p1%i, expect1, 34)
+ 
+     p2%i       = 0
+     call sub2  (p2(2:1:-1), q2([1,2]))
+     call check (p2%i, expect2, 44)
+ 
+     ! l.h.s. vector indices, r.h.s vector indices
+     p1%i       = 0
+     p1([2,1])  = q1([1,2])
+     call check (p1%i, expect1, 15)
+ 
+     p1%i       = 0
+     call sub1  (p1([2,1]), q1([1,2]))
+     call check (p1%i, expect1, 25)
+ 
+     p2%i       = 0
+     p2([2,1])  = q2([1,2])
+     call check (p2%i, expect2, 35)
+ 
+     p2%i       = 0
+     call sub2  (p2([2,1]), q2([1,2]))
+     call check (p2%i, expect2, 45)
+ 
+     !---------------------------------
+     ! (2) l.h.s. *depending* on r.h.s.
+     ! check type and class
+     !---------------------------------
+     expect1 = [25,24,3,4]
+     expect2 = [44,43,3,4]
+ 
+     ! l.h.s. array section, r.h.s. array section
+     p1%i       = q1%i
+     p1(2:1:-1) = p1(1:2)
+     call check (p1%i, expect1, 51)
+ 
+     p2%i       = q2%i
+     p2(2:1:-1) = p2(1:2)
+     call check (p2%i, expect2, 53)
+ 
+     p1%i       = q1%i
+     call sub1  (p1(2:1:-1), (p1(1:2)))  ! Beware: force evaluation of arg2!
+     call check (p1%i, expect1, 52)
+ 
+     p2%i       = q2%i
+     call sub2  (p2(2:1:-1), (p2(1:2)))  ! Beware: force evaluation of arg2!
+     call check (p2%i, expect2, 54)
+ 
+     ! l.h.s. array section, r.h.s vector indices
+     p1%i       = q1%i
+     p1(2:1:-1) = p1([1,2])
+     call check (p1%i, expect1, 61)
+ 
+     p2%i       = q2%i
+     p2(2:1:-1) = p2([1,2])
+     call check (p2%i, expect2, 63)
+ 
+     p1%i       = q1%i
+     call sub1  (p1(2:1:-1), (p1([1,2])))
+     call check (p1%i, expect1, 62)
+ 
+     p2%i       = q2%i
+     call sub2  (p2(2:1:-1), (p2([1,2])))
+     call check (p2%i, expect2, 64)
+ 
+     ! l.h.s. vector indices, r.h.s. array section
+     ! (this part currently disabled because the temporary for the l.h.s.
+     ! is not yet implemented properly)
+ !   p1%i       = q1%i
+ !   p1([2,1])  = p1(1:2)
+ !   call check (p1%i, expect1, 71)
+ !
+ !   p2%i       = q2%i
+ !   p2([2,1])  = p2(1:2)
+ !   call check (p2%i, expect2, 73)
+ 
+ !   p1%i       = q1%i
+ !   call sub1  (p1([2,1]), (p1(1:2)))
+ !   call check (p1%i, expect1, 72)
+ !
+ !   p2%i       = q2%i
+ !   call sub2  (p2([2,1]), (p2(1:2)))
+ !   call check (p2%i, expect2, 74)
+ 
+   end subroutine extra_tests
+ 
+   subroutine check (result, expect, code)
+     integer, intent(in) :: result(:), expect(:), code
+     if (any (result /= expect)) then
+        print *, code, ":", result, "/=", expect
+        stop code
+     end if
+   end subroutine check
+ 
+ end module pr120140_extras
+ 
+ !-----------
+ 
+ program main
+   use pr120140_extras
+   call pr120140 ()
+   call extra_tests ()
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/goacc/pr93554.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/pr93554.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/goacc/pr93554.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/goacc/pr93554.f90	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! { dg-additional-options "-fopenacc" }
+ !
+ ! PR fortran/93554
+ ! ICE in expand_oacc_for when a derived type with an allocatable
+ ! component is used with the private clause on an acc loop.
+ 
+ program p
+    type t
+       integer :: a
+       integer, allocatable :: b(:)
+    end type
+    type(t) :: x
+    integer :: i
+    !$acc kernels
+    !$acc loop private(x)
+    do i = 0, 31
+       x%a = 1
+    end do
+    !$acc end kernels
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/gomp/pr102430.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr102430.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/gomp/pr102430.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr102430.f90	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp" }
+ ! PR fortran/102430
+ 
+ program p
+   integer :: a(2)
+   !$omp parallel do linear(a)  ! { dg-error "Sorry, array" }
+   do i = 1, 8
+     a = a + 1
+   end do
+ end program p
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/gomp/pr104827.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr104827.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/gomp/pr104827.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr104827.f90	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! PR fortran/104827
+ ! Contributed by G. Steinmetz <gscfq@t-online.de>
+ !
+ ! ICE in gfc_conv_array_constructor_expr with declare variant.
+ 
+ program main
+ contains
+   subroutine f(x)
+     integer :: x
+   end subroutine
+   subroutine variant(x)
+     integer :: x
+     !$omp declare variant (f: match (construct={parallel}))  ! { dg-error "expected '\\)'" }
+   end subroutine
+ end program
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/gomp/pr107425.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr107425.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/gomp/pr107425.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/gomp/pr107425.f90	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! { dg-options "-fopenmp" }
+ !
+ ! PR fortran/107425
+ ! ICE in gimplify_var_or_parm_decl when an implicitly typed variable
+ ! is used as a subscript in an iterator depend clause.
+ 
+ program p
+    integer :: x(8)
+    !$omp taskwait depend(iterator(i=1:8), in:x(j))
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pdt_91.f03 gcc-16-20260412/gcc/testsuite/gfortran.dg/pdt_91.f03
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pdt_91.f03	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pdt_91.f03	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,30 ----
+ ! {dg-do compile }
+ ! { dg-options "-fdump-tree-original" }
+ !
+ ! Test the fix for PR124598.
+ !
+ ! Contributed by Antoine Lemoine  <antoine.lemoine@bordeaux-inp.fr>
+ !
+ program test_pdt
+    implicit none
+ 
+    type t_foo
+       integer :: c
+    end type t_foo
+ 
+    type t_bar(n)
+       integer, len :: n = 1
+       type(t_foo) :: foo(n)
+    end type t_bar
+ 
+    type t_baz(n)
+       integer, len :: n = 1
+       type(t_bar(n)) :: bar(n)
+    end type t_baz
+ 
+    type(t_baz(n=10)) :: baz         ! Used to ICE at this line
+ !   baz%bar(1)%foo = t_foo(1)
+    print *, baz%bar(1)%foo
+ end program test_pdt
+ ! Check that the upper bound for baz%bar%foo is set correctly.
+ ! { dg-final { scan-tree-dump-times "foo.dim.0..ubound = 10" 1 "original" } }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr103367.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr103367.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr103367.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr103367.f90	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ !
+ ! PR fortran/103367
+ ! Invalid initialization expressions must not ICE if they survive
+ ! semantic checking and reach array initializer lowering.
+ 
+ program p
+   type t
+     integer :: a(1,2) = 3
+   end type
+   type(t), parameter :: x(1) = t(4)
+   integer :: y(1,2) = (x(b)%a) ! { dg-error "does not reduce to a constant expression" }
+   print *, y
+ end
+ ! { dg-prune-output "Legacy Extension: REAL array index" }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr124543.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr124543.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr124543.f90	Sun Apr  5 22:32:16 2026
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr124543.f90	Sun Apr 12 22:32:14 2026
***************
*** 1,5 ****
! ! { dg-do run )
! 
  ! PR124543, test case derived from that in the PR with several
  ! corrections. Some of the logic which was inverted. Some INQUIRE
  ! statements were missing the EXISTS. Segfaults now fixed.
--- 1,5 ----
! ! { dg-do run }
! ! { dg-options "-O0" }
  ! PR124543, test case derived from that in the PR with several
  ! corrections. Some of the logic which was inverted. Some INQUIRE
  ! statements were missing the EXISTS. Segfaults now fixed.
*************** program inq_tests
*** 164,170 ****
    inquire (file=lfn, decimal=decimal, encoding=encoding, pos=pos,  &
        round=round, sign=signc, stream=stream, iostat=iostat)
    if  (decimal /= 'POINT' .or. (iostat /= 0)) stop 166
!   if  (encoding /= 'UNKNOWN') stop 167
    if  (round /= 'PROCESSOR_DEFINED') stop 168
    if  (signc /= 'PROCESSOR_DEFINED') stop 169
    if  (stream /= 'NO') stop 170
--- 164,170 ----
    inquire (file=lfn, decimal=decimal, encoding=encoding, pos=pos,  &
        round=round, sign=signc, stream=stream, iostat=iostat)
    if  (decimal /= 'POINT' .or. (iostat /= 0)) stop 166
!   if  (encoding /= 'DEFAULT') stop 167
    if  (round /= 'PROCESSOR_DEFINED') stop 168
    if  (signc /= 'PROCESSOR_DEFINED') stop 169
    if  (stream /= 'NO') stop 170
*************** program inq_tests
*** 202,208 ****
    inquire (unit=lun, decimal=decimal, encoding=encoding, pos=pos,  &
        round=round, sign=signc, stream=stream, iostat=iostat)
    if  (decimal /= 'POINT' .or. (iostat /= 0)) stop 204
!   if  (encoding /= 'UNDEFINED') stop 205
    if  (round /= 'PROCESSOR_DEFINED') stop 206
    if  (signc /= 'PROCESSOR_DEFINED') stop 207
    if  (stream /= 'NO') stop 208
--- 202,208 ----
    inquire (unit=lun, decimal=decimal, encoding=encoding, pos=pos,  &
        round=round, sign=signc, stream=stream, iostat=iostat)
    if  (decimal /= 'POINT' .or. (iostat /= 0)) stop 204
!   if  (encoding /= 'DEFAULT') stop 205
    if  (round /= 'PROCESSOR_DEFINED') stop 206
    if  (signc /= 'PROCESSOR_DEFINED') stop 207
    if  (stream /= 'NO') stop 208
*************** program inq_tests
*** 246,252 ****
    inquire (file=lfn, decimal=decimal, encoding=encoding, pos=pos,  &
        round=round, sign=signc, stream=stream, recl=recl, iostat=iostat)
    if  (decimal /= 'UNDEFINED' .or. (iostat /= 0)) stop 248
!   if  (encoding /= 'UNKNOWN') stop 249
    if  (round /= 'PROCESSOR_DEFINED') stop 250
    if  (signc /= 'PROCESSOR_DEFINED') stop 251
    if  (stream /= 'YES') stop 252
--- 246,252 ----
    inquire (file=lfn, decimal=decimal, encoding=encoding, pos=pos,  &
        round=round, sign=signc, stream=stream, recl=recl, iostat=iostat)
    if  (decimal /= 'UNDEFINED' .or. (iostat /= 0)) stop 248
!   if  (encoding /= 'UNDEFINED') stop 249
    if  (round /= 'PROCESSOR_DEFINED') stop 250
    if  (signc /= 'PROCESSOR_DEFINED') stop 251
    if  (stream /= 'YES') stop 252
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr124780.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr124780.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr124780.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr124780.f90	Sun Apr 12 22:32:14 2026
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ !
+ ! Test the fix for PR124780, which failes as in comments below.
+ !
+ ! Contributed by Harald Anlauf  <anlauf@gcc.gnu.org>
+ !
+ program p
+    integer :: i
+    type :: t
+      integer, allocatable :: i(:)
+    end type
+    type (t), allocatable :: src(:), ans(:)
+    src = [t([1,2]), t([3,4])] ! Leaks memory 16 bytes in 2 blocks;
+                               ! familiar from PDT memory leaks :-(
+    ans = f(src)
+    do i = 1,2
+      if (any (src(i)%i /= ans(i)%i)) stop 1
+      deallocate (ans(i)%i, src(i)%i)
+    enddo
+    deallocate (ans, src) 
+ contains
+    function f(x) result(z)
+      class(t), intent(inout) :: x(:)
+      type(t)  :: z (size(x))
+      class(t), allocatable :: a(:)
+      class(t), allocatable :: b(:)
+      allocate (a(size(x)))
+      select type (x)
+        type is (t)
+          a = x                                ! Mangled src and caused
+                                               ! double free at line 12
+      end select
+      b = x
+      z = (b)                                  ! ICE, without patch
+    end
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr79524.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr79524.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr79524.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr79524.f90	Sun Apr 12 22:32:15 2026
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! { dg-set-target-env-var MALLOC_PERTURB_ "165" }
+ ! PR fortran/79524
+ ! Reject parameter arrays with variable-length CHARACTER elements without
+ ! leaving the temporary charlen from the failed declaration on cl_list.
+ program p
+   character(*), parameter :: z(2) = [character(n) :: 'x', 'y'] ! { dg-error "Cannot initialize parameter array" }
+   character(*), parameter :: w(2) = [character(n+1) :: 'a', 'b'] ! { dg-error "Cannot initialize parameter array" }
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr85352.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr85352.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr85352.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr85352.f90	Sun Apr 12 22:32:15 2026
***************
*** 0 ****
--- 1,44 ----
+ ! { dg-do compile }
+ 
+ subroutine expa (ip, iq, sabb)
+   implicit none
+   integer, intent(in) :: ip, iq
+   real :: sabb(25, 8), arg(25), argj, dist
+   integer :: i, j
+   integer :: nuca, nucb, nucab, nuco
+ 
+   arg = [(i * 7.5, i = 1, 25)]
+   nuca = nuco (ip)
+   nucb = nuco (iq)
+   nucab = nuca * nucb
+   dist = 0.7854
+   do j = 1, nucab
+     argj = min (arg(j) * dist, 80.0)
+     sabb(j, 1) = exp (-argj)
+   end do
+   call acomp (sabb, nuca)
+   return
+ entry rfinit
+   stop 1
+ end subroutine expa
+ 
+ subroutine acomp (saab, nuca)
+   implicit none
+   real :: aaint, saab
+   integer :: i, ip, iq, j, nuc1, nuca
+   dimension saab(nuca, nuca), aaint(nuc1, nuc1)
+ 
+   do i = 2, nuca
+     do j = 1, i - 1
+       saab(j, i) = saab(j, i) * 2.0d0
+       saab(i, j) = 0.0d0
+     end do
+   end do
+   return
+ entry aaexp (aaint, nuc1)
+   do ip = 2, nuc1
+     do iq = 1, ip - 1
+       aaint(iq, ip) = 0.5d0 * (aaint(iq, ip) + aaint(ip, iq))
+     end do
+   end do
+ end subroutine acomp
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr93715.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr93715.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr93715.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr93715.f90	Sun Apr 12 22:32:15 2026
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! { dg-options "-fcoarray=single" }
+ !
+ ! PR fortran/93715
+ ! A scalar coarray used in asynchronous I/O caused an ICE in
+ ! gfc_trans_auto_array_allocation.
+ 
+ program p
+    integer :: a, b[*]
+    read (1, *, asynchronous='yes') a, b
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr93814.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr93814.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr93814.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr93814.f90	Sun Apr 12 22:32:15 2026
***************
*** 0 ****
--- 1,99 ----
+ ! { dg-do run }
+ !
+ ! PR fortran/93814 - ICE in build_entry_thunks with CHARACTER ENTRY
+ ! and bind(c).
+ !
+ ! Verify that CHARACTER function results with ENTRY and bind(c) compile
+ ! and execute correctly, covering all combinations of bind(c) on the
+ ! function and its entries.
+ 
+ ! Both function and entry have bind(c).
+ function f1() bind(c)
+   character :: f1, g1
+   f1 = "a"
+   return
+   entry g1() bind(c)
+   g1 = "b"
+ end
+ 
+ ! Only function has bind(c), entry does not.
+ function f2() bind(c)
+   character(1) :: f2, g2
+   f2 = "c"
+   return
+   entry g2()
+   g2 = "d"
+ end function
+ 
+ ! Only entry has bind(c), function does not.
+ function f3()
+   character(1) :: f3, g3
+   f3 = "e"
+   return
+   entry g3() bind(c)
+   g3 = "f"
+ end function
+ 
+ ! Neither function nor entry have bind(c) (baseline).
+ function f4()
+   character :: f4, g4
+   f4 = "g"
+   return
+   entry g4()
+   g4 = "h"
+ end
+ 
+ ! Integer with bind(c) (should still work).
+ function f5() bind(c)
+   integer :: f5, g5
+   f5 = 42
+   return
+   entry g5() bind(c)
+   g5 = 84
+ end
+ 
+ program p
+   interface
+     function f1() bind(c)
+       character :: f1
+     end
+     function g1() bind(c)
+       character :: g1
+     end
+     function f2() bind(c)
+       character(1) :: f2
+     end
+     function g2()
+       character(1) :: g2
+     end
+     function f3()
+       character(1) :: f3
+     end
+     function g3() bind(c)
+       character(1) :: g3
+     end
+     function f4()
+       character :: f4
+     end
+     function g4()
+       character :: g4
+     end
+     function f5() bind(c)
+       integer :: f5
+     end
+     function g5() bind(c)
+       integer :: g5
+     end
+   end interface
+ 
+   if (f1() /= "a") stop 1
+   if (g1() /= "b") stop 2
+   if (f2() /= "c") stop 3
+   if (g2() /= "d") stop 4
+   if (f3() /= "e") stop 5
+   if (g3() /= "f") stop 6
+   if (f4() /= "g") stop 7
+   if (g4() /= "h") stop 8
+   if (f5() /= 42)  stop 9
+   if (g5() /= 84)  stop 10
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr94978.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr94978.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr94978.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr94978.f90	Sun Apr 12 22:32:15 2026
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do compile }
+ ! { dg-options "-Wdo-subscript" }
+ 
+ implicit none
+ 
+ integer(4) :: i, j
+ integer(4) :: pascal(0:8, 0:8)
+ 
+ do i = 0, 8
+   pascal(i, 0) = 1
+   do j = 1, i - 1
+     pascal(i, j) = pascal(i - 1, j) + pascal(i - 1, j - 1) ! { dg-bogus "Array reference at \\(1\\) out of bounds" }
+   end do
+   do j = i, 8
+     pascal(i, j) = 0
+   end do
+   pascal(i, i) = 1
+ end do
+ 
+ do i = 0, 8
+   print '(9I4)', pascal(i, :)
+ end do
+ 
+ end
diff -Nrcpad gcc-16-20260405/gcc/testsuite/gfortran.dg/pr96986.f90 gcc-16-20260412/gcc/testsuite/gfortran.dg/pr96986.f90
*** gcc-16-20260405/gcc/testsuite/gfortran.dg/pr96986.f90	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/gcc/testsuite/gfortran.dg/pr96986.f90	Sun Apr 12 22:32:15 2026
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=legacy" }
+ !
+ ! PR fortran/96986
+ ! Calling an ENTRY with no volatile arguments incorrectly required an
+ ! explicit interface because the volatile attribute from a sibling ENTRY
+ ! was checked against the master procedure's combined formal list.
+ 
+ subroutine volatile_test ()
+   implicit none
+   integer, volatile :: va
+ 
+   entry fun_a()
+   return
+ 
+   entry fun_b(va)
+     call fun_c()
+   return
+ end subroutine volatile_test
+ 
+ subroutine fun_c ()
+   implicit none
+   call fun_a()  ! Must not require explicit interface
+   return
+ end subroutine fun_c
diff -Nrcpad gcc-16-20260405/gcc/testsuite/lib/profopt.exp gcc-16-20260412/gcc/testsuite/lib/profopt.exp
*** gcc-16-20260405/gcc/testsuite/lib/profopt.exp	Sun Apr  5 22:32:16 2026
--- gcc-16-20260412/gcc/testsuite/lib/profopt.exp	Sun Apr 12 22:32:15 2026
*************** proc profopt-execute { src } {
*** 456,462 ****
                  set bprefix "afdo."
  		set compiler [lindex $GCC_UNDER_TEST 0]
  		set autofdo_version [string trim [lindex [remote_exec target "$compiler --print-autofdo-gcov-version"] 1] ]
! 		set cmd "create_gcov --binary $execname1 --profile=$tmpdir/$base.perf.data --gcov_version=$autofdo_version --gcov=$tmpdir/$bprefix$base.$ext"
  		verbose "Running $cmd"
  		set id [remote_spawn "" $cmd]
  		if { $id < 0 } {
--- 456,468 ----
                  set bprefix "afdo."
  		set compiler [lindex $GCC_UNDER_TEST 0]
  		set autofdo_version [string trim [lindex [remote_exec target "$compiler --print-autofdo-gcov-version"] 1] ]
! 		set profiler_check [string trim [lindex [remote_exec target "perf --no-pager list | grep arm_spe"] 1]]
! 		if {$profiler_check ne ""} {
! 		    set profiler "perf_spe"
! 		} else {
! 		    set profiler "perf"
! 		}
! 		set cmd "create_gcov --binary $execname1 --profile=$tmpdir/$base.perf.data --profiler=$profiler --gcov_version=$autofdo_version --gcov=$tmpdir/$bprefix$base.$ext"
  		verbose "Running $cmd"
  		set id [remote_spawn "" $cmd]
  		if { $id < 0 } {
diff -Nrcpad gcc-16-20260405/gcc/testsuite/lib/target-supports-dg.exp gcc-16-20260412/gcc/testsuite/lib/target-supports-dg.exp
*** gcc-16-20260405/gcc/testsuite/lib/target-supports-dg.exp	Sun Apr  5 22:32:16 2026
--- gcc-16-20260412/gcc/testsuite/lib/target-supports-dg.exp	Sun Apr 12 22:32:15 2026
*************** proc dg-require-effective-target { args
*** 267,275 ****
  # If this target does not have fork, skip this test.
  
  proc dg-require-fork { args } {
!     if { ![check_fork_available] } {
! 	upvar dg-do-what dg-do-what
!         set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
      }
  }
  
--- 267,281 ----
  # If this target does not have fork, skip this test.
  
  proc dg-require-fork { args } {
!     upvar dg-do-what dg-do-what
! 
!     set doaction [lindex ${dg-do-what} 0]
!     if { $doaction == "run" } {
!        if { ![check_fork_runtime] } {
! 	   set dg-do-what [list $doaction "N" "P"]
!        }
!     } elseif { ![check_fork_available] } {
!        set dg-do-what [list $doaction "N" "P"]
      }
  }
  
*************** proc check-flags { args } {
*** 422,430 ****
  # (possibly the default) prevails.
  
  proc dg-do-if { args } {
-     set args [lreplace $args 0 0]
      # Verify the number of arguments.
!     if { [llength $args] != 2 } {
  	error "syntax error, need a single action and target selector"
      }
  
--- 428,435 ----
  # (possibly the default) prevails.
  
  proc dg-do-if { args } {
      # Verify the number of arguments.
!     if { [llength $args] != 3 } {
  	error "syntax error, need a single action and target selector"
      }
  
*************** proc dg-do-if { args } {
*** 435,441 ****
      }
      
      # Evaluate selector, return if it does not match.
!     switch [dg-process-target-1 [lindex $args 1]] {
  	"N" { return }
  	"P" { return }
      }
--- 440,446 ----
      }
      
      # Evaluate selector, return if it does not match.
!     switch [dg-process-target-1 [lindex $args 2]] {
  	"N" { return }
  	"P" { return }
      }
diff -Nrcpad gcc-16-20260405/gcc/testsuite/lib/target-supports.exp gcc-16-20260412/gcc/testsuite/lib/target-supports.exp
*** gcc-16-20260405/gcc/testsuite/lib/target-supports.exp	Sun Apr  5 22:32:16 2026
--- gcc-16-20260412/gcc/testsuite/lib/target-supports.exp	Sun Apr 12 22:32:15 2026
*************** proc check_fork_available {} {
*** 3801,3806 ****
--- 3801,3827 ----
      return [check_function_available "fork"]
  }
  
+ # Returns true iff "fork" is working on the target system.
+ 
+ proc check_fork_runtime {} {
+     if { ![check_fork_available] } {
+ 	return 0
+     }
+ 
+     return [check_runtime fork_runtime {
+        #include <unistd.h>
+        #include <stdlib.h>
+ 
+        int main()
+        {
+ 	 pid_t p = fork();
+ 	 if (p < 0)
+ 	   abort();
+ 	 return 0;
+        }
+     }]
+ }
+ 
  # Returns true iff "mkfifo" is available on the target system.
  
  proc check_mkfifo_available {} {
*************** proc check_effective_target_vect_cmdline
*** 4596,4602 ****
  	     || ([istarget powerpc*-*-*]
  		 && [check_effective_target_powerpc_altivec])
  	     || ([istarget sparc*-*-*] && [check_effective_target_sparc_vis])
! 	     || ([istarget arm*-*-*] && [check_effective_target_arm_neon])
  	     || [istarget aarch64*-*-*]
  	     || [istarget amdgcn*-*-*]
  	     || [istarget riscv*-*-*]
--- 4617,4625 ----
  	     || ([istarget powerpc*-*-*]
  		 && [check_effective_target_powerpc_altivec])
  	     || ([istarget sparc*-*-*] && [check_effective_target_sparc_vis])
! 	     || ([istarget arm*-*-*] && ([check_effective_target_arm_neon]
! 					 || [check_effective_target_arm_mve])
! 		 )
  	     || [istarget aarch64*-*-*]
  	     || [istarget amdgcn*-*-*]
  	     || [istarget riscv*-*-*]
*************** foreach { armfunc armflag armdefs } {
*** 6352,6357 ****
--- 6375,6396 ----
      }]
  }
  
+ # Return 1 if current target supports both single- and double-precision FP
+ proc check_effective_target_arm_mixed_fp { } {
+     if { ![istarget arm*-*-*] } {
+ 	return 0
+     }
+ 
+     return [check_no_compiler_messages arm_mixed_fp assembly {
+ 	#ifndef __ARM_FP
+ 	# error __ARM_FP not defined
+ 	#elif ((__ARM_FP & 0xc) == 0xc)
+ 	# error __ARM_FP indicates that both single- and double-precision FP are supported
+ 	#endif
+ 	int main (void) { return 0; }
+     } "" ]
+ }
+ 
  # Return 1 if GCC was configured with --with-mode=
  proc check_effective_target_default_mode { } {
  
*************** proc check_effective_target___OPTIMIZE__
*** 14311,14347 ****
  # Return 1 if python3 (>= 3.6) is available.
  
  proc check_effective_target_recent_python3 { } {
!     set result [remote_exec host "python3 -c \"import sys; assert sys.version_info >= (3, 6)\""]
!     set status [lindex $result 0]
!     if { $status == 0 } then {
! 	return 1;
!     } else {
! 	return 0;
!     }
  }
  
  # Return 1 if python3 contains a module
  
  proc check_effective_target_python3_module { module } {
!     set result [remote_exec host "python3 -c \"import $module\""]
!     set status [lindex $result 0]
!     if { $status == 0 } then {
! 	return 1;
!     } else {
! 	return 0;
!     }
  }
  
  # Return 1 if pytest module is available for python3.
  
  proc check_effective_target_pytest3 { } {
!     set result [remote_exec host "python3 -m pytest --color=no -rap -s --tb=no --version"]
!     set status [lindex $result 0]
!     if { $status == 0 } then {
! 	return 1;
!     } else {
! 	return 0;
!     }
  }
  
  proc check_effective_target_property_1_needed { } {
--- 14350,14392 ----
  # Return 1 if python3 (>= 3.6) is available.
  
  proc check_effective_target_recent_python3 { } {
!     return [check_cached_effective_target recent_python3 {
! 	set result [remote_exec host "python3 -c \"import sys; assert sys.version_info >= (3, 6)\""]
! 	set status [lindex $result 0]
! 	if { $status == 0 } then {
! 	    return 1;
! 	} else {
! 	    return 0;
! 	}
!     }]
  }
  
  # Return 1 if python3 contains a module
  
  proc check_effective_target_python3_module { module } {
!     return [check_cached_effective_target python3_module_$module {
! 	set result [remote_exec host "python3 -c \"import $module\""]
! 	set status [lindex $result 0]
! 	if { $status == 0 } then {
! 	    return 1;
! 	} else {
! 	    return 0;
! 	}
!     }]
  }
  
  # Return 1 if pytest module is available for python3.
  
  proc check_effective_target_pytest3 { } {
!     return [check_cached_effective_target pytest3 {
! 	set result [remote_exec host "python3 -m pytest --color=no -rap -s --tb=no --version"]
! 	set status [lindex $result 0]
! 	if { $status == 0 } then {
! 	    return 1;
! 	} else {
! 	    return 0;
! 	}
!     }]
  }
  
  proc check_effective_target_property_1_needed { } {
diff -Nrcpad gcc-16-20260405/gcc/tree-vect-loop.cc gcc-16-20260412/gcc/tree-vect-loop.cc
*** gcc-16-20260405/gcc/tree-vect-loop.cc	Sun Apr  5 22:32:16 2026
--- gcc-16-20260412/gcc/tree-vect-loop.cc	Sun Apr 12 22:32:15 2026
*************** start_over:
*** 2550,2556 ****
  
    /* Check the costings of the loop make vectorizing worthwhile.  */
    res = vect_analyze_loop_costing (loop_vinfo, suggested_unroll_factor);
!   if (res < 0)
      {
        ok = opt_result::failure_at (vect_location,
  				   "Loop costings may not be worthwhile.\n");
--- 2550,2556 ----
  
    /* Check the costings of the loop make vectorizing worthwhile.  */
    res = vect_analyze_loop_costing (loop_vinfo, suggested_unroll_factor);
!   if (res < 0 && !param_vect_allow_possibly_not_worthwhile_vectorizations)
      {
        ok = opt_result::failure_at (vect_location,
  				   "Loop costings may not be worthwhile.\n");
*************** vect_estimate_min_profitable_iters (loop
*** 4089,4096 ****
       TODO: Consider assigning different costs to different scalar
       statements.  */
  
!   scalar_single_iter_cost = (loop_vinfo->scalar_costs->total_cost ()
! 			     * param_vect_scalar_cost_multiplier) / 100;
  
    /* Add additional cost for the peeled instructions in prologue and epilogue
       loop.  (For fully-masked loops there will be no peeling.)
--- 4089,4095 ----
       TODO: Consider assigning different costs to different scalar
       statements.  */
  
!   scalar_single_iter_cost = loop_vinfo->scalar_costs->total_cost ();
  
    /* Add additional cost for the peeled instructions in prologue and epilogue
       loop.  (For fully-masked loops there will be no peeling.)
diff -Nrcpad gcc-16-20260405/gcc/tree-vect-slp-patterns.cc gcc-16-20260412/gcc/tree-vect-slp-patterns.cc
*** gcc-16-20260405/gcc/tree-vect-slp-patterns.cc	Sun Apr  5 22:32:16 2026
--- gcc-16-20260412/gcc/tree-vect-slp-patterns.cc	Sun Apr 12 22:32:15 2026
*************** static inline bool
*** 302,307 ****
--- 302,308 ----
  vect_match_expression_p (slp_tree node, code_helper code)
  {
    if (!node
+       || SLP_TREE_PERMUTE_P (node)
        || !SLP_TREE_REPRESENTATIVE (node))
      return false;
  
diff -Nrcpad gcc-16-20260405/gcc/tree-vect-slp.cc gcc-16-20260412/gcc/tree-vect-slp.cc
*** gcc-16-20260405/gcc/tree-vect-slp.cc	Sun Apr  5 22:32:16 2026
--- gcc-16-20260412/gcc/tree-vect-slp.cc	Sun Apr 12 22:32:15 2026
*************** vect_bb_vectorization_profitable_p (bb_v
*** 9792,9799 ****
        while (si < li_scalar_costs.length ()
  	     && li_scalar_costs[si].first == sl);
        scalar_target_cost_data->finish_cost (nullptr);
!       scalar_cost = (scalar_target_cost_data->body_cost ()
! 		     * param_vect_scalar_cost_multiplier) / 100;
  
        /* Complete the target-specific vector cost calculation.  */
        class vector_costs *vect_target_cost_data = init_cost (bb_vinfo, false);
--- 9792,9798 ----
        while (si < li_scalar_costs.length ()
  	     && li_scalar_costs[si].first == sl);
        scalar_target_cost_data->finish_cost (nullptr);
!       scalar_cost = scalar_target_cost_data->body_cost ();
  
        /* Complete the target-specific vector cost calculation.  */
        class vector_costs *vect_target_cost_data = init_cost (bb_vinfo, false);
*************** vect_slp_region (vec<basic_block> bbs, v
*** 10352,10357 ****
--- 10351,10357 ----
  	      dump_user_location_t saved_vect_location = vect_location;
  	      vect_location = instance->location ();
  	      if (!unlimited_cost_model (NULL)
+ 		  && !param_vect_allow_possibly_not_worthwhile_vectorizations
  		  && !vect_bb_vectorization_profitable_p
  			(bb_vinfo, instance->subgraph_entries, orig_loop))
  		{
*************** vect_schedule_slp_node (vec_info *vinfo,
*** 12081,12105 ****
  	  si = gsi_for_stmt (last_stmt);
  	  gsi_next (&si);
  
- 	  /* Avoid scheduling internal defs outside of the loop when
- 	     we might have only implicitly tracked loop mask/len defs.  */
  	  if (auto loop_vinfo = dyn_cast <loop_vec_info> (vinfo))
! 	    if (LOOP_VINFO_FULLY_MASKED_P (loop_vinfo)
! 		|| LOOP_VINFO_FULLY_WITH_LENGTH_P (loop_vinfo))
! 	      {
! 		gimple_stmt_iterator si2
! 		  = gsi_after_labels (LOOP_VINFO_LOOP (loop_vinfo)->header);
! 		if ((gsi_end_p (si2)
! 		     && (LOOP_VINFO_LOOP (loop_vinfo)->header
! 			 != gimple_bb (last_stmt))
! 		     && dominated_by_p (CDI_DOMINATORS,
! 					LOOP_VINFO_LOOP (loop_vinfo)->header,
! 					gimple_bb (last_stmt)))
! 		    || (!gsi_end_p (si2)
! 			&& last_stmt != *si2
! 			&& vect_stmt_dominates_stmt_p (last_stmt, *si2)))
! 		  si = si2;
! 	      }
  	}
      }
  
--- 12081,12118 ----
  	  si = gsi_for_stmt (last_stmt);
  	  gsi_next (&si);
  
  	  if (auto loop_vinfo = dyn_cast <loop_vec_info> (vinfo))
! 	    {
! 	      /* Avoid scheduling stmts to random places in the CFG, any
! 		 stmt dominance check we performed is possibly wrong as UIDs
! 		 are not initialized for all of the function for loop
! 		 vectorization.  Instead append to the loop preheader.  */
! 	      if ((LOOP_VINFO_LOOP (loop_vinfo)->header
! 		   != gimple_bb (last_stmt))
! 		  && dominated_by_p (CDI_DOMINATORS,
! 				     LOOP_VINFO_LOOP (loop_vinfo)->header,
! 				     gimple_bb (last_stmt)))
! 		si = gsi_end_bb (loop_preheader_edge
! 				   (LOOP_VINFO_LOOP (loop_vinfo))->src);
! 	      /* Avoid scheduling internal defs outside of the loop when
! 		 we might have only implicitly tracked loop mask/len defs.  */
! 	      if (LOOP_VINFO_FULLY_MASKED_P (loop_vinfo)
! 		  || LOOP_VINFO_FULLY_WITH_LENGTH_P (loop_vinfo))
! 		{
! 		  gimple_stmt_iterator si2
! 		    = gsi_after_labels (LOOP_VINFO_LOOP (loop_vinfo)->header);
! 		  if ((gsi_end_p (si2)
! 		       && (LOOP_VINFO_LOOP (loop_vinfo)->header
! 			   != gimple_bb (last_stmt))
! 		       && dominated_by_p (CDI_DOMINATORS,
! 					  LOOP_VINFO_LOOP (loop_vinfo)->header,
! 					  gimple_bb (last_stmt)))
! 		      || (!gsi_end_p (si2)
! 			  && last_stmt != *si2
! 			  && vect_stmt_dominates_stmt_p (last_stmt, *si2)))
! 		    si = si2;
! 		}
! 	    }
  	}
      }
  
diff -Nrcpad gcc-16-20260405/libcpp/po/ChangeLog gcc-16-20260412/libcpp/po/ChangeLog
*** gcc-16-20260405/libcpp/po/ChangeLog	Sun Apr  5 22:32:17 2026
--- gcc-16-20260412/libcpp/po/ChangeLog	Sun Apr 12 22:32:15 2026
***************
*** 1,3 ****
--- 1,7 ----
+ 2026-04-07  Joseph Myers  <josmyers@redhat.com>
+ 
+ 	* sr.po: Update.
+ 
  2026-02-27  Joseph Myers  <josmyers@redhat.com>
  
  	* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
diff -Nrcpad gcc-16-20260405/libcpp/po/sr.po gcc-16-20260412/libcpp/po/sr.po
*** gcc-16-20260405/libcpp/po/sr.po	Sun Apr  5 22:32:17 2026
--- gcc-16-20260412/libcpp/po/sr.po	Sun Apr 12 22:32:15 2026
***************
*** 1,14 ****
  # Serbian translation of cpplib.
  # Copyright © 2020 Free Software Foundation, Inc.
  # This file is distributed under the same license as the gcc package.
! # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012-2025.
! #
  msgid ""
  msgstr ""
! "Project-Id-Version: cpplib-15.1-b20250316\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-02-19 21:05+0000\n"
! "PO-Revision-Date: 2025-07-18 09:21+0200\n"
  "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
  "Language-Team: Serbian <(nothing)>\n"
  "Language: sr\n"
--- 1,13 ----
  # Serbian translation of cpplib.
  # Copyright © 2020 Free Software Foundation, Inc.
  # This file is distributed under the same license as the gcc package.
! # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2012-2026.
  msgid ""
  msgstr ""
! "Project-Id-Version: cpplib-16.1-b20260222\n"
  "Report-Msgid-Bugs-To: https://gcc.gnu.org/bugs/\n"
  "POT-Creation-Date: 2026-02-19 21:05+0000\n"
! "PO-Revision-Date: 2026-04-04 12:16+0200\n"
  "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
  "Language-Team: Serbian <(nothing)>\n"
  "Language: sr\n"
*************** msgstr ""
*** 16,23 ****
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
  "X-Bugs: Report translation errors to the Language-Team address.\n"
- "X-Generator: Poedit 3.5\n"
  
  #: charset.cc:759
  #, gcc-internal-format, gfc-internal-format
--- 15,22 ----
  "Content-Type: text/plain; charset=UTF-8\n"
  "Content-Transfer-Encoding: 8bit\n"
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+ "X-Generator: Virtaal 0.7.1\n"
  "X-Bugs: Report translation errors to the Language-Team address.\n"
  
  #: charset.cc:759
  #, gcc-internal-format, gfc-internal-format
*************** msgid "macro names must be identifiers"
*** 372,381 ****
  msgstr "називи макроа морају бити одредници"
  
  #: directives.cc:752 directives.cc:755
! #, fuzzy, gcc-internal-format
! #| msgid "undefining %qs"
  msgid "undefining keyword %qs"
! msgstr "неодређујем „%qs“"
  
  #: directives.cc:767 directives.cc:772 directives.cc:784
  #, gcc-internal-format
--- 371,379 ----
  msgstr "називи макроа морају бити одредници"
  
  #: directives.cc:752 directives.cc:755
! #, gcc-internal-format
  msgid "undefining keyword %qs"
! msgstr "неодређујем кључну реч „%qs“"
  
  #: directives.cc:767 directives.cc:772 directives.cc:784
  #, gcc-internal-format
*************** msgstr "„__COUNTER__“ је прош�
*** 1315,1321 ****
  #: macro.cc:738
  #, gcc-internal-format
  msgid "%<__COUNTER__%> expanded more than 2147483648 times"
! msgstr ""
  
  #: macro.cc:763
  #, gcc-internal-format
--- 1313,1319 ----
  #: macro.cc:738
  #, gcc-internal-format
  msgid "%<__COUNTER__%> expanded more than 2147483648 times"
! msgstr "%<__COUNTER__%> је раширен више од 2147483648 пута"
  
  #: macro.cc:763
  #, gcc-internal-format
*************** msgid "invalid string literal, ignoring
*** 1328,1337 ****
  msgstr "неисправна словност ниске, занемарујем завршну „\\“"
  
  #: macro.cc:1077
! #, fuzzy, gcc-internal-format
! #| msgid "pasting \"%.*s\" and \"%.*s\" does not give a valid preprocessing token"
  msgid "pasting %<%.*s%> and %<%.*s%> does not give a valid preprocessing token"
! msgstr "убацивање „%.*s“ и „%.*s“ не даје исправну скупину предобраде"
  
  #: macro.cc:1209
  #, gcc-internal-format
--- 1326,1334 ----
  msgstr "неисправна словност ниске, занемарујем завршну „\\“"
  
  #: macro.cc:1077
! #, gcc-internal-format
  msgid "pasting %<%.*s%> and %<%.*s%> does not give a valid preprocessing token"
! msgstr "убацивање „<%.*s“ и „%.*s“ не даје исправну скупину предобраде"
  
  #: macro.cc:1209
  #, gcc-internal-format
*************** msgid "%<#%> is not followed by a macro
*** 1451,1460 ****
  msgstr "за „#“ не следи параметар макроа"
  
  #: macro.cc:3976 macro.cc:3980
! #, fuzzy, gcc-internal-format
! #| msgid "macro %qs defined here"
  msgid "keyword %qs defined as macro"
! msgstr "макро „%qs“ је дефинисан овде"
  
  #: macro.cc:3996
  #, gcc-internal-format
--- 1448,1456 ----
  msgstr "за „#“ не следи параметар макроа"
  
  #: macro.cc:3976 macro.cc:3980
! #, gcc-internal-format
  msgid "keyword %qs defined as macro"
! msgstr "кључна реч „%qs“ је дефинисана као макро"
  
  #: macro.cc:3996
  #, gcc-internal-format
*************** msgid "this is the location of the previ
*** 1466,1475 ****
  msgstr "ово је место претходне одреднице"
  
  #: macro.cc:4009
! #, fuzzy, gcc-internal-format
! #| msgid "%qs redefined"
  msgid "%qs defined"
! msgstr "„%qs“ је поново одређено"
  
  #: macro.cc:4143
  #, gcc-internal-format
--- 1462,1470 ----
  msgstr "ово је место претходне одреднице"
  
  #: macro.cc:4009
! #, gcc-internal-format
  msgid "%qs defined"
! msgstr "„%qs“ је одређено"
  
  #: macro.cc:4143
  #, gcc-internal-format
diff -Nrcpad gcc-16-20260405/libgfortran/ChangeLog gcc-16-20260412/libgfortran/ChangeLog
*** gcc-16-20260405/libgfortran/ChangeLog	Sun Apr  5 22:32:17 2026
--- gcc-16-20260412/libgfortran/ChangeLog	Sun Apr 12 22:32:16 2026
***************
*** 1,3 ****
--- 1,10 ----
+ 2026-04-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ 
+ 	PR libfortran/124543
+ 	* io/inquire.c (inquire_via_unit): Change the returned
+ 	encoding value to 'DEFAULT' when not specified in the OPEN
+ 	statement.
+ 
  2026-04-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
  
  	PR libfortran/124543
diff -Nrcpad gcc-16-20260405/libgfortran/io/inquire.c gcc-16-20260412/libgfortran/io/inquire.c
*** gcc-16-20260405/libgfortran/io/inquire.c	Sun Apr  5 22:32:17 2026
--- gcc-16-20260412/libgfortran/io/inquire.c	Sun Apr 12 22:32:16 2026
*************** inquire_via_unit (st_parameter_inquire *
*** 317,323 ****
  	    switch (u->flags.encoding)
  	      {
  	      case ENCODING_DEFAULT:
! 		p = "UNDEFINED";
  		break;
  	      case ENCODING_UTF8:
  		p = "UTF-8";
--- 317,323 ----
  	    switch (u->flags.encoding)
  	      {
  	      case ENCODING_DEFAULT:
! 		p = "DEFAULT";
  		break;
  	      case ENCODING_UTF8:
  		p = "UTF-8";
*************** inquire_via_unit (st_parameter_inquire *
*** 325,332 ****
  	      default:
  		internal_error (&iqp->common, "inquire_via_unit(): Bad encoding");
  	      }
! 	    else
! 	      p = "UNKNOWN";
  
  	  cf_strcpy (iqp->encoding, iqp->encoding_len, p);
  	}
--- 325,332 ----
  	      default:
  		internal_error (&iqp->common, "inquire_via_unit(): Bad encoding");
  	      }
! 	  else
! 	    p = "UNDEFINED";
  
  	  cf_strcpy (iqp->encoding, iqp->encoding_len, p);
  	}
diff -Nrcpad gcc-16-20260405/libphobos/ChangeLog gcc-16-20260412/libphobos/ChangeLog
*** gcc-16-20260405/libphobos/ChangeLog	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libphobos/ChangeLog	Sun Apr 12 22:32:17 2026
***************
*** 1,3 ****
--- 1,21 ----
+ 2026-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+ 
+ 	PR d/88150
+ 	* testsuite/lib/libphobos.exp (libphobos_skipped_test_p): Extract
+ 	filename from $test.
+ 	* testsuite/libphobos.shared/shared.exp (libphobos_skip_tests):
+ 	Skip libphobos.shared/finalize.d etc. on Solaris.
+ 
+ 2026-04-08  Iain Buclaw  <ibuclaw@gdcproject.org>
+ 
+ 	PR d/123202
+ 	* testsuite/lib/libphobos.exp
+ 	(check_effective_target_phobos_ieee_flags_support): New proc.
+ 	* testsuite/libphobos.phobos/phobos.exp: Skip math/hardware.d tests if
+ 	target does not have phobos_iee_flags_support.
+ 	* testsuite/libphobos.phobos/shared/phobos-shared.exp: Likewise.
+ 	* testsuite/libphobos.phobos/static/phobos-static.exp: Likewise.
+ 
  2026-04-01  Iain Buclaw  <ibuclaw@gdcproject.org>
  
  	* libdruntime/MERGE: Merge upstream druntime 55e64690bc.
diff -Nrcpad gcc-16-20260405/libphobos/testsuite/lib/libphobos.exp gcc-16-20260412/libphobos/testsuite/lib/libphobos.exp
*** gcc-16-20260405/libphobos/testsuite/lib/libphobos.exp	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libphobos/testsuite/lib/libphobos.exp	Sun Apr 12 22:32:17 2026
*************** proc filter_libphobos_unittests { list }
*** 312,317 ****
--- 312,319 ----
  proc libphobos_skipped_test_p { test } {
      global libphobos_skip_tests
  
+     # Extract test name.
+     set test [lindex $test 0]
      set row [lsearch -inline -index 0 $libphobos_skip_tests $test]
      if { $row eq "" } {
  	return ""
*************** proc check_effective_target_linux_pre_26
*** 364,366 ****
--- 366,390 ----
      }
      return 1
  }
+ 
+ # Return true if target support for manipulating IEEE floating flags
+ # exists in the std.math.hardware module.
+ proc check_effective_target_phobos_ieee_flags_support { } {
+     if { ![check_effective_target_hard_float] } {
+ 	return 0
+     }
+     # These targets set `version = IeeeFlagsSupport'.  Keep in sync with
+     # src/std/math/hardware.d.
+     if {    [istarget aarch64*-*-*]
+ 	 || [istarget arm*-*-*]
+ 	 || [istarget i?86*-*-*] || [istarget x86_64*-*-*]
+ 	 || [istarget loongarch64*-*-*]
+ 	 || [istarget mips*-*-*]
+ 	 || [istarget powerpc*-*-*]
+ 	 || [istarget riscv*-*-*]
+ 	 || [istarget sparc*-*-*] } {
+ 	return 1
+     } else {
+         return 0
+     }
+ }
diff -Nrcpad gcc-16-20260405/libphobos/testsuite/libphobos.phobos/phobos.exp gcc-16-20260412/libphobos/testsuite/libphobos.phobos/phobos.exp
*** gcc-16-20260405/libphobos/testsuite/libphobos.phobos/phobos.exp	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libphobos/testsuite/libphobos.phobos/phobos.exp	Sun Apr 12 22:32:17 2026
*************** if { [is-effective-target linux_pre_2639
*** 36,41 ****
--- 36,43 ----
  set libphobos_skip_tests {
      # Skip concurrency.d test: SEGVs or hangs on macOS 13+ (PR d/111628).
      { libphobos.phobos/std_concurrency.d { x86_64-apple-darwin2[2-9]* } }
+     # Skip math/hardware.d if missing necessary support (PR d/123202).
+     { libphobos.phobos/std_math_hardware.d { ! phobos_ieee_flags_support } }
  }
  
  # Initialize dg.
diff -Nrcpad gcc-16-20260405/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp gcc-16-20260412/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp
*** gcc-16-20260405/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libphobos/testsuite/libphobos.phobos/shared/phobos-shared.exp	Sun Apr 12 22:32:17 2026
*************** set libphobos_skip_tests {
*** 44,49 ****
--- 44,51 ----
      { libphobos.phobos/shared/std/net/curl.d { ! libcurl_available } }
      # Skip concurrency.d test: SEGVs or hangs on macOS 13+ (PR d/111628).
      { libphobos.phobos/shared/std/concurrency.d { x86_64-apple-darwin2[2-9]* } }
+     # Skip math/hardware.d if missing necessary support (PR d/123202).
+     { libphobos.phobos/shared/std/math/hardware.d { ! phobos_ieee_flags_support } }
  }
  
  # Initialize dg.
diff -Nrcpad gcc-16-20260405/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp gcc-16-20260412/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp
*** gcc-16-20260405/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libphobos/testsuite/libphobos.phobos/static/phobos-static.exp	Sun Apr 12 22:32:17 2026
*************** set libphobos_skip_tests {
*** 44,49 ****
--- 44,51 ----
      { libphobos.phobos/static/std/net/curl.d { ! libcurl_available } }
      # Skip concurrency.d test: SEGVs or hangs on macOS 13+ (PR d/111628).
      { libphobos.phobos/static/std/concurrency.d { x86_64-apple-darwin2[2-9]* } }
+     # Skip math/hardware.d if missing necessary support (PR d/123202).
+     { libphobos.phobos/static/std/math/hardware.d { ! phobos_ieee_flags_support } }
  }
  
  # Initialize dg.
diff -Nrcpad gcc-16-20260405/libphobos/testsuite/libphobos.shared/shared.exp gcc-16-20260412/libphobos/testsuite/libphobos.shared/shared.exp
*** gcc-16-20260405/libphobos/testsuite/libphobos.shared/shared.exp	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libphobos/testsuite/libphobos.shared/shared.exp	Sun Apr 12 22:32:17 2026
*************** shared_library "$srcdir/$subdir/lib_1341
*** 64,69 ****
--- 64,76 ----
  shared_library "$srcdir/$subdir/plugin.d" "plugin1.so" ""
  shared_library "$srcdir/$subdir/plugin.d" "plugin2.so" ""
  
+ set libphobos_skip_tests {
+     # Skip some tests: dlopen handles are not unique on Solaris (PR d/88150).
+     { libphobos.shared/finalize.d { *-*-solaris2* } }
+     { libphobos.shared/load.d { *-*-solaris2* } }
+     { libphobos.shared/load_13414.d { *-*-solaris2* } }
+ }
+ 
  # Initialize dg.
  dg-init
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/ChangeLog gcc-16-20260412/libstdc++-v3/ChangeLog
*** gcc-16-20260405/libstdc++-v3/ChangeLog	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/ChangeLog	Sun Apr 12 22:32:17 2026
***************
*** 1,3 ****
--- 1,167 ----
+ 2026-04-10  Patrick Palka  <ppalka@redhat.com>
+ 
+ 	* include/std/ranges (lazy_split_view::begin): Add
+ 	const _Pattern constraint on const overload as per LWG 3599.
+ 	(lazy_split_view::end): Likewise.
+ 	* testsuite/std/ranges/adaptors/lazy_split.cc (test14): New
+ 	test.
+ 
+ 2026-04-10  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (ranges_to_input): Rename to...
+ 	(ranges_as_input): Rename from ranges_as_input.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/ranges (ranges::to_input_view, views::to_input)
+ 	(__detail::__can_to_input, views::_ToInput): Rename to...
+ 	(ranges::as_input_view, views::as_input, __detail::__can_as_input)
+ 	(views::_AsInput): Rename from above...
+ 	* src/c++23/std.cc.in: Rename views::to_input and to_input_view
+ 	export.
+ 	* testsuite/25_algorithms/contains/1.cc: Replace views::to_input
+ 	with views::as_input.
+ 	* testsuite/std/ranges/adaptors/to_input/1.cc: Move to...
+ 	* testsuite/std/ranges/adaptors/as_input/1.cc: ...here, and replace
+ 	views::to_input with views::as_input.
+ 
+ 2026-04-10  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/version.def (span_initializer_list): Remove.
+ 	* include/bits/version.h: Regenerate.
+ 	* include/std/span (span::span(initializer_list<value_type>)):
+ 	Remove.
+ 	* testsuite/23_containers/span/init_list_cons.cc: Removed.
+ 	* testsuite/23_containers/span/init_list_cons_neg.cc: Removed.
+ 	* testsuite/23_containers/inplace_vector/copy.cc: Replace span
+ 	with initializer_list in eq helper.
+ 	* testsuite/23_containers/inplace_vector/erasure.cc: Likewise.
+ 	* testsuite/23_containers/inplace_vector/move.cc: Likewise.
+ 
+ 2026-04-10  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/ranges_uninitialized.h
+ 	(__uninitialized_fill_fn::operator())
+ 	(__uninitialized_fill_fn_n::operator()): Add default argument
+ 	for _Tp parameter.
+ 	* include/bits/stl_uninitialized.h (std::unitialized_fill)
+ 	(std::unitialized_fill_n): Likewise.
+ 	* include/pstl/glue_memory_defs.h (std::unitialized_fill)
+ 	(std::unitialized_fill_n): Likewise.
+ 	* include/bits/version.def (algorithm_default_value_type):
+ 	Bump to 202603.
+ 	* include/bits/version.h: Regenerate.
+ 	* testsuite/25_algorithms/default_template_value.cc:
+ 	Test for new algorithms.
+ 
+ 2026-04-08  Matthias Kretz  <m.kretz@gsi.de>
+ 	    Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/funcref_impl.h (function_ref::function_ref):
+ 	Change nontype_t parameter to constant_wrapper, and adjust
+ 	accordingly. Add static_assert detecting ambigous semantics.
+ 	(function_ref::operator=): Detect constant_wrapper rather than
+ 	nontype_t.
+ 	* include/bits/funcwrap.h (function_ref): Change nontype_t
+ 	parameter to constant_wrapper in deduction guides.
+ 	* include/bits/utility.h (std::nontype_t, std::nontype)
+ 	(std::__is_nontype_v): Remove.
+ 	(std::__is_constant_wrapper_v): Define.
+ 	* src/c++23/std.cc.in (std::nontype_t, std::nontype):
+ 	Remove exports.
+ 	* testsuite/20_util/function_ref/cw_cons_neg.cc: New tests
+ 	for ambiguity check.
+ 	* testsuite/20_util/function_ref/assign.cc: Replace nontype_t
+ 	with constant_wrapper and nontype with std::cw.
+ 	* testsuite/20_util/function_ref/call.cc: Likewise.
+ 	* testsuite/20_util/function_ref/cons.cc: Likewise.
+ 	* testsuite/20_util/function_ref/cons_neg.cc: Likewise.
+ 	* testsuite/20_util/function_ref/dangling.cc: Likewise.
+ 	* testsuite/20_util/function_ref/deduction.cc: Likewise.
+ 	* testsuite/20_util/function_ref/mutation.cc: Likewise.
+ 
+ 2026-04-08  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* include/bits/utility.h (std::_CwFixedValue, std::_ConstExprParam)
+ 	(std::_CwOperators, std::constant_wrapper): Moved from...
+ 	* include/std/type_traits (std::_CwFixedValue, std::_ConstExprParam)
+ 	(std::_CwOperators, std::constant_wrapper): Moved to bits/utility.h.
+ 	Disable __cpp_lib_constant_wrapper defintion.
+ 	* include/std/utility: Define __cpp_lib_constant_wrapper.
+ 	* testsuite/20_util/constant_wrapper/adl.cc: Updated header includes.
+ 	* testsuite/20_util/constant_wrapper/ex.cc: Likewise.
+ 	* testsuite/20_util/constant_wrapper/generic.cc: Likewise.
+ 	* testsuite/20_util/constant_wrapper/instantiate.cc: Likewise.
+ 	* testsuite/20_util/constant_wrapper/op_comma_neg.cc: Likewise.
+ 	* testsuite/20_util/constant_wrapper/other_wrappers.cc: Likewise.
+ 	* testsuite/20_util/constant_wrapper/version.cc: Likewise.
+ 
+ 2026-04-08  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	* include/std/type_traits (std::is_consteval_only,
+ 	std::is_consteval_only_v): Remove.
+ 	* include/std/meta (std::meta::is_consteval_only_type): Remove.
+ 	* src/c++23/std.cc.in: Don't export std::is_consteval_only,
+ 	std::is_consteval_only_v and std::meta::is_consteval_only_type.
+ 	* testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc:
+ 	Remove.
+ 	* testsuite/20_util/is_consteval_only/requirements/typedefs.cc:
+ 	Remove.
+ 	* testsuite/20_util/is_consteval_only/value.cc: Remove.
+ 	* testsuite/20_util/variable_templates_for_traits.cc: Remove
+ 	is_consteval_only_v tests.
+ 
+ 2026-04-07  Tomasz Kamiński  <tkaminsk@redhat.com>
+ 
+ 	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Make string exports
+ 	less greedy.
+ 	(GLIBCXX_3.4.35): Export basic_string default constructor and
+ 	starts_with and ends_with members.
+ 	* include/bits/basic_string.h: Update __cpluplus checks for C++20.
+ 	* include/bits/cow_string.h: Likewise.
+ 	* include/bits/basic_string.tcc: Declare explicit instantiations
+ 	for C++20 as well as earlier dialects.
+ 	* src/c++20/Makefile.am: Add cow-string-inst.cc and
+ 	string-inst.cc source files.
+ 	* src/c++20/Makefile.in: Regenerate.
+ 	* src/c++20/string-inst.cc: New file defining explicit
+ 	instantiations for basic_string default constructor and starts_with,
+ 	ends_with methods added in C++20
+ 	* src/c++20/cow-string-inst.cc: Version of above for cow-stings.
+ 
+ 2026-04-07  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/124722
+ 	* testsuite/std/simd/traits_impl.cc (test): Make test() a
+ 	function template and instantiate it.
+ 
+ 2026-04-06  Matthias Kretz  <m.kretz@gsi.de>
+ 
+ 	PR libstdc++/124722
+ 	* include/bits/version.def: Check for __SSE2__ rather than x86.
+ 	* include/bits/version.h: Regenerate.
+ 	* testsuite/std/simd/arithmetic.cc: Build with -msse2.
+ 	* testsuite/std/simd/arithmetic_expensive.cc: Likewise.
+ 	* testsuite/std/simd/creation.cc: Likewise.
+ 	* testsuite/std/simd/creation_expensive.cc: Likewise.
+ 	* testsuite/std/simd/loads.cc: Likewise.
+ 	* testsuite/std/simd/loads_expensive.cc: Likewise.
+ 	* testsuite/std/simd/mask.cc: Likewise.
+ 	* testsuite/std/simd/mask2.cc: Likewise.
+ 	* testsuite/std/simd/mask2_expensive.cc: Likewise.
+ 	* testsuite/std/simd/mask_expensive.cc: Likewise.
+ 	* testsuite/std/simd/reductions.cc: Likewise.
+ 	* testsuite/std/simd/reductions_expensive.cc: Likewise.
+ 	* testsuite/std/simd/shift_left.cc: Likewise.
+ 	* testsuite/std/simd/shift_left_expensive.cc: Likewise.
+ 	* testsuite/std/simd/shift_right.cc: Likewise.
+ 	* testsuite/std/simd/shift_right_expensive.cc: Likewise.
+ 	* testsuite/std/simd/simd_alg.cc: Likewise.
+ 	* testsuite/std/simd/simd_alg_expensive.cc: Likewise.
+ 	* testsuite/std/simd/sse_intrin.cc: Likewise.
+ 	* testsuite/std/simd/stores.cc: Likewise.
+ 	* testsuite/std/simd/stores_expensive.cc: Likewise.
+ 	* testsuite/std/simd/traits_common.cc: Likewise.
+ 	* testsuite/std/simd/traits_math.cc: Likewise.
+ 
  2026-04-04  Matthias Kretz  <m.kretz@gsi.de>
  
  	PR libstdc++/124722
diff -Nrcpad gcc-16-20260405/libstdc++-v3/config/abi/pre/gnu.ver gcc-16-20260412/libstdc++-v3/config/abi/pre/gnu.ver
*** gcc-16-20260405/libstdc++-v3/config/abi/pre/gnu.ver	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/config/abi/pre/gnu.ver	Sun Apr 12 22:32:17 2026
*************** GLIBCXX_3.4 {
*** 268,276 ****
      _ZNSspLE[PRc]*;
      _ZNKSs[0-3][a-b]*;
      _ZNKSs[5-9][a-b]*;
!     _ZNKSs[0-9][d-e]*;
      _ZNKSs[0-9][g-z]*;
!     _ZNKSs[0-9][0-9][a-z]*;
      _ZNKSs4find*;
      _ZNKSs[abd-z]*;
      _ZNKSs4_Rep12_M_is_leakedEv;
--- 268,278 ----
      _ZNSspLE[PRc]*;
      _ZNKSs[0-3][a-b]*;
      _ZNKSs[5-9][a-b]*;
!     _ZNKSs[0-8][d-e]*;
      _ZNKSs[0-9][g-z]*;
!     _ZNKSs11_[MS]_*;
!     _ZNKSs1[2-8][a-z]*;
!     _ZNKSs[2-9][0-9][a-z]*;
      _ZNKSs4find*;
      _ZNKSs[abd-z]*;
      _ZNKSs4_Rep12_M_is_leakedEv;
*************** GLIBCXX_3.4 {
*** 339,347 ****
      _ZNSbIwSt11char_traitsIwESaIwEEpLE[PRw]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[0-3][a-b]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[5-9][a-b]*;
!     _ZNKSbIwSt11char_traitsIwESaIwEE[0-9][d-e]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[0-9][g-z]*;
!     _ZNKSbIwSt11char_traitsIwESaIwEE[0-9][0-9][a-z]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[abd-z]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE4find*;
      _ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv;
--- 341,351 ----
      _ZNSbIwSt11char_traitsIwESaIwEEpLE[PRw]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[0-3][a-b]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[5-9][a-b]*;
!     _ZNKSbIwSt11char_traitsIwESaIwEE[0-8][d-e]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[0-9][g-z]*;
!     _ZNKSbIwSt11char_traitsIwESaIwEE11_[MS]_*;
!     _ZNKSbIwSt11char_traitsIwESaIwEE1[2-8][a-z]*;
!     _ZNKSbIwSt11char_traitsIwESaIwEE[2-9][0-9][a-z]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE[abd-z]*;
      _ZNKSbIwSt11char_traitsIwESaIwEE4find*;
      _ZNKSbIwSt11char_traitsIwESaIwEE4_Rep12_M_is_leakedEv;
*************** GLIBCXX_3.4.21 {
*** 1811,1817 ****
      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]Ev;
      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]I[PN]*;
      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE[Daip]*;
!     _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE[1-9]*;
      _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEixE[jmy];
  
      # operator+ for ABI-tagged std::basic_string
--- 1815,1823 ----
      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]Ev;
      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]I[PN]*;
      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE[Daip]*;
!     _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE11_[MS]_*;
!     _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE1[2-9]*;
!     _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE[2-8]*;
      _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEixE[jmy];
  
      # operator+ for ABI-tagged std::basic_string
*************** GLIBCXX_3.4.35 {
*** 2587,2592 ****
--- 2593,2613 ----
      _ZNSt12__cow_stringaSEOS_;
      _ZNKSt12__cow_string5c_strEv;
  
+     # basic_string::starts_with
+     _ZNKSs11starts_with*;
+     _ZNKSbIwSt11char_traitsIwESaIwEE11starts_with*;
+     _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE11starts_with*;
+ 
+     # basic_string::ends_with
+     _ZNKSs9ends_with*;
+     _ZNKSbIwSt11char_traitsIwESaIwEE9ends_with*;
+     _ZNKSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE9ends_with*;
+ 
+     # basic_string::basic_string() noexcept is_default_constructible<Allocator>;
+     _ZNSsC[12]EvQ26is_default_constructible_vIT1_E;
+     _ZNSbIwSt11char_traitsIwESaIwEEC[12]EvQ26is_default_constructible_vIT1_E;
+     _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[1-2]EvQ26is_default_constructible_vIT1_E;
+ 
  #if defined (_WIN32) && !defined (__CYGWIN__)
      _ZSt19__get_once_callablev;
      _ZSt15__get_once_callv;
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/basic_string.h gcc-16-20260412/libstdc++-v3/include/bits/basic_string.h
*** gcc-16-20260405/libstdc++-v3/include/bits/basic_string.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/basic_string.h	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_CXX11
*** 1331,1337 ****
        /**
         *  Equivalent to shrink_to_fit().
         */
! #if __cplusplus > 201703L
        [[deprecated("use shrink_to_fit() instead")]]
  #endif
        _GLIBCXX20_CONSTEXPR
--- 1331,1337 ----
        /**
         *  Equivalent to shrink_to_fit().
         */
! #if __cplusplus >= 202002L
        [[deprecated("use shrink_to_fit() instead")]]
  #endif
        _GLIBCXX20_CONSTEXPR
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/basic_string.tcc gcc-16-20260412/libstdc++-v3/include/bits/basic_string.tcc
*** gcc-16-20260405/libstdc++-v3/include/bits/basic_string.tcc	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/basic_string.tcc	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1031,1042 ****
    // Inhibit implicit instantiations for required instantiations,
    // which are defined via explicit instantiations elsewhere.
  #if _GLIBCXX_EXTERN_TEMPLATE
!   // The explicit instantiation definitions in src/c++11/string-inst.cc and
!   // src/c++17/string-inst.cc only instantiate the members required for C++17
!   // and earlier standards (so not C++20's starts_with and ends_with).
!   // Suppress the explicit instantiation declarations for C++20, so C++20
    // code will implicitly instantiate std::string and std::wstring as needed.
! # if __cplusplus <= 201703L && _GLIBCXX_EXTERN_TEMPLATE > 0
    extern template class basic_string<char>;
  # elif ! _GLIBCXX_USE_CXX11_ABI
    // Still need to prevent implicit instantiation of the COW empty rep,
--- 1031,1043 ----
    // Inhibit implicit instantiations for required instantiations,
    // which are defined via explicit instantiations elsewhere.
  #if _GLIBCXX_EXTERN_TEMPLATE
!   // The explicit instantiation definitions in src/c++11/string-inst.cc,
!   // src/c++17/string-inst.cc and src/c++20/string-inst.cc only instantiate
!   // the members required for C++20 and earlier standards (so not C++23's
!   // contains).
!   // Suppress the explicit instantiation declarations for C++23, so C++23
    // code will implicitly instantiate std::string and std::wstring as needed.
! # if __cplusplus <= 202002L && _GLIBCXX_EXTERN_TEMPLATE > 0
    extern template class basic_string<char>;
  # elif ! _GLIBCXX_USE_CXX11_ABI
    // Still need to prevent implicit instantiation of the COW empty rep,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1044,1050 ****
    extern template basic_string<char>::size_type
      basic_string<char>::_Rep::_S_empty_rep_storage[];
  # elif _GLIBCXX_EXTERN_TEMPLATE > 0
!   // Export _M_replace_cold even for C++20.
    extern template void
      basic_string<char>::_M_replace_cold(char *, size_type, const char*,
  					const size_type, const size_type);
--- 1045,1051 ----
    extern template basic_string<char>::size_type
      basic_string<char>::_Rep::_S_empty_rep_storage[];
  # elif _GLIBCXX_EXTERN_TEMPLATE > 0
!   // Export _M_replace_cold even for C++23.
    extern template void
      basic_string<char>::_M_replace_cold(char *, size_type, const char*,
  					const size_type, const size_type);
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1064,1076 ****
      getline(basic_istream<char>&, string&);
  
  #ifdef _GLIBCXX_USE_WCHAR_T
! # if __cplusplus <= 201703L && _GLIBCXX_EXTERN_TEMPLATE > 0
    extern template class basic_string<wchar_t>;
  # elif ! _GLIBCXX_USE_CXX11_ABI
    extern template basic_string<wchar_t>::size_type
      basic_string<wchar_t>::_Rep::_S_empty_rep_storage[];
  # elif _GLIBCXX_EXTERN_TEMPLATE > 0
!   // Export _M_replace_cold even for C++20.
    extern template void
      basic_string<wchar_t>::_M_replace_cold(wchar_t*, size_type, const wchar_t*,
  					   const size_type, const size_type);
--- 1065,1077 ----
      getline(basic_istream<char>&, string&);
  
  #ifdef _GLIBCXX_USE_WCHAR_T
! # if __cplusplus <= 202002L && _GLIBCXX_EXTERN_TEMPLATE > 0
    extern template class basic_string<wchar_t>;
  # elif ! _GLIBCXX_USE_CXX11_ABI
    extern template basic_string<wchar_t>::size_type
      basic_string<wchar_t>::_Rep::_S_empty_rep_storage[];
  # elif _GLIBCXX_EXTERN_TEMPLATE > 0
!   // Export _M_replace_cold even for C++23.
    extern template void
      basic_string<wchar_t>::_M_replace_cold(wchar_t*, size_type, const wchar_t*,
  					   const size_type, const size_type);
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/cow_string.h gcc-16-20260412/libstdc++-v3/include/bits/cow_string.h
*** gcc-16-20260405/libstdc++-v3/include/bits/cow_string.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/cow_string.h	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 1080,1086 ****
        reserve(size_type __res_arg);
  
        /// Equivalent to shrink_to_fit().
! #if __cplusplus > 201703L
        [[deprecated("use shrink_to_fit() instead")]]
  #endif
        void
--- 1080,1086 ----
        reserve(size_type __res_arg);
  
        /// Equivalent to shrink_to_fit().
! #if __cplusplus >= 202002L
        [[deprecated("use shrink_to_fit() instead")]]
  #endif
        void
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 3194,3200 ****
  	return __r;
        }
  
! #if __cplusplus > 201703L
        bool
        starts_with(basic_string_view<_CharT, _Traits> __x) const noexcept
        { return __sv_type(this->data(), this->size()).starts_with(__x); }
--- 3194,3200 ----
  	return __r;
        }
  
! #if __cplusplus >= 202002L
        bool
        starts_with(basic_string_view<_CharT, _Traits> __x) const noexcept
        { return __sv_type(this->data(), this->size()).starts_with(__x); }
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/funcref_impl.h gcc-16-20260412/libstdc++-v3/include/bits/funcref_impl.h
*** gcc-16-20260405/libstdc++-v3/include/bits/funcref_impl.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/funcref_impl.h	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 129,140 ****
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 4256. Incorrect constrains for function_ref constructors from nontype
        /// Target object is __fn. There is no bound object.
!       template<auto __fn>
! 	requires __is_invocable_using<const decltype(__fn)&>
  	constexpr
! 	function_ref(nontype_t<__fn>) noexcept
  	{
! 	  using _Fn = remove_cv_t<decltype(__fn)>;
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  
--- 129,147 ----
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // 4256. Incorrect constrains for function_ref constructors from nontype
        /// Target object is __fn. There is no bound object.
!       template<auto __cwfn, typename _Fn>
! 	requires __is_invocable_using<const _Fn&>
  	constexpr
! 	function_ref(constant_wrapper<__cwfn, _Fn>) noexcept
  	{
! 	  constexpr const _Fn& __fn = constant_wrapper<__cwfn, _Fn>::value;
! 	  if constexpr (sizeof...(_ArgTypes) > 0)
! 	    if constexpr ((... && _ConstExprParam<remove_cvref_t<_ArgTypes>>))
! 	      static_assert(!requires {
! 	        typename constant_wrapper<
! 		  std::__invoke(__fn, remove_cvref_t<_ArgTypes>::value...)>;
! 	      }, "cw<fn>(args...) should be equivalent to fn(args...)");
! 
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 144,156 ****
  
        /// Target object is equivalent to std::bind_front<_fn>(std::ref(__ref)).
        /// Bound object is object referenced by second parameter.
!       template<auto __fn, typename _Up, typename _Td = remove_reference_t<_Up>>
  	requires (!is_rvalue_reference_v<_Up&&>)
! 	  && __is_invocable_using<const decltype(__fn)&, _Td _GLIBCXX_MOF_CV&>
  	constexpr
! 	function_ref(nontype_t<__fn>, _Up&& __ref) noexcept
  	{
! 	  using _Fn = remove_cv_t<decltype(__fn)>;
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  
--- 151,164 ----
  
        /// Target object is equivalent to std::bind_front<_fn>(std::ref(__ref)).
        /// Bound object is object referenced by second parameter.
!       template<auto __cwfn, typename _Fn, typename _Up,
! 	       typename _Td = remove_reference_t<_Up>>
  	requires (!is_rvalue_reference_v<_Up&&>)
! 		 && __is_invocable_using<const _Fn&, _Td _GLIBCXX_MOF_CV&>
  	constexpr
! 	function_ref(constant_wrapper<__cwfn, _Fn>, _Up&& __ref) noexcept
  	{
! 	  constexpr const _Fn& __fn = constant_wrapper<__cwfn, _Fn>::value;
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 166,177 ****
  
        /// Target object is equivalent to std::bind_front<_fn>(__ptr).
        /// Bound object is object pointed by second parameter (if any).
!       template<auto __fn, typename _Td>
! 	requires __is_invocable_using<const decltype(__fn)&, _Td _GLIBCXX_MOF_CV*>
  	constexpr
! 	function_ref(nontype_t<__fn>, _Td _GLIBCXX_MOF_CV* __ptr) noexcept
  	{
! 	  using _Fn = remove_cv_t<decltype(__fn)>;
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  	  if constexpr (is_member_pointer_v<_Fn>)
--- 174,185 ----
  
        /// Target object is equivalent to std::bind_front<_fn>(__ptr).
        /// Bound object is object pointed by second parameter (if any).
!       template< auto __cwfn, typename _Fn, typename _Td>
! 	requires __is_invocable_using<const _Fn&, _Td _GLIBCXX_MOF_CV*>
  	constexpr
! 	function_ref(constant_wrapper<__cwfn, _Fn>, _Td _GLIBCXX_MOF_CV* __ptr) noexcept
  	{
! 	  constexpr const _Fn& __fn = constant_wrapper<__cwfn, _Fn>::value;
  	  if constexpr (is_pointer_v<_Fn> || is_member_pointer_v<_Fn>)
  	    static_assert(__fn != nullptr);
  	  if constexpr (is_member_pointer_v<_Fn>)
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 182,189 ****
  	}
  
        template<typename _Tp>
! 	requires (!is_same_v<_Tp, function_ref>)
! 	       && (!is_pointer_v<_Tp>) && (!__is_nontype_v<_Tp>)
  	function_ref&
  	operator=(_Tp) = delete;
  
--- 190,197 ----
  	}
  
        template<typename _Tp>
! 	requires (!is_same_v<_Tp, function_ref>) && (!is_pointer_v<_Tp>)
! 		 && (!__is_constant_wrapper_v<_Tp>)
  	function_ref&
  	operator=(_Tp) = delete;
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/funcwrap.h gcc-16-20260412/libstdc++-v3/include/bits/funcwrap.h
*** gcc-16-20260405/libstdc++-v3/include/bits/funcwrap.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/funcwrap.h	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 573,587 ****
      requires is_function_v<_Fn>
      function_ref(_Fn*) -> function_ref<_Fn>;
  
!   template<auto __f, class _Fn = remove_pointer_t<decltype(__f)>>
!     requires is_function_v<_Fn>
!     function_ref(nontype_t<__f>) -> function_ref<_Fn>;
  
!   template<auto __f, typename _Tp,
  	   typename _SignaturePtr =
! 	     decltype(__polyfunc::__deduce_funcref<decltype(__f), _Tp&>())>
      requires (!is_void_v<_SignaturePtr>)
!     function_ref(nontype_t<__f>, _Tp&&)
        -> function_ref<remove_pointer_t<_SignaturePtr>>;
  
  #endif // __glibcxx_function_ref
--- 573,588 ----
      requires is_function_v<_Fn>
      function_ref(_Fn*) -> function_ref<_Fn>;
  
!   template<auto __cwfn, typename _Fn>
!     requires is_function_v<remove_pointer_t<_Fn>>
!     function_ref(constant_wrapper<__cwfn, _Fn>)
!       -> function_ref<remove_pointer_t<_Fn>>;
  
!   template<auto __cwfn, typename _Fn, typename _Tp,
  	   typename _SignaturePtr =
! 	     decltype(__polyfunc::__deduce_funcref<_Fn, _Tp&>())>
      requires (!is_void_v<_SignaturePtr>)
!     function_ref(constant_wrapper<__cwfn, _Fn>, _Tp&&)
        -> function_ref<remove_pointer_t<_SignaturePtr>>;
  
  #endif // __glibcxx_function_ref
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/ranges_uninitialized.h gcc-16-20260412/libstdc++-v3/include/bits/ranges_uninitialized.h
*** gcc-16-20260405/libstdc++-v3/include/bits/ranges_uninitialized.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/ranges_uninitialized.h	Sun Apr 12 22:32:17 2026
*************** namespace ranges
*** 458,464 ****
    struct __uninitialized_fill_fn
    {
      template<__detail::__nothrow_forward_iterator _Iter,
! 	     __detail::__nothrow_sentinel<_Iter> _Sent, typename _Tp>
        requires constructible_from<iter_value_t<_Iter>, const _Tp&>
        _GLIBCXX26_CONSTEXPR
        _Iter
--- 458,465 ----
    struct __uninitialized_fill_fn
    {
      template<__detail::__nothrow_forward_iterator _Iter,
! 	     __detail::__nothrow_sentinel<_Iter> _Sent,
! 	     typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>)>
        requires constructible_from<iter_value_t<_Iter>, const _Tp&>
        _GLIBCXX26_CONSTEXPR
        _Iter
*************** namespace ranges
*** 478,484 ****
  	  }
        }
  
!     template<__detail::__nothrow_forward_range _Range, typename _Tp>
        requires constructible_from<range_value_t<_Range>, const _Tp&>
        _GLIBCXX26_CONSTEXPR
        borrowed_iterator_t<_Range>
--- 479,486 ----
  	  }
        }
  
!     template<__detail::__nothrow_forward_range _Range,
! 	     typename _Tp _GLIBCXX26_DEF_VAL_T(range_value_t<_Range>)>
        requires constructible_from<range_value_t<_Range>, const _Tp&>
        _GLIBCXX26_CONSTEXPR
        borrowed_iterator_t<_Range>
*************** namespace ranges
*** 492,498 ****
  
    struct __uninitialized_fill_n_fn
    {
!     template<__detail::__nothrow_forward_iterator _Iter, typename _Tp>
        requires constructible_from<iter_value_t<_Iter>, const _Tp&>
        _GLIBCXX26_CONSTEXPR
        _Iter
--- 494,501 ----
  
    struct __uninitialized_fill_n_fn
    {
!     template<__detail::__nothrow_forward_iterator _Iter,
! 	     typename _Tp _GLIBCXX26_DEF_VAL_T(iter_value_t<_Iter>)>
        requires constructible_from<iter_value_t<_Iter>, const _Tp&>
        _GLIBCXX26_CONSTEXPR
        _Iter
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/stl_uninitialized.h gcc-16-20260412/libstdc++-v3/include/bits/stl_uninitialized.h
*** gcc-16-20260405/libstdc++-v3/include/bits/stl_uninitialized.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/stl_uninitialized.h	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 406,412 ****
     *
     *  Like std::fill, but does not require an initialized output range.
    */
!   template<typename _ForwardIterator, typename _Tp>
      _GLIBCXX26_CONSTEXPR
      inline void
      uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
--- 406,413 ----
     *
     *  Like std::fill, but does not require an initialized output range.
    */
!   template<typename _ForwardIterator,
! 	   typename _Tp _GLIBCXX26_ALGO_DEF_VAL_T(_ForwardIterator)>
      _GLIBCXX26_CONSTEXPR
      inline void
      uninitialized_fill(_ForwardIterator __first, _ForwardIterator __last,
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 542,548 ****
     *
     *  Like std::fill_n, but does not require an initialized output range.
    */
!   template<typename _ForwardIterator, typename _Size, typename _Tp>
      _GLIBCXX26_CONSTEXPR
      inline _ForwardIterator
      uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
--- 543,550 ----
     *
     *  Like std::fill_n, but does not require an initialized output range.
    */
!   template<typename _ForwardIterator, typename _Size,
! 	   typename _Tp _GLIBCXX26_ALGO_DEF_VAL_T(_ForwardIterator)>
      _GLIBCXX26_CONSTEXPR
      inline _ForwardIterator
      uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp& __x)
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/utility.h gcc-16-20260412/libstdc++-v3/include/bits/utility.h
*** gcc-16-20260405/libstdc++-v3/include/bits/utility.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/utility.h	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 137,142 ****
--- 137,473 ----
      using tuple_element_t = typename tuple_element<__i, _Tp>::type;
  #endif
  
+ #ifdef __glibcxx_constant_wrapper // C++ >= 26
+   template<typename _Tp>
+     struct _CwFixedValue
+     {
+       using __type = _Tp;
+ 
+       constexpr
+       _CwFixedValue(__type __v) noexcept
+       : _M_data(__v) { }
+ 
+       __type _M_data;
+     };
+ 
+   template<typename _Tp, size_t _Extent>
+     struct _CwFixedValue<_Tp[_Extent]>
+     {
+       using __type = _Tp[_Extent];
+ 
+       constexpr
+       _CwFixedValue(_Tp (&__arr)[_Extent]) noexcept
+         : _CwFixedValue(__arr, typename _Build_index_tuple<_Extent>::__type())
+       { }
+ 
+       template<size_t... _Indices>
+ 	constexpr
+ 	_CwFixedValue(_Tp (&__arr)[_Extent], _Index_tuple<_Indices...>) noexcept
+ 	  : _M_data{__arr[_Indices]...}
+ 	{ }
+ 
+       _Tp _M_data[_Extent];
+     };
+ 
+   template<typename _Tp, size_t _Extent>
+     _CwFixedValue(_Tp (&)[_Extent]) -> _CwFixedValue<_Tp[_Extent]>;
+ 
+   template<_CwFixedValue _Xv,
+ 	   typename = typename decltype(_CwFixedValue(_Xv))::__type>
+     struct constant_wrapper;
+ 
+   template<typename _Tp>
+     concept _ConstExprParam = requires
+     {
+       typename constant_wrapper<_Tp::value>;
+     };
+ 
+   struct _CwOperators
+   {
+     template<_ConstExprParam _Tp>
+       friend constexpr auto
+       operator+(_Tp) noexcept -> constant_wrapper<(+_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       friend constexpr auto
+       operator-(_Tp) noexcept -> constant_wrapper<(-_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       friend constexpr auto
+       operator~(_Tp) noexcept -> constant_wrapper<(~_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       friend constexpr auto
+       operator!(_Tp) noexcept -> constant_wrapper<(!_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       friend constexpr auto
+       operator&(_Tp) noexcept -> constant_wrapper<(&_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       friend constexpr auto
+       operator*(_Tp) noexcept -> constant_wrapper<(*_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator+(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value + _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator-(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value - _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator*(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value * _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator/(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value / _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator%(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value % _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator<<(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value << _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator>>(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value >> _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator&(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value & _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator|(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value | _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator^(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value ^ _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       requires (!is_constructible_v<bool, decltype(_Left::value)>
+ 		|| !is_constructible_v<bool, decltype(_Right::value)>)
+       friend constexpr auto
+       operator&&(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value && _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       requires (!is_constructible_v<bool, decltype(_Left::value)>
+ 		|| !is_constructible_v<bool, decltype(_Right::value)>)
+       friend constexpr auto
+       operator||(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value || _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator<=>(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value <=> _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator<(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value < _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator<=(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value <= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator==(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value == _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator!=(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value != _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator>(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value > _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator>=(_Left, _Right) noexcept
+ 	-> constant_wrapper<(_Left::value >= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator,(_Left, _Right) noexcept = delete;
+ 
+     template<_ConstExprParam _Left, _ConstExprParam _Right>
+       friend constexpr auto
+       operator->*(_Left, _Right) noexcept
+ 	-> constant_wrapper<_Left::value->*(_Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam... _Args>
+       constexpr auto
+       operator()(this _Tp, _Args...) noexcept
+       requires
+ 	requires(_Args...) { constant_wrapper<_Tp::value(_Args::value...)>(); }
+       { return constant_wrapper<_Tp::value(_Args::value...)>{}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam... _Args>
+       constexpr auto
+       operator[](this _Tp, _Args...) noexcept
+ 	-> constant_wrapper<(_Tp::value[_Args::value...])>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       constexpr auto
+       operator++(this _Tp) noexcept
+  	-> constant_wrapper<(++_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       constexpr auto
+       operator++(this _Tp, int) noexcept
+  	-> constant_wrapper<(_Tp::value++)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       constexpr auto
+       operator--(this _Tp) noexcept
+  	-> constant_wrapper<(--_Tp::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp>
+       constexpr auto
+       operator--(this _Tp, int) noexcept
+  	-> constant_wrapper<(_Tp::value--)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator+=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value += _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator-=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value -= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator*=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value *= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator/=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value /= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator%=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value %= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator&=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value &= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator|=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value |= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator^=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value ^= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator<<=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value <<= _Right::value)>
+       { return {}; }
+ 
+     template<_ConstExprParam _Tp, _ConstExprParam _Right>
+       constexpr auto
+       operator>>=(this _Tp, _Right) noexcept
+   	-> constant_wrapper<(_Tp::value >>= _Right::value)>
+       { return {}; }
+   };
+ 
+   template<_CwFixedValue _Xv, typename>
+   struct constant_wrapper : _CwOperators
+   {
+     static constexpr const auto& value = _Xv._M_data;
+     using type = constant_wrapper;
+     using value_type = typename decltype(_Xv)::__type;
+ 
+     template<_ConstExprParam _Right>
+       constexpr auto
+       operator=(_Right) const noexcept
+   	-> constant_wrapper<(value = _Right::value)>
+       { return {}; }
+ 
+     constexpr
+     operator decltype(value)() const noexcept
+     { return value; }
+   };
+ 
+   template<typename>
+     constexpr bool __is_constant_wrapper_v = false;
+ 
+   template<auto __cw, typename _Fn>
+     constexpr bool __is_constant_wrapper_v<constant_wrapper<__cw, _Fn>> = true;
+ 
+   template<_CwFixedValue _Tp>
+     constexpr auto cw = constant_wrapper<_Tp>{};
+ #endif
+ 
  #ifdef __glibcxx_integer_sequence // C++ >= 14
  
    /// Class template integer_sequence
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 312,334 ****
    inline constexpr sorted_equivalent_t sorted_equivalent{};
  #endif
  
- #if __glibcxx_function_ref // >= C++26
-   template<auto>
-     struct nontype_t
-     {
-       explicit nontype_t() = default;
-     };
- 
-   template<auto __val>
-     constexpr nontype_t<__val> nontype{};
- 
-   template<typename>
-     inline constexpr bool __is_nontype_v = false;
- 
-   template<auto __val>
-     inline constexpr bool __is_nontype_v<nontype_t<__val>> = true;
- #endif
- 
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
  
--- 643,648 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/version.def gcc-16-20260412/libstdc++-v3/include/bits/version.def
*** gcc-16-20260405/libstdc++-v3/include/bits/version.def	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/version.def	Sun Apr 12 22:32:17 2026
*************** ftms = {
*** 2086,2093 ****
  
  ftms = {
    name = algorithm_default_value_type;
    values = {
!     v = 202403;
      cxxmin = 26;
    };
  };
--- 2086,2096 ----
  
  ftms = {
    name = algorithm_default_value_type;
+   // 202403 P2248R8 Enabling list-initialization for algorithms
+   //        P3787R2 Adjoints to "Enabling ...": find_last
+   // 202603 P3787R2 Adjoints to "Enabling ...": uninitialized_fill
    values = {
!     v = 202603;
      cxxmin = 26;
    };
  };
*************** ftms = {
*** 2169,2182 ****
  };
  
  ftms = {
-   name = span_initializer_list;
-   values = {
-     v = 202311;
-     cxxmin = 26;
-   };
- };
- 
- ftms = {
    name = text_encoding;
    values = {
      v = 202306;
--- 2172,2177 ----
*************** ftms = {
*** 2196,2202 ****
  };
  
  ftms = {
!   name = ranges_to_input;
    values = {
      v = 202502;
      cxxmin = 26;
--- 2191,2197 ----
  };
  
  ftms = {
!   name = ranges_as_input;
    values = {
      v = 202502;
      cxxmin = 26;
*************** ftms = {
*** 2359,2365 ****
      cxxmin = 26;
      extra_cond = "__cpp_structured_bindings >= 202411L "
      "&& __cpp_expansion_statements >= 202411L "
!     "&& (__x86_64__ || __i386__)"; // TODO: lift initial restriction to x86
      hosted = yes;
    };
  };
--- 2354,2360 ----
      cxxmin = 26;
      extra_cond = "__cpp_structured_bindings >= 202411L "
      "&& __cpp_expansion_statements >= 202411L "
!     "&& __SSE2__"; // TODO: add more targets
      hosted = yes;
    };
  };
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/bits/version.h gcc-16-20260412/libstdc++-v3/include/bits/version.h
*** gcc-16-20260405/libstdc++-v3/include/bits/version.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/bits/version.h	Sun Apr 12 22:32:20 2026
***************
*** 2328,2336 ****
  
  #if !defined(__cpp_lib_algorithm_default_value_type)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_algorithm_default_value_type 202403L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_default_value_type)
! #   define __cpp_lib_algorithm_default_value_type 202403L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_algorithm_default_value_type) */
--- 2328,2336 ----
  
  #if !defined(__cpp_lib_algorithm_default_value_type)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_algorithm_default_value_type 202603L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_default_value_type)
! #   define __cpp_lib_algorithm_default_value_type 202603L
  #  endif
  # endif
  #endif /* !defined(__cpp_lib_algorithm_default_value_type) */
***************
*** 2426,2441 ****
  #endif /* !defined(__cpp_lib_saturation_arithmetic) */
  #undef __glibcxx_want_saturation_arithmetic
  
- #if !defined(__cpp_lib_span_initializer_list)
- # if (__cplusplus >  202302L)
- #  define __glibcxx_span_initializer_list 202311L
- #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_span_initializer_list)
- #   define __cpp_lib_span_initializer_list 202311L
- #  endif
- # endif
- #endif /* !defined(__cpp_lib_span_initializer_list) */
- #undef __glibcxx_want_span_initializer_list
- 
  #if !defined(__cpp_lib_text_encoding)
  # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L)
  #  define __glibcxx_text_encoding 202306L
--- 2426,2431 ----
***************
*** 2456,2470 ****
  #endif /* !defined(__cpp_lib_ranges_filter) */
  #undef __glibcxx_want_ranges_filter
  
! #if !defined(__cpp_lib_ranges_to_input)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_ranges_to_input 202502L
! #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_input)
! #   define __cpp_lib_ranges_to_input 202502L
  #  endif
  # endif
! #endif /* !defined(__cpp_lib_ranges_to_input) */
! #undef __glibcxx_want_ranges_to_input
  
  #if !defined(__cpp_lib_to_string)
  # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
--- 2446,2460 ----
  #endif /* !defined(__cpp_lib_ranges_filter) */
  #undef __glibcxx_want_ranges_filter
  
! #if !defined(__cpp_lib_ranges_as_input)
  # if (__cplusplus >  202302L)
! #  define __glibcxx_ranges_as_input 202502L
! #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_input)
! #   define __cpp_lib_ranges_as_input 202502L
  #  endif
  # endif
! #endif /* !defined(__cpp_lib_ranges_as_input) */
! #undef __glibcxx_want_ranges_as_input
  
  #if !defined(__cpp_lib_to_string)
  # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
***************
*** 2627,2633 ****
  #undef __glibcxx_want_contracts
  
  #if !defined(__cpp_lib_simd)
! # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__cpp_structured_bindings >= 202411L && __cpp_expansion_statements >= 202411L && (__x86_64__ || __i386__))
  #  define __glibcxx_simd 202506L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_simd)
  #  endif
--- 2617,2623 ----
  #undef __glibcxx_want_contracts
  
  #if !defined(__cpp_lib_simd)
! # if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__cpp_structured_bindings >= 202411L && __cpp_expansion_statements >= 202411L && __SSE2__)
  #  define __glibcxx_simd 202506L
  #  if defined(__glibcxx_want_all) || defined(__glibcxx_want_simd)
  #  endif
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/pstl/glue_memory_defs.h gcc-16-20260412/libstdc++-v3/include/pstl/glue_memory_defs.h
*** gcc-16-20260405/libstdc++-v3/include/pstl/glue_memory_defs.h	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/pstl/glue_memory_defs.h	Sun Apr 12 22:32:17 2026
***************
*** 10,15 ****
--- 10,16 ----
  #ifndef _PSTL_GLUE_MEMORY_DEFS_H
  #define _PSTL_GLUE_MEMORY_DEFS_H
  
+ #include <bits/stl_iterator_base_types.h>
  #include "execution_defs.h"
  
  namespace std
*************** uninitialized_move_n(_ExecutionPolicy&&
*** 37,47 ****
  
  // [uninitialized.fill]
  
! template <class _ExecutionPolicy, class _ForwardIterator, class _Tp>
  __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void>
  uninitialized_fill(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value);
  
! template <class _ExecutionPolicy, class _ForwardIterator, class _Size, class _Tp>
  __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
  uninitialized_fill_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n, const _Tp& __value);
  
--- 38,48 ----
  
  // [uninitialized.fill]
  
! template <class _ExecutionPolicy, class _ForwardIterator, class _Tp _GLIBCXX26_ALGO_DEF_VAL_T(_ForwardIterator)>
  __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void>
  uninitialized_fill(_ExecutionPolicy&& __exec, _ForwardIterator __first, _ForwardIterator __last, const _Tp& __value);
  
! template <class _ExecutionPolicy, class _ForwardIterator, class _Size, class _Tp _GLIBCXX26_ALGO_DEF_VAL_T(_ForwardIterator)>
  __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator>
  uninitialized_fill_n(_ExecutionPolicy&& __exec, _ForwardIterator __first, _Size __n, const _Tp& __value);
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/std/meta gcc-16-20260412/libstdc++-v3/include/std/meta
*** gcc-16-20260405/libstdc++-v3/include/std/meta	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/std/meta	Sun Apr 12 22:32:17 2026
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 470,476 ****
      consteval bool is_abstract_type(info);
      consteval bool is_final_type(info);
      consteval bool is_aggregate_type(info);
-     consteval bool is_consteval_only_type(info);
  #if __glibcxx_is_structural >= 202603L
      consteval bool is_structural_type(info);
  #endif
--- 470,475 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/std/ranges gcc-16-20260412/libstdc++-v3/include/std/ranges
*** gcc-16-20260405/libstdc++-v3/include/std/ranges	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/std/ranges	Sun Apr 12 22:32:17 2026
***************
*** 72,78 ****
  #define __glibcxx_want_ranges_slide
  #define __glibcxx_want_ranges_stride
  #define __glibcxx_want_ranges_to_container
! #define __glibcxx_want_ranges_to_input
  #define __glibcxx_want_ranges_zip
  #include <bits/version.h>
  
--- 72,78 ----
  #define __glibcxx_want_ranges_slide
  #define __glibcxx_want_ranges_stride
  #define __glibcxx_want_ranges_to_container
! #define __glibcxx_want_ranges_as_input
  #define __glibcxx_want_ranges_zip
  #include <bits/version.h>
  
*************** namespace views::__adaptor
*** 3807,3814 ****
--- 3807,3818 ----
  	  }
        }
  
+       // _GLIBCXX_RESOLVE_LIB_DEFECTS
+       // 3599. The const overload of lazy_split_view::begin should be
+       // constrained by const Pattern
        constexpr auto
        begin() const requires forward_range<_Vp> && forward_range<const _Vp>
+ 	&& forward_range<const _Pattern>
        {
  	return _OuterIter<true>{this, ranges::begin(_M_base)};
        }
*************** namespace views::__adaptor
*** 3826,3832 ****
        {
  	if constexpr (forward_range<_Vp>
  		      && forward_range<const _Vp>
! 		      && common_range<const _Vp>)
  	  return _OuterIter<true>{this, ranges::end(_M_base)};
  	else
  	  return default_sentinel;
--- 3830,3837 ----
        {
  	if constexpr (forward_range<_Vp>
  		      && forward_range<const _Vp>
! 		      && common_range<const _Vp>
! 		      && forward_range<const _Pattern>)
  	  return _OuterIter<true>{this, ranges::end(_M_base)};
  	else
  	  return default_sentinel;
*************** namespace ranges
*** 10537,10548 ****
  } // namespace ranges
  #endif // __cpp_lib_ranges_cache_latest
  
! #if __cpp_lib_ranges_to_input // C++ >= 26
  namespace ranges
  {
    template<input_range _Vp>
      requires view<_Vp>
!   class to_input_view : public view_interface<to_input_view<_Vp>>
    {
      _Vp _M_base = _Vp();
  
--- 10542,10553 ----
  } // namespace ranges
  #endif // __cpp_lib_ranges_cache_latest
  
! #if __cpp_lib_ranges_as_input // C++ >= 26
  namespace ranges
  {
    template<input_range _Vp>
      requires view<_Vp>
!   class as_input_view : public view_interface<as_input_view<_Vp>>
    {
      _Vp _M_base = _Vp();
  
*************** namespace ranges
*** 10550,10559 ****
      class _Iterator;
  
    public:
!     to_input_view() requires default_initializable<_Vp> = default;
  
      constexpr explicit
!     to_input_view(_Vp __base)
      : _M_base(std::move(__base))
      { }
  
--- 10555,10564 ----
      class _Iterator;
  
    public:
!     as_input_view() requires default_initializable<_Vp> = default;
  
      constexpr explicit
!     as_input_view(_Vp __base)
      : _M_base(std::move(__base))
      { }
  
*************** namespace ranges
*** 10591,10602 ****
    };
  
    template<typename _Range>
!     to_input_view(_Range&&) -> to_input_view<views::all_t<_Range>>;
  
    template<input_range _Vp>
      requires view<_Vp>
    template<bool _Const>
!   class to_input_view<_Vp>::_Iterator
    {
      using _Base = __maybe_const_t<_Const, _Vp>;
  
--- 10596,10607 ----
    };
  
    template<typename _Range>
!     as_input_view(_Range&&) -> as_input_view<views::all_t<_Range>>;
  
    template<input_range _Vp>
      requires view<_Vp>
    template<bool _Const>
!   class as_input_view<_Vp>::_Iterator
    {
      using _Base = __maybe_const_t<_Const, _Vp>;
  
*************** namespace ranges
*** 10607,10613 ****
      : _M_current(std::move(__current))
      { }
  
!     friend to_input_view;
      friend _Iterator<!_Const>;
  
    public:
--- 10612,10618 ----
      : _M_current(std::move(__current))
      { }
  
!     friend as_input_view;
      friend _Iterator<!_Const>;
  
    public:
*************** namespace ranges
*** 10680,10692 ****
      namespace __detail
      {
        template<typename _Tp>
! 	concept __can_to_input = requires { to_input_view(std::declval<_Tp>()); };
      }
  
!     struct _ToInput : __adaptor::_RangeAdaptorClosure<_ToInput>
      {
        template<viewable_range _Range>
! 	requires __detail::__can_to_input<_Range>
  	constexpr auto
  	operator() [[nodiscard]] (_Range&& __r) const
  	{
--- 10685,10697 ----
      namespace __detail
      {
        template<typename _Tp>
! 	concept __can_as_input = requires { as_input_view(std::declval<_Tp>()); };
      }
  
!     struct _AsInput : __adaptor::_RangeAdaptorClosure<_AsInput>
      {
        template<viewable_range _Range>
! 	requires __detail::__can_as_input<_Range>
  	constexpr auto
  	operator() [[nodiscard]] (_Range&& __r) const
  	{
*************** namespace ranges
*** 10695,10710 ****
  			&& !forward_range<_Range>)
  	    return views::all(std::forward<_Range>(__r));
  	  else
! 	    return to_input_view(std::forward<_Range>(__r));
  	}
  
        static constexpr bool _S_has_simple_call_op = true;
      };
  
!     inline constexpr _ToInput to_input;
    }
  } // namespace ranges
! #endif // __cpp_lib_ranges_to_input
  
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
--- 10700,10715 ----
  			&& !forward_range<_Range>)
  	    return views::all(std::forward<_Range>(__r));
  	  else
! 	    return as_input_view(std::forward<_Range>(__r));
  	}
  
        static constexpr bool _S_has_simple_call_op = true;
      };
  
!     inline constexpr _AsInput as_input;
    }
  } // namespace ranges
! #endif // __cpp_lib_ranges_as_input
  
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace std
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/std/span gcc-16-20260412/libstdc++-v3/include/std/span
*** gcc-16-20260405/libstdc++-v3/include/std/span	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/std/span	Sun Apr 12 22:32:17 2026
***************
*** 47,55 ****
  #include <cstddef>
  #include <bits/stl_iterator.h>
  #include <bits/ranges_base.h>
! #ifdef __cpp_lib_span_initializer_list
! # include <initializer_list>
! #endif
  namespace std _GLIBCXX_VISIBILITY(default)
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
--- 47,53 ----
  #include <cstddef>
  #include <bits/stl_iterator.h>
  #include <bits/ranges_base.h>
! 
  namespace std _GLIBCXX_VISIBILITY(default)
  {
  _GLIBCXX_BEGIN_NAMESPACE_VERSION
*************** _GLIBCXX_BEGIN_NAMESPACE_VERSION
*** 232,249 ****
  	: _M_ptr(ranges::data(__range)), _M_extent(ranges::size(__range))
  	{ }
  
- #if __cpp_lib_span_initializer_list >= 202311L // >= C++26
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Winit-list-lifetime"
-       constexpr
-       explicit(extent != dynamic_extent)
-       span(initializer_list<value_type> __il)
-       requires (is_const_v<_Type>)
-       : _M_ptr(__il.begin()), _M_extent(__il.size())
-       { }
- #pragma GCC diagnostic pop
- #endif
- 
        constexpr
        span(const span&) noexcept = default;
  
--- 230,235 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/std/type_traits gcc-16-20260412/libstdc++-v3/include/std/type_traits
*** gcc-16-20260405/libstdc++-v3/include/std/type_traits	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/std/type_traits	Sun Apr 12 22:32:17 2026
***************
*** 42,48 ****
  #define __glibcxx_want_bool_constant
  #define __glibcxx_want_bounded_array_traits
  #define __glibcxx_want_common_reference
- #define __glibcxx_want_constant_wrapper
  #define __glibcxx_want_has_unique_object_representations
  #define __glibcxx_want_integral_constant_callable
  #define __glibcxx_want_is_aggregate
--- 42,47 ----
*************** template<typename _Ret, typename _Fn, ty
*** 3907,3930 ****
  # endif
  #endif
  
- #if __cpp_impl_reflection >= 202506L \
-     && _GLIBCXX_USE_BUILTIN_TRAIT(__builtin_is_consteval_only) // C++ >= 26
-   /// is_consteval_only - true if the type is consteval-only.
-   /// @since C++26
-   template<typename _Tp>
-     struct is_consteval_only
-     : bool_constant<__builtin_is_consteval_only(_Tp)>
-     { };
- 
-   /** is_consteval_only_v - true if the type is consteval-only.
-    *  @ingroup variable_templates
-    *  @since C++26
-    */
-   template<typename _Tp>
-     inline constexpr bool is_consteval_only_v
-       = __builtin_is_consteval_only(_Tp);
- #endif
- 
  #if __cpp_lib_is_structural >= 202603L // C++ >= 26
    /// is_structural - true if the type is a structural type.
    /// @since C++26
--- 3906,3911 ----
*************** template<typename _Ret, typename _Fn, ty
*** 4403,4733 ****
      };
  #endif // C++11
  
- #ifdef __cpp_lib_constant_wrapper // C++ >= 26
-   template<typename _Tp>
-     struct _CwFixedValue
-     {
-       using __type = _Tp;
- 
-       constexpr
-       _CwFixedValue(__type __v) noexcept
-       : _M_data(__v) { }
- 
-       __type _M_data;
-     };
- 
-   template<typename _Tp, size_t _Extent>
-     struct _CwFixedValue<_Tp[_Extent]>
-     {
-       using __type = _Tp[_Extent];
- 
-       constexpr
-       _CwFixedValue(_Tp (&__arr)[_Extent]) noexcept
-         : _CwFixedValue(__arr, typename _Build_index_tuple<_Extent>::__type())
-       { }
- 
-       template<size_t... _Indices>
- 	constexpr
- 	_CwFixedValue(_Tp (&__arr)[_Extent], _Index_tuple<_Indices...>) noexcept
- 	  : _M_data{__arr[_Indices]...}
- 	{ }
- 
-       _Tp _M_data[_Extent];
-     };
- 
-   template<typename _Tp, size_t _Extent>
-     _CwFixedValue(_Tp (&)[_Extent]) -> _CwFixedValue<_Tp[_Extent]>;
- 
-   template<_CwFixedValue _Xv,
- 	   typename = typename decltype(_CwFixedValue(_Xv))::__type>
-     struct constant_wrapper;
- 
-   template<typename _Tp>
-     concept _ConstExprParam = requires
-     {
-       typename constant_wrapper<_Tp::value>;
-     };
- 
-   struct _CwOperators
-   {
-     template<_ConstExprParam _Tp>
-       friend constexpr auto
-       operator+(_Tp) noexcept -> constant_wrapper<(+_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       friend constexpr auto
-       operator-(_Tp) noexcept -> constant_wrapper<(-_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       friend constexpr auto
-       operator~(_Tp) noexcept -> constant_wrapper<(~_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       friend constexpr auto
-       operator!(_Tp) noexcept -> constant_wrapper<(!_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       friend constexpr auto
-       operator&(_Tp) noexcept -> constant_wrapper<(&_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       friend constexpr auto
-       operator*(_Tp) noexcept -> constant_wrapper<(*_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator+(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value + _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator-(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value - _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator*(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value * _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator/(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value / _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator%(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value % _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator<<(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value << _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator>>(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value >> _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator&(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value & _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator|(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value | _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator^(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value ^ _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       requires (!is_constructible_v<bool, decltype(_Left::value)>
- 		|| !is_constructible_v<bool, decltype(_Right::value)>)
-       friend constexpr auto
-       operator&&(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value && _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       requires (!is_constructible_v<bool, decltype(_Left::value)>
- 		|| !is_constructible_v<bool, decltype(_Right::value)>)
-       friend constexpr auto
-       operator||(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value || _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator<=>(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value <=> _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator<(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value < _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator<=(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value <= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator==(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value == _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator!=(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value != _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator>(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value > _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator>=(_Left, _Right) noexcept
- 	-> constant_wrapper<(_Left::value >= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator,(_Left, _Right) noexcept = delete;
- 
-     template<_ConstExprParam _Left, _ConstExprParam _Right>
-       friend constexpr auto
-       operator->*(_Left, _Right) noexcept
- 	-> constant_wrapper<_Left::value->*(_Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam... _Args>
-       constexpr auto
-       operator()(this _Tp, _Args...) noexcept
-       requires
- 	requires(_Args...) { constant_wrapper<_Tp::value(_Args::value...)>(); }
-       { return constant_wrapper<_Tp::value(_Args::value...)>{}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam... _Args>
-       constexpr auto
-       operator[](this _Tp, _Args...) noexcept
- 	-> constant_wrapper<(_Tp::value[_Args::value...])>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       constexpr auto
-       operator++(this _Tp) noexcept
-  	-> constant_wrapper<(++_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       constexpr auto
-       operator++(this _Tp, int) noexcept
-  	-> constant_wrapper<(_Tp::value++)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       constexpr auto
-       operator--(this _Tp) noexcept
-  	-> constant_wrapper<(--_Tp::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp>
-       constexpr auto
-       operator--(this _Tp, int) noexcept
-  	-> constant_wrapper<(_Tp::value--)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator+=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value += _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator-=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value -= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator*=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value *= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator/=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value /= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator%=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value %= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator&=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value &= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator|=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value |= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator^=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value ^= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator<<=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value <<= _Right::value)>
-       { return {}; }
- 
-     template<_ConstExprParam _Tp, _ConstExprParam _Right>
-       constexpr auto
-       operator>>=(this _Tp, _Right) noexcept
-   	-> constant_wrapper<(_Tp::value >>= _Right::value)>
-       { return {}; }
-   };
- 
-   template<_CwFixedValue _Xv, typename>
-   struct constant_wrapper : _CwOperators
-   {
-     static constexpr const auto& value = _Xv._M_data;
-     using type = constant_wrapper;
-     using value_type = typename decltype(_Xv)::__type;
- 
-     template<_ConstExprParam _Right>
-       constexpr auto
-       operator=(_Right) const noexcept
-   	-> constant_wrapper<(value = _Right::value)>
-       { return {}; }
- 
-     constexpr
-     operator decltype(value)() const noexcept
-     { return value; }
-   };
- 
-   template<_CwFixedValue _Tp>
-     constexpr auto cw = constant_wrapper<_Tp>{};
- #endif
- 
    /// @} group metaprogramming
  
  _GLIBCXX_END_NAMESPACE_VERSION
--- 4384,4389 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/include/std/utility gcc-16-20260412/libstdc++-v3/include/std/utility
*** gcc-16-20260405/libstdc++-v3/include/std/utility	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/include/std/utility	Sun Apr 12 22:32:17 2026
***************
*** 87,92 ****
--- 87,93 ----
  
  #define __glibcxx_want_addressof_constexpr
  #define __glibcxx_want_as_const
+ #define __glibcxx_want_constant_wrapper
  #define __glibcxx_want_constexpr_algorithms
  #define __glibcxx_want_constexpr_utility
  #define __glibcxx_want_exchange_function
diff -Nrcpad gcc-16-20260405/libstdc++-v3/src/c++20/Makefile.am gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.am
*** gcc-16-20260405/libstdc++-v3/src/c++20/Makefile.am	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.am	Sun Apr 12 22:32:17 2026
*************** noinst_LTLIBRARIES = libc++20convenience
*** 27,36 ****
  
  headers =
  
  if ENABLE_EXTERN_TEMPLATE
  # XTEMPLATE_FLAGS = -fno-implicit-templates
  inst_sources = \
! 	sstream-inst.cc
  else
  # XTEMPLATE_FLAGS =
  inst_sources =
--- 27,45 ----
  
  headers =
  
+ if ENABLE_DUAL_ABI
+ extra_string_inst_sources = cow-string-inst.cc
+ else
+ extra_string_inst_sources =
+ endif
+ 
+ 
  if ENABLE_EXTERN_TEMPLATE
  # XTEMPLATE_FLAGS = -fno-implicit-templates
  inst_sources = \
! 	sstream-inst.cc \
! 	string-inst.cc \
! 	$(extra_string_inst_sources)
  else
  # XTEMPLATE_FLAGS =
  inst_sources =
*************** sources = tzdb.cc format.cc atomic.cc cl
*** 40,45 ****
--- 49,59 ----
  
  vpath % $(top_srcdir)/src/c++20
  
+ if ENABLE_DUAL_ABI
+ # These files should be rebuilt if the .cc prerequisite changes.
+ cow-string-inst.lo cow-string-inst.o: string-inst.cc
+ endif
+ 
  if USE_STATIC_TZDATA
  tzdata.zi.h: $(top_srcdir)/src/c++20/tzdata.zi
  	echo 'static const char tzdata_chars[] = R"__libstdcxx__(' > $@.tmp
diff -Nrcpad gcc-16-20260405/libstdc++-v3/src/c++20/Makefile.in gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.in
*** gcc-16-20260405/libstdc++-v3/src/c++20/Makefile.in	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/src/c++20/Makefile.in	Sun Apr 12 22:32:17 2026
*************** CONFIG_CLEAN_VPATH_FILES =
*** 124,132 ****
  LTLIBRARIES = $(noinst_LTLIBRARIES)
  libc__20convenience_la_LIBADD =
  am__objects_1 = tzdb.lo format.lo atomic.lo clock.lo syncbuf.lo
! @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = sstream-inst.lo
  @GLIBCXX_HOSTED_TRUE@am_libc__20convenience_la_OBJECTS =  \
! @GLIBCXX_HOSTED_TRUE@	$(am__objects_1) $(am__objects_2)
  libc__20convenience_la_OBJECTS = $(am_libc__20convenience_la_OBJECTS)
  AM_V_lt = $(am__v_lt_@AM_V@)
  am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
--- 124,134 ----
  LTLIBRARIES = $(noinst_LTLIBRARIES)
  libc__20convenience_la_LIBADD =
  am__objects_1 = tzdb.lo format.lo atomic.lo clock.lo syncbuf.lo
! @ENABLE_DUAL_ABI_TRUE@am__objects_2 = cow-string-inst.lo
! @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_3 = sstream-inst.lo \
! @ENABLE_EXTERN_TEMPLATE_TRUE@	string-inst.lo $(am__objects_2)
  @GLIBCXX_HOSTED_TRUE@am_libc__20convenience_la_OBJECTS =  \
! @GLIBCXX_HOSTED_TRUE@	$(am__objects_1) $(am__objects_3)
  libc__20convenience_la_OBJECTS = $(am_libc__20convenience_la_OBJECTS)
  AM_V_lt = $(am__v_lt_@AM_V@)
  am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
*************** AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPF
*** 428,439 ****
  # Convenience library for C++20 runtime.
  noinst_LTLIBRARIES = libc++20convenience.la
  headers = 
  # XTEMPLATE_FLAGS =
  @ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = 
  
  # XTEMPLATE_FLAGS = -fno-implicit-templates
  @ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = \
! @ENABLE_EXTERN_TEMPLATE_TRUE@	sstream-inst.cc
  
  sources = tzdb.cc format.cc atomic.cc clock.cc syncbuf.cc
  @GLIBCXX_HOSTED_FALSE@libc__20convenience_la_SOURCES = 
--- 430,445 ----
  # Convenience library for C++20 runtime.
  noinst_LTLIBRARIES = libc++20convenience.la
  headers = 
+ @ENABLE_DUAL_ABI_FALSE@extra_string_inst_sources = 
+ @ENABLE_DUAL_ABI_TRUE@extra_string_inst_sources = cow-string-inst.cc
  # XTEMPLATE_FLAGS =
  @ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = 
  
  # XTEMPLATE_FLAGS = -fno-implicit-templates
  @ENABLE_EXTERN_TEMPLATE_TRUE@inst_sources = \
! @ENABLE_EXTERN_TEMPLATE_TRUE@	sstream-inst.cc \
! @ENABLE_EXTERN_TEMPLATE_TRUE@	string-inst.cc \
! @ENABLE_EXTERN_TEMPLATE_TRUE@	$(extra_string_inst_sources)
  
  sources = tzdb.cc format.cc atomic.cc clock.cc syncbuf.cc
  @GLIBCXX_HOSTED_FALSE@libc__20convenience_la_SOURCES = 
*************** uninstall-am:
*** 747,752 ****
--- 753,761 ----
  
  vpath % $(top_srcdir)/src/c++20
  
+ # These files should be rebuilt if the .cc prerequisite changes.
+ @ENABLE_DUAL_ABI_TRUE@cow-string-inst.lo cow-string-inst.o: string-inst.cc
+ 
  @USE_STATIC_TZDATA_TRUE@tzdata.zi.h: $(top_srcdir)/src/c++20/tzdata.zi
  @USE_STATIC_TZDATA_TRUE@	echo 'static const char tzdata_chars[] = R"__libstdcxx__(' > $@.tmp
  @USE_STATIC_TZDATA_TRUE@	cat $^ >> $@.tmp
diff -Nrcpad gcc-16-20260405/libstdc++-v3/src/c++20/cow-string-inst.cc gcc-16-20260412/libstdc++-v3/src/c++20/cow-string-inst.cc
*** gcc-16-20260405/libstdc++-v3/src/c++20/cow-string-inst.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/libstdc++-v3/src/c++20/cow-string-inst.cc	Sun Apr 12 22:32:17 2026
***************
*** 0 ****
--- 1,34 ----
+ // Reference-counted COW string instantiations for C++20 -*- C++ -*-
+ 
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+ // terms of the GNU General Public License as published by the
+ // Free Software Foundation; either version 3, or (at your option)
+ // any later version.
+ 
+ // This library is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ // GNU General Public License for more details.
+ 
+ // Under Section 7 of GPL version 3, you are granted additional
+ // permissions described in the GCC Runtime Library Exception, version
+ // 3.1, as published by the Free Software Foundation.
+ 
+ // You should have received a copy of the GNU General Public License and
+ // a copy of the GCC Runtime Library Exception along with this program;
+ // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ // <http://www.gnu.org/licenses/>.
+ 
+ //
+ // ISO C++ 14882:2020 21  Strings library
+ //
+ 
+ #define _GLIBCXX_USE_CXX11_ABI 0
+ #include "string-inst.cc"
+ 
+ #if ! _GLIBCXX_USE_DUAL_ABI
+ # error This file should not be compiled for this configuration.
+ #endif
diff -Nrcpad gcc-16-20260405/libstdc++-v3/src/c++20/string-inst.cc gcc-16-20260412/libstdc++-v3/src/c++20/string-inst.cc
*** gcc-16-20260405/libstdc++-v3/src/c++20/string-inst.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/libstdc++-v3/src/c++20/string-inst.cc	Sun Apr 12 22:32:17 2026
***************
*** 0 ****
--- 1,59 ----
+ // string instantiations for C++20 -*- C++ -*-
+ 
+ // Copyright (C) 2026 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+ // terms of the GNU General Public License as published by the
+ // Free Software Foundation; either version 3, or (at your option)
+ // any later version.
+ 
+ // This library is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ // GNU General Public License for more details.
+ 
+ // Under Section 7 of GPL version 3, you are granted additional
+ // permissions described in the GCC Runtime Library Exception, version
+ // 3.1, as published by the Free Software Foundation.
+ 
+ // You should have received a copy of the GNU General Public License and
+ // a copy of the GCC Runtime Library Exception along with this program;
+ // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
+ // <http://www.gnu.org/licenses/>.
+ 
+ //
+ // ISO C++ 14882:2020 21  Strings library
+ //
+ 
+ #ifndef _GLIBCXX_USE_CXX11_ABI
+ // Instantiations in this file use the new SSO std::string ABI unless included
+ // by another file which defines _GLIBCXX_USE_CXX11_ABI=0.
+ # define _GLIBCXX_USE_CXX11_ABI 1
+ #endif
+ 
+ #include <string>
+ 
+ namespace std _GLIBCXX_VISIBILITY(default)
+ {
+ _GLIBCXX_BEGIN_NAMESPACE_VERSION
+ template basic_string<char>::basic_string() noexcept;
+ template bool basic_string<char>::starts_with(string_view) const noexcept;
+ template bool basic_string<char>::starts_with(char) const noexcept;
+ template bool basic_string<char>::starts_with(const char*) const noexcept;
+ template bool basic_string<char>::ends_with(string_view) const noexcept;
+ template bool basic_string<char>::ends_with(char) const noexcept;
+ template bool basic_string<char>::ends_with(const char*) const noexcept;
+ 
+ #ifdef _GLIBCXX_USE_WCHAR_T
+ template basic_string<wchar_t>::basic_string() noexcept;
+ template bool basic_string<wchar_t>::starts_with(wstring_view) const noexcept;
+ template bool basic_string<wchar_t>::starts_with(wchar_t) const noexcept;
+ template bool basic_string<wchar_t>::starts_with(const wchar_t*) const noexcept;
+ template bool basic_string<wchar_t>::ends_with(wstring_view) const noexcept;
+ template bool basic_string<wchar_t>::ends_with(wchar_t) const noexcept;
+ template bool basic_string<wchar_t>::ends_with(const wchar_t*) const noexcept;
+ #endif
+ 
+ _GLIBCXX_END_NAMESPACE_VERSION
+ } // namespace std
diff -Nrcpad gcc-16-20260405/libstdc++-v3/src/c++23/std.cc.in gcc-16-20260412/libstdc++-v3/src/c++23/std.cc.in
*** gcc-16-20260405/libstdc++-v3/src/c++23/std.cc.in	Sun Apr  5 22:32:18 2026
--- gcc-16-20260412/libstdc++-v3/src/c++23/std.cc.in	Sun Apr 12 22:32:17 2026
*************** export namespace std
*** 2254,2260 ****
      using std::meta::is_abstract_type;
      using std::meta::is_final_type;
      using std::meta::is_aggregate_type;
-     using std::meta::is_consteval_only_type;
  #if __glibcxx_is_structural >= 202603L
      using std::meta::is_structural_type;
  #endif
--- 2254,2259 ----
*************** export namespace std
*** 2801,2809 ****
      using ranges::cache_latest_view;
      namespace views { using views::cache_latest; }
  #endif
! #if __glibcxx_ranges_to_input // C++ >= 26
!     using ranges::to_input_view;
!     namespace views { using views::to_input; }
  #endif
  #ifdef __cpp_lib_ranges_indices // C++ >= 26
      namespace views { using views::indices; }
--- 2800,2808 ----
      using ranges::cache_latest_view;
      namespace views { using views::cache_latest; }
  #endif
! #if __glibcxx_ranges_as_input // C++ >= 26
!     using ranges::as_input_view;
!     namespace views { using views::as_input; }
  #endif
  #ifdef __cpp_lib_ranges_indices // C++ >= 26
      namespace views { using views::indices; }
*************** export namespace std
*** 3576,3585 ****
  #if __cpp_impl_reflection >= 202506L
    using std::is_reflection;
    using std::is_reflection_v;
- #if _GLIBCXX_USE_BUILTIN_TRAIT(__builtin_is_consteval_only)
-   using std::is_consteval_only;
-   using std::is_consteval_only_v;
- #endif
  #endif
  #if __glibcxx_is_structural >= 202603L
    using std::is_structural;
--- 3575,3580 ----
*************** export namespace std
*** 3656,3665 ****
    using std::make_integer_sequence;
    using std::move;
    using std::move_if_noexcept;
- #if __cpp_lib_function_ref
-   using std::nontype_t;
-   using std::nontype;
- #endif
    using std::pair;
    using std::swap;
    using std::operator==;
--- 3651,3656 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc	Sun Apr 12 22:32:17 2026
***************
*** 1,5 ****
  // { dg-do compile { target c++26 } }
! #include <type_traits>
  #include <concepts>
  
  #include <testsuite_hooks.h>
--- 1,5 ----
  // { dg-do compile { target c++26 } }
! #include <utility>
  #include <concepts>
  
  #include <testsuite_hooks.h>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc	Sun Apr 12 22:32:17 2026
***************
*** 1,5 ****
  // { dg-do compile { target c++26 } }
! #include <type_traits>
  #include <iostream>
  
  #include <testsuite_hooks.h>
--- 1,5 ----
  // { dg-do compile { target c++26 } }
! #include <utility>
  #include <iostream>
  
  #include <testsuite_hooks.h>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc	Sun Apr 12 22:32:17 2026
***************
*** 1,5 ****
  // { dg-do run { target c++26 } }
- #include <type_traits>
  #include <utility>
  #include <string_view>
  
--- 1,4 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc	Sun Apr 12 22:32:17 2026
***************
*** 1,5 ****
  // { dg-do run { target c++26 } }
- #include <type_traits>
  #include <utility>
  
  #include <testsuite_hooks.h>
--- 1,4 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc	Sun Apr 12 22:32:17 2026
***************
*** 1,5 ****
  // { dg-do compile { target c++26 } }
! #include <type_traits>
  
  constexpr void
  test_comma_same_types()
--- 1,5 ----
  // { dg-do compile { target c++26 } }
! #include <utility>
  
  constexpr void
  test_comma_same_types()
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc	Sun Apr 12 22:32:17 2026
***************
*** 1,5 ****
  // { dg-do run { target c++26 } }
! #include <type_traits>
  #include <concepts>
  
  #include <testsuite_hooks.h>
--- 1,5 ----
  // { dg-do run { target c++26 } }
! #include <utility>
  #include <concepts>
  
  #include <testsuite_hooks.h>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc	Sun Apr 12 22:32:17 2026
***************
*** 1,10 ****
  // { dg-do preprocess { target c++26 } }
  // { dg-add-options no_pch }
  
! #include <type_traits>
  
  #ifndef __cpp_lib_constant_wrapper
! #error "Feature test macro __cpp_lib_constant_wrapper is missing for <type_traits>"
  #if __cpp_lib_constant_wrapper < 202506L
  #error "Feature test macro __cpp_lib_constant_wrapper has the wrong value"
  #endif
--- 1,10 ----
  // { dg-do preprocess { target c++26 } }
  // { dg-add-options no_pch }
  
! #include <utility>
  
  #ifndef __cpp_lib_constant_wrapper
! #error "Feature test macro __cpp_lib_constant_wrapper is missing for <utility>"
  #if __cpp_lib_constant_wrapper < 202506L
  #error "Feature test macro __cpp_lib_constant_wrapper has the wrong value"
  #endif
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/assign.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/assign.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/assign.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/assign.cc	Sun Apr 12 22:32:18 2026
***************
*** 8,15 ****
  # error "Feature-test macro for function_ref has wrong value in <functional>"
  #endif
  
! using std::nontype;
! using std::nontype_t;
  using std::function_ref;
  
  using std::is_nothrow_move_assignable_v;
--- 8,14 ----
  # error "Feature-test macro for function_ref has wrong value in <functional>"
  #endif
  
! using std::constant_wrapper;
  using std::function_ref;
  
  using std::is_nothrow_move_assignable_v;
*************** static_assert( ! is_assignable_v<functio
*** 55,67 ****
  static_assert( ! is_assignable_v<function_ref<int(S)>, decltype(&S::f)> );
  
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       nontype_t<funS>> );
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       nontype_t<&funS>> );
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       nontype_t<&S::x>> );
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       nontype_t<&S::f>> );
  struct Q
  {
    void operator()() const;
--- 54,66 ----
  static_assert( ! is_assignable_v<function_ref<int(S)>, decltype(&S::f)> );
  
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       constant_wrapper<funS>> );
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       constant_wrapper<&funS>> );
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       constant_wrapper<&S::x>> );
  static_assert( is_nothrow_assignable_v<function_ref<int(S)>,
! 				       constant_wrapper<&S::f>> );
  struct Q
  {
    void operator()() const;
*************** static_assert( ! is_assignable_v<functio
*** 75,96 ****
  static_assert( ! is_assignable_v<function_ref<void() const>, const Q&> );
  
  static_assert( is_nothrow_assignable_v<function_ref<void()>,
! 				       nontype_t<Q{}>> );
  static_assert( is_nothrow_assignable_v<function_ref<void() const>,
! 				       nontype_t<Q{}>> );
  
  constexpr bool
  test_constexpr()
  {
!   function_ref<void(S)> fp(nontype<funS>);
!   fp = nontype<funS>;
!   fp = nontype<&funS>;
!   fp = nontype<&S::x>;
!   fp = nontype<&S::f>;
  
    constexpr Q cq;
    function_ref<void() const> fq(cq);
!   fq = nontype<cq>;
    return true;
  }
  static_assert( test_constexpr() );
--- 74,95 ----
  static_assert( ! is_assignable_v<function_ref<void() const>, const Q&> );
  
  static_assert( is_nothrow_assignable_v<function_ref<void()>,
! 				       constant_wrapper<Q{}>> );
  static_assert( is_nothrow_assignable_v<function_ref<void() const>,
! 				       constant_wrapper<Q{}>> );
  
  constexpr bool
  test_constexpr()
  {
!   function_ref<void(S)> fp(std::cw<funS>);
!   fp = std::cw<funS>;
!   fp = std::cw<&funS>;
!   fp = std::cw<&S::x>;
!   fp = std::cw<&S::f>;
  
    constexpr Q cq;
    function_ref<void() const> fq(cq);
!   fq = std::cw<cq>;
    return true;
  }
  static_assert( test_constexpr() );
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/call.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/call.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/call.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/call.cc	Sun Apr 12 22:32:18 2026
***************
*** 4,10 ****
  #include <utility>
  #include <testsuite_hooks.h>
  
- using std::nontype;
  using std::function_ref;
  
  using std::is_same_v;
--- 4,9 ----
*************** test01()
*** 43,49 ****
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int()> f1{nontype<F{}>};
    VERIFY( f1() == 1 );
    VERIFY( std::move(f1)() == 1 );
  
--- 42,48 ----
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int()> f1{std::cw<F{}>};
    VERIFY( f1() == 1 );
    VERIFY( std::move(f1)() == 1 );
  
*************** test01()
*** 53,59 ****
    VERIFY( std::move(f2)() == 1 );
    VERIFY( std::move(std::as_const(f2))() == 1 );
  
!   function_ref<int() const> f3{nontype<F{}>};
    VERIFY( f3() == 1 );
    VERIFY( std::as_const(f3)() == 1 );
    VERIFY( std::move(f3)() == 1 );
--- 52,58 ----
    VERIFY( std::move(f2)() == 1 );
    VERIFY( std::move(std::as_const(f2))() == 1 );
  
!   function_ref<int() const> f3{std::cw<F{}>};
    VERIFY( f3() == 1 );
    VERIFY( std::as_const(f3)() == 1 );
    VERIFY( std::move(f3)() == 1 );
*************** test02()
*** 71,81 ****
    };
    F::Arg arg;
  
!   function_ref<int()> f0{std::nontype<F{}>, arg};
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int() const> f1{std::nontype<F{}>, arg};
    VERIFY( f1() == 1 );
    VERIFY( std::as_const(f1)() == 1 );
  }
--- 70,80 ----
    };
    F::Arg arg;
  
!   function_ref<int()> f0{std::cw<F{}>, arg};
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int() const> f1{std::cw<F{}>, arg};
    VERIFY( f1() == 1 );
    VERIFY( std::as_const(f1)() == 1 );
  }
*************** test03()
*** 91,101 ****
    };
    F::Arg arg;
  
!   function_ref<int()> f0{std::nontype<F{}>, &arg};
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int() const> f1{std::nontype<F{}>, &arg};
    VERIFY( f1() == 1 );
    VERIFY( std::as_const(f1)() == 1 );
  }
--- 90,100 ----
    };
    F::Arg arg;
  
!   function_ref<int()> f0{std::cw<F{}>, &arg};
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int() const> f1{std::cw<F{}>, &arg};
    VERIFY( f1() == 1 );
    VERIFY( std::as_const(f1)() == 1 );
  }
*************** test04()
*** 108,114 ****
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int()> f1{nontype<fp>};
    VERIFY( f1() == 0 );
    VERIFY( std::move(f1)() == 0 );
  
--- 107,113 ----
    VERIFY( f0() == 0 );
    VERIFY( std::move(f0)() == 0 );
  
!   function_ref<int()> f1{std::cw<fp>};
    VERIFY( f1() == 0 );
    VERIFY( std::move(f1)() == 0 );
  
*************** test04()
*** 116,122 ****
    VERIFY( f2() == 0 );
    VERIFY( std::move(f2)() == 0 );
  
!   const function_ref<int() const> f3{nontype<fp>};
    VERIFY( f2() == 0 );
    VERIFY( std::move(f2)() == 0 );
  }
--- 115,121 ----
    VERIFY( f2() == 0 );
    VERIFY( std::move(f2)() == 0 );
  
!   const function_ref<int() const> f3{std::cw<fp>};
    VERIFY( f2() == 0 );
    VERIFY( std::move(f2)() == 0 );
  }
*************** int callback_ref(ftype& f, int x) { retu
*** 130,143 ****
  void
  test05()
  {
!   function_ref<int(int)> r1(nontype<&callback_ptr>, &twice);
    VERIFY( r1(2) == 4 );
!   function_ref<int(int)> r2(nontype<&callback_ptr>, cube);
    VERIFY( r2(2) == 8 );
  
!   function_ref<int(int)> r3(nontype<&callback_ref>, twice);
    VERIFY( r3(3) == 6 );
!   function_ref<int(int)> r4(nontype<&callback_ref>, cube);
    VERIFY( r4(3) == 27 );
  }
  
--- 129,142 ----
  void
  test05()
  {
!   function_ref<int(int)> r1(std::cw<&callback_ptr>, &twice);
    VERIFY( r1(2) == 4 );
!   function_ref<int(int)> r2(std::cw<&callback_ptr>, cube);
    VERIFY( r2(2) == 8 );
  
!   function_ref<int(int)> r3(std::cw<&callback_ref>, twice);
    VERIFY( r3(3) == 6 );
!   function_ref<int(int)> r4(std::cw<&callback_ref>, cube);
    VERIFY( r4(3) == 27 );
  }
  
*************** test06()
*** 174,210 ****
    std::function_ref<const int&(int, int) const> e8(std::as_const(csr));
    VERIFY( &e8(0, 0) == &s.v );
  
!   std::function_ref<int&()> f1(std::nontype<&S::v>, sr);
    VERIFY( &f1() == &s.v );
!   std::function_ref<const int&()> f2(std::nontype<&S::v>, sr);
    VERIFY( &f2() == &s.v );
!   std::function_ref<int&()> f3(std::nontype<&S::m>, sr);
    VERIFY( &f3() == &s.v );
!   std::function_ref<const int&()> f4(std::nontype<&S::c>, sr);
    VERIFY( &f4() == &s.v );
  
!   std::function_ref<const int&()> f5(std::nontype<&S::v>, csr);
    VERIFY( &f5() == &s.v );
!   std::function_ref<const int&()> f6(std::nontype<&S::c>, sr);
    VERIFY( &f6() == &s.v );
    static_assert( !std::is_constructible_v<
      std::function_ref<int&()>,
!     std::nontype_t<&S::c>, std::reference_wrapper<S>&>
     );
  
!   std::function_ref<int&()> f7(std::nontype<&S::v>, std::as_const(sr));
    VERIFY( &f7() == &s.v );
!   std::function_ref<const int&()> f8(std::nontype<&S::m>, std::as_const(sr));
    VERIFY( &f8() == &s.v );
  
    // No rvalue reference_wrapper support
    static_assert( !std::is_constructible_v<
      std::function_ref<int&()>,
!     std::nontype_t<&S::v>, std::reference_wrapper<S>>
    );
    static_assert( !std::is_constructible_v<
      std::function_ref<int&()>,
!     std::nontype_t<&S::v>, std::reference_wrapper<const S>>
    );
  
    // reference to reference_wrapper are bound, so mutation are visible
--- 173,209 ----
    std::function_ref<const int&(int, int) const> e8(std::as_const(csr));
    VERIFY( &e8(0, 0) == &s.v );
  
!   std::function_ref<int&()> f1(std::cw<&S::v>, sr);
    VERIFY( &f1() == &s.v );
!   std::function_ref<const int&()> f2(std::cw<&S::v>, sr);
    VERIFY( &f2() == &s.v );
!   std::function_ref<int&()> f3(std::cw<&S::m>, sr);
    VERIFY( &f3() == &s.v );
!   std::function_ref<const int&()> f4(std::cw<&S::c>, sr);
    VERIFY( &f4() == &s.v );
  
!   std::function_ref<const int&()> f5(std::cw<&S::v>, csr);
    VERIFY( &f5() == &s.v );
!   std::function_ref<const int&()> f6(std::cw<&S::c>, sr);
    VERIFY( &f6() == &s.v );
    static_assert( !std::is_constructible_v<
      std::function_ref<int&()>,
!     std::constant_wrapper<&S::c>, std::reference_wrapper<S>&>
     );
  
!   std::function_ref<int&()> f7(std::cw<&S::v>, std::as_const(sr));
    VERIFY( &f7() == &s.v );
!   std::function_ref<const int&()> f8(std::cw<&S::m>, std::as_const(sr));
    VERIFY( &f8() == &s.v );
  
    // No rvalue reference_wrapper support
    static_assert( !std::is_constructible_v<
      std::function_ref<int&()>,
!     std::constant_wrapper<&S::v>, std::reference_wrapper<S>>
    );
    static_assert( !std::is_constructible_v<
      std::function_ref<int&()>,
!     std::constant_wrapper<&S::v>, std::reference_wrapper<const S>>
    );
  
    // reference to reference_wrapper are bound, so mutation are visible
*************** test06()
*** 232,240 ****
    { return &x; };
  
    // identity of reference_wrapper is preserved
!   std::function_ref<const std::reference_wrapper<S>*()> g1(std::nontype<id>, sr);
    VERIFY( g1() == &sr );
!   std::function_ref<const std::reference_wrapper<const S>*()> g2(std::nontype<id>, csr);
    VERIFY( g2() == &csr );
  }
  
--- 231,239 ----
    { return &x; };
  
    // identity of reference_wrapper is preserved
!   std::function_ref<const std::reference_wrapper<S>*()> g1(std::cw<id>, sr);
    VERIFY( g1() == &sr );
!   std::function_ref<const std::reference_wrapper<const S>*()> g2(std::cw<id>, csr);
    VERIFY( g2() == &csr );
  }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/cons.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cons.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/cons.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cons.cc	Sun Apr 12 22:32:18 2026
***************
*** 9,16 ****
  # error "Feature-test macro for function_ref has wrong value in <functional>"
  #endif
  
! using std::nontype;
! using std::nontype_t;
  using std::function_ref;
  
  using std::is_default_constructible_v;
--- 9,15 ----
  # error "Feature-test macro for function_ref has wrong value in <functional>"
  #endif
  
! using std::constant_wrapper;
  using std::function_ref;
  
  using std::is_default_constructible_v;
*************** static_assert( ! is_constructible_v<func
*** 60,90 ****
  				    decltype(&S::f)> );
  
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  nontype_t<funS>> );
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  nontype_t<&funS>> );
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  nontype_t<&S::x>> );
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  nontype_t<&S::f>> );
  
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  nontype_t<funS>, S&> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  nontype_t<&funS>, S&> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  nontype_t<&S::x>, S&> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  nontype_t<&S::f>, S&> );
  
  static_assert( ! is_constructible_v<function_ref<int()>,
! 				    nontype_t<funS>, S*> );
  static_assert( ! is_constructible_v<function_ref<int()>,
! 				    nontype_t<&funS>, S*> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  nontype_t<&S::x>, S*> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  nontype_t<&S::f>, S*> );
  
  struct M
  {
--- 59,89 ----
  				    decltype(&S::f)> );
  
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  constant_wrapper<funS>> );
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  constant_wrapper<&funS>> );
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  constant_wrapper<&S::x>> );
  static_assert( is_nothrow_constructible_v<function_ref<int(S)>,
! 					  constant_wrapper<&S::f>> );
  
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  constant_wrapper<funS>, S&> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  constant_wrapper<&funS>, S&> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  constant_wrapper<&S::x>, S&> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  constant_wrapper<&S::f>, S&> );
  
  static_assert( ! is_constructible_v<function_ref<int()>,
! 				    constant_wrapper<funS>, S*> );
  static_assert( ! is_constructible_v<function_ref<int()>,
! 				    constant_wrapper<&funS>, S*> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  constant_wrapper<&S::x>, S*> );
  static_assert( is_nothrow_constructible_v<function_ref<int()>,
! 					  constant_wrapper<&S::f>, S*> );
  
  struct M
  {
*************** static_assert( ! is_constructible_v<func
*** 98,106 ****
  static_assert( ! is_constructible_v<function_ref<void() const>, M> );
  static_assert( ! is_constructible_v<function_ref<void() const>, const M&> );
  static_assert( ! is_constructible_v<function_ref<void()>,
! 				    nontype_t<M{}>> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    nontype_t<M{}>> );
  struct Q
  {
    void operator()(int) const;
--- 97,105 ----
  static_assert( ! is_constructible_v<function_ref<void() const>, M> );
  static_assert( ! is_constructible_v<function_ref<void() const>, const M&> );
  static_assert( ! is_constructible_v<function_ref<void()>,
! 				    constant_wrapper<M{}>> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    constant_wrapper<M{}>> );
  struct Q
  {
    void operator()(int) const;
*************** static_assert( is_nothrow_constructible_
*** 115,136 ****
  static_assert( is_nothrow_constructible_v<function_ref<void(int) const>, const Q&> );
  
  static_assert( is_nothrow_constructible_v<function_ref<void(int)>,
! 					  nontype_t<Q{}>> );
  static_assert( is_nothrow_constructible_v<function_ref<void(int) const>,
! 					  nontype_t<Q{}>> );
  static_assert( is_nothrow_constructible_v<function_ref<void()>,
! 					  nontype_t<Q{}>, int&> );
  static_assert( is_nothrow_constructible_v<function_ref<void() const>,
! 					  nontype_t<Q{}>, int&> );
  static_assert( ! is_constructible_v<function_ref<void()>,
! 				    nontype_t<Q{}>, int> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    nontype_t<Q{}>, int> );
  
  static_assert( is_nothrow_constructible_v<function_ref<void()>,
! 					  nontype_t<Q{}>, int*> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    nontype_t<Q{}>, int*> );
  
  struct L
  {
--- 114,135 ----
  static_assert( is_nothrow_constructible_v<function_ref<void(int) const>, const Q&> );
  
  static_assert( is_nothrow_constructible_v<function_ref<void(int)>,
! 					  constant_wrapper<Q{}>> );
  static_assert( is_nothrow_constructible_v<function_ref<void(int) const>,
! 					  constant_wrapper<Q{}>> );
  static_assert( is_nothrow_constructible_v<function_ref<void()>,
! 					  constant_wrapper<Q{}>, int&> );
  static_assert( is_nothrow_constructible_v<function_ref<void() const>,
! 					  constant_wrapper<Q{}>, int&> );
  static_assert( ! is_constructible_v<function_ref<void()>,
! 				    constant_wrapper<Q{}>, int> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    constant_wrapper<Q{}>, int> );
  
  static_assert( is_nothrow_constructible_v<function_ref<void()>,
! 					  constant_wrapper<Q{}>, int*> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    constant_wrapper<Q{}>, int*> );
  
  struct L
  {
*************** static_assert( ! is_constructible_v<func
*** 143,151 ****
  static_assert( ! is_constructible_v<function_ref<void() const>, L> );
  static_assert( ! is_constructible_v<function_ref<void() const>, const L&> );
  static_assert( ! is_constructible_v<function_ref<void()>,
! 				    nontype_t<L{}>> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    nontype_t<L{}>> );
  
  struct R
  {
--- 142,150 ----
  static_assert( ! is_constructible_v<function_ref<void() const>, L> );
  static_assert( ! is_constructible_v<function_ref<void() const>, const L&> );
  static_assert( ! is_constructible_v<function_ref<void()>,
! 				    constant_wrapper<L{}>> );
  static_assert( ! is_constructible_v<function_ref<void() const>,
! 				    constant_wrapper<L{}>> );
  
  struct R
  {
*************** static_assert( ! is_constructible_v<func
*** 159,182 ****
  static_assert( ! is_constructible_v<function_ref<void(float) const>, const R&> );
  
  static_assert( ! is_constructible_v<function_ref<void(float)>,
! 						 nontype_t<R{}>> );
  static_assert( ! is_constructible_v<function_ref<void(float) const>,
! 						 nontype_t<R{}>> );
  
  constexpr bool
  test_constexpr()
  {
!   function_ref<void(S)> fp1(nontype<funS>);
!   function_ref<void(S)> fp3(nontype<&funS>);
!   function_ref<void(S)> fp4(nontype<&S::x>);
!   function_ref<void(S)> fp5(nontype<&S::f>);
  
    S s;
!   function_ref<void()> fp6(nontype<&funS>, s);
!   function_ref<void()> fp7(nontype<&S::x>, s);
!   function_ref<void()> fp8(nontype<&S::x>, &s);
!   function_ref<void()> fp9(nontype<&S::f>, s);
!   function_ref<void()> fp10(nontype<&S::f>, &s);
  
    M m;
    function_ref<void()> fm1(m);
--- 158,181 ----
  static_assert( ! is_constructible_v<function_ref<void(float) const>, const R&> );
  
  static_assert( ! is_constructible_v<function_ref<void(float)>,
! 				    constant_wrapper<R{}>> );
  static_assert( ! is_constructible_v<function_ref<void(float) const>,
! 				    constant_wrapper<R{}>> );
  
  constexpr bool
  test_constexpr()
  {
!   function_ref<void(S)> fp1(std::cw<funS>);
!   function_ref<void(S)> fp3(std::cw<&funS>);
!   function_ref<void(S)> fp4(std::cw<&S::x>);
!   function_ref<void(S)> fp5(std::cw<&S::f>);
  
    S s;
!   function_ref<void()> fp6(std::cw<&funS>, s);
!   function_ref<void()> fp7(std::cw<&S::x>, s);
!   function_ref<void()> fp8(std::cw<&S::x>, &s);
!   function_ref<void()> fp9(std::cw<&S::f>, s);
!   function_ref<void()> fp10(std::cw<&S::f>, &s);
  
    M m;
    function_ref<void()> fm1(m);
*************** test_constexpr()
*** 190,202 ****
  
    function_ref<void(int)> fcq1(cq);
    function_ref<void(int) const> f(cq);
!   function_ref<void(int)> fcq3(nontype<cq>);
!   function_ref<void(int) const> fcq4(nontype<cq>);
  
    int i = 0;
!   function_ref<void()> fcq5(nontype<cq>, i);
!   function_ref<void() const> fcq6(nontype<cq>, i);
!   function_ref<void()> fcq7(nontype<cq>, &i);
  
    L l;
    function_ref<void()> fl1(l);
--- 189,201 ----
  
    function_ref<void(int)> fcq1(cq);
    function_ref<void(int) const> f(cq);
!   function_ref<void(int)> fcq3(std::cw<cq>);
!   function_ref<void(int) const> fcq4(std::cw<cq>);
  
    int i = 0;
!   function_ref<void()> fcq5(std::cw<cq>, i);
!   function_ref<void() const> fcq6(std::cw<cq>, i);
!   function_ref<void()> fcq7(std::cw<cq>, &i);
  
    L l;
    function_ref<void()> fl1(l);
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cons_neg.cc	Sun Apr 12 22:32:18 2026
***************
*** 2,8 ****
  
  #include <functional>
  
- using std::nontype;
  using std::function_ref;
  
  struct S
--- 2,7 ----
*************** constexpr int(*fp)(S) = nullptr;
*** 16,30 ****
  constexpr int S::*mdp = nullptr;
  constexpr int (S::*mfp)() = nullptr;
  
! function_ref<int(S)> fd1(nontype<fp>);  // { dg-error "from here" }
! function_ref<int(S)> fd2(nontype<mdp>); // { dg-error "from here" }
! function_ref<int(S)> fd3(nontype<mfp>); // { dg-error "from here" }
  
! function_ref<int()> br4(nontype<fp>, s);  // { dg-error "from here" }
! function_ref<int()> br5(nontype<mdp>, s); // { dg-error "from here" }
! function_ref<int()> br6(nontype<mfp>, s); // { dg-error "from here" }
  
! function_ref<int()> bp7(nontype<mdp>, &s); // { dg-error "from here" }
! function_ref<int()> bp8(nontype<mfp>, &s); // { dg-error "from here" }
  
  // { dg-prune-output "static assertion failed" }
--- 15,29 ----
  constexpr int S::*mdp = nullptr;
  constexpr int (S::*mfp)() = nullptr;
  
! function_ref<int(S)> fd1(std::cw<fp>);  // { dg-error "from here" }
! function_ref<int(S)> fd2(std::cw<mdp>); // { dg-error "from here" }
! function_ref<int(S)> fd3(std::cw<mfp>); // { dg-error "from here" }
  
! function_ref<int()> br4(std::cw<fp>, s);  // { dg-error "from here" }
! function_ref<int()> br5(std::cw<mdp>, s); // { dg-error "from here" }
! function_ref<int()> br6(std::cw<mfp>, s); // { dg-error "from here" }
  
! function_ref<int()> bp7(std::cw<mdp>, &s); // { dg-error "from here" }
! function_ref<int()> bp8(std::cw<mfp>, &s); // { dg-error "from here" }
  
  // { dg-prune-output "static assertion failed" }
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/cw_cons_neg.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cw_cons_neg.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/cw_cons_neg.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/cw_cons_neg.cc	Sun Apr 12 22:32:18 2026
***************
*** 0 ****
--- 1,35 ----
+ // { dg-do compile { target c++26 } }
+ 
+ #include <functional>
+ 
+ using std::function_ref;
+ using std::constant_wrapper;
+ 
+ struct S
+ {
+   int operator()() const { return 1; }
+ 
+   // Non-constant, so cw<S{}>(cw<1>) call never unwrapps
+   int operator()(int) const { return 1; }
+   template<auto __cw>
+     int operator()(constant_wrapper<__cw, int>) const { return 1; }
+ 
+   // Constant, cw<S{}>(cw<1>, cw<2>) calls int overload
+   // while S{}(cw<1>, cw<1>) calls constant_wrapper overload
+   constexpr int operator()(int, int) const { return 1; }
+   template<auto __cw1, auto __cw2>
+     constexpr int operator()(constant_wrapper<__cw1, int>,
+ 			     constant_wrapper<__cw2, int>)
+     { return 1; }
+ };
+ 
+ function_ref<int()> f0a(S{});
+ 
+ function_ref<int(int)> f1a(S{});
+ function_ref<int(constant_wrapper<2>)> f1b(std::cw<S{}>);
+ 
+ function_ref<int(int, int)> f2a(std::cw<S{}>); // OK, runtime
+ function_ref<int(constant_wrapper<1>, int)> f2b(std::cw<S{}>); // OK, still runtime
+ function_ref<int(constant_wrapper<2>, constant_wrapper<3>)> f2c(std::cw<S{}>); // { dg-error "from here" }
+ 
+ // { dg-prune-output "static assertion failed" }
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/dangling.cc	Sun Apr 12 22:32:18 2026
*************** struct NonStatic {
*** 46,52 ****
    { return x + y + v; }
  };
  
! constexpr auto vNonType = create(std::nontype<NonStatic{3}>);
  
  struct StaticWins {
    static int
--- 46,52 ----
    { return x + y + v; }
  };
  
! constexpr auto vNonType = create(std::cw<NonStatic{3}>);
  
  struct StaticWins {
    static int
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/deduction.cc	Sun Apr 12 22:32:18 2026
***************
*** 4,18 ****
  #include <type_traits>
  
  using std::is_same_v;
- using std::nontype;
- using std::nontype_t;
  using std::function_ref;
  
  int i = 0;
  
  template<auto f, class... Args>
    concept deductible = requires (Args&... args) 
!   { std::function_ref(std::nontype<f>, args...); };
  
  static_assert( !deductible<1> );
  static_assert( !deductible<1, int> );
--- 4,16 ----
  #include <type_traits>
  
  using std::is_same_v;
  using std::function_ref;
  
  int i = 0;
  
  template<auto f, class... Args>
    concept deductible = requires (Args&... args) 
!   { std::function_ref(std::cw<f>, args...); };
  
  static_assert( !deductible<1> );
  static_assert( !deductible<1, int> );
*************** static_assert( is_same_v<decltype(functi
*** 24,32 ****
  			 function_ref<void()>> );
  static_assert( is_same_v<decltype(function_ref(f0n)),
  			 function_ref<void() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f0>)),
  			 function_ref<void()>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f0n>)),
  			 function_ref<void() noexcept>> );
  static_assert( !deductible<f0, char*> );
  static_assert( !deductible<f0n, char*> );
--- 22,30 ----
  			 function_ref<void()>> );
  static_assert( is_same_v<decltype(function_ref(f0n)),
  			 function_ref<void() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f0>)),
  			 function_ref<void()>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f0n>)),
  			 function_ref<void() noexcept>> );
  static_assert( !deductible<f0, char*> );
  static_assert( !deductible<f0n, char*> );
*************** static_assert( is_same_v<decltype(functi
*** 38,50 ****
  			 function_ref<void(int)>> );
  static_assert( is_same_v<decltype(function_ref(f1n)),
  			 function_ref<void(int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f1>)),
  			 function_ref<void(int)>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f1n>)),
  			 function_ref<void(int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f1>, i)),
  			 function_ref<void()>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f1n>, i)),
  			 function_ref<void() noexcept>> );
  static_assert( !deductible<f1, char*> );
  static_assert( !deductible<f1n, char*> );
--- 36,48 ----
  			 function_ref<void(int)>> );
  static_assert( is_same_v<decltype(function_ref(f1n)),
  			 function_ref<void(int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f1>)),
  			 function_ref<void(int)>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f1n>)),
  			 function_ref<void(int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f1>, i)),
  			 function_ref<void()>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f1n>, i)),
  			 function_ref<void() noexcept>> );
  static_assert( !deductible<f1, char*> );
  static_assert( !deductible<f1n, char*> );
*************** static_assert( is_same_v<decltype(functi
*** 56,68 ****
  			 function_ref<void(int*, int)>> );
  static_assert( is_same_v<decltype(function_ref(f2n)),
  			 function_ref<void(int*, int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f2>)),
  			 function_ref<void(int*, int)>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f2n>)),
  			 function_ref<void(int*, int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f2>, &i)),
  			 function_ref<void(int)>> );
! static_assert( is_same_v<decltype(function_ref(nontype<f2n>, &i)),
  			 function_ref<void(int) noexcept>> );
  static_assert( !deductible<f2, char*> );
  static_assert( !deductible<f2n, char*> );
--- 54,66 ----
  			 function_ref<void(int*, int)>> );
  static_assert( is_same_v<decltype(function_ref(f2n)),
  			 function_ref<void(int*, int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f2>)),
  			 function_ref<void(int*, int)>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f2n>)),
  			 function_ref<void(int*, int) noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f2>, &i)),
  			 function_ref<void(int)>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<f2n>, &i)),
  			 function_ref<void(int) noexcept>> );
  static_assert( !deductible<f2, char*> );
  static_assert( !deductible<f2n, char*> );
*************** struct S
*** 88,127 ****
  S s{};
  const S cs{};
  
! static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, s)),
  			 function_ref<int&() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, cs)),
  			 function_ref<const int&() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, &s)),
  			 function_ref<int&() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(nontype<&S::mem>, &cs)),
  			 function_ref<const int&() noexcept>> );
  static_assert( !deductible<&S::mem, int> );
  
! static_assert( is_same_v<decltype(function_ref(nontype<&S::f>, s)),
  			 function_ref<int()>> );
! static_assert( is_same_v<decltype(function_ref(nontype<&S::fn>, &s)),
  			 function_ref<int() noexcept>> );
  static_assert( !deductible<&S::f, char*> );
  static_assert( !deductible<&S::fn, char*> );
  static_assert( !deductible<&S::f, const S> );
  static_assert( !deductible<&S::fn, const S> );
  
! static_assert( is_same_v<decltype(function_ref(nontype<&S::fc>, &s)),
  			 function_ref<int(int)>> );
! static_assert( is_same_v<decltype(function_ref(nontype<&S::fcn>, s)),
  			 function_ref<int(int) noexcept>> );
  static_assert( !deductible<&S::fc, char*> );
  static_assert( !deductible<&S::fcn, char*> );
  
! static_assert( is_same_v<decltype(function_ref(nontype<&S::fl>, &s)),
  			 function_ref<int(int)>> );
! static_assert( is_same_v<decltype(function_ref(nontype<&S::fln>, s)),
  			 function_ref<int(int) noexcept>> );
  
! static_assert( is_same_v<decltype(function_ref(nontype<&S::fcl>, s)),
  			 function_ref<int(float)>> );
! static_assert( is_same_v<decltype(function_ref(nontype<&S::fcln>, &s)),
  			 function_ref<int(float) noexcept>> );
  
  static_assert( !deductible<&S::fr, char*> );
--- 86,125 ----
  S s{};
  const S cs{};
  
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::mem>, s)),
  			 function_ref<int&() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::mem>, cs)),
  			 function_ref<const int&() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::mem>, &s)),
  			 function_ref<int&() noexcept>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::mem>, &cs)),
  			 function_ref<const int&() noexcept>> );
  static_assert( !deductible<&S::mem, int> );
  
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::f>, s)),
  			 function_ref<int()>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::fn>, &s)),
  			 function_ref<int() noexcept>> );
  static_assert( !deductible<&S::f, char*> );
  static_assert( !deductible<&S::fn, char*> );
  static_assert( !deductible<&S::f, const S> );
  static_assert( !deductible<&S::fn, const S> );
  
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::fc>, &s)),
  			 function_ref<int(int)>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::fcn>, s)),
  			 function_ref<int(int) noexcept>> );
  static_assert( !deductible<&S::fc, char*> );
  static_assert( !deductible<&S::fcn, char*> );
  
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::fl>, &s)),
  			 function_ref<int(int)>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::fln>, s)),
  			 function_ref<int(int) noexcept>> );
  
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::fcl>, s)),
  			 function_ref<int(float)>> );
! static_assert( is_same_v<decltype(function_ref(std::cw<&S::fcln>, &s)),
  			 function_ref<int(float) noexcept>> );
  
  static_assert( !deductible<&S::fr, char*> );
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/mutation.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/mutation.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/function_ref/mutation.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/function_ref/mutation.cc	Sun Apr 12 22:32:18 2026
***************
*** 3,9 ****
  #include <functional>
  #include <testsuite_hooks.h>
  
- using std::nontype;
  using std::function_ref;
  
  void
--- 3,8 ----
*************** test02()
*** 55,62 ****
    };
    S s{10};
  
!   function_ref<int()> r1(nontype<&S::x>, s);
!   function_ref<long()> r2(nontype<&S::x>, &s);
  
    VERIFY( r1() == 10 );
    VERIFY( r2() == 10 );
--- 54,61 ----
    };
    S s{10};
  
!   function_ref<int()> r1(std::cw<&S::x>, s);
!   function_ref<long()> r2(std::cw<&S::x>, &s);
  
    VERIFY( r1() == 10 );
    VERIFY( r2() == 10 );
*************** test02()
*** 66,73 ****
    VERIFY( r1() == 20 );
    VERIFY( r2() == 20 );
  
!   r1 = function_ref<int()>(nontype<&S::f>, &s);
!   r2 = function_ref<long()>(nontype<&S::f>, s);
  
    VERIFY( r1() == 20 );
    VERIFY( r2() == 20 );
--- 65,72 ----
    VERIFY( r1() == 20 );
    VERIFY( r2() == 20 );
  
!   r1 = function_ref<int()>(std::cw<&S::f>, &s);
!   r2 = function_ref<long()>(std::cw<&S::f>, s);
  
    VERIFY( r1() == 20 );
    VERIFY( r2() == 20 );
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/explicit_instantiation.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- // { dg-do compile { target c++26 } }
- // { dg-additional-options "-freflection" }
- 
- // NB: This file is for testing type_traits with NO OTHER INCLUDES.
- 
- #include <type_traits>
- 
- namespace std
- {
-   typedef short test_type;
-   template struct is_consteval_only<test_type>;
- }
--- 0 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/is_consteval_only/requirements/typedefs.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- // { dg-do compile { target c++26 } }
- // { dg-additional-options "-freflection" }
- 
- // NB: This file is for testing type_traits with NO OTHER INCLUDES.
- 
- #include <type_traits>
- 
- void test01()
- {
-   // Check for required typedefs
-   typedef std::is_consteval_only<decltype (^^int)> test_type;
-   typedef test_type::value_type               value_type;
-   typedef test_type::type                     type;
-   typedef test_type::type::value_type         type_value_type;
-   typedef test_type::type::type               type_type;
- }
--- 0 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/is_consteval_only/value.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,30 ****
- // { dg-do compile { target c++26 } }
- // { dg-additional-options "-freflection" }
- 
- #include <type_traits>
- #include <testsuite_tr1.h>
- 
- void test01()
- {
-   using std::is_consteval_only;
-   using namespace __gnu_test;
-   int v = 1;
-   struct S1 { decltype(^^long) a; };
-   union U2 { int a; decltype(^^test01) b; };
-   struct S3 { const decltype(^^__gnu_test) *c; };
-   struct S4 : public S3 {};
-   struct S5 { int a; long *b; };
- 
-   static_assert(test_category<is_consteval_only, decltype(^^long)>(true), "");
-   static_assert(test_category<is_consteval_only, const decltype(^^test01)>(true), "");
-   static_assert(test_category<is_consteval_only, volatile decltype(^^__gnu_test)>(true), "");
-   static_assert(test_category<is_consteval_only, const volatile decltype(^^v)>(true), "");
-   static_assert(test_category<is_consteval_only, const S1>(true), "");
-   static_assert(test_category<is_consteval_only, U2>(true), "");
-   static_assert(test_category<is_consteval_only, S3>(true), "");
-   static_assert(test_category<is_consteval_only, S4>(true), "");
- 
-   // Sanity check.
-   static_assert(test_category<is_consteval_only, int>(false), "");
-   static_assert(test_category<is_consteval_only, S5>(false), "");
- }
--- 0 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc gcc-16-20260412/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/20_util/variable_templates_for_traits.cc	Sun Apr 12 22:32:18 2026
*************** static_assert(!is_convertible_v<const in
*** 335,343 ****
  static_assert(is_reflection_v<decltype(^^int)>
  	      && is_reflection<decltype(^^int)>::value, "");
  static_assert(!is_reflection_v<int> && !is_reflection<int>::value, "");
- static_assert(is_consteval_only_v<decltype(^^int)>
- 	      && is_consteval_only<decltype(^^int)>::value, "");
- static_assert(!is_consteval_only_v<int> && !is_consteval_only<int>::value, "");
  #endif
  
  #if __cpp_lib_is_structural >= 202603L
--- 335,340 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/23_containers/inplace_vector/copy.cc gcc-16-20260412/libstdc++-v3/testsuite/23_containers/inplace_vector/copy.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/23_containers/inplace_vector/copy.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/23_containers/inplace_vector/copy.cc	Sun Apr 12 22:32:18 2026
*************** static_assert(std::is_trivially_copy_ass
*** 138,144 ****
  
  template<typename T, size_t N>
  constexpr bool
! eq(const std::inplace_vector<T, N>& s, std::span<const T> o)
  { return std::ranges::equal(s, o); }
  
  constexpr void
--- 138,144 ----
  
  template<typename T, size_t N>
  constexpr bool
! eq(const std::inplace_vector<T, N>& s, std::initializer_list<std::type_identity_t<T>> o)
  { return std::ranges::equal(s, o); }
  
  constexpr void
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/23_containers/inplace_vector/erasure.cc gcc-16-20260412/libstdc++-v3/testsuite/23_containers/inplace_vector/erasure.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/23_containers/inplace_vector/erasure.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/23_containers/inplace_vector/erasure.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,18 ****
  // { dg-do run { target c++26 } }
  
  #include <inplace_vector>
  #include <testsuite_hooks.h>
- #include <span>
  
  template<typename T, size_t N>
  constexpr bool
! eq(const std::inplace_vector<T, N>& l, std::span<const T> r) {
!   if (l.size() != r.size())
!     return false;
!   for (auto i = 0u; i < l.size(); ++i)
!     if (l[i] != r[i])
!       return false;
!   return true;
  };
  
  constexpr void
--- 1,13 ----
  // { dg-do run { target c++26 } }
  
  #include <inplace_vector>
+ #include <ranges>
  #include <testsuite_hooks.h>
  
  template<typename T, size_t N>
  constexpr bool
! eq(const std::inplace_vector<T, N>& l, std::initializer_list<std::type_identity_t<T>> r) {
!   return std::ranges::equal(l, r);
  };
  
  constexpr void
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/23_containers/inplace_vector/move.cc gcc-16-20260412/libstdc++-v3/testsuite/23_containers/inplace_vector/move.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/23_containers/inplace_vector/move.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/23_containers/inplace_vector/move.cc	Sun Apr 12 22:32:18 2026
*************** static_assert(std::is_nothrow_swappable_
*** 177,183 ****
  
  template<typename T, size_t N>
  constexpr bool
! eq(const std::inplace_vector<T, N>& s, std::span<const T> o)
  { return std::ranges::equal(s, o); }
  
  constexpr void
--- 177,183 ----
  
  template<typename T, size_t N>
  constexpr bool
! eq(const std::inplace_vector<T, N>& s, std::initializer_list<std::type_identity_t<T>> o)
  { return std::ranges::equal(s, o); }
  
  constexpr void
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/23_containers/span/init_list_cons.cc gcc-16-20260412/libstdc++-v3/testsuite/23_containers/span/init_list_cons.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/23_containers/span/init_list_cons.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/23_containers/span/init_list_cons.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,65 ****
- // { dg-do compile { target c++26 } }
- 
- #include <span>
- #include <type_traits>
- 
- #if !defined(__cpp_lib_span_initializer_list)
- # error "__cpp_lib_span_initializer_list should be defined"
- #elif __cpp_lib_span_initializer_list < 202311L
- # error "Wrong value for __cpp_lib_span_initializer_list (should be >= 202311L)"
- #endif
- 
- // Check the constraint on the initializer_list constructor
- static_assert( std::is_const_v<std::span<const int>::element_type>);
- static_assert(!std::is_const_v<std::span<      int>::element_type>);
- 
- static_assert( std::is_constructible_v<std::span<const int    >, std::initializer_list<      int>>);
- static_assert( std::is_constructible_v<std::span<const int    >, std::initializer_list<const int>>);
- static_assert( std::is_constructible_v<std::span<const int, 42>, std::initializer_list<      int>>);
- static_assert( std::is_constructible_v<std::span<const int, 42>, std::initializer_list<const int>>);
- static_assert(!std::is_constructible_v<std::span<      int    >, std::initializer_list<      int>>);
- static_assert(!std::is_constructible_v<std::span<      int    >, std::initializer_list<const int>>);
- static_assert(!std::is_constructible_v<std::span<      int, 42>, std::initializer_list<      int>>);
- static_assert(!std::is_constructible_v<std::span<      int, 42>, std::initializer_list<const int>>);
- 
- // Check the explicit-ness on the initializer_list constructor
- static_assert( std::is_convertible_v<std::initializer_list<      int>, std::span<const int    >>);
- static_assert( std::is_convertible_v<std::initializer_list<const int>, std::span<const int    >>);
- static_assert(!std::is_convertible_v<std::initializer_list<      int>, std::span<const int, 42>>);
- static_assert(!std::is_convertible_v<std::initializer_list<const int>, std::span<const int, 42>>);
- static_assert(!std::is_convertible_v<std::initializer_list<      int>, std::span<      int    >>);
- static_assert(!std::is_convertible_v<std::initializer_list<const int>, std::span<      int    >>);
- static_assert(!std::is_convertible_v<std::initializer_list<      int>, std::span<      int, 42>>);
- static_assert(!std::is_convertible_v<std::initializer_list<const int>, std::span<      int, 42>>);
- 
- constexpr size_t fun1(std::span<const int> s)
- {
-   return s.size();
- }
- 
- static_assert(fun1({}) == 0);
- static_assert(fun1({1, 2, 3}) == 3);
- static_assert(fun1(std::initializer_list<int>{1, 2, 3}) == 3);
- 
- // Stress-test array->pointer decays
- struct decayer {
-   constexpr decayer() = default;
-   constexpr decayer(decayer *) {}
- };
- 
- constexpr size_t fun2(std::span<const decayer> s)
- {
-   return s.size();
- }
- 
- void test01()
- {
-   int intArray[42];
-   static_assert(fun1(intArray) == 42);
- 
-   decayer decArray[42];
-   static_assert(fun2(decArray) == 42);
-   static_assert(fun2({decArray}) == 1); // decayer[] -> decayer* -> decayer(decayer*) -> init_list<decayer> of 1 element
-   static_assert(fun2({decArray, decArray + 42}) == 2); // does not select span(iterator, iterator)
-   static_assert(fun2({decArray, decArray, decArray}) == 3);
- }
--- 0 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/23_containers/span/init_list_cons_neg.cc gcc-16-20260412/libstdc++-v3/testsuite/23_containers/span/init_list_cons_neg.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/23_containers/span/init_list_cons_neg.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/23_containers/span/init_list_cons_neg.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,36 ****
- // { dg-do run { target { c++20 && c++23_down } } }
- // { dg-do compile { target c++26 } }
- 
- #include <span>
- #include <utility>
- 
- #include <testsuite_hooks.h>
- 
- struct Any {
-   constexpr Any() { }
-   template<typename T> constexpr Any(T) { }
- };
- 
- // Examples from P2447R4
- void one(std::pair<int, int>) {}
- void one(std::span<const int>) {}
- void two(std::span<const int, 2>) {}
- constexpr std::size_t three(std::span<void * const> v) { return v.size(); }
- constexpr std::size_t four(std::span<const Any> v) { return v.size(); }
- 
- void *array3[10];
- Any array4[10];
- 
- int main()
- {
-   one({1, 2}); // { dg-error "call of overloaded" "should be ambiguous with the one(std::pair) overload" { target c++26 } }
-   two({{1, 2}}); // { dg-error "would use explicit constructor" "should prefer the initializer_list constructor, which is explicit" { target c++26 } }
- 
- #if __cpp_lib_span_initializer_list
-   static_assert(three({array3, 0}) == 2);
-   static_assert(four({array4, array4 + 10}) == 2);
- #else
-   static_assert(three({array3, 0}) == 0);
-   static_assert(four({array4, array4 + 10}) == 10);
- #endif
- }
--- 0 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/25_algorithms/contains/1.cc gcc-16-20260412/libstdc++-v3/testsuite/25_algorithms/contains/1.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/25_algorithms/contains/1.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/25_algorithms/contains/1.cc	Sun Apr 12 22:32:18 2026
*************** void
*** 14,30 ****
  test01()
  {
    int x[] = {1,2,3};
!   using to_input = __gnu_test::test_input_range<int>;
!   VERIFY( ranges::contains(to_input(x), 1) );
!   VERIFY( ranges::contains(to_input(x), 2) );
!   VERIFY( ranges::contains(to_input(x), 3) );
!   VERIFY( !ranges::contains(to_input(x), 4) );
    VERIFY( !ranges::contains(x, x+2, 3) );
    auto neg = [](int n) { return -n; };
!   VERIFY( ranges::contains(to_input(x), -1, neg) );
!   VERIFY( ranges::contains(to_input(x), -2, neg) );
!   VERIFY( ranges::contains(to_input(x), -3, neg) );
!   VERIFY( !ranges::contains(to_input(x), -4, neg) );
  
    VERIFY( !ranges::contains(x, x+2, -3, neg) );
  }
--- 14,30 ----
  test01()
  {
    int x[] = {1,2,3};
!   using as_input = __gnu_test::test_input_range<int>;
!   VERIFY( ranges::contains(as_input(x), 1) );
!   VERIFY( ranges::contains(as_input(x), 2) );
!   VERIFY( ranges::contains(as_input(x), 3) );
!   VERIFY( !ranges::contains(as_input(x), 4) );
    VERIFY( !ranges::contains(x, x+2, 3) );
    auto neg = [](int n) { return -n; };
!   VERIFY( ranges::contains(as_input(x), -1, neg) );
!   VERIFY( ranges::contains(as_input(x), -2, neg) );
!   VERIFY( ranges::contains(as_input(x), -3, neg) );
!   VERIFY( !ranges::contains(as_input(x), -4, neg) );
  
    VERIFY( !ranges::contains(x, x+2, -3, neg) );
  }
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/25_algorithms/default_template_value.cc gcc-16-20260412/libstdc++-v3/testsuite/25_algorithms/default_template_value.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/25_algorithms/default_template_value.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/25_algorithms/default_template_value.cc	Sun Apr 12 22:32:18 2026
***************
*** 4,15 ****
  
  #if !defined(__cpp_lib_algorithm_default_value_type)
  #error "Feature test macro for default template type for algorithms' values is missing"
! #elif __cpp_lib_algorithm_default_value_type < 202403L
  #error "Feature test macro for default template type for algorithms' values is wrong"
  #endif
  
  #include <execution>
  #include <ranges>
  #include <iterator>
  #include <vector>
  
--- 4,17 ----
  
  #if !defined(__cpp_lib_algorithm_default_value_type)
  #error "Feature test macro for default template type for algorithms' values is missing"
! #elif __cpp_lib_algorithm_default_value_type < 202603L
  #error "Feature test macro for default template type for algorithms' values is wrong"
  #endif
  
  #include <execution>
+ #include <memory>
  #include <ranges>
+ #include <span>
  #include <iterator>
  #include <vector>
  
*************** test()
*** 139,142 ****
--- 141,155 ----
    // [alg.find.last]
    (void) std::ranges::find_last(in.begin(), in.end(), INPUT_VAL);
    (void) std::ranges::find_last(in, INPUT_VAL);
+ 
+   extern std::span<Input> unin;
+   // [uninitialized.fill]
+   (void) std::uninitialized_fill(unin.begin(), unin.end(), INPUT_VAL);
+   (void) std::uninitialized_fill(std::execution::seq, unin.begin(), unin.end(), INPUT_VAL);
+   (void) std::ranges::uninitialized_fill(unin.begin(), unin.end(), INPUT_VAL);
+   (void) std::ranges::uninitialized_fill(unin, INPUT_VAL);
+ 
+   (void) std::uninitialized_fill_n(unin.begin(), unin.size(), INPUT_VAL);
+   (void) std::uninitialized_fill_n(std::execution::seq, unin.begin(), unin.size(), INPUT_VAL);
+   (void) std::ranges::uninitialized_fill_n(unin.begin(), unin.size(), INPUT_VAL);
  }
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc gcc-16-20260412/libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc	Thu Jan  1 00:00:00 1970
--- gcc-16-20260412/libstdc++-v3/testsuite/std/ranges/adaptors/as_input/1.cc	Sun Apr 12 22:32:18 2026
***************
*** 0 ****
--- 1,59 ----
+ // { dg-do run { target c++26 } }
+ 
+ #include <ranges>
+ 
+ #if __cpp_lib_ranges_as_input != 202502L
+ # error "Feature-test macro __cpp_lib_ranges_as_input has wrong value in <ranges>"
+ #endif
+ 
+ #include <algorithm>
+ #include <vector>
+ #include <testsuite_hooks.h>
+ #include <testsuite_iterators.h>
+ 
+ namespace ranges = std::ranges;
+ namespace views = std::views;
+ 
+ void
+ test01()
+ {
+   std::vector<int> r{1,2,3};
+   auto v = r | views::as_input;
+   using type = decltype(v);
+   static_assert( ranges::input_range<type> && !ranges::forward_range<type> );
+ 
+   VERIFY( ranges::equal(v.base(), r) );
+   VERIFY( v.size() == r.size() );
+   VERIFY( v.end() == r.end() );
+   auto it = v.begin();
+   VERIFY( it != r.end() );
+   *it = 42;
+   ++it;
+   *it = 43;
+   it++;
+   ranges::iter_swap(v.begin(), it);
+   VERIFY( ranges::equal(r, (int[]){3,43,42}) );
+   *it = ranges::iter_move(it);
+   VERIFY( it == r.begin() + 2 );
+   VERIFY( r.end() - it == 1 );
+   VERIFY( it - r.end() == -1 );
+ }
+ 
+ void
+ test02()
+ {
+   int x[] = {1,2,3};
+   __gnu_test::test_input_range<int> rx(x);
+   static_assert( !ranges::common_range<decltype(rx)> );
+   auto v = rx | views::as_input;
+   static_assert( std::same_as<decltype(v), decltype(views::all(rx))> );
+   static_assert( std::same_as<decltype(x | views::as_input),
+ 			      decltype(x | views::as_input | views::as_input)> );
+ }
+ 
+ int
+ main()
+ {
+   test01();
+   test02();
+ }
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc gcc-16-20260412/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/ranges/adaptors/lazy_split.cc	Sun Apr 12 22:32:18 2026
*************** test13()
*** 239,244 ****
--- 239,253 ----
    constexpr decltype(views::lazy_split(views::single(0), 0).begin()) it;
  }
  
+ void
+ test14()
+ {
+   // LWG 3599
+   auto p = views::iota(0) | views::take(1) | views::reverse;
+   auto r = views::single(42) | views::lazy_split(p);
+   auto f = r.front();
+ }
+ 
  int
  main()
  {
*************** main()
*** 255,258 ****
--- 264,268 ----
    test11();
    static_assert(test12());
    test13();
+   test14();
  }
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc gcc-16-20260412/libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/ranges/adaptors/to_input/1.cc	Thu Jan  1 00:00:00 1970
***************
*** 1,59 ****
- // { dg-do run { target c++26 } }
- 
- #include <ranges>
- 
- #if __cpp_lib_ranges_to_input != 202502L
- # error "Feature-test macro __cpp_lib_ranges_to_input has wrong value in <ranges>"
- #endif
- 
- #include <algorithm>
- #include <vector>
- #include <testsuite_hooks.h>
- #include <testsuite_iterators.h>
- 
- namespace ranges = std::ranges;
- namespace views = std::views;
- 
- void
- test01()
- {
-   std::vector<int> r{1,2,3};
-   auto v = r | views::to_input;
-   using type = decltype(v);
-   static_assert( ranges::input_range<type> && !ranges::forward_range<type> );
- 
-   VERIFY( ranges::equal(v.base(), r) );
-   VERIFY( v.size() == r.size() );
-   VERIFY( v.end() == r.end() );
-   auto it = v.begin();
-   VERIFY( it != r.end() );
-   *it = 42;
-   ++it;
-   *it = 43;
-   it++;
-   ranges::iter_swap(v.begin(), it);
-   VERIFY( ranges::equal(r, (int[]){3,43,42}) );
-   *it = ranges::iter_move(it);
-   VERIFY( it == r.begin() + 2 );
-   VERIFY( r.end() - it == 1 );
-   VERIFY( it - r.end() == -1 );
- }
- 
- void
- test02()
- {
-   int x[] = {1,2,3};
-   __gnu_test::test_input_range<int> rx(x);
-   static_assert( !ranges::common_range<decltype(rx)> );
-   auto v = rx | views::to_input;
-   static_assert( std::same_as<decltype(v), decltype(views::all(rx))> );
-   static_assert( std::same_as<decltype(x | views::to_input),
- 			      decltype(x | views::to_input | views::to_input)> );
- }
- 
- int
- main()
- {
-   test01();
-   test02();
- }
--- 0 ----
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/arithmetic.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/arithmetic.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/arithmetic.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/arithmetic.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/arithmetic_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/arithmetic_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/arithmetic_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/arithmetic_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/creation.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/creation.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/creation.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/creation.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/creation_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/creation_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/creation_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/creation_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/loads.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/loads.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/loads.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/loads.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  #include <numeric>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/loads_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/loads_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/loads_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/loads_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  #include <utility>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask2.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask2.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask2.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask2.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  #include <utility>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask2_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask2_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask2_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask2_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-require-effective-target run_expensive_tests }
  // { dg-timeout-factor 2 }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/mask_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/mask_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/reductions.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/reductions.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/reductions.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/reductions.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/reductions_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/reductions_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/reductions_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/reductions_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_left.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_left.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_left.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_left.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_left_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_left_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_left_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_left_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_right.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_right.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_right.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_right.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_right_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_right_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/shift_right_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/shift_right_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/simd_alg.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/simd_alg.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/simd_alg.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/simd_alg.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  #include <utility>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/simd_alg_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/simd_alg_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/simd_alg_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/simd_alg_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/sse_intrin.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/sse_intrin.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/sse_intrin.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/sse_intrin.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/stores.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/stores.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/stores.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/stores.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include "test_setup.h"
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/stores_expensive.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/stores_expensive.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/stores_expensive.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/stores_expensive.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do run { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  // { dg-require-effective-target run_expensive_tests }
  
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/traits_common.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/traits_common.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/traits_common.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/traits_common.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do compile { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  // { dg-timeout-factor 2 }
  
  #include <simd>
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/traits_impl.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/traits_impl.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/traits_impl.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/traits_impl.cc	Sun Apr 12 22:32:18 2026
*************** using std::float64_t;
*** 17,22 ****
--- 17,23 ----
  
  using namespace std::simd;
  
+ template <int = 0>
  void test()
  {
    template for (auto t : {float(), double(),
*************** void test()
*** 147,152 ****
--- 148,155 ----
    static_assert(__highest_bit(0b10000001000ull) == 10);
  }
  
+ template void test<>();
+ 
  consteval bool
  throws(auto f)
  {
diff -Nrcpad gcc-16-20260405/libstdc++-v3/testsuite/std/simd/traits_math.cc gcc-16-20260412/libstdc++-v3/testsuite/std/simd/traits_math.cc
*** gcc-16-20260405/libstdc++-v3/testsuite/std/simd/traits_math.cc	Sun Apr  5 22:32:19 2026
--- gcc-16-20260412/libstdc++-v3/testsuite/std/simd/traits_math.cc	Sun Apr 12 22:32:18 2026
***************
*** 1,5 ****
--- 1,6 ----
  // { dg-do compile { target c++26 } }
  // { dg-require-effective-target x86 }
+ // { dg-additional-options "-msse2" }
  
  #include <simd>
  #include <stdfloat>
